@depup/react-native-worklets 0.11.3-depup.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 (457) hide show
  1. package/.worklets/dummy.md +1 -0
  2. package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.cpp +64 -0
  3. package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.h +38 -0
  4. package/Common/cpp/worklets/Compat/Holders.h +25 -0
  5. package/Common/cpp/worklets/Compat/StableApi.cpp +145 -0
  6. package/Common/cpp/worklets/Compat/StableApi.h +128 -0
  7. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +729 -0
  8. package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.h +126 -0
  9. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +81 -0
  10. package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +76 -0
  11. package/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +95 -0
  12. package/Common/cpp/worklets/Registries/EventHandlerRegistry.h +44 -0
  13. package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +10 -0
  14. package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +43 -0
  15. package/Common/cpp/worklets/RunLoop/AsyncQueue.h +14 -0
  16. package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +69 -0
  17. package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.h +48 -0
  18. package/Common/cpp/worklets/RunLoop/EventLoop.cpp +103 -0
  19. package/Common/cpp/worklets/RunLoop/EventLoop.h +52 -0
  20. package/Common/cpp/worklets/SharedItems/MemoryManager.cpp +60 -0
  21. package/Common/cpp/worklets/SharedItems/MemoryManager.h +29 -0
  22. package/Common/cpp/worklets/SharedItems/Serializable.cpp +373 -0
  23. package/Common/cpp/worklets/SharedItems/Serializable.h +413 -0
  24. package/Common/cpp/worklets/SharedItems/SerializableFactory.cpp +172 -0
  25. package/Common/cpp/worklets/SharedItems/SerializableFactory.h +85 -0
  26. package/Common/cpp/worklets/SharedItems/SerializableRemoteFunction.cpp +71 -0
  27. package/Common/cpp/worklets/SharedItems/SerializableRemoteFunction.h +75 -0
  28. package/Common/cpp/worklets/SharedItems/Shareable.cpp +84 -0
  29. package/Common/cpp/worklets/SharedItems/Shareable.h +43 -0
  30. package/Common/cpp/worklets/SharedItems/Synchronizable.cpp +59 -0
  31. package/Common/cpp/worklets/SharedItems/Synchronizable.h +57 -0
  32. package/Common/cpp/worklets/SharedItems/SynchronizableAccess.cpp +78 -0
  33. package/Common/cpp/worklets/SharedItems/SynchronizableAccess.h +45 -0
  34. package/Common/cpp/worklets/SharedItems/UnpackerLoader.h +78 -0
  35. package/Common/cpp/worklets/Tools/FeatureFlags.cpp +18 -0
  36. package/Common/cpp/worklets/Tools/FeatureFlags.h +44 -0
  37. package/Common/cpp/worklets/Tools/JSISerializer.cpp +312 -0
  38. package/Common/cpp/worklets/Tools/JSISerializer.h +42 -0
  39. package/Common/cpp/worklets/Tools/JSLogger.cpp +92 -0
  40. package/Common/cpp/worklets/Tools/JSLogger.h +48 -0
  41. package/Common/cpp/worklets/Tools/JSScheduler.cpp +21 -0
  42. package/Common/cpp/worklets/Tools/JSScheduler.h +35 -0
  43. package/Common/cpp/worklets/Tools/PlatformLogger.h +16 -0
  44. package/Common/cpp/worklets/Tools/RNRuntimeStatus.h +27 -0
  45. package/Common/cpp/worklets/Tools/ScriptBuffer.h +56 -0
  46. package/Common/cpp/worklets/Tools/SingleInstanceChecker.h +75 -0
  47. package/Common/cpp/worklets/Tools/ThreadSafeQueue.h +49 -0
  48. package/Common/cpp/worklets/Tools/UIScheduler.cpp +19 -0
  49. package/Common/cpp/worklets/Tools/UIScheduler.h +22 -0
  50. package/Common/cpp/worklets/Tools/VersionUtils.cpp +61 -0
  51. package/Common/cpp/worklets/Tools/VersionUtils.h +24 -0
  52. package/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +34 -0
  53. package/Common/cpp/worklets/Tools/WorkletEventHandler.h +44 -0
  54. package/Common/cpp/worklets/Tools/WorkletsJSIUtils.cpp +30 -0
  55. package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +222 -0
  56. package/Common/cpp/worklets/Tools/WorkletsSystraceSection.h +116 -0
  57. package/Common/cpp/worklets/Tools/WorkletsVersion.cpp +46 -0
  58. package/Common/cpp/worklets/Tools/WorkletsVersion.h +18 -0
  59. package/Common/cpp/worklets/WorkletRuntime/BundleModeConfig.h +17 -0
  60. package/Common/cpp/worklets/WorkletRuntime/HermesProfiling.cpp +45 -0
  61. package/Common/cpp/worklets/WorkletRuntime/HermesProfiling.h +12 -0
  62. package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +68 -0
  63. package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +24 -0
  64. package/Common/cpp/worklets/WorkletRuntime/RuntimeBindings.h +59 -0
  65. package/Common/cpp/worklets/WorkletRuntime/RuntimeData.h +38 -0
  66. package/Common/cpp/worklets/WorkletRuntime/RuntimeHolder.h +19 -0
  67. package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +122 -0
  68. package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +75 -0
  69. package/Common/cpp/worklets/WorkletRuntime/ScriptLoader.h +116 -0
  70. package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.cpp +14 -0
  71. package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.h +15 -0
  72. package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.cpp +58 -0
  73. package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.h +100 -0
  74. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +327 -0
  75. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +256 -0
  76. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +36 -0
  77. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +320 -0
  78. package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +36 -0
  79. package/LICENSE +20 -0
  80. package/README.md +43 -0
  81. package/RNWorklets.podspec +94 -0
  82. package/android/CMakeLists.txt +108 -0
  83. package/android/build.gradle.kts +369 -0
  84. package/android/fix-prefab.gradle.kts +56 -0
  85. package/android/generate-stub-pch.gradle.kts +84 -0
  86. package/android/gradle.properties +25 -0
  87. package/android/proguard-rules.pro +3 -0
  88. package/android/settings.gradle.kts +21 -0
  89. package/android/src/main/AndroidManifest.xml +2 -0
  90. package/android/src/main/cpp/WorkletsPCH.h +26 -0
  91. package/android/src/main/cpp/worklets/android/AndroidUIScheduler.cpp +66 -0
  92. package/android/src/main/cpp/worklets/android/AndroidUIScheduler.h +38 -0
  93. package/android/src/main/cpp/worklets/android/AnimationFrameCallback.h +30 -0
  94. package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.cpp +66 -0
  95. package/android/src/main/cpp/worklets/android/JScriptBufferWrapper.h +48 -0
  96. package/android/src/main/cpp/worklets/android/JWorkletRuntimeWrapper.cpp +51 -0
  97. package/android/src/main/cpp/worklets/android/JWorkletRuntimeWrapper.h +43 -0
  98. package/android/src/main/cpp/worklets/android/PlatformLogger.cpp +31 -0
  99. package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +203 -0
  100. package/android/src/main/cpp/worklets/android/WorkletsModule.h +75 -0
  101. package/android/src/main/cpp/worklets/android/WorkletsOnLoad.cpp +19 -0
  102. package/android/src/main/java/com/swmansion/worklets/AndroidUIScheduler.kt +56 -0
  103. package/android/src/main/java/com/swmansion/worklets/ScriptBufferWrapper.kt +103 -0
  104. package/android/src/main/java/com/swmansion/worklets/WorkletsPackage.kt +42 -0
  105. package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameCallback.kt +14 -0
  106. package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameQueue.kt +112 -0
  107. package/android/src/networking/com/swmansion/worklets/WorkletRuntimeWrapper.kt +27 -0
  108. package/android/src/networking/com/swmansion/worklets/WorkletsHeaderUtil.kt +30 -0
  109. package/android/src/networking/com/swmansion/worklets/WorkletsModule.kt +187 -0
  110. package/android/src/networking/com/swmansion/worklets/WorkletsNetworkEventUtil.kt +272 -0
  111. package/android/src/networking/com/swmansion/worklets/WorkletsNetworking.kt +1124 -0
  112. package/android/src/networking/com/swmansion/worklets/WorkletsOkHttpCallUtil.kt +40 -0
  113. package/android/src/networking/com/swmansion/worklets/WorkletsProgressListener.kt +13 -0
  114. package/android/src/networking/com/swmansion/worklets/WorkletsProgressRequestBody.kt +98 -0
  115. package/android/src/networking/com/swmansion/worklets/WorkletsProgressResponseBody.kt +60 -0
  116. package/android/src/networking/com/swmansion/worklets/WorkletsProgressiveStringDecoder.kt +87 -0
  117. package/android/src/networking/com/swmansion/worklets/WorkletsRequestBodyUtil.kt +181 -0
  118. package/android/src/no-networking/com/swmansion/worklets/WorkletsModule.kt +143 -0
  119. package/apple/worklets/apple/AnimationFrameQueue.h +15 -0
  120. package/apple/worklets/apple/AnimationFrameQueue.mm +145 -0
  121. package/apple/worklets/apple/AssertJavaScriptQueue.h +14 -0
  122. package/apple/worklets/apple/AssertTurboModuleManagerQueue.h +12 -0
  123. package/apple/worklets/apple/IOSUIScheduler.h +14 -0
  124. package/apple/worklets/apple/IOSUIScheduler.mm +29 -0
  125. package/apple/worklets/apple/Networking/WorkletsNetworking.h +25 -0
  126. package/apple/worklets/apple/Networking/WorkletsNetworking.mm +707 -0
  127. package/apple/worklets/apple/PlatformLogger.mm +31 -0
  128. package/apple/worklets/apple/SlowAnimations.h +8 -0
  129. package/apple/worklets/apple/SlowAnimations.mm +45 -0
  130. package/apple/worklets/apple/WorkletsDisplayLink.h +21 -0
  131. package/apple/worklets/apple/WorkletsModule.h +28 -0
  132. package/apple/worklets/apple/WorkletsModule.mm +177 -0
  133. package/bundleMode/index.d.ts +6 -0
  134. package/bundleMode/index.js +182 -0
  135. package/bundleMode/shims/reactNativeShim.js +21 -0
  136. package/bundleMode/shims/turboModuleRegistryShim.js +47 -0
  137. package/changes.json +58 -0
  138. package/compatibility.json +29 -0
  139. package/jest/pluginTestUtils.ts +16 -0
  140. package/jest/resolver.js +18 -0
  141. package/lib/module/WorkletsModule/NativeWorklets.js +4 -0
  142. package/lib/module/WorkletsModule/NativeWorklets.js.map +1 -0
  143. package/lib/module/WorkletsModule/NativeWorklets.native.js +199 -0
  144. package/lib/module/WorkletsModule/NativeWorklets.native.js.map +1 -0
  145. package/lib/module/WorkletsModule/workletsModuleProxy.js +4 -0
  146. package/lib/module/WorkletsModule/workletsModuleProxy.js.map +1 -0
  147. package/lib/module/bundleMode/metroOverrides.native.js +26 -0
  148. package/lib/module/bundleMode/metroOverrides.native.js.map +1 -0
  149. package/lib/module/bundleMode/network.native.js +44 -0
  150. package/lib/module/bundleMode/network.native.js.map +1 -0
  151. package/lib/module/debug/bundleMode.js +6 -0
  152. package/lib/module/debug/bundleMode.js.map +1 -0
  153. package/lib/module/debug/bundleMode.native.js +11 -0
  154. package/lib/module/debug/bundleMode.native.js.map +1 -0
  155. package/lib/module/debug/checkCppVersion.js +29 -0
  156. package/lib/module/debug/checkCppVersion.js.map +1 -0
  157. package/lib/module/debug/errors.native.js +67 -0
  158. package/lib/module/debug/errors.native.js.map +1 -0
  159. package/lib/module/debug/jsVersion.js +9 -0
  160. package/lib/module/debug/jsVersion.js.map +1 -0
  161. package/lib/module/debug/logger.js +15 -0
  162. package/lib/module/debug/logger.js.map +1 -0
  163. package/lib/module/debug/slowAnimations.js +7 -0
  164. package/lib/module/debug/slowAnimations.js.map +1 -0
  165. package/lib/module/debug/slowAnimations.native.js +17 -0
  166. package/lib/module/debug/slowAnimations.native.js.map +1 -0
  167. package/lib/module/deprecated.js +27 -0
  168. package/lib/module/deprecated.js.map +1 -0
  169. package/lib/module/featureFlags/featureFlags.js +12 -0
  170. package/lib/module/featureFlags/featureFlags.js.map +1 -0
  171. package/lib/module/featureFlags/featureFlags.native.js +51 -0
  172. package/lib/module/featureFlags/featureFlags.native.js.map +1 -0
  173. package/lib/module/featureFlags/staticFlags.json +6 -0
  174. package/lib/module/featureFlags/types.js +16 -0
  175. package/lib/module/featureFlags/types.js.map +1 -0
  176. package/lib/module/guardImplementation.native.js +17 -0
  177. package/lib/module/guardImplementation.native.js.map +1 -0
  178. package/lib/module/index.js +26 -0
  179. package/lib/module/index.js.map +1 -0
  180. package/lib/module/initializers/initializers.js +24 -0
  181. package/lib/module/initializers/initializers.js.map +1 -0
  182. package/lib/module/initializers/initializers.native.js +195 -0
  183. package/lib/module/initializers/initializers.native.js.map +1 -0
  184. package/lib/module/memory/bundleUnpacker.native.js +38 -0
  185. package/lib/module/memory/bundleUnpacker.native.js.map +1 -0
  186. package/lib/module/memory/customSerializableUnpacker.native.js +20 -0
  187. package/lib/module/memory/customSerializableUnpacker.native.js.map +1 -0
  188. package/lib/module/memory/isShareable.js +8 -0
  189. package/lib/module/memory/isShareable.js.map +1 -0
  190. package/lib/module/memory/isSynchronizable.js +8 -0
  191. package/lib/module/memory/isSynchronizable.js.map +1 -0
  192. package/lib/module/memory/remoteFunctionUnpacker.native.js +18 -0
  193. package/lib/module/memory/remoteFunctionUnpacker.native.js.map +1 -0
  194. package/lib/module/memory/serializable.js +18 -0
  195. package/lib/module/memory/serializable.js.map +1 -0
  196. package/lib/module/memory/serializable.native.js +619 -0
  197. package/lib/module/memory/serializable.native.js.map +1 -0
  198. package/lib/module/memory/serializableMappingCache.js +11 -0
  199. package/lib/module/memory/serializableMappingCache.js.map +1 -0
  200. package/lib/module/memory/serializableMappingCache.native.js +29 -0
  201. package/lib/module/memory/serializableMappingCache.native.js.map +1 -0
  202. package/lib/module/memory/shareable.js +18 -0
  203. package/lib/module/memory/shareable.js.map +1 -0
  204. package/lib/module/memory/shareable.native.js +42 -0
  205. package/lib/module/memory/shareable.native.js.map +1 -0
  206. package/lib/module/memory/shareableGuestUnpacker.native.js +105 -0
  207. package/lib/module/memory/shareableGuestUnpacker.native.js.map +1 -0
  208. package/lib/module/memory/shareableHostUnpacker.native.js +20 -0
  209. package/lib/module/memory/shareableHostUnpacker.native.js.map +1 -0
  210. package/lib/module/memory/synchronizable.js +6 -0
  211. package/lib/module/memory/synchronizable.js.map +1 -0
  212. package/lib/module/memory/synchronizable.native.js +9 -0
  213. package/lib/module/memory/synchronizable.native.js.map +1 -0
  214. package/lib/module/memory/synchronizableUnpacker.native.js +47 -0
  215. package/lib/module/memory/synchronizableUnpacker.native.js.map +1 -0
  216. package/lib/module/memory/types.js +12 -0
  217. package/lib/module/memory/types.js.map +1 -0
  218. package/lib/module/memory/valueUnpacker.native.js +52 -0
  219. package/lib/module/memory/valueUnpacker.native.js.map +1 -0
  220. package/lib/module/mock.js +85 -0
  221. package/lib/module/mock.js.map +1 -0
  222. package/lib/module/package.json +1 -0
  223. package/lib/module/platformChecker.js +4 -0
  224. package/lib/module/platformChecker.js.map +1 -0
  225. package/lib/module/platformChecker.native.js +4 -0
  226. package/lib/module/platformChecker.native.js.map +1 -0
  227. package/lib/module/privateGlobals.d.js +7 -0
  228. package/lib/module/privateGlobals.d.js.map +1 -0
  229. package/lib/module/runLoop/common/setImmediatePolyfill.js +15 -0
  230. package/lib/module/runLoop/common/setImmediatePolyfill.js.map +1 -0
  231. package/lib/module/runLoop/common/setIntervalPolyfill.js +26 -0
  232. package/lib/module/runLoop/common/setIntervalPolyfill.js.map +1 -0
  233. package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js +10 -0
  234. package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js.map +1 -0
  235. package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js +71 -0
  236. package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js.map +1 -0
  237. package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js +32 -0
  238. package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js.map +1 -0
  239. package/lib/module/runLoop/workletRuntime/index.js +19 -0
  240. package/lib/module/runLoop/workletRuntime/index.js.map +1 -0
  241. package/lib/module/runLoop/workletRuntime/queueMicrotask.js +11 -0
  242. package/lib/module/runLoop/workletRuntime/queueMicrotask.js.map +1 -0
  243. package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js +48 -0
  244. package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js.map +1 -0
  245. package/lib/module/runLoop/workletRuntime/setTimeout.js +28 -0
  246. package/lib/module/runLoop/workletRuntime/setTimeout.js.map +1 -0
  247. package/lib/module/runLoop/workletRuntime/taskQueue.js +37 -0
  248. package/lib/module/runLoop/workletRuntime/taskQueue.js.map +1 -0
  249. package/lib/module/runtimeKind.js +92 -0
  250. package/lib/module/runtimeKind.js.map +1 -0
  251. package/lib/module/runtimes.js +36 -0
  252. package/lib/module/runtimes.js.map +1 -0
  253. package/lib/module/runtimes.native.js +379 -0
  254. package/lib/module/runtimes.native.js.map +1 -0
  255. package/lib/module/specs/NativeWorkletsModule.js +5 -0
  256. package/lib/module/specs/NativeWorkletsModule.js.map +1 -0
  257. package/lib/module/specs/index.js +10 -0
  258. package/lib/module/specs/index.js.map +1 -0
  259. package/lib/module/threads.js +60 -0
  260. package/lib/module/threads.js.map +1 -0
  261. package/lib/module/threads.native.js +295 -0
  262. package/lib/module/threads.native.js.map +1 -0
  263. package/lib/module/types.js +5 -0
  264. package/lib/module/types.js.map +1 -0
  265. package/lib/module/workletFunction.js +36 -0
  266. package/lib/module/workletFunction.js.map +1 -0
  267. package/lib/typescript/WorkletsModule/NativeWorklets.d.ts +3 -0
  268. package/lib/typescript/WorkletsModule/NativeWorklets.d.ts.map +1 -0
  269. package/lib/typescript/WorkletsModule/NativeWorklets.native.d.ts +3 -0
  270. package/lib/typescript/WorkletsModule/NativeWorklets.native.d.ts.map +1 -0
  271. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +59 -0
  272. package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -0
  273. package/lib/typescript/bundleMode/metroOverrides.native.d.ts +9 -0
  274. package/lib/typescript/bundleMode/metroOverrides.native.d.ts.map +1 -0
  275. package/lib/typescript/bundleMode/network.native.d.ts +7 -0
  276. package/lib/typescript/bundleMode/network.native.d.ts.map +1 -0
  277. package/lib/typescript/debug/bundleMode.d.ts +2 -0
  278. package/lib/typescript/debug/bundleMode.d.ts.map +1 -0
  279. package/lib/typescript/debug/bundleMode.native.d.ts +2 -0
  280. package/lib/typescript/debug/bundleMode.native.d.ts.map +1 -0
  281. package/lib/typescript/debug/checkCppVersion.d.ts +3 -0
  282. package/lib/typescript/debug/checkCppVersion.d.ts.map +1 -0
  283. package/lib/typescript/debug/errors.native.d.ts +13 -0
  284. package/lib/typescript/debug/errors.native.d.ts.map +1 -0
  285. package/lib/typescript/debug/jsVersion.d.ts +7 -0
  286. package/lib/typescript/debug/jsVersion.d.ts.map +1 -0
  287. package/lib/typescript/debug/logger.d.ts +5 -0
  288. package/lib/typescript/debug/logger.d.ts.map +1 -0
  289. package/lib/typescript/debug/slowAnimations.d.ts +2 -0
  290. package/lib/typescript/debug/slowAnimations.d.ts.map +1 -0
  291. package/lib/typescript/debug/slowAnimations.native.d.ts +11 -0
  292. package/lib/typescript/debug/slowAnimations.native.d.ts.map +1 -0
  293. package/lib/typescript/deprecated.d.ts +19 -0
  294. package/lib/typescript/deprecated.d.ts.map +1 -0
  295. package/lib/typescript/featureFlags/featureFlags.d.ts +5 -0
  296. package/lib/typescript/featureFlags/featureFlags.d.ts.map +1 -0
  297. package/lib/typescript/featureFlags/featureFlags.native.d.ts +6 -0
  298. package/lib/typescript/featureFlags/featureFlags.native.d.ts.map +1 -0
  299. package/lib/typescript/featureFlags/types.d.ts +23 -0
  300. package/lib/typescript/featureFlags/types.d.ts.map +1 -0
  301. package/lib/typescript/guardImplementation.native.d.ts +3 -0
  302. package/lib/typescript/guardImplementation.native.d.ts.map +1 -0
  303. package/lib/typescript/index.d.ts +19 -0
  304. package/lib/typescript/index.d.ts.map +1 -0
  305. package/lib/typescript/initializers/initializers.d.ts +2 -0
  306. package/lib/typescript/initializers/initializers.d.ts.map +1 -0
  307. package/lib/typescript/initializers/initializers.native.d.ts +19 -0
  308. package/lib/typescript/initializers/initializers.native.d.ts.map +1 -0
  309. package/lib/typescript/memory/bundleUnpacker.native.d.ts +7 -0
  310. package/lib/typescript/memory/bundleUnpacker.native.d.ts.map +1 -0
  311. package/lib/typescript/memory/customSerializableUnpacker.native.d.ts +3 -0
  312. package/lib/typescript/memory/customSerializableUnpacker.native.d.ts.map +1 -0
  313. package/lib/typescript/memory/isShareable.d.ts +3 -0
  314. package/lib/typescript/memory/isShareable.d.ts.map +1 -0
  315. package/lib/typescript/memory/isSynchronizable.d.ts +3 -0
  316. package/lib/typescript/memory/isSynchronizable.d.ts.map +1 -0
  317. package/lib/typescript/memory/remoteFunctionUnpacker.native.d.ts +3 -0
  318. package/lib/typescript/memory/remoteFunctionUnpacker.native.d.ts.map +1 -0
  319. package/lib/typescript/memory/serializable.d.ts +7 -0
  320. package/lib/typescript/memory/serializable.d.ts.map +1 -0
  321. package/lib/typescript/memory/serializable.native.d.ts +37 -0
  322. package/lib/typescript/memory/serializable.native.d.ts.map +1 -0
  323. package/lib/typescript/memory/serializableMappingCache.d.ts +6 -0
  324. package/lib/typescript/memory/serializableMappingCache.d.ts.map +1 -0
  325. package/lib/typescript/memory/serializableMappingCache.native.d.ts +13 -0
  326. package/lib/typescript/memory/serializableMappingCache.native.d.ts.map +1 -0
  327. package/lib/typescript/memory/shareable.d.ts +15 -0
  328. package/lib/typescript/memory/shareable.d.ts.map +1 -0
  329. package/lib/typescript/memory/shareable.native.d.ts +15 -0
  330. package/lib/typescript/memory/shareable.native.d.ts.map +1 -0
  331. package/lib/typescript/memory/shareableGuestUnpacker.native.d.ts +4 -0
  332. package/lib/typescript/memory/shareableGuestUnpacker.native.d.ts.map +1 -0
  333. package/lib/typescript/memory/shareableHostUnpacker.native.d.ts +4 -0
  334. package/lib/typescript/memory/shareableHostUnpacker.native.d.ts.map +1 -0
  335. package/lib/typescript/memory/synchronizable.d.ts +3 -0
  336. package/lib/typescript/memory/synchronizable.d.ts.map +1 -0
  337. package/lib/typescript/memory/synchronizable.native.d.ts +3 -0
  338. package/lib/typescript/memory/synchronizable.native.d.ts.map +1 -0
  339. package/lib/typescript/memory/synchronizableUnpacker.native.d.ts +4 -0
  340. package/lib/typescript/memory/synchronizableUnpacker.native.d.ts.map +1 -0
  341. package/lib/typescript/memory/types.d.ts +136 -0
  342. package/lib/typescript/memory/types.d.ts.map +1 -0
  343. package/lib/typescript/memory/valueUnpacker.native.d.ts +7 -0
  344. package/lib/typescript/memory/valueUnpacker.native.d.ts.map +1 -0
  345. package/lib/typescript/mock.d.ts +2 -0
  346. package/lib/typescript/mock.d.ts.map +1 -0
  347. package/lib/typescript/package.json +1 -0
  348. package/lib/typescript/platformChecker.d.ts +2 -0
  349. package/lib/typescript/platformChecker.d.ts.map +1 -0
  350. package/lib/typescript/platformChecker.native.d.ts +2 -0
  351. package/lib/typescript/platformChecker.native.d.ts.map +1 -0
  352. package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts +2 -0
  353. package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts.map +1 -0
  354. package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts +2 -0
  355. package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts.map +1 -0
  356. package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts +6 -0
  357. package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts.map +1 -0
  358. package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts +2 -0
  359. package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts.map +1 -0
  360. package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts +2 -0
  361. package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts.map +1 -0
  362. package/lib/typescript/runLoop/workletRuntime/index.d.ts +2 -0
  363. package/lib/typescript/runLoop/workletRuntime/index.d.ts.map +1 -0
  364. package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts +2 -0
  365. package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts.map +1 -0
  366. package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts +2 -0
  367. package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts.map +1 -0
  368. package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts +2 -0
  369. package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts.map +1 -0
  370. package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts +10 -0
  371. package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts.map +1 -0
  372. package/lib/typescript/runtimeKind.d.ts +56 -0
  373. package/lib/typescript/runtimeKind.d.ts.map +1 -0
  374. package/lib/typescript/runtimes.d.ts +15 -0
  375. package/lib/typescript/runtimes.d.ts.map +1 -0
  376. package/lib/typescript/runtimes.native.d.ts +155 -0
  377. package/lib/typescript/runtimes.native.d.ts.map +1 -0
  378. package/lib/typescript/specs/NativeWorkletsModule.d.ts +9 -0
  379. package/lib/typescript/specs/NativeWorkletsModule.d.ts.map +1 -0
  380. package/lib/typescript/specs/index.d.ts +3 -0
  381. package/lib/typescript/specs/index.d.ts.map +1 -0
  382. package/lib/typescript/threads.d.ts +8 -0
  383. package/lib/typescript/threads.d.ts.map +1 -0
  384. package/lib/typescript/threads.native.d.ts +125 -0
  385. package/lib/typescript/threads.native.d.ts.map +1 -0
  386. package/lib/typescript/types.d.ts +136 -0
  387. package/lib/typescript/types.d.ts.map +1 -0
  388. package/lib/typescript/workletFunction.d.ts +26 -0
  389. package/lib/typescript/workletFunction.d.ts.map +1 -0
  390. package/package.json +220 -0
  391. package/plugin/index.d.ts +168 -0
  392. package/plugin/index.js +2188 -0
  393. package/scripts/validate-react-native-version.js +43 -0
  394. package/scripts/worklets_utils.rb +94 -0
  395. package/src/WorkletsModule/NativeWorklets.native.ts +461 -0
  396. package/src/WorkletsModule/NativeWorklets.ts +5 -0
  397. package/src/WorkletsModule/workletsModuleProxy.ts +247 -0
  398. package/src/bundleMode/metroOverrides.native.ts +33 -0
  399. package/src/bundleMode/network.native.ts +63 -0
  400. package/src/debug/bundleMode.native.ts +18 -0
  401. package/src/debug/bundleMode.ts +5 -0
  402. package/src/debug/checkCppVersion.ts +34 -0
  403. package/src/debug/errors.native.ts +74 -0
  404. package/src/debug/jsVersion.ts +8 -0
  405. package/src/debug/logger.ts +16 -0
  406. package/src/debug/slowAnimations.native.ts +15 -0
  407. package/src/debug/slowAnimations.ts +6 -0
  408. package/src/deprecated.ts +38 -0
  409. package/src/featureFlags/featureFlags.native.ts +70 -0
  410. package/src/featureFlags/featureFlags.ts +20 -0
  411. package/src/featureFlags/staticFlags.json +6 -0
  412. package/src/featureFlags/types.ts +32 -0
  413. package/src/guardImplementation.native.ts +26 -0
  414. package/src/index.ts +95 -0
  415. package/src/initializers/initializers.native.ts +218 -0
  416. package/src/initializers/initializers.ts +24 -0
  417. package/src/memory/bundleUnpacker.native.ts +59 -0
  418. package/src/memory/customSerializableUnpacker.native.ts +30 -0
  419. package/src/memory/isShareable.ts +16 -0
  420. package/src/memory/isSynchronizable.ts +14 -0
  421. package/src/memory/remoteFunctionUnpacker.native.ts +27 -0
  422. package/src/memory/serializable.native.ts +889 -0
  423. package/src/memory/serializable.ts +36 -0
  424. package/src/memory/serializableMappingCache.native.ts +37 -0
  425. package/src/memory/serializableMappingCache.ts +12 -0
  426. package/src/memory/shareable.native.ts +68 -0
  427. package/src/memory/shareable.ts +27 -0
  428. package/src/memory/shareableGuestUnpacker.native.ts +168 -0
  429. package/src/memory/shareableHostUnpacker.native.ts +31 -0
  430. package/src/memory/synchronizable.native.ts +17 -0
  431. package/src/memory/synchronizable.ts +9 -0
  432. package/src/memory/synchronizableUnpacker.native.ts +65 -0
  433. package/src/memory/types.ts +191 -0
  434. package/src/memory/valueUnpacker.native.ts +79 -0
  435. package/src/mock.ts +111 -0
  436. package/src/platformChecker.native.ts +3 -0
  437. package/src/platformChecker.ts +4 -0
  438. package/src/privateGlobals.d.ts +127 -0
  439. package/src/runLoop/common/setImmediatePolyfill.ts +20 -0
  440. package/src/runLoop/common/setIntervalPolyfill.ts +38 -0
  441. package/src/runLoop/uiRuntime/mockedRequestAnimationFrame.ts +11 -0
  442. package/src/runLoop/uiRuntime/requestAnimationFrame.ts +87 -0
  443. package/src/runLoop/uiRuntime/setTimeoutPolyfill.ts +40 -0
  444. package/src/runLoop/workletRuntime/index.ts +18 -0
  445. package/src/runLoop/workletRuntime/queueMicrotask.ts +13 -0
  446. package/src/runLoop/workletRuntime/requestAnimationFramePolyfill.ts +61 -0
  447. package/src/runLoop/workletRuntime/setTimeout.ts +37 -0
  448. package/src/runLoop/workletRuntime/taskQueue.ts +44 -0
  449. package/src/runtimeKind.ts +85 -0
  450. package/src/runtimes.native.ts +572 -0
  451. package/src/runtimes.ts +107 -0
  452. package/src/specs/NativeWorkletsModule.ts +11 -0
  453. package/src/specs/index.ts +13 -0
  454. package/src/threads.native.ts +408 -0
  455. package/src/threads.ts +110 -0
  456. package/src/types.ts +164 -0
  457. package/src/workletFunction.ts +41 -0
@@ -0,0 +1,619 @@
1
+ 'use strict';
2
+
3
+ import { isBundleModeEnabled } from '../debug/bundleMode';
4
+ import { registerWorkletStackDetails } from '../debug/errors';
5
+ import { jsVersion } from "../debug/jsVersion.js";
6
+ import { logger } from "../debug/logger.js";
7
+ import { getRuntimeKind, RuntimeKind } from "../runtimeKind.js";
8
+ import { isWorkletFunction } from "../workletFunction.js";
9
+ import { WorkletsModule } from '../WorkletsModule/NativeWorklets';
10
+ import { isSynchronizable } from "./isSynchronizable.js";
11
+ import { serializableMappingCache, serializableMappingFlag } from './serializableMappingCache';
12
+ const MAGIC_KEY = 'REANIMATED_MAGIC_KEY';
13
+ function isHostObject(value) {
14
+ 'worklet';
15
+
16
+ // We could use JSI to determine whether an object is a host object, however
17
+ // the below workaround works well and is way faster than an additional JSI call.
18
+ // We use the fact that host objects have broken implementation of `hasOwnProperty`
19
+ // and hence return true for all `in` checks regardless of the key we ask for.
20
+ return MAGIC_KEY in value;
21
+ }
22
+ export function isSerializableRef(value) {
23
+ 'worklet';
24
+
25
+ return typeof value === 'object' && value !== null && '__serializableRef' in value && value.__serializableRef === true;
26
+ }
27
+ function isPlainJSObject(object) {
28
+ 'worklet';
29
+
30
+ return Object.getPrototypeOf(object) === Object.prototype;
31
+ }
32
+
33
+ /**
34
+ * RN has introduced a new representation of TurboModules as a JS object whose
35
+ * prototype is the host object. More details:
36
+ * https://github.com/facebook/react-native/blob/main/packages/react-native/ReactCommon/react/nativemodule/core/ReactCommon/TurboModuleBinding.cpp#L182
37
+ */
38
+ function isTurboModuleLike(object) {
39
+ const proto = Object.getPrototypeOf(object);
40
+ return proto !== null && isHostObject(proto);
41
+ }
42
+ function getFromCache(value) {
43
+ const cached = serializableMappingCache.get(value);
44
+ if (cached === serializableMappingFlag) {
45
+ // This means that `value` was already a clone and we should return it as is.
46
+ return value;
47
+ }
48
+ return cached;
49
+ }
50
+ const VALID_ARRAY_VIEWS_NAMES = ['Int8Array', 'Uint8Array', 'Uint8ClampedArray', 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', 'Float32Array', 'Float64Array', 'BigInt64Array', 'BigUint64Array', 'DataView'];
51
+ const DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD = 30;
52
+ // Below variable stores object that we process in createSerializable at the specified depth.
53
+ // We use it to check if later on the function reenters with the same object
54
+ let processedObjectAtThresholdDepth;
55
+ export function createSerializable(value, shouldPersistRemote = false, depth = 0) {
56
+ detectCyclicObject(value, depth);
57
+ const isFunction = typeof value === 'function';
58
+ if (typeof value === 'string') {
59
+ return cloneString(value);
60
+ }
61
+ if (typeof value === 'number') {
62
+ return cloneNumber(value);
63
+ }
64
+ if (typeof value === 'boolean') {
65
+ return cloneBoolean(value);
66
+ }
67
+ if (typeof value === 'bigint') {
68
+ return cloneBigInt(value);
69
+ }
70
+ if (typeof value === 'symbol') {
71
+ return cloneString(String(value));
72
+ }
73
+ if (value === undefined) {
74
+ return cloneUndefined();
75
+ }
76
+ if (value === null) {
77
+ return cloneNull();
78
+ }
79
+ const cached = getFromCache(value);
80
+ if (cached !== undefined) {
81
+ if (globalThis.WeakRef && cached instanceof WeakRef) {
82
+ // WeakRef is installed on runtimes only with Hermes microtaskQueue enabled.
83
+ const deref = cached.deref();
84
+ if (deref !== undefined) {
85
+ return deref;
86
+ }
87
+ } else {
88
+ return cached;
89
+ }
90
+ }
91
+ if (Array.isArray(value)) {
92
+ return cloneArray(value, shouldPersistRemote, depth);
93
+ }
94
+ if (isFunction) {
95
+ if (globalThis._WORKLETS_BUNDLE_MODE_ENABLED) {
96
+ if (value.__bundleData) {
97
+ return cloneImport(value);
98
+ }
99
+ }
100
+ if (value.__remoteFunction) {
101
+ // Remote functions are already serialized.
102
+ return value;
103
+ }
104
+ if (!isWorkletFunction(value)) {
105
+ return cloneNonWorkletFunction(value);
106
+ }
107
+ }
108
+ if (isTurboModuleLike(value)) {
109
+ return cloneTurboModuleLike(value, shouldPersistRemote, depth);
110
+ }
111
+ if (isHostObject(value)) {
112
+ return cloneHostObject(value);
113
+ }
114
+ if (isPlainJSObject(value) && value.__init) {
115
+ return cloneInitializer(value, shouldPersistRemote, depth);
116
+ }
117
+ if (isPlainJSObject(value) && value.__workletContextObjectFactory) {
118
+ return cloneContextObject(value);
119
+ }
120
+ if ((isPlainJSObject(value) || isFunction) && isWorkletFunction(value)) {
121
+ return cloneWorklet(value, shouldPersistRemote, depth);
122
+ }
123
+ if (isSynchronizable(value)) {
124
+ return cloneSynchronizable(value);
125
+ }
126
+ if (isPlainJSObject(value) || isFunction) {
127
+ return clonePlainJSObject(value, shouldPersistRemote, depth);
128
+ }
129
+ if (value instanceof Set) {
130
+ return cloneSet(value);
131
+ }
132
+ if (value instanceof Map) {
133
+ return cloneMap(value);
134
+ }
135
+ if (value instanceof RegExp) {
136
+ return cloneRegExp(value);
137
+ }
138
+ if (value instanceof Error) {
139
+ return cloneError(value);
140
+ }
141
+ if (value instanceof ArrayBuffer) {
142
+ return cloneArrayBuffer(value);
143
+ }
144
+ if (ArrayBuffer.isView(value)) {
145
+ // typed array (e.g. Int32Array, Uint8ClampedArray) or DataView
146
+ return cloneArrayBufferView(value);
147
+ }
148
+ for (let i = 0; i < customSerializationRegistry.length; i++) {
149
+ const {
150
+ determine,
151
+ pack
152
+ } = customSerializationRegistry[i];
153
+ if (determine(value)) {
154
+ return cloneCustom(value, pack, i);
155
+ }
156
+ }
157
+ return cloneUndefined();
158
+ }
159
+ if (isBundleModeEnabled()) {
160
+ // TODO: Do it programmatically.
161
+ createSerializable.__bundleData = {
162
+ imported: 'createSerializable',
163
+ source: require.resolveWeak('react-native-worklets')
164
+ };
165
+ }
166
+ if (!globalThis.__customSerializationRegistry) {
167
+ globalThis.__customSerializationRegistry = [];
168
+ }
169
+ const customSerializationRegistry = globalThis.__customSerializationRegistry;
170
+
171
+ /**
172
+ * `registerCustomSerializable` lets you register your own pre-serialization and
173
+ * post-deserialization logic. This is necessary for objects with prototypes
174
+ * different than just `Object.prototype` or some other built-in prototypes like
175
+ * `Map` etc. Worklets can't handle such objects by default to convert into
176
+ * [Serializables](https://docs.swmansion.com/react-native-worklets/docs/memory/serializable)
177
+ * hence you need to register them as **Custom Serializables**. This way you can
178
+ * tell Worklets how to transfer your custom data structures between different
179
+ * Runtimes without manually serializing and deserializing them every time.
180
+ *
181
+ * @param registrationData - The registration data for the custom serializable -
182
+ * {@link RegistrationData}
183
+ * @see https://docs.swmansion.com/react-native-worklets/docs/memory/registerCustomSerializable/
184
+ */
185
+ export function registerCustomSerializable(registrationData) {
186
+ if (__DEV__ && getRuntimeKind() !== RuntimeKind.ReactNative) {
187
+ throw new Error('[Worklets] registerCustomSerializable can be used only on React Native runtime.');
188
+ }
189
+ const {
190
+ name,
191
+ determine,
192
+ pack,
193
+ unpack
194
+ } = registrationData;
195
+ if (__DEV__) {
196
+ verifyRegistrationData(determine, pack, unpack);
197
+ }
198
+ if (customSerializationRegistry.some(data => data.name === name)) {
199
+ if (__DEV__) {
200
+ console.warn(`Custom serializable with name "${name}" is already registered. Duplicate registration is ignored.`);
201
+ }
202
+ return;
203
+ }
204
+ customSerializationRegistry.push(registrationData);
205
+ WorkletsModule.registerCustomSerializable(createSerializable(determine), createSerializable(pack), createSerializable(unpack), customSerializationRegistry.length - 1);
206
+ }
207
+ function verifyRegistrationData(determine, pack, unpack) {
208
+ if (!isWorkletFunction(determine)) {
209
+ throw new Error('[Worklets] The "determine" function provided to registerCustomSerializable must be a worklet.');
210
+ }
211
+ if (!isWorkletFunction(pack)) {
212
+ throw new Error('[Worklets] The "pack" function provided to registerCustomSerializable must be a worklet.');
213
+ }
214
+ if (!isWorkletFunction(unpack)) {
215
+ throw new Error('[Worklets] The "unpack" function provided to registerCustomSerializable must be a worklet.');
216
+ }
217
+ }
218
+ function detectCyclicObject(value, depth) {
219
+ if (depth >= DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD) {
220
+ // if we reach certain recursion depth we suspect that we are dealing with a cyclic object.
221
+ // this type of objects are not supported and cannot be transferred as serializable, so we
222
+ // implement a simple detection mechanism that remembers the value at a given depth and
223
+ // tests whether we try reenter this method later on with the same value. If that happens
224
+ // we throw an appropriate error.
225
+ if (depth === DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD) {
226
+ processedObjectAtThresholdDepth = value;
227
+ } else if (value === processedObjectAtThresholdDepth) {
228
+ throw new Error('[Worklets] Trying to convert a cyclic object to a serializable. This is not supported.');
229
+ }
230
+ } else {
231
+ processedObjectAtThresholdDepth = undefined;
232
+ }
233
+ }
234
+ function cloneString(value) {
235
+ return WorkletsModule.createSerializableString(value);
236
+ }
237
+ function cloneNumber(value) {
238
+ return WorkletsModule.createSerializableNumber(value);
239
+ }
240
+ function cloneBoolean(value) {
241
+ return WorkletsModule.createSerializableBoolean(value);
242
+ }
243
+ function cloneBigInt(value) {
244
+ return WorkletsModule.createSerializableBigInt(value);
245
+ }
246
+ function cloneUndefined() {
247
+ return WorkletsModule.createSerializableUndefined();
248
+ }
249
+ function cloneNull() {
250
+ return WorkletsModule.createSerializableNull();
251
+ }
252
+ function cloneObjectProperties(value, shouldPersistRemote, depth) {
253
+ const clonedProps = {};
254
+ for (const [key, element] of Object.entries(value)) {
255
+ // We don't need to clone __initData field as it contains long strings
256
+ // representing the worklet code, source map, and location, and we will
257
+ // serialize/deserialize it once.
258
+ if (key === '__initData' && clonedProps.__initData !== undefined) {
259
+ continue;
260
+ }
261
+ clonedProps[key] = createSerializable(element, shouldPersistRemote, depth + 1);
262
+ }
263
+ return clonedProps;
264
+ }
265
+ function cloneInitializer(value, shouldPersistRemote = false, depth = 0) {
266
+ const clonedProps = cloneObjectProperties(value, shouldPersistRemote, depth);
267
+ return WorkletsModule.createSerializableInitializer(clonedProps);
268
+ }
269
+ function cloneArray(value, shouldPersistRemote, depth) {
270
+ const clonedElements = value.map(element => createSerializable(element, shouldPersistRemote, depth + 1));
271
+ const clone = WorkletsModule.createSerializableArray(clonedElements, shouldPersistRemote);
272
+ serializableMappingCache.set(value, clone);
273
+ serializableMappingCache.set(clone);
274
+ freezeObjectInDev(value);
275
+ return clone;
276
+ }
277
+ function cloneNonWorkletFunction(fun) {
278
+ const clone = WorkletsModule.createSerializableNonWorkletFunction(fun, __DEV__ ? fun.name : undefined);
279
+ if (globalThis.WeakRef) {
280
+ // WeakRef is installed on runtimes only with Hermes microtaskQueue enabled.
281
+ serializableMappingCache.set(fun, new WeakRef(clone));
282
+ }
283
+ serializableMappingCache.set(clone);
284
+ freezeObjectInDev(fun);
285
+ return clone;
286
+ }
287
+ function cloneHostObject(value) {
288
+ // for host objects we pass the reference to the object as serializable and
289
+ // then recreate new host object wrapping the same instance on the UI thread.
290
+ // there is no point of iterating over keys as we do for regular objects.
291
+ const clone = WorkletsModule.createSerializableHostObject(value);
292
+ serializableMappingCache.set(value, clone);
293
+ serializableMappingCache.set(clone);
294
+ return clone;
295
+ }
296
+ function cloneWorklet(value, shouldPersistRemote, depth) {
297
+ if (__DEV__) {
298
+ const babelVersion = value.__pluginVersion;
299
+ if (babelVersion !== undefined && babelVersion !== jsVersion) {
300
+ throw new Error(`[Worklets] Mismatch between JavaScript code version and Worklets Babel plugin version (${jsVersion} vs. ${babelVersion}).
301
+ See \`https://docs.swmansion.com/react-native-worklets/docs/guides/troubleshooting#mismatch-between-javascript-code-version-and-worklets-babel-plugin-version\` for more details.
302
+ Offending code was: \`${getWorkletCode(value)}\``);
303
+ }
304
+ registerWorkletStackDetails(value.__workletHash, value.__stackDetails);
305
+ }
306
+ if (value.__stackDetails) {
307
+ // `Error` type of value cannot be copied to the UI thread, so we
308
+ // remove it after we handled it in dev mode or delete it to ignore it in production mode.
309
+ // Not removing this would cause an infinite loop in production mode and it just
310
+ // seems more elegant to handle it this way.
311
+ delete value.__stackDetails;
312
+ }
313
+ const clonedProps = cloneObjectProperties(value, shouldPersistRemote, depth);
314
+ // to save on transferring static __initData field of worklet structure
315
+ // we request serializable value to persist its UI counterpart. This means
316
+ // that the __initData field that contains long strings representing the
317
+ // worklet code, source map, and location, will always be
318
+ // serialized/deserialized once.
319
+ clonedProps.__initData = createSerializable(value.__initData, true, depth + 1);
320
+ const clone = WorkletsModule.createSerializableWorklet(clonedProps,
321
+ // TODO: Check after refactor if we can remove shouldPersistRemote parameter (imho it's redundant here since worklets are always persistent)
322
+ // retain all worklets
323
+ true);
324
+ serializableMappingCache.set(value, clone);
325
+ serializableMappingCache.set(clone);
326
+ freezeObjectInDev(value);
327
+ return clone;
328
+ }
329
+
330
+ /**
331
+ * TurboModuleLike objects are JS objects that have a TurboModule as their
332
+ * prototype.
333
+ */
334
+ function cloneTurboModuleLike(value, shouldPersistRemote, depth) {
335
+ const proto = Object.getPrototypeOf(value);
336
+ const clonedProps = cloneObjectProperties(value, shouldPersistRemote, depth);
337
+ const clone = WorkletsModule.createSerializableTurboModuleLike(clonedProps, proto);
338
+ return clone;
339
+ }
340
+ function cloneContextObject(value) {
341
+ const workletContextObjectFactory = value.__workletContextObjectFactory;
342
+ const handle = cloneInitializer({
343
+ __init: () => {
344
+ 'worklet';
345
+
346
+ return workletContextObjectFactory();
347
+ }
348
+ });
349
+ serializableMappingCache.set(value, handle);
350
+ return handle;
351
+ }
352
+ function clonePlainJSObject(value, shouldPersistRemote, depth) {
353
+ const clonedProps = cloneObjectProperties(value, shouldPersistRemote, depth);
354
+ const clone = WorkletsModule.createSerializableObject(clonedProps, shouldPersistRemote, value);
355
+ serializableMappingCache.set(value, clone);
356
+ serializableMappingCache.set(clone);
357
+ freezeObjectInDev(value);
358
+ return clone;
359
+ }
360
+ function cloneMap(value) {
361
+ const clonedKeys = [];
362
+ const clonedValues = [];
363
+ for (const [key, element] of value.entries()) {
364
+ clonedKeys.push(createSerializable(key));
365
+ clonedValues.push(createSerializable(element));
366
+ }
367
+ const clone = WorkletsModule.createSerializableMap(clonedKeys, clonedValues);
368
+ serializableMappingCache.set(value, clone);
369
+ serializableMappingCache.set(clone);
370
+ freezeObjectInDev(value);
371
+ return clone;
372
+ }
373
+ function cloneSet(value) {
374
+ const clonedElements = [];
375
+ for (const element of value) {
376
+ clonedElements.push(createSerializable(element));
377
+ }
378
+ const clone = WorkletsModule.createSerializableSet(clonedElements);
379
+ serializableMappingCache.set(value, clone);
380
+ serializableMappingCache.set(clone);
381
+ freezeObjectInDev(value);
382
+ return clone;
383
+ }
384
+ function cloneRegExp(value) {
385
+ const clone = WorkletsModule.createSerializableRegExp(value.source, value.flags);
386
+ serializableMappingCache.set(value, clone);
387
+ return clone;
388
+ }
389
+ function cloneError(value) {
390
+ const {
391
+ name,
392
+ message,
393
+ stack
394
+ } = value;
395
+ const clone = WorkletsModule.createSerializableError(name, message, stack);
396
+ serializableMappingCache.set(value, clone);
397
+ return clone;
398
+ }
399
+ function cloneArrayBuffer(arrayBuffer) {
400
+ const clone = WorkletsModule.createSerializableArrayBuffer(arrayBuffer);
401
+ serializableMappingCache.set(arrayBuffer, clone);
402
+ serializableMappingCache.set(clone);
403
+ return clone;
404
+ }
405
+ function cloneArrayBufferView(value) {
406
+ const typeName = value.constructor.name;
407
+ if (!VALID_ARRAY_VIEWS_NAMES.includes(typeName)) {
408
+ throw new Error(`[Worklets] Invalid array view name \`${typeName}\`.`);
409
+ }
410
+ const length = typeName === 'DataView' ? value.byteLength : value.length;
411
+ const clone = WorkletsModule.createSerializableArrayBufferView(typeName, value.buffer, value.byteOffset, length);
412
+ serializableMappingCache.set(value, clone);
413
+ return clone;
414
+ }
415
+ function cloneSynchronizable(value) {
416
+ serializableMappingCache.set(value);
417
+ return value;
418
+ }
419
+ function cloneImport(value) {
420
+ const {
421
+ source,
422
+ imported
423
+ } = value.__bundleData;
424
+ const clone = WorkletsModule.createSerializableImport(source, imported);
425
+ serializableMappingCache.set(value, clone);
426
+ serializableMappingCache.set(clone);
427
+ return clone;
428
+ }
429
+ function cloneCustom(data, pack, typeId) {
430
+ const packedData = pack(data);
431
+ const serialized = createSerializable(packedData);
432
+ return WorkletsModule.createCustomSerializable(serialized, typeId);
433
+ }
434
+ const WORKLET_CODE_THRESHOLD = 255;
435
+ function getWorkletCode(value) {
436
+ const code = value?.__initData?.code;
437
+ if (!code) {
438
+ return 'unknown';
439
+ }
440
+ if (code.length > WORKLET_CODE_THRESHOLD) {
441
+ return `${code.substring(0, WORKLET_CODE_THRESHOLD)}...`;
442
+ }
443
+ return code;
444
+ }
445
+
446
+ /**
447
+ * We freeze
448
+ *
449
+ * - Arrays,
450
+ * - Remote functions,
451
+ * - Plain JS objects,
452
+ *
453
+ * That are transformed to a serializable with a meaningful warning. This should
454
+ * help detect issues when someone modifies data after it's been converted.
455
+ * Meaning that they may be doing a faulty assumption in their code expecting
456
+ * that the updates are going to automatically propagate to the object sent to
457
+ * the UI thread. If the user really wants some objects to be mutable they
458
+ * should use shared values instead.
459
+ */
460
+ function freezeObjectInDev(value) {
461
+ if (!__DEV__ || globalThis.__RUNTIME_KIND !== RuntimeKind.ReactNative) {
462
+ return;
463
+ }
464
+ Object.entries(value).forEach(([key, element]) => {
465
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
466
+ if (!descriptor.configurable) {
467
+ return;
468
+ }
469
+ Object.defineProperty(value, key, {
470
+ get() {
471
+ return element;
472
+ },
473
+ set() {
474
+ logger.warn(`Tried to modify key \`${key}\` of an object which has been already passed to a worklet. See
475
+ https://docs.swmansion.com/react-native-reanimated/docs/guides/troubleshooting#tried-to-modify-key-of-an-object-which-has-been-converted-to-a-serializable
476
+ for more details.`);
477
+ }
478
+ });
479
+ });
480
+ Object.preventExtensions(value);
481
+ }
482
+ function makeShareableCloneOnUIRecursiveLEGACY(value) {
483
+ 'worklet';
484
+
485
+ // eslint-disable-next-line @typescript-eslint/no-shadow
486
+ function cloneRecursive(value) {
487
+ if (typeof value === 'object' && value !== null || typeof value === 'function') {
488
+ if (isHostObject(value)) {
489
+ // We call `_createSerializableClone` to wrap the provided HostObject
490
+ // inside SerializableJSRef.
491
+ return globalThis._createSerializableHostObject(value);
492
+ }
493
+ if (value.__remoteFunction) {
494
+ // RemoteFunctions are created by us therefore they are
495
+ // a Serializable out of the box and there is no need to
496
+ // call `_createSerializableClone`.
497
+ return value;
498
+ }
499
+ if (Array.isArray(value)) {
500
+ return globalThis._createSerializableArray(value.map(cloneRecursive));
501
+ }
502
+ if (value.__synchronizableRef) {
503
+ return globalThis._createSerializableSynchronizable(value);
504
+ }
505
+ if (value.__serializableRef) {
506
+ return value;
507
+ }
508
+ if (value instanceof Set) {
509
+ const values = [];
510
+ value.forEach(element => {
511
+ values.push(cloneRecursive(element));
512
+ });
513
+ return globalThis.__workletsModuleProxy.createSerializableSet(values);
514
+ }
515
+ if (value instanceof Error) {
516
+ const {
517
+ name,
518
+ message,
519
+ stack
520
+ } = value;
521
+ return globalThis.__workletsModuleProxy.createSerializableError(name, message, stack);
522
+ }
523
+ if (value instanceof RegExp) {
524
+ return globalThis.__workletsModuleProxy.createSerializableRegExp(value.source, value.flags);
525
+ }
526
+ if (value instanceof ArrayBuffer) {
527
+ return globalThis.__workletsModuleProxy.createSerializableArrayBuffer(value);
528
+ }
529
+ if (ArrayBuffer.isView(value)) {
530
+ const typeName = value.constructor.name;
531
+ if (!VALID_ARRAY_VIEWS_NAMES.includes(typeName)) {
532
+ throw new Error(`[Worklets] Invalid array view name \`${typeName}\`.`);
533
+ }
534
+ const length = typeName === 'DataView' ? value.byteLength : value.length;
535
+ return globalThis.__workletsModuleProxy.createSerializableArrayBufferView(typeName, value.buffer, value.byteOffset, length);
536
+ }
537
+ if (value instanceof Map) {
538
+ const keys = [];
539
+ const values = [];
540
+ value.forEach((element, key) => {
541
+ keys.push(cloneRecursive(key));
542
+ values.push(cloneRecursive(element));
543
+ });
544
+ return globalThis.__workletsModuleProxy.createSerializableMap(keys, values);
545
+ }
546
+ if (Object.getPrototypeOf(value) !== Object.prototype) {
547
+ const length = globalThis.__customSerializationRegistry.length;
548
+ for (let i = 0; i < length; i++) {
549
+ const {
550
+ determine,
551
+ pack
552
+ } = globalThis.__customSerializationRegistry[i];
553
+ if (determine(value)) {
554
+ const packedData = pack(value);
555
+ return globalThis.__workletsModuleProxy.createCustomSerializable(cloneRecursive(packedData), i);
556
+ }
557
+ }
558
+ }
559
+ if (__DEV__ && value instanceof Promise) {
560
+ throw new Error('[Worklets] Promises cannot be converted to serializable.');
561
+ }
562
+ const toAdapt = {};
563
+ for (const [key, element] of Object.entries(value)) {
564
+ toAdapt[key] = cloneRecursive(element);
565
+ }
566
+ return globalThis.__workletsModuleProxy.createSerializableLEGACY(toAdapt, value);
567
+ }
568
+ if (typeof value === 'string') {
569
+ return globalThis._createSerializableString(value);
570
+ }
571
+ if (typeof value === 'number') {
572
+ return globalThis._createSerializableNumber(value);
573
+ }
574
+ if (typeof value === 'boolean') {
575
+ return globalThis._createSerializableBoolean(value);
576
+ }
577
+ if (typeof value === 'bigint') {
578
+ return globalThis._createSerializableBigInt(value);
579
+ }
580
+ if (typeof value === 'symbol') {
581
+ // TODO: add native support
582
+ return globalThis._createSerializableString(String(value));
583
+ }
584
+ if (value === undefined) {
585
+ return globalThis._createSerializableUndefined();
586
+ }
587
+ if (value === null) {
588
+ return globalThis._createSerializableNull();
589
+ }
590
+ return globalThis.__workletsModuleProxy.createSerializableLEGACY(value, undefined);
591
+ }
592
+ return cloneRecursive(value);
593
+ }
594
+
595
+ /** @deprecated This function is no longer supported. */
596
+ export const makeShareableCloneOnUIRecursive = isBundleModeEnabled() ? createSerializable : makeShareableCloneOnUIRecursiveLEGACY;
597
+
598
+ /**
599
+ * This function creates a value on UI with persistent state - changes to it on
600
+ * the UI thread will be seen by all worklets. Use it when you want to create a
601
+ * value that is read and written only on the UI thread.
602
+ *
603
+ * @deprecated This function is no longer supported.
604
+ */
605
+ export function makeShareable(value) {
606
+ if (serializableMappingCache.get(value)) {
607
+ return value;
608
+ }
609
+ const handle = createSerializable({
610
+ __init: () => {
611
+ 'worklet';
612
+
613
+ return value;
614
+ }
615
+ });
616
+ serializableMappingCache.set(value, handle);
617
+ return value;
618
+ }
619
+ //# sourceMappingURL=serializable.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isBundleModeEnabled","registerWorkletStackDetails","jsVersion","logger","getRuntimeKind","RuntimeKind","isWorkletFunction","WorkletsModule","isSynchronizable","serializableMappingCache","serializableMappingFlag","MAGIC_KEY","isHostObject","value","isSerializableRef","__serializableRef","isPlainJSObject","object","Object","getPrototypeOf","prototype","isTurboModuleLike","proto","getFromCache","cached","get","VALID_ARRAY_VIEWS_NAMES","DETECT_CYCLIC_OBJECT_DEPTH_THRESHOLD","processedObjectAtThresholdDepth","createSerializable","shouldPersistRemote","depth","detectCyclicObject","isFunction","cloneString","cloneNumber","cloneBoolean","cloneBigInt","String","undefined","cloneUndefined","cloneNull","globalThis","WeakRef","deref","Array","isArray","cloneArray","_WORKLETS_BUNDLE_MODE_ENABLED","__bundleData","cloneImport","__remoteFunction","cloneNonWorkletFunction","cloneTurboModuleLike","cloneHostObject","__init","cloneInitializer","__workletContextObjectFactory","cloneContextObject","cloneWorklet","cloneSynchronizable","clonePlainJSObject","Set","cloneSet","Map","cloneMap","RegExp","cloneRegExp","Error","cloneError","ArrayBuffer","cloneArrayBuffer","isView","cloneArrayBufferView","i","customSerializationRegistry","length","determine","pack","cloneCustom","imported","source","require","resolveWeak","__customSerializationRegistry","registerCustomSerializable","registrationData","__DEV__","ReactNative","name","unpack","verifyRegistrationData","some","data","console","warn","push","createSerializableString","createSerializableNumber","createSerializableBoolean","createSerializableBigInt","createSerializableUndefined","createSerializableNull","cloneObjectProperties","clonedProps","key","element","entries","__initData","createSerializableInitializer","clonedElements","map","clone","createSerializableArray","set","freezeObjectInDev","fun","createSerializableNonWorkletFunction","createSerializableHostObject","babelVersion","__pluginVersion","getWorkletCode","__workletHash","__stackDetails","createSerializableWorklet","createSerializableTurboModuleLike","workletContextObjectFactory","handle","createSerializableObject","clonedKeys","clonedValues","createSerializableMap","createSerializableSet","createSerializableRegExp","flags","message","stack","createSerializableError","arrayBuffer","createSerializableArrayBuffer","typeName","constructor","includes","byteLength","createSerializableArrayBufferView","buffer","byteOffset","createSerializableImport","typeId","packedData","serialized","createCustomSerializable","WORKLET_CODE_THRESHOLD","code","substring","__RUNTIME_KIND","forEach","descriptor","getOwnPropertyDescriptor","configurable","defineProperty","preventExtensions","makeShareableCloneOnUIRecursiveLEGACY","cloneRecursive","_createSerializableHostObject","_createSerializableArray","__synchronizableRef","_createSerializableSynchronizable","values","__workletsModuleProxy","keys","Promise","toAdapt","createSerializableLEGACY","_createSerializableString","_createSerializableNumber","_createSerializableBoolean","_createSerializableBigInt","_createSerializableUndefined","_createSerializableNull","makeShareableCloneOnUIRecursive","makeShareable"],"sourceRoot":"../../../src","sources":["memory/serializable.native.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ export const serializableMappingCache = {
4
+ set(_serializable, _serializableRef) {
5
+ // NOOP
6
+ },
7
+ get(_key) {
8
+ return null;
9
+ }
10
+ };
11
+ //# sourceMappingURL=serializableMappingCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["serializableMappingCache","set","_serializable","_serializableRef","get","_key"],"sourceRoot":"../../../src","sources":["memory/serializableMappingCache.ts"],"mappings":"AAAA,YAAY;;AAIZ,OAAO,MAAMA,wBAAwB,GAAG;EACtCC,GAAGA,CAACC,aAAqB,EAAEC,gBAAkC,EAAQ;IACnE;EAAA,CACD;EACDC,GAAGA,CAACC,IAAY,EAAqC;IACnD,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}