@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,379 @@
1
+ 'use strict';
2
+
3
+ import { isBundleModeEnabled } from './debug/bundleMode';
4
+ import { getStaticFeatureFlag } from './featureFlags/featureFlags';
5
+ import { addNoBundleModeGuardImplementation } from './guardImplementation';
6
+ import { getMemorySafeCapturableConsole, setupConsole, setupConsoleForwarding, setupSerializer } from './initializers/initializers';
7
+ import { createSerializable, makeShareableCloneOnUIRecursive } from './memory/serializable';
8
+ import { serializableMappingCache } from './memory/serializableMappingCache';
9
+ import { setupRunLoop } from "./runLoop/workletRuntime/index.js";
10
+ import { RuntimeKind } from "./runtimeKind.js";
11
+ import { isWorkletFunction } from "./workletFunction.js";
12
+ import { WorkletsModule } from './WorkletsModule/NativeWorklets';
13
+ const SHOULD_CAPTURE_SCHEDULE_STACK = __DEV__ && getStaticFeatureFlag('ENABLE_CROSS_RUNTIME_STACK_TRACES');
14
+
15
+ /**
16
+ * The ID of the [UI Worklet
17
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#ui-runtime).
18
+ */
19
+ export const UIRuntimeId = RuntimeKind.UI;
20
+
21
+ /**
22
+ * Lets you create a new JS runtime which can be used to run worklets possibly
23
+ * on different threads than JS or UI thread.
24
+ *
25
+ * @param config - Runtime configuration object - {@link WorkletRuntimeConfig}.
26
+ * @returns WorkletRuntime which is a
27
+ * `jsi::HostObject<worklets::WorkletRuntime>` - {@link WorkletRuntime}
28
+ * @see https://docs.swmansion.com/react-native-worklets/docs/threading/createWorkletRuntime/
29
+ */
30
+ // @ts-expect-error Public API overload.
31
+
32
+ /**
33
+ * @deprecated Please use the new config object signature instead:
34
+ * `createWorkletRuntime({ name, initializer })`
35
+ *
36
+ * Lets you create a new JS runtime which can be used to run worklets possibly
37
+ * on different threads than JS or UI thread.
38
+ * @param name - A name used to identify the runtime which will appear in
39
+ * devices list in Chrome DevTools.
40
+ * @param initializer - An optional worklet that will be run synchronously on
41
+ * the same thread immediately after the runtime is created.
42
+ * @returns WorkletRuntime which is a
43
+ * `jsi::HostObject<worklets::WorkletRuntime>` - {@link WorkletRuntime}
44
+ * @see https://docs.swmansion.com/react-native-worklets/docs/threading/createWorkletRuntime/
45
+ */
46
+
47
+ export function createWorkletRuntime(nameOrConfig, initializer) {
48
+ const runtimeBoundCapturableConsole = globalThis._WORKLETS_BUNDLE_MODE_ENABLED && !__DEV__ ? null : getMemorySafeCapturableConsole();
49
+ let name;
50
+ let initializerFn;
51
+ let queue = 'default';
52
+ let animationQueuePollingRate;
53
+ let enableEventLoop = true;
54
+ if (typeof nameOrConfig === 'string') {
55
+ name = nameOrConfig;
56
+ initializerFn = initializer;
57
+ } else {
58
+ // TODO: Make anonymous name globally unique.
59
+ name = nameOrConfig?.name ?? 'anonymous';
60
+ initializerFn = nameOrConfig?.initializer;
61
+ if (nameOrConfig?.queue !== undefined) {
62
+ queue = nameOrConfig.queue;
63
+ } else if (nameOrConfig?.useDefaultQueue === false) {
64
+ queue = nameOrConfig.customQueue ?? null;
65
+ }
66
+ animationQueuePollingRate = Math.round(nameOrConfig?.animationQueuePollingRate ?? 16);
67
+ enableEventLoop = nameOrConfig?.enableEventLoop ?? true;
68
+ }
69
+ const useDefaultQueue = queue === 'default';
70
+ const customQueue = typeof queue === 'object' && queue !== null ? queue : undefined;
71
+ if (initializerFn && !isWorkletFunction(initializerFn)) {
72
+ throw new Error('[Worklets] The initializer passed to `createWorkletRuntime` is not a worklet.');
73
+ }
74
+ return WorkletsModule.createWorkletRuntime(name, createSerializable(() => {
75
+ 'worklet';
76
+
77
+ setupSerializer();
78
+ if (!globalThis._WORKLETS_BUNDLE_MODE_ENABLED) {
79
+ setupConsole(runtimeBoundCapturableConsole);
80
+ } else if (__DEV__) {
81
+ setupConsoleForwarding(runtimeBoundCapturableConsole);
82
+ }
83
+ if (enableEventLoop) {
84
+ setupRunLoop(animationQueuePollingRate);
85
+ }
86
+ initializerFn?.();
87
+ }), useDefaultQueue, customQueue, enableEventLoop);
88
+ }
89
+
90
+ /**
91
+ * Lets you asynchronously run a
92
+ * [worklet](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/glossary#worklet)
93
+ * on a [Worker
94
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worker-runtime).
95
+ *
96
+ * Check
97
+ * {@link https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds}
98
+ * for more information about the different runtime kinds.
99
+ *
100
+ * - The worklet is scheduled on the Worker Runtime's [Async
101
+ * Queue](https://github.com/software-mansion/react-native-reanimated/blob/main/packages/react-native-worklets/Common/cpp/worklets/RunLoop/AsyncQueue.h)
102
+ *
103
+ * @param workletRuntime - The runtime to schedule the worklet on.
104
+ * @param worklet - The worklet to schedule.
105
+ * @param args - The arguments to pass to the worklet.
106
+ * @returns The return value of the worklet.
107
+ */
108
+ // @ts-expect-error This overload is correct since it's what user sees in their code
109
+ // before it's transformed by Worklets Babel plugin.
110
+
111
+ export function scheduleOnRuntime(workletRuntime, worklet, ...args) {
112
+ if (__DEV__ && !isWorkletFunction(worklet)) {
113
+ throw new Error('[Worklets] The function passed to `scheduleOnRuntime` is not a worklet.');
114
+ }
115
+ WorkletsModule.scheduleOnRuntime(workletRuntime, createSerializable(() => {
116
+ 'worklet';
117
+
118
+ worklet(...args);
119
+ globalThis.__callMicrotasks?.();
120
+ }), SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined);
121
+ }
122
+ if (!isBundleModeEnabled()) {
123
+ function scheduleOnRuntimeWorklet(workletRuntime, worklet, ...args) {
124
+ 'worklet';
125
+
126
+ if (__DEV__ && !isWorkletFunction(worklet)) {
127
+ throw new Error('[Worklets] The function passed to `scheduleOnRuntime` is not a worklet.');
128
+ }
129
+ globalThis.__workletsModuleProxy.scheduleOnRuntime(workletRuntime, globalThis.__serializer(() => {
130
+ 'worklet';
131
+
132
+ worklet(...args);
133
+ globalThis.__callMicrotasks?.();
134
+ }));
135
+ }
136
+ serializableMappingCache.set(scheduleOnRuntime, createSerializable(scheduleOnRuntimeWorklet));
137
+ }
138
+
139
+ /**
140
+ * Lets you asynchronously run a
141
+ * [worklet](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/glossary#worklet)
142
+ * on a [Worker
143
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worker-runtime)
144
+ * identified by the runtime's id.
145
+ *
146
+ * Check
147
+ * {@link https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds}
148
+ * for more information about the different runtime kinds.
149
+ *
150
+ * - The worklet is scheduled on the Worker Runtime's [Async
151
+ * Queue](https://github.com/software-mansion/react-native-reanimated/blob/main/packages/react-native-worklets/Common/cpp/worklets/RunLoop/AsyncQueue.h)
152
+ *
153
+ * @param runtimeId - The id of the runtime to schedule the worklet on.
154
+ * @param worklet - The worklet to schedule.
155
+ * @param args - The arguments to pass to the worklet.
156
+ * @returns The return value of the worklet.
157
+ */
158
+ // @ts-expect-error This overload is correct since it's what user sees in their code
159
+ // before it's transformed by Worklets Babel plugin.
160
+
161
+ export function scheduleOnRuntimeWithId(runtimeId, worklet, ...args) {
162
+ if (__DEV__ && !isWorkletFunction(worklet)) {
163
+ throw new Error('[Worklets] The function passed to `scheduleOnRuntimeWithId` is not a worklet.');
164
+ }
165
+ WorkletsModule.scheduleOnRuntimeWithId(runtimeId, createSerializable(() => {
166
+ 'worklet';
167
+
168
+ worklet(...args);
169
+ globalThis.__callMicrotasks?.();
170
+ }), SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined);
171
+ }
172
+ if (!isBundleModeEnabled()) {
173
+ function scheduleOnRuntimeWithIdWorklet(runtimeId, worklet, ...args) {
174
+ 'worklet';
175
+
176
+ if (__DEV__ && !isWorkletFunction(worklet)) {
177
+ throw new Error('[Worklets] The function passed to `scheduleOnRuntimeWithId` is not a worklet.');
178
+ }
179
+ globalThis.__workletsModuleProxy.scheduleOnRuntimeWithId(runtimeId, globalThis.__serializer(() => {
180
+ 'worklet';
181
+
182
+ worklet(...args);
183
+ globalThis.__callMicrotasks?.();
184
+ }));
185
+ }
186
+ serializableMappingCache.set(scheduleOnRuntimeWithId, createSerializable(scheduleOnRuntimeWithIdWorklet));
187
+ }
188
+
189
+ /**
190
+ * @deprecated Use `scheduleOnRuntime` instead.
191
+ *
192
+ * Schedule a worklet to execute on the background queue.
193
+ */
194
+ // @ts-expect-error This overload is correct since it's what user sees in their code
195
+ // before it's transformed by Worklets Babel plugin.
196
+
197
+ export function runOnRuntime(workletRuntime, worklet) {
198
+ 'worklet';
199
+
200
+ if (__DEV__ && !isWorkletFunction(worklet)) {
201
+ throw new Error('[Worklets] The function passed to `runOnRuntime` is not a worklet.');
202
+ }
203
+ return (...args) => scheduleOnRuntime(workletRuntime, worklet, ...args);
204
+ }
205
+ /**
206
+ * Lets you run a function synchronously on a [Worker
207
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worker-runtime).
208
+ *
209
+ * - This function cannot be called from the [UI
210
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#ui-runtime).
211
+ * or another [Worker
212
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worker-runtime),
213
+ * unless the [Bundle
214
+ * Mode](https://docs.swmansion.com/react-native-worklets/docs/bundleMode/) is
215
+ * enabled.
216
+ *
217
+ * @param workletRuntime - The runtime to run the worklet on.
218
+ * @param worklet - The worklet to run.
219
+ * @param args - The arguments to pass to the worklet.
220
+ * @returns The return value of the worklet.
221
+ */
222
+ export function runOnRuntimeSync(workletRuntime, worklet, ...args) {
223
+ if (__DEV__ && !isWorkletFunction(worklet)) {
224
+ throw new Error('[Worklets] The function passed to `runOnRuntimeSync` is not a worklet.');
225
+ }
226
+ return WorkletsModule.runOnRuntimeSync(workletRuntime, createSerializable(() => {
227
+ 'worklet';
228
+
229
+ const result = worklet(...args);
230
+ return makeShareableCloneOnUIRecursive(result);
231
+ }), SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined);
232
+ }
233
+
234
+ /**
235
+ * Lets you run a function synchronously on a [Worklet
236
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worklet-runtime)
237
+ * identified by the runtime's id.
238
+ *
239
+ * - This function cannot be called from the [UI
240
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#ui-runtime)
241
+ * or a [Worker
242
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worker-runtime),
243
+ * unless the [Bundle
244
+ * Mode](https://docs.swmansion.com/react-native-worklets/docs/bundleMode/) is
245
+ * enabled.
246
+ * - You can target the UI Runtime with this function by passing
247
+ * {@link UIRuntimeId} as the `runtimeId` argument.
248
+ *
249
+ * @param runtimeId - The id of the runtime to run the worklet on.
250
+ * @param worklet - The worklet to run.
251
+ * @param args - The arguments to pass to the worklet.
252
+ * @returns The return value of the worklet.
253
+ */
254
+ // @ts-expect-error This overload is correct since it's what user sees in their code
255
+ // before it's transformed by Worklets Babel plugin.
256
+
257
+ export function runOnRuntimeSyncWithId(runtimeId, worklet, ...args) {
258
+ if (__DEV__ && !isWorkletFunction(worklet)) {
259
+ throw new Error('[Worklets] The function passed to `runOnRuntimeSyncWithId` is not a worklet.');
260
+ }
261
+ return WorkletsModule.runOnRuntimeSyncWithId(runtimeId, createSerializable(() => {
262
+ 'worklet';
263
+
264
+ const result = worklet(...args);
265
+ return makeShareableCloneOnUIRecursive(result);
266
+ }), SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined);
267
+ }
268
+
269
+ /**
270
+ * Lets you asynchronously run a
271
+ * [worklet](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/glossary#worklet)
272
+ * on a [Worker
273
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worker-runtime)
274
+ * and get the result via a Promise.
275
+ *
276
+ * - The worklet is scheduled on the Worker Runtime's Async Queue
277
+ * - Returns a Promise that resolves with the worklet's return value
278
+ *
279
+ * @param workletRuntime - The runtime to run the worklet on.
280
+ * @param worklet - The worklet to run.
281
+ * @param args - The arguments to pass to the worklet.
282
+ * @returns A Promise that resolves to the return value of the worklet.
283
+ * @see https://docs.swmansion.com/react-native-worklets/docs/threading/runOnRuntimeAsync
284
+ */
285
+ // @ts-expect-error This overload is correct since it's what user sees in their code
286
+ // before it's transformed by Worklets Babel plugin.
287
+
288
+ export function runOnRuntimeAsync(workletRuntime, worklet, ...args) {
289
+ if (__DEV__) {
290
+ if (!isWorkletFunction(worklet)) {
291
+ throw new Error('[Worklets] The function passed to `runOnRuntimeAsync` is not a worklet.');
292
+ }
293
+ }
294
+ return new Promise((resolve, reject) => {
295
+ if (__DEV__) {
296
+ createSerializable(worklet);
297
+ createSerializable(args);
298
+ }
299
+ const scheduleStack = SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined;
300
+ WorkletsModule.scheduleOnRuntime(workletRuntime, createSerializable(() => {
301
+ 'worklet';
302
+
303
+ try {
304
+ const result = worklet(...args);
305
+ const serializedResult = globalThis.__serializer(result);
306
+ globalThis.__workletsModuleProxy.handlePromise(resolve, serializedResult);
307
+ } catch (error) {
308
+ const serializedError = globalThis.__serializer(error);
309
+ globalThis.__workletsModuleProxy.handlePromise(reject, serializedError);
310
+ }
311
+ globalThis.__callMicrotasks?.();
312
+ }), scheduleStack);
313
+ });
314
+ }
315
+
316
+ /**
317
+ * Lets you asynchronously run a
318
+ * [worklet](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/glossary#worklet)
319
+ * on a [Worker
320
+ * Runtime](https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds#worker-runtime)
321
+ * identified by the runtime's id.
322
+ *
323
+ * Check
324
+ * {@link https://docs.swmansion.com/react-native-worklets/docs/fundamentals/runtimeKinds}
325
+ * for more information about the different runtime kinds.
326
+ *
327
+ * - The worklet is scheduled on the Worker Runtime's [Async
328
+ * Queue](https://github.com/software-mansion/react-native-reanimated/blob/main/packages/react-native-worklets/Common/cpp/worklets/RunLoop/AsyncQueue.h)
329
+ *
330
+ * @param runtimeId - The id of the runtime to schedule the worklet on.
331
+ * @param worklet - The worklet to schedule.
332
+ * @param args - The arguments to pass to the worklet.
333
+ * @returns The return value of the worklet.
334
+ */
335
+ // @ts-expect-error This overload is correct since it's what user sees in their code
336
+ // before it's transformed by Worklets Babel plugin.
337
+
338
+ export function runOnRuntimeAsyncWithId(runtimeId, worklet, ...args) {
339
+ if (__DEV__ && !isWorkletFunction(worklet)) {
340
+ throw new Error('[Worklets] The function passed to `runOnRuntimeAsyncWithId` is not a worklet.');
341
+ }
342
+ return new Promise((resolve, reject) => {
343
+ if (__DEV__) {
344
+ createSerializable(worklet);
345
+ createSerializable(args);
346
+ }
347
+ const scheduleStack = SHOULD_CAPTURE_SCHEDULE_STACK ? new Error().stack : undefined;
348
+ WorkletsModule.scheduleOnRuntimeWithId(runtimeId, createSerializable(() => {
349
+ 'worklet';
350
+
351
+ try {
352
+ const result = worklet(...args);
353
+ const serializedResult = globalThis.__serializer(result);
354
+ globalThis.__workletsModuleProxy.handlePromise(resolve, serializedResult);
355
+ } catch (error) {
356
+ const serializedError = globalThis.__serializer(error);
357
+ globalThis.__workletsModuleProxy.handlePromise(reject, serializedError);
358
+ }
359
+ globalThis.__callMicrotasks?.();
360
+ }), scheduleStack);
361
+ });
362
+ }
363
+ if (__DEV__ && !isBundleModeEnabled()) {
364
+ /**
365
+ * QoL guards to give a meaningful error message when the user tries to call
366
+ * these functions on Worklet Runtimes outside of the Bundle Mode.
367
+ */
368
+ addNoBundleModeGuardImplementation(runOnRuntimeAsync);
369
+ addNoBundleModeGuardImplementation(runOnRuntimeAsyncWithId);
370
+ addNoBundleModeGuardImplementation(runOnRuntimeSync);
371
+ addNoBundleModeGuardImplementation(runOnRuntimeSyncWithId);
372
+ }
373
+ export function getUIRuntimeHolder() {
374
+ return WorkletsModule.getUIRuntimeHolder();
375
+ }
376
+ export function getUISchedulerHolder() {
377
+ return WorkletsModule.getUISchedulerHolder();
378
+ }
379
+ //# sourceMappingURL=runtimes.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isBundleModeEnabled","getStaticFeatureFlag","addNoBundleModeGuardImplementation","getMemorySafeCapturableConsole","setupConsole","setupConsoleForwarding","setupSerializer","createSerializable","makeShareableCloneOnUIRecursive","serializableMappingCache","setupRunLoop","RuntimeKind","isWorkletFunction","WorkletsModule","SHOULD_CAPTURE_SCHEDULE_STACK","__DEV__","UIRuntimeId","UI","createWorkletRuntime","nameOrConfig","initializer","runtimeBoundCapturableConsole","globalThis","_WORKLETS_BUNDLE_MODE_ENABLED","name","initializerFn","queue","animationQueuePollingRate","enableEventLoop","undefined","useDefaultQueue","customQueue","Math","round","Error","scheduleOnRuntime","workletRuntime","worklet","args","__callMicrotasks","stack","scheduleOnRuntimeWorklet","__workletsModuleProxy","__serializer","set","scheduleOnRuntimeWithId","runtimeId","scheduleOnRuntimeWithIdWorklet","runOnRuntime","runOnRuntimeSync","result","runOnRuntimeSyncWithId","runOnRuntimeAsync","Promise","resolve","reject","scheduleStack","serializedResult","handlePromise","error","serializedError","runOnRuntimeAsyncWithId","getUIRuntimeHolder","getUISchedulerHolder"],"sourceRoot":"../../src","sources":["runtimes.native.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ import { TurboModuleRegistry } from 'react-native';
4
+ export default TurboModuleRegistry.get('WorkletsModule');
5
+ //# sourceMappingURL=NativeWorkletsModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["specs/NativeWorkletsModule.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAA2BA,mBAAmB,QAAQ,cAAc;AAQpE,eAAeA,mBAAmB,CAACC,GAAG,CAAO,gBAAgB,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ import { RuntimeKind } from "../runtimeKind.js";
4
+ import RNWorkletsTurboModule from "./NativeWorkletsModule.js";
5
+ export const WorkletsTurboModule = globalThis.__RUNTIME_KIND === RuntimeKind.ReactNative ? RNWorkletsTurboModule :
6
+ // In Bundle Mode, on Worklet Runtimes `RNWorkletsTurboModule` isn't
7
+ // available and shouldn't be accessed. We return null here
8
+ // to keep the same codebase for the Bundle Mode and Legacy Eval Mode.
9
+ null;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RuntimeKind","RNWorkletsTurboModule","WorkletsTurboModule","globalThis","__RUNTIME_KIND","ReactNative"],"sourceRoot":"../../../src","sources":["specs/index.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,WAAW,QAAQ,mBAAgB;AAE5C,OAAOC,qBAAqB,MAAM,2BAAwB;AAE1D,OAAO,MAAMC,mBAA4C,GACvDC,UAAU,CAACC,cAAc,KAAKJ,WAAW,CAACK,WAAW,GACjDJ,qBAAqB;AACrB;AACA;AACA;AACA,IAAI","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ import { IS_JEST } from './platformChecker';
4
+ import { mockedRequestAnimationFrame } from "./runLoop/uiRuntime/mockedRequestAnimationFrame.js";
5
+ export function scheduleOnUI(worklet, ...args) {
6
+ enqueueUI(worklet, args);
7
+ }
8
+ export function runOnUI(worklet) {
9
+ return (...args) => {
10
+ scheduleOnUI(worklet, ...args);
11
+ };
12
+ }
13
+ export function runOnUISync() {
14
+ throw new Error('[Worklets] `runOnUISync` is not supported on web.');
15
+ }
16
+ export function executeOnUIRuntimeSync() {
17
+ throw new Error('[Worklets] `executeOnUIRuntimeSync` is not supported on web.');
18
+ }
19
+ export function runOnJS(fun) {
20
+ return (...args) => scheduleOnRN(fun, ...args);
21
+ }
22
+ export function scheduleOnRN(fun, ...args) {
23
+ queueMicrotask(args.length ? () => fun(...args) : fun);
24
+ }
25
+ export function runOnUIAsync(worklet, ...args) {
26
+ return new Promise(resolve => {
27
+ enqueueUI(worklet, args, resolve);
28
+ });
29
+ }
30
+ let runOnUIQueue = [];
31
+ function enqueueUI(worklet, args, resolve) {
32
+ if (IS_JEST) {
33
+ mockedRequestAnimationFrame(() => {
34
+ const result = worklet(...args);
35
+ resolve?.(result);
36
+ });
37
+ } else {
38
+ const job = [worklet, args, resolve];
39
+ runOnUIQueue.push(job);
40
+ if (runOnUIQueue.length === 1) {
41
+ flushUIQueue();
42
+ }
43
+ }
44
+ }
45
+ function flushUIQueue() {
46
+ queueMicrotask(() => {
47
+ const queue = runOnUIQueue;
48
+ runOnUIQueue = [];
49
+ requestAnimationFrameImpl(() => {
50
+ queue.forEach(([workletFunction, workletArgs, jobResolve]) => {
51
+ const result = workletFunction(...workletArgs);
52
+ if (jobResolve) {
53
+ jobResolve(result);
54
+ }
55
+ });
56
+ });
57
+ });
58
+ }
59
+ const requestAnimationFrameImpl = !globalThis.requestAnimationFrame ? mockedRequestAnimationFrame : globalThis.requestAnimationFrame;
60
+ //# sourceMappingURL=threads.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IS_JEST","mockedRequestAnimationFrame","scheduleOnUI","worklet","args","enqueueUI","runOnUI","runOnUISync","Error","executeOnUIRuntimeSync","runOnJS","fun","scheduleOnRN","queueMicrotask","length","runOnUIAsync","Promise","resolve","runOnUIQueue","result","job","push","flushUIQueue","queue","requestAnimationFrameImpl","forEach","workletFunction","workletArgs","jobResolve","globalThis","requestAnimationFrame"],"sourceRoot":"../../src","sources":["threads.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,2BAA2B,QAAQ,oDAAiD;AAE7F,OAAO,SAASC,YAAYA,CAC1BC,OAAuC,EACvC,GAAGC,IAAU,EACP;EACNC,SAAS,CAACF,OAAO,EAAEC,IAAI,CAAC;AAC1B;AAEA,OAAO,SAASE,OAAOA,CACrBH,OAAuC,EACd;EACzB,OAAO,CAAC,GAAGC,IAAI,KAAK;IAClBF,YAAY,CAACC,OAAO,EAAE,GAAGC,IAAI,CAAC;EAChC,CAAC;AACH;AAOA,OAAO,SAASG,WAAWA,CAAA,EAAU;EACnC,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;AACtE;AAMA,OAAO,SAASC,sBAAsBA,CAAA,EAAU;EAC9C,MAAM,IAAID,KAAK,CACb,8DACF,CAAC;AACH;AAEA,OAAO,SAASE,OAAOA,CACrBC,GAAmC,EACV;EACzB,OAAO,CAAC,GAAGP,IAAI,KAAKQ,YAAY,CAACD,GAAG,EAAE,GAAGP,IAAI,CAAC;AAChD;AAEA,OAAO,SAASQ,YAAYA,CAC1BD,GAAmC,EACnC,GAAGP,IAAU,EACP;EACNS,cAAc,CACZT,IAAI,CAACU,MAAM,GACP,MAAOH,GAAG,CAAoC,GAAGP,IAAI,CAAC,GACrDO,GACP,CAAC;AACH;AAEA,OAAO,SAASI,YAAYA,CAC1BZ,OAAuC,EACvC,GAAGC,IAAU,EACS;EACtB,OAAO,IAAIY,OAAO,CAAeC,OAAO,IAAK;IAC3CZ,SAAS,CAACF,OAAO,EAAEC,IAAI,EAAEa,OAAO,CAAC;EACnC,CAAC,CAAC;AACJ;AAQA,IAAIC,YAAqB,GAAG,EAAE;AAE9B,SAASb,SAASA,CAChBF,OAAuC,EACvCC,IAAU,EACVa,OAAsC,EAChC;EACN,IAAIjB,OAAO,EAAE;IACXC,2BAA2B,CAAC,MAAM;MAChC,MAAMkB,MAAM,GAAGhB,OAAO,CAAC,GAAGC,IAAI,CAAC;MAC/Ba,OAAO,GAAGE,MAAM,CAAC;IACnB,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,MAAMC,GAAG,GAAG,CAACjB,OAAO,EAAEC,IAAI,EAAEa,OAAO,CAAC;IACpCC,YAAY,CAACG,IAAI,CAACD,GAAY,CAAC;IAC/B,IAAIF,YAAY,CAACJ,MAAM,KAAK,CAAC,EAAE;MAC7BQ,YAAY,CAAC,CAAC;IAChB;EACF;AACF;AAEA,SAASA,YAAYA,CAAA,EAAS;EAC5BT,cAAc,CAAC,MAAM;IACnB,MAAMU,KAAK,GAAGL,YAAY;IAC1BA,YAAY,GAAG,EAAE;IACjBM,yBAAyB,CAAC,MAAM;MAC9BD,KAAK,CAACE,OAAO,CAAC,CAAC,CAACC,eAAe,EAAEC,WAAW,EAAEC,UAAU,CAAC,KAAK;QAC5D,MAAMT,MAAM,GAAGO,eAAe,CAAC,GAAGC,WAAW,CAAC;QAC9C,IAAIC,UAAU,EAAE;UACdA,UAAU,CAACT,MAAM,CAAC;QACpB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;AAEA,MAAMK,yBAAyB,GAAG,CAACK,UAAU,CAACC,qBAAqB,GAC/D7B,2BAA2B,GAC3B4B,UAAU,CAACC,qBAAqB","ignoreList":[]}