@amazon-devices/react-native-worklets 1.0.0-rn-83
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.
- package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.cpp +71 -0
- package/Common/cpp/worklets/AnimationFrameQueue/AnimationFrameBatchinator.h +38 -0
- package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.cpp +712 -0
- package/Common/cpp/worklets/NativeModules/JSIWorkletsModuleProxy.h +88 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.cpp +89 -0
- package/Common/cpp/worklets/NativeModules/WorkletsModuleProxy.h +80 -0
- package/Common/cpp/worklets/Public/AsyncQueue.h +14 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.cpp +94 -0
- package/Common/cpp/worklets/Registries/EventHandlerRegistry.h +51 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.cpp +8 -0
- package/Common/cpp/worklets/Registries/WorkletRuntimeRegistry.h +40 -0
- package/Common/cpp/worklets/Resources/SynchronizableUnpacker.cpp +49 -0
- package/Common/cpp/worklets/Resources/Unpackers.h +6 -0
- package/Common/cpp/worklets/Resources/ValueUnpacker.cpp +53 -0
- package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.cpp +62 -0
- package/Common/cpp/worklets/RunLoop/AsyncQueueImpl.h +46 -0
- package/Common/cpp/worklets/RunLoop/EventLoop.cpp +112 -0
- package/Common/cpp/worklets/RunLoop/EventLoop.h +52 -0
- package/Common/cpp/worklets/SharedItems/Serializable.cpp +545 -0
- package/Common/cpp/worklets/SharedItems/Serializable.h +473 -0
- package/Common/cpp/worklets/SharedItems/Synchronizable.cpp +67 -0
- package/Common/cpp/worklets/SharedItems/Synchronizable.h +59 -0
- package/Common/cpp/worklets/SharedItems/SynchronizableAccess.cpp +81 -0
- package/Common/cpp/worklets/SharedItems/SynchronizableAccess.h +45 -0
- package/Common/cpp/worklets/Tools/Defs.h +10 -0
- package/Common/cpp/worklets/Tools/FeatureFlags.cpp +15 -0
- package/Common/cpp/worklets/Tools/FeatureFlags.h +44 -0
- package/Common/cpp/worklets/Tools/JSISerializer.cpp +342 -0
- package/Common/cpp/worklets/Tools/JSISerializer.h +51 -0
- package/Common/cpp/worklets/Tools/JSLogger.cpp +68 -0
- package/Common/cpp/worklets/Tools/JSLogger.h +37 -0
- package/Common/cpp/worklets/Tools/JSScheduler.cpp +24 -0
- package/Common/cpp/worklets/Tools/JSScheduler.h +39 -0
- package/Common/cpp/worklets/Tools/PlatformLogger.h +16 -0
- package/Common/cpp/worklets/Tools/SingleInstanceChecker.h +82 -0
- package/Common/cpp/worklets/Tools/ThreadSafeQueue.h +49 -0
- package/Common/cpp/worklets/Tools/UIScheduler.cpp +19 -0
- package/Common/cpp/worklets/Tools/UIScheduler.h +26 -0
- package/Common/cpp/worklets/Tools/VersionUtils.cpp +75 -0
- package/Common/cpp/worklets/Tools/VersionUtils.h +28 -0
- package/Common/cpp/worklets/Tools/WorkletEventHandler.cpp +29 -0
- package/Common/cpp/worklets/Tools/WorkletEventHandler.h +41 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.cpp +46 -0
- package/Common/cpp/worklets/Tools/WorkletsJSIUtils.h +208 -0
- package/Common/cpp/worklets/Tools/WorkletsSystraceSection.h +161 -0
- package/Common/cpp/worklets/Tools/WorkletsVersion.cpp +54 -0
- package/Common/cpp/worklets/Tools/WorkletsVersion.h +20 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.cpp +38 -0
- package/Common/cpp/worklets/WorkletRuntime/RNRuntimeWorkletDecorator.h +21 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeData.cpp +3 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeData.h +12 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeInitialization.md +191 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeKind.h +16 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.cpp +105 -0
- package/Common/cpp/worklets/WorkletRuntime/RuntimeManager.h +63 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.cpp +23 -0
- package/Common/cpp/worklets/WorkletRuntime/UIRuntimeDecorator.h +16 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.cpp +119 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletHermesRuntime.h +134 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.cpp +244 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntime.h +102 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeCollector.h +36 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.cpp +308 -0
- package/Common/cpp/worklets/WorkletRuntime/WorkletRuntimeDecorator.h +26 -0
- package/LICENSE +7 -0
- package/README.md +31 -0
- package/RNWorklets.podspec +94 -0
- package/SystemBundles/cc12deac6e91c435b76698c8445aed85612f2f88e733218d14f88a35d06fb0f4.bundle +10512 -0
- package/SystemBundles/cc12deac6e91c435b76698c8445aed85612f2f88e733218d14f88a35d06fb0f4.map +3771 -0
- package/SystemModules/amzn__react-native-worklets-1.modules.txt +39 -0
- package/SystemModules/amzn__react-native-worklets-1.private.modules.txt +61 -0
- package/SystemModules/keplerscript-system-bundle-config.json +7 -0
- package/android/CMakeLists.txt +124 -0
- package/android/build.gradle +350 -0
- package/android/gradle.properties +5 -0
- package/android/proguard-rules.pro +3 -0
- package/android/spotless.gradle +9 -0
- package/android/src/experimentalBundling/com/swmansion/worklets/WorkletsModule.java +149 -0
- package/android/src/legacyBundling/com/swmansion/worklets/WorkletsModule.java +122 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.cpp +63 -0
- package/android/src/main/cpp/worklets/android/AndroidUIScheduler.h +43 -0
- package/android/src/main/cpp/worklets/android/AnimationFrameCallback.h +34 -0
- package/android/src/main/cpp/worklets/android/PlatformLogger.cpp +29 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.cpp +115 -0
- package/android/src/main/cpp/worklets/android/WorkletsModule.h +78 -0
- package/android/src/main/cpp/worklets/android/WorkletsOnLoad.cpp +13 -0
- package/android/src/main/java/com/swmansion/worklets/AndroidUIScheduler.java +60 -0
- package/android/src/main/java/com/swmansion/worklets/JSCallInvokerResolver.java +27 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsMessageQueueThread.java +16 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsMessageQueueThreadBase.java +73 -0
- package/android/src/main/java/com/swmansion/worklets/WorkletsPackage.java +48 -0
- package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameCallback.java +19 -0
- package/android/src/main/java/com/swmansion/worklets/runloop/AnimationFrameQueue.java +113 -0
- package/apple/worklets/apple/AnimationFrameQueue.h +15 -0
- package/apple/worklets/apple/AnimationFrameQueue.mm +135 -0
- package/apple/worklets/apple/AssertJavaScriptQueue.h +14 -0
- package/apple/worklets/apple/AssertTurboModuleManagerQueue.h +16 -0
- package/apple/worklets/apple/IOSUIScheduler.h +15 -0
- package/apple/worklets/apple/IOSUIScheduler.mm +29 -0
- package/apple/worklets/apple/PlatformLogger.mm +31 -0
- package/apple/worklets/apple/SlowAnimations.h +8 -0
- package/apple/worklets/apple/SlowAnimations.mm +45 -0
- package/apple/worklets/apple/WorkletsDisplayLink.h +21 -0
- package/apple/worklets/apple/WorkletsMessageThread.h +16 -0
- package/apple/worklets/apple/WorkletsMessageThread.mm +31 -0
- package/apple/worklets/apple/WorkletsModule.h +28 -0
- package/apple/worklets/apple/WorkletsModule.mm +121 -0
- package/bundleMode/index.d.ts +3 -0
- package/bundleMode/index.js +59 -0
- package/compatibility.json +11 -0
- package/kepler-compatibility.json +5 -0
- package/kepler-transformed-package-info.json +3 -0
- package/lib/module/PlatformChecker/PlatformChecker.js +8 -0
- package/lib/module/PlatformChecker/PlatformChecker.js.map +1 -0
- package/lib/module/PlatformChecker/index.js +18 -0
- package/lib/module/PlatformChecker/index.js.map +1 -0
- package/lib/module/WorkletsError.js +29 -0
- package/lib/module/WorkletsError.js.map +1 -0
- package/lib/module/WorkletsModule/JSWorklets.js +111 -0
- package/lib/module/WorkletsModule/JSWorklets.js.map +1 -0
- package/lib/module/WorkletsModule/NativeWorklets.js +126 -0
- package/lib/module/WorkletsModule/NativeWorklets.js.map +1 -0
- package/lib/module/WorkletsModule/index.js +4 -0
- package/lib/module/WorkletsModule/index.js.map +1 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.js +7 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.js.map +1 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.web.js +5 -0
- package/lib/module/WorkletsModule/workletsModuleInstance.web.js.map +1 -0
- package/lib/module/WorkletsModule/workletsModuleProxy.js +4 -0
- package/lib/module/WorkletsModule/workletsModuleProxy.js.map +1 -0
- package/lib/module/bundleUnpacker.js +47 -0
- package/lib/module/bundleUnpacker.js.map +1 -0
- package/lib/module/callGuard.js +30 -0
- package/lib/module/callGuard.js.map +1 -0
- package/lib/module/deprecated.js +20 -0
- package/lib/module/deprecated.js.map +1 -0
- package/lib/module/errors.js +69 -0
- package/lib/module/errors.js.map +1 -0
- package/lib/module/featureFlags/index.js +48 -0
- package/lib/module/featureFlags/index.js.map +1 -0
- package/lib/module/featureFlags/staticFlags.json +4 -0
- package/lib/module/index.js +26 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/initializers.js +221 -0
- package/lib/module/initializers.js.map +1 -0
- package/lib/module/isSynchronizable.js +6 -0
- package/lib/module/isSynchronizable.js.map +1 -0
- package/lib/module/logger.js +15 -0
- package/lib/module/logger.js.map +1 -0
- package/lib/module/privateGlobals.d.js +7 -0
- package/lib/module/privateGlobals.d.js.map +1 -0
- package/lib/module/publicGlobals.js +6 -0
- package/lib/module/publicGlobals.js.map +1 -0
- package/lib/module/runLoop/common/setImmediatePolyfill.js +15 -0
- package/lib/module/runLoop/common/setImmediatePolyfill.js.map +1 -0
- package/lib/module/runLoop/common/setIntervalPolyfill.js +26 -0
- package/lib/module/runLoop/common/setIntervalPolyfill.js.map +1 -0
- package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js +10 -0
- package/lib/module/runLoop/uiRuntime/mockedRequestAnimationFrame.js.map +1 -0
- package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js +52 -0
- package/lib/module/runLoop/uiRuntime/requestAnimationFrame.js.map +1 -0
- package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js +32 -0
- package/lib/module/runLoop/uiRuntime/setTimeoutPolyfill.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/index.js +19 -0
- package/lib/module/runLoop/workletRuntime/index.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/queueMicrotask.js +11 -0
- package/lib/module/runLoop/workletRuntime/queueMicrotask.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js +48 -0
- package/lib/module/runLoop/workletRuntime/requestAnimationFramePolyfill.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/setTimeout.js +28 -0
- package/lib/module/runLoop/workletRuntime/setTimeout.js.map +1 -0
- package/lib/module/runLoop/workletRuntime/taskQueue.js +37 -0
- package/lib/module/runLoop/workletRuntime/taskQueue.js.map +1 -0
- package/lib/module/runtimeKind.js +39 -0
- package/lib/module/runtimeKind.js.map +1 -0
- package/lib/module/runtimes.js +100 -0
- package/lib/module/runtimes.js.map +1 -0
- package/lib/module/serializable.js +568 -0
- package/lib/module/serializable.js.map +1 -0
- package/lib/module/serializableMappingCache.js +37 -0
- package/lib/module/serializableMappingCache.js.map +1 -0
- package/lib/module/specs/NativeWorkletsModule.js +5 -0
- package/lib/module/specs/NativeWorkletsModule.js.map +1 -0
- package/lib/module/specs/NativeWorkletsModule.kepler.js +7 -0
- package/lib/module/specs/NativeWorkletsModule.kepler.js.map +1 -0
- package/lib/module/specs/index.js +10 -0
- package/lib/module/specs/index.js.map +1 -0
- package/lib/module/synchronizable.js +9 -0
- package/lib/module/synchronizable.js.map +1 -0
- package/lib/module/synchronizableUnpacker.js +42 -0
- package/lib/module/synchronizableUnpacker.js.map +1 -0
- package/lib/module/threads.js +347 -0
- package/lib/module/threads.js.map +1 -0
- package/lib/module/utils/checkCppVersion.js +30 -0
- package/lib/module/utils/checkCppVersion.js.map +1 -0
- package/lib/module/utils/jsVersion.js +9 -0
- package/lib/module/utils/jsVersion.js.map +1 -0
- package/lib/module/valueUnpacker.js +60 -0
- package/lib/module/valueUnpacker.js.map +1 -0
- package/lib/module/workletFunction.js +37 -0
- package/lib/module/workletFunction.js.map +1 -0
- package/lib/module/workletRuntimeEntry.js +32 -0
- package/lib/module/workletRuntimeEntry.js.map +1 -0
- package/lib/module/workletTypes.js +12 -0
- package/lib/module/workletTypes.js.map +1 -0
- package/lib/typescript/PlatformChecker/PlatformChecker.d.ts +5 -0
- package/lib/typescript/PlatformChecker/PlatformChecker.d.ts.map +1 -0
- package/lib/typescript/PlatformChecker/index.d.ts +10 -0
- package/lib/typescript/PlatformChecker/index.d.ts.map +1 -0
- package/lib/typescript/WorkletsError.d.ts +15 -0
- package/lib/typescript/WorkletsError.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/JSWorklets.d.ts +3 -0
- package/lib/typescript/WorkletsModule/JSWorklets.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/NativeWorklets.d.ts +3 -0
- package/lib/typescript/WorkletsModule/NativeWorklets.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/index.d.ts +3 -0
- package/lib/typescript/WorkletsModule/index.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts +2 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts +2 -0
- package/lib/typescript/WorkletsModule/workletsModuleInstance.web.d.ts.map +1 -0
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts +37 -0
- package/lib/typescript/WorkletsModule/workletsModuleProxy.d.ts.map +1 -0
- package/lib/typescript/bundleUnpacker.d.ts +7 -0
- package/lib/typescript/bundleUnpacker.d.ts.map +1 -0
- package/lib/typescript/callGuard.d.ts +4 -0
- package/lib/typescript/callGuard.d.ts.map +1 -0
- package/lib/typescript/deprecated.d.ts +20 -0
- package/lib/typescript/deprecated.d.ts.map +1 -0
- package/lib/typescript/errors.d.ts +16 -0
- package/lib/typescript/errors.d.ts.map +1 -0
- package/lib/typescript/featureFlags/index.d.ts +23 -0
- package/lib/typescript/featureFlags/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +17 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/initializers.d.ts +17 -0
- package/lib/typescript/initializers.d.ts.map +1 -0
- package/lib/typescript/isSynchronizable.d.ts +3 -0
- package/lib/typescript/isSynchronizable.d.ts.map +1 -0
- package/lib/typescript/logger.d.ts +5 -0
- package/lib/typescript/logger.d.ts.map +1 -0
- package/lib/typescript/publicGlobals.d.ts +31 -0
- package/lib/typescript/publicGlobals.d.ts.map +1 -0
- package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/common/setImmediatePolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/common/setIntervalPolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts +6 -0
- package/lib/typescript/runLoop/uiRuntime/mockedRequestAnimationFrame.d.ts.map +1 -0
- package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts +2 -0
- package/lib/typescript/runLoop/uiRuntime/requestAnimationFrame.d.ts.map +1 -0
- package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/uiRuntime/setTimeoutPolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/index.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/index.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/queueMicrotask.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/requestAnimationFramePolyfill.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts +2 -0
- package/lib/typescript/runLoop/workletRuntime/setTimeout.d.ts.map +1 -0
- package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts +10 -0
- package/lib/typescript/runLoop/workletRuntime/taskQueue.d.ts.map +1 -0
- package/lib/typescript/runtimeKind.d.ts +25 -0
- package/lib/typescript/runtimeKind.d.ts.map +1 -0
- package/lib/typescript/runtimes.d.ts +77 -0
- package/lib/typescript/runtimes.d.ts.map +1 -0
- package/lib/typescript/serializable.d.ts +20 -0
- package/lib/typescript/serializable.d.ts.map +1 -0
- package/lib/typescript/serializableMappingCache.d.ts +16 -0
- package/lib/typescript/serializableMappingCache.d.ts.map +1 -0
- package/lib/typescript/specs/NativeWorkletsModule.d.ts +7 -0
- package/lib/typescript/specs/NativeWorkletsModule.d.ts.map +1 -0
- package/lib/typescript/specs/NativeWorkletsModule.kepler.d.ts +7 -0
- package/lib/typescript/specs/NativeWorkletsModule.kepler.d.ts.map +1 -0
- package/lib/typescript/specs/index.d.ts +3 -0
- package/lib/typescript/specs/index.d.ts.map +1 -0
- package/lib/typescript/synchronizable.d.ts +15 -0
- package/lib/typescript/synchronizable.d.ts.map +1 -0
- package/lib/typescript/synchronizableUnpacker.d.ts +4 -0
- package/lib/typescript/synchronizableUnpacker.d.ts.map +1 -0
- package/lib/typescript/threads.d.ts +138 -0
- package/lib/typescript/threads.d.ts.map +1 -0
- package/lib/typescript/utils/checkCppVersion.d.ts +3 -0
- package/lib/typescript/utils/checkCppVersion.d.ts.map +1 -0
- package/lib/typescript/utils/jsVersion.d.ts +7 -0
- package/lib/typescript/utils/jsVersion.d.ts.map +1 -0
- package/lib/typescript/valueUnpacker.d.ts +6 -0
- package/lib/typescript/valueUnpacker.d.ts.map +1 -0
- package/lib/typescript/workletFunction.d.ts +27 -0
- package/lib/typescript/workletFunction.d.ts.map +1 -0
- package/lib/typescript/workletRuntimeEntry.d.ts +14 -0
- package/lib/typescript/workletRuntimeEntry.d.ts.map +1 -0
- package/lib/typescript/workletTypes.d.ts +61 -0
- package/lib/typescript/workletTypes.d.ts.map +1 -0
- package/package.json +153 -0
- package/plugin/index.js +1761 -0
- package/react-native.config.js +21 -0
- package/scripts/validate-react-native-version.js +43 -0
- package/scripts/worklets_utils.rb +94 -0
- package/src/PlatformChecker/PlatformChecker.ts +7 -0
- package/src/PlatformChecker/index.ts +30 -0
- package/src/WorkletsError.ts +36 -0
- package/src/WorkletsModule/JSWorklets.ts +200 -0
- package/src/WorkletsModule/NativeWorklets.ts +256 -0
- package/src/WorkletsModule/index.ts +7 -0
- package/src/WorkletsModule/workletsModuleInstance.ts +9 -0
- package/src/WorkletsModule/workletsModuleInstance.web.ts +5 -0
- package/src/WorkletsModule/workletsModuleProxy.ts +126 -0
- package/src/bundleUnpacker.ts +75 -0
- package/src/callGuard.ts +33 -0
- package/src/deprecated.ts +32 -0
- package/src/errors.ts +80 -0
- package/src/featureFlags/index.ts +72 -0
- package/src/featureFlags/staticFlags.json +4 -0
- package/src/index.ts +53 -0
- package/src/initializers.ts +262 -0
- package/src/isSynchronizable.ts +13 -0
- package/src/logger.ts +16 -0
- package/src/privateGlobals.d.ts +79 -0
- package/src/publicGlobals.ts +39 -0
- package/src/runLoop/common/setImmediatePolyfill.ts +20 -0
- package/src/runLoop/common/setIntervalPolyfill.ts +38 -0
- package/src/runLoop/uiRuntime/mockedRequestAnimationFrame.ts +11 -0
- package/src/runLoop/uiRuntime/requestAnimationFrame.ts +66 -0
- package/src/runLoop/uiRuntime/setTimeoutPolyfill.ts +40 -0
- package/src/runLoop/workletRuntime/index.ts +18 -0
- package/src/runLoop/workletRuntime/queueMicrotask.ts +13 -0
- package/src/runLoop/workletRuntime/requestAnimationFramePolyfill.ts +61 -0
- package/src/runLoop/workletRuntime/setTimeout.ts +37 -0
- package/src/runLoop/workletRuntime/taskQueue.ts +44 -0
- package/src/runtimeKind.ts +37 -0
- package/src/runtimes.ts +193 -0
- package/src/serializable.ts +801 -0
- package/src/serializableMappingCache.ts +42 -0
- package/src/specs/NativeWorkletsModule.kepler.ts +11 -0
- package/src/specs/NativeWorkletsModule.ts +9 -0
- package/src/specs/index.ts +13 -0
- package/src/synchronizable.ts +32 -0
- package/src/synchronizableUnpacker.ts +67 -0
- package/src/threads.ts +452 -0
- package/src/utils/checkCppVersion.ts +34 -0
- package/src/utils/jsVersion.ts +7 -0
- package/src/valueUnpacker.ts +90 -0
- package/src/workletFunction.ts +42 -0
- package/src/workletRuntimeEntry.ts +35 -0
- package/src/workletTypes.ts +81 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function setupSetInterval() {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
const intervalHandleToTimeoutHandle = new Map();
|
|
7
|
+
const setIntervalPolyfill = (callback, delay = 0, ...args) => {
|
|
8
|
+
let intervalHandle = 0;
|
|
9
|
+
const repeatingCallback = () => {
|
|
10
|
+
const timeoutHandle = setTimeout(repeatingCallback, delay);
|
|
11
|
+
intervalHandleToTimeoutHandle.set(intervalHandle, timeoutHandle);
|
|
12
|
+
callback(...args);
|
|
13
|
+
};
|
|
14
|
+
intervalHandle = setTimeout(repeatingCallback, delay);
|
|
15
|
+
intervalHandleToTimeoutHandle.set(intervalHandle, intervalHandle);
|
|
16
|
+
return intervalHandle;
|
|
17
|
+
};
|
|
18
|
+
const clearIntervalPolyfill = intervalHandle => {
|
|
19
|
+
const timeoutHandle = intervalHandleToTimeoutHandle.get(intervalHandle);
|
|
20
|
+
clearTimeout(timeoutHandle);
|
|
21
|
+
intervalHandleToTimeoutHandle.delete(intervalHandle);
|
|
22
|
+
};
|
|
23
|
+
globalThis.setInterval = setIntervalPolyfill;
|
|
24
|
+
globalThis.clearInterval = clearIntervalPolyfill;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=setIntervalPolyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupSetInterval","intervalHandleToTimeoutHandle","Map","setIntervalPolyfill","callback","delay","args","intervalHandle","repeatingCallback","timeoutHandle","setTimeout","set","clearIntervalPolyfill","get","clearTimeout","delete","globalThis","setInterval","clearInterval"],"sourceRoot":"../../../../src","sources":["runLoop/common/setIntervalPolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,gBAAgBA,CAAA,EAAG;EACjC,SAAS;;EAET,MAAMC,6BAAkD,GAAG,IAAIC,GAAG,CAAC,CAAC;EAEpE,MAAMC,mBAAmB,GAAGA,CAC1BC,QAAsC,EACtCC,KAAa,GAAG,CAAC,EACjB,GAAGC,IAAe,KACf;IACH,IAAIC,cAAc,GAAG,CAAC;IAEtB,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;MAC9B,MAAMC,aAAa,GAAGC,UAAU,CAC9BF,iBAAiB,EACjBH,KACF,CAAsB;MACtBJ,6BAA6B,CAACU,GAAG,CAACJ,cAAc,EAAEE,aAAa,CAAC;MAChEL,QAAQ,CAAC,GAAGE,IAAI,CAAC;IACnB,CAAC;IAEDC,cAAc,GAAGG,UAAU,CAACF,iBAAiB,EAAEH,KAAK,CAAsB;IAC1EJ,6BAA6B,CAACU,GAAG,CAACJ,cAAc,EAAEA,cAAc,CAAC;IAEjE,OAAOA,cAAc;EACvB,CAAC;EAED,MAAMK,qBAAqB,GAAIL,cAAsB,IAAK;IACxD,MAAME,aAAa,GAAGR,6BAA6B,CAACY,GAAG,CAACN,cAAc,CAAC;IACvEO,YAAY,CAACL,aAAa,CAAC;IAC3BR,6BAA6B,CAACc,MAAM,CAACR,cAAc,CAAC;EACtD,CAAC;EAEDS,UAAU,CAACC,WAAW,GAAGd,mBAAyC;EAClEa,UAAU,CAACE,aAAa,GAAGN,qBAA6C;AAC1E","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This is Jest implementation of `requestAnimationFrame` that is required by
|
|
5
|
+
* React Native for test purposes.
|
|
6
|
+
*/
|
|
7
|
+
export function mockedRequestAnimationFrame(callback) {
|
|
8
|
+
return setTimeout(() => callback(performance.now()), 0);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=mockedRequestAnimationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["mockedRequestAnimationFrame","callback","setTimeout","performance","now"],"sourceRoot":"../../../../src","sources":["runLoop/uiRuntime/mockedRequestAnimationFrame.ts"],"mappings":"AAAA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,OAAO,SAASA,2BAA2BA,CACzCC,QAAqC,EACN;EAC/B,OAAOC,UAAU,CAAC,MAAMD,QAAQ,CAACE,WAAW,CAACC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { callMicrotasks } from '../../threads';
|
|
4
|
+
export function setupRequestAnimationFrame() {
|
|
5
|
+
'worklet';
|
|
6
|
+
|
|
7
|
+
const nativeRequestAnimationFrame = globalThis.requestAnimationFrame;
|
|
8
|
+
let queuedCallbacks = [];
|
|
9
|
+
let queuedCallbacksBegin = 0;
|
|
10
|
+
let queuedCallbacksEnd = 0;
|
|
11
|
+
let flushedCallbacks = queuedCallbacks;
|
|
12
|
+
let flushedCallbacksBegin = 0;
|
|
13
|
+
let flushedCallbacksEnd = 0;
|
|
14
|
+
let flushRequested = false;
|
|
15
|
+
globalThis.__flushAnimationFrame = timestamp => {
|
|
16
|
+
flushedCallbacks = queuedCallbacks;
|
|
17
|
+
queuedCallbacks = [];
|
|
18
|
+
flushedCallbacksBegin = queuedCallbacksBegin;
|
|
19
|
+
flushedCallbacksEnd = queuedCallbacksEnd;
|
|
20
|
+
queuedCallbacksBegin = queuedCallbacksEnd;
|
|
21
|
+
for (const callback of flushedCallbacks) {
|
|
22
|
+
callback(timestamp);
|
|
23
|
+
}
|
|
24
|
+
flushedCallbacksBegin = flushedCallbacksEnd;
|
|
25
|
+
callMicrotasks();
|
|
26
|
+
};
|
|
27
|
+
globalThis.requestAnimationFrame = callback => {
|
|
28
|
+
const handle = queuedCallbacksEnd++;
|
|
29
|
+
queuedCallbacks.push(callback);
|
|
30
|
+
if (!flushRequested) {
|
|
31
|
+
flushRequested = true;
|
|
32
|
+
nativeRequestAnimationFrame(timestamp => {
|
|
33
|
+
flushRequested = false;
|
|
34
|
+
globalThis.__frameTimestamp = timestamp;
|
|
35
|
+
globalThis.__flushAnimationFrame(timestamp);
|
|
36
|
+
globalThis.__frameTimestamp = undefined;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return handle;
|
|
40
|
+
};
|
|
41
|
+
globalThis.cancelAnimationFrame = handle => {
|
|
42
|
+
if (handle < flushedCallbacksBegin || handle >= queuedCallbacksEnd) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (handle < flushedCallbacksEnd) {
|
|
46
|
+
flushedCallbacks[handle - flushedCallbacksBegin] = () => {};
|
|
47
|
+
} else {
|
|
48
|
+
queuedCallbacks[handle - queuedCallbacksBegin] = () => {};
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=requestAnimationFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["callMicrotasks","setupRequestAnimationFrame","nativeRequestAnimationFrame","globalThis","requestAnimationFrame","queuedCallbacks","queuedCallbacksBegin","queuedCallbacksEnd","flushedCallbacks","flushedCallbacksBegin","flushedCallbacksEnd","flushRequested","__flushAnimationFrame","timestamp","callback","handle","push","__frameTimestamp","undefined","cancelAnimationFrame"],"sourceRoot":"../../../../src","sources":["runLoop/uiRuntime/requestAnimationFrame.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,cAAc,QAAQ,eAAe;AAE9C,OAAO,SAASC,0BAA0BA,CAAA,EAAG;EAC3C,SAAS;;EACT,MAAMC,2BAA2B,GAAGC,UAAU,CAACC,qBAAqB;EAEpE,IAAIC,eAAgD,GAAG,EAAE;EACzD,IAAIC,oBAAoB,GAAG,CAAC;EAC5B,IAAIC,kBAAkB,GAAG,CAAC;EAE1B,IAAIC,gBAAgB,GAAGH,eAAe;EACtC,IAAII,qBAAqB,GAAG,CAAC;EAC7B,IAAIC,mBAAmB,GAAG,CAAC;EAE3B,IAAIC,cAAc,GAAG,KAAK;EAE1BR,UAAU,CAACS,qBAAqB,GAAIC,SAAiB,IAAK;IACxDL,gBAAgB,GAAGH,eAAe;IAClCA,eAAe,GAAG,EAAE;IAEpBI,qBAAqB,GAAGH,oBAAoB;IAC5CI,mBAAmB,GAAGH,kBAAkB;IACxCD,oBAAoB,GAAGC,kBAAkB;IAEzC,KAAK,MAAMO,QAAQ,IAAIN,gBAAgB,EAAE;MACvCM,QAAQ,CAACD,SAAS,CAAC;IACrB;IAEAJ,qBAAqB,GAAGC,mBAAmB;IAE3CV,cAAc,CAAC,CAAC;EAClB,CAAC;EAEDG,UAAU,CAACC,qBAAqB,GAC9BU,QAAqC,IAC1B;IACX,MAAMC,MAAM,GAAGR,kBAAkB,EAAE;IAEnCF,eAAe,CAACW,IAAI,CAACF,QAAQ,CAAC;IAC9B,IAAI,CAACH,cAAc,EAAE;MACnBA,cAAc,GAAG,IAAI;MAErBT,2BAA2B,CAAEW,SAAS,IAAK;QACzCF,cAAc,GAAG,KAAK;QACtBR,UAAU,CAACc,gBAAgB,GAAGJ,SAAS;QACvCV,UAAU,CAACS,qBAAqB,CAACC,SAAS,CAAC;QAC3CV,UAAU,CAACc,gBAAgB,GAAGC,SAAS;MACzC,CAAC,CAAC;IACJ;IACA,OAAOH,MAAM;EACf,CAAC;EAEDZ,UAAU,CAACgB,oBAAoB,GAAIJ,MAAc,IAAK;IACpD,IAAIA,MAAM,GAAGN,qBAAqB,IAAIM,MAAM,IAAIR,kBAAkB,EAAE;MAClE;IACF;IAEA,IAAIQ,MAAM,GAAGL,mBAAmB,EAAE;MAChCF,gBAAgB,CAACO,MAAM,GAAGN,qBAAqB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7D,CAAC,MAAM;MACLJ,eAAe,CAACU,MAAM,GAAGT,oBAAoB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC3D;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function setupSetTimeout() {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
const timeoutHandleToRafHandle = new Map();
|
|
7
|
+
const setTimeoutPolyfill = (callback, delay = 0, ...args) => {
|
|
8
|
+
const start = performance.now();
|
|
9
|
+
let timeoutHandle = 0;
|
|
10
|
+
const rafCallback = () => {
|
|
11
|
+
const now = performance.now();
|
|
12
|
+
if (now - start >= delay) {
|
|
13
|
+
callback(...args);
|
|
14
|
+
timeoutHandleToRafHandle.delete(timeoutHandle);
|
|
15
|
+
} else {
|
|
16
|
+
const rafHandle = requestAnimationFrame(rafCallback);
|
|
17
|
+
timeoutHandleToRafHandle.set(timeoutHandle, rafHandle);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
timeoutHandle = requestAnimationFrame(rafCallback);
|
|
21
|
+
timeoutHandleToRafHandle.set(timeoutHandle, timeoutHandle);
|
|
22
|
+
return timeoutHandle;
|
|
23
|
+
};
|
|
24
|
+
const clearTimeoutPolyfill = timeoutHandle => {
|
|
25
|
+
const rafHandle = timeoutHandleToRafHandle.get(timeoutHandle);
|
|
26
|
+
timeoutHandleToRafHandle.delete(timeoutHandle);
|
|
27
|
+
cancelAnimationFrame(rafHandle);
|
|
28
|
+
};
|
|
29
|
+
globalThis.setTimeout = setTimeoutPolyfill;
|
|
30
|
+
globalThis.clearTimeout = clearTimeoutPolyfill;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=setTimeoutPolyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupSetTimeout","timeoutHandleToRafHandle","Map","setTimeoutPolyfill","callback","delay","args","start","performance","now","timeoutHandle","rafCallback","delete","rafHandle","requestAnimationFrame","set","clearTimeoutPolyfill","get","cancelAnimationFrame","globalThis","setTimeout","clearTimeout"],"sourceRoot":"../../../../src","sources":["runLoop/uiRuntime/setTimeoutPolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,eAAeA,CAAA,EAAG;EAChC,SAAS;;EAET,MAAMC,wBAA6C,GAAG,IAAIC,GAAG,CAAC,CAAC;EAE/D,MAAMC,kBAAkB,GAAGA,CACzBC,QAAsC,EACtCC,KAAa,GAAG,CAAC,EACjB,GAAGC,IAAe,KACf;IACH,MAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IAC/B,IAAIC,aAAa,GAAG,CAAC;IAErB,MAAMC,WAAW,GAAGA,CAAA,KAAM;MACxB,MAAMF,GAAG,GAAGD,WAAW,CAACC,GAAG,CAAC,CAAC;MAC7B,IAAIA,GAAG,GAAGF,KAAK,IAAIF,KAAK,EAAE;QACxBD,QAAQ,CAAC,GAAGE,IAAI,CAAC;QACjBL,wBAAwB,CAACW,MAAM,CAACF,aAAa,CAAC;MAChD,CAAC,MAAM;QACL,MAAMG,SAAS,GAAGC,qBAAqB,CAACH,WAAW,CAAC;QACpDV,wBAAwB,CAACc,GAAG,CAACL,aAAa,EAAEG,SAAS,CAAC;MACxD;IACF,CAAC;IAEDH,aAAa,GAAGI,qBAAqB,CAACH,WAAW,CAAC;IAClDV,wBAAwB,CAACc,GAAG,CAACL,aAAa,EAAEA,aAAa,CAAC;IAC1D,OAAOA,aAAa;EACtB,CAAC;EAED,MAAMM,oBAAoB,GAAIN,aAAqB,IAAK;IACtD,MAAMG,SAAS,GAAGZ,wBAAwB,CAACgB,GAAG,CAACP,aAAa,CAAC;IAC7DT,wBAAwB,CAACW,MAAM,CAACF,aAAa,CAAC;IAC9CQ,oBAAoB,CAACL,SAAU,CAAC;EAClC,CAAC;EAEDM,UAAU,CAACC,UAAU,GAAGjB,kBAAuC;EAC/DgB,UAAU,CAACE,YAAY,GAAGL,oBAA2C;AACvE","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { setupSetImmediate } from '../common/setImmediatePolyfill';
|
|
4
|
+
import { setupSetInterval } from '../common/setIntervalPolyfill';
|
|
5
|
+
import { setupQueueMicrotask } from './queueMicrotask';
|
|
6
|
+
import { setupRequestAnimationFrame } from './requestAnimationFramePolyfill';
|
|
7
|
+
import { setupSetTimeout } from './setTimeout';
|
|
8
|
+
import { setupTaskQueue } from './taskQueue';
|
|
9
|
+
export function setupRunLoop(animationQueuePollingRate) {
|
|
10
|
+
'worklet';
|
|
11
|
+
|
|
12
|
+
setupTaskQueue();
|
|
13
|
+
setupQueueMicrotask();
|
|
14
|
+
setupSetTimeout();
|
|
15
|
+
setupRequestAnimationFrame(animationQueuePollingRate);
|
|
16
|
+
setupSetImmediate();
|
|
17
|
+
setupSetInterval();
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupSetImmediate","setupSetInterval","setupQueueMicrotask","setupRequestAnimationFrame","setupSetTimeout","setupTaskQueue","setupRunLoop","animationQueuePollingRate"],"sourceRoot":"../../../../src","sources":["runLoop/workletRuntime/index.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,0BAA0B,QAAQ,iCAAiC;AAC5E,SAASC,eAAe,QAAQ,cAAc;AAC9C,SAASC,cAAc,QAAQ,aAAa;AAE5C,OAAO,SAASC,YAAYA,CAACC,yBAAiC,EAAE;EAC9D,SAAS;;EACTF,cAAc,CAAC,CAAC;EAChBH,mBAAmB,CAAC,CAAC;EACrBE,eAAe,CAAC,CAAC;EACjBD,0BAA0B,CAACI,yBAAyB,CAAC;EACrDP,iBAAiB,CAAC,CAAC;EACnBC,gBAAgB,CAAC,CAAC;AACpB","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { pushMicrotask } from './taskQueue';
|
|
4
|
+
export function setupQueueMicrotask() {
|
|
5
|
+
'worklet';
|
|
6
|
+
|
|
7
|
+
globalThis.queueMicrotask = function (callback, ...args) {
|
|
8
|
+
pushMicrotask(() => callback(...args));
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=queueMicrotask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pushMicrotask","setupQueueMicrotask","globalThis","queueMicrotask","callback","args"],"sourceRoot":"../../../../src","sources":["runLoop/workletRuntime/queueMicrotask.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,aAAa,QAAQ,aAAa;AAE3C,OAAO,SAASC,mBAAmBA,CAAA,EAAG;EACpC,SAAS;;EACTC,UAAU,CAACC,cAAc,GAAG,UAC1BC,QAAsC,EACtC,GAAGC,IAAe,EAClB;IACAL,aAAa,CAAC,MAAMI,QAAQ,CAAC,GAAGC,IAAI,CAAC,CAAC;EACxC,CAA0B;AAC5B","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function setupRequestAnimationFrame(animationQueuePollingRate) {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
const timeoutInterval = animationQueuePollingRate;
|
|
7
|
+
let queuedCallbacks = [];
|
|
8
|
+
let queuedCallbacksBegin = 0;
|
|
9
|
+
let queuedCallbacksEnd = 0;
|
|
10
|
+
let flushedCallbacks = queuedCallbacks;
|
|
11
|
+
let flushedCallbacksBegin = 0;
|
|
12
|
+
let flushedCallbacksEnd = 0;
|
|
13
|
+
let flushRequested = false;
|
|
14
|
+
function flushAnimationFrame() {
|
|
15
|
+
flushRequested = false;
|
|
16
|
+
const timestamp = performance.now();
|
|
17
|
+
flushedCallbacks = queuedCallbacks;
|
|
18
|
+
queuedCallbacks = [];
|
|
19
|
+
flushedCallbacksBegin = queuedCallbacksBegin;
|
|
20
|
+
flushedCallbacksEnd = queuedCallbacksEnd;
|
|
21
|
+
queuedCallbacksBegin = queuedCallbacksEnd;
|
|
22
|
+
for (const callback of flushedCallbacks) {
|
|
23
|
+
callback(timestamp);
|
|
24
|
+
globalThis.__flushMicrotasks();
|
|
25
|
+
}
|
|
26
|
+
flushedCallbacksBegin = flushedCallbacksEnd;
|
|
27
|
+
}
|
|
28
|
+
globalThis.requestAnimationFrame = callback => {
|
|
29
|
+
const handle = queuedCallbacksEnd++;
|
|
30
|
+
queuedCallbacks.push(callback);
|
|
31
|
+
if (!flushRequested) {
|
|
32
|
+
flushRequested = true;
|
|
33
|
+
setTimeout(flushAnimationFrame, timeoutInterval);
|
|
34
|
+
}
|
|
35
|
+
return handle;
|
|
36
|
+
};
|
|
37
|
+
globalThis.cancelAnimationFrame = handle => {
|
|
38
|
+
if (handle < flushedCallbacksBegin || handle >= queuedCallbacksEnd) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
if (handle < flushedCallbacksEnd) {
|
|
42
|
+
flushedCallbacks[handle - flushedCallbacksBegin] = () => {};
|
|
43
|
+
} else {
|
|
44
|
+
queuedCallbacks[handle - queuedCallbacksBegin] = () => {};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=requestAnimationFramePolyfill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupRequestAnimationFrame","animationQueuePollingRate","timeoutInterval","queuedCallbacks","queuedCallbacksBegin","queuedCallbacksEnd","flushedCallbacks","flushedCallbacksBegin","flushedCallbacksEnd","flushRequested","flushAnimationFrame","timestamp","performance","now","callback","globalThis","__flushMicrotasks","requestAnimationFrame","handle","push","setTimeout","cancelAnimationFrame"],"sourceRoot":"../../../../src","sources":["runLoop/workletRuntime/requestAnimationFramePolyfill.ts"],"mappings":"AAAA,YAAY;;AAEZ,OAAO,SAASA,0BAA0BA,CAACC,yBAAiC,EAAE;EAC5E,SAAS;;EACT,MAAMC,eAAe,GAAGD,yBAAyB;EAEjD,IAAIE,eAAgD,GAAG,EAAE;EACzD,IAAIC,oBAAoB,GAAG,CAAC;EAC5B,IAAIC,kBAAkB,GAAG,CAAC;EAE1B,IAAIC,gBAAgB,GAAGH,eAAe;EACtC,IAAII,qBAAqB,GAAG,CAAC;EAC7B,IAAIC,mBAAmB,GAAG,CAAC;EAE3B,IAAIC,cAAc,GAAG,KAAK;EAE1B,SAASC,mBAAmBA,CAAA,EAAG;IAC7BD,cAAc,GAAG,KAAK;IACtB,MAAME,SAAS,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IAEnCP,gBAAgB,GAAGH,eAAe;IAClCA,eAAe,GAAG,EAAE;IAEpBI,qBAAqB,GAAGH,oBAAoB;IAC5CI,mBAAmB,GAAGH,kBAAkB;IACxCD,oBAAoB,GAAGC,kBAAkB;IAEzC,KAAK,MAAMS,QAAQ,IAAIR,gBAAgB,EAAE;MACvCQ,QAAQ,CAACH,SAAS,CAAC;MACnBI,UAAU,CAACC,iBAAiB,CAAC,CAAC;IAChC;IAEAT,qBAAqB,GAAGC,mBAAmB;EAC7C;EAEAO,UAAU,CAACE,qBAAqB,GAC9BH,QAAqC,IAC1B;IACX,MAAMI,MAAM,GAAGb,kBAAkB,EAAE;IAEnCF,eAAe,CAACgB,IAAI,CAACL,QAAQ,CAAC;IAC9B,IAAI,CAACL,cAAc,EAAE;MACnBA,cAAc,GAAG,IAAI;MAErBW,UAAU,CAACV,mBAAmB,EAAER,eAAe,CAAC;IAClD;IACA,OAAOgB,MAAM;EACf,CAAC;EAEDH,UAAU,CAACM,oBAAoB,GAAIH,MAAc,IAAK;IACpD,IAAIA,MAAM,GAAGX,qBAAqB,IAAIW,MAAM,IAAIb,kBAAkB,EAAE;MAClE;IACF;IAEA,IAAIa,MAAM,GAAGV,mBAAmB,EAAE;MAChCF,gBAAgB,CAACY,MAAM,GAAGX,qBAAqB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC7D,CAAC,MAAM;MACLJ,eAAe,CAACe,MAAM,GAAGd,oBAAoB,CAAC,GAAG,MAAM,CAAC,CAAC;IAC3D;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { pushTask } from './taskQueue';
|
|
4
|
+
export function setupSetTimeout() {
|
|
5
|
+
'worklet';
|
|
6
|
+
|
|
7
|
+
const pendingHandlers = new Set();
|
|
8
|
+
let ID = 0;
|
|
9
|
+
const setTimeoutPolyfill = (callback, delay = 0, ...args) => {
|
|
10
|
+
const handlerId = ID++;
|
|
11
|
+
const timeoutCallback = () => {
|
|
12
|
+
if (!pendingHandlers.has(handlerId)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
callback(...args);
|
|
16
|
+
pendingHandlers.delete(handlerId);
|
|
17
|
+
};
|
|
18
|
+
pendingHandlers.add(handlerId);
|
|
19
|
+
pushTask(timeoutCallback, handlerId, delay);
|
|
20
|
+
return handlerId;
|
|
21
|
+
};
|
|
22
|
+
const clearTimeoutPolyfill = timeoutHandle => {
|
|
23
|
+
pendingHandlers.delete(timeoutHandle);
|
|
24
|
+
};
|
|
25
|
+
globalThis.setTimeout = setTimeoutPolyfill;
|
|
26
|
+
globalThis.clearTimeout = clearTimeoutPolyfill;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=setTimeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["pushTask","setupSetTimeout","pendingHandlers","Set","ID","setTimeoutPolyfill","callback","delay","args","handlerId","timeoutCallback","has","delete","add","clearTimeoutPolyfill","timeoutHandle","globalThis","setTimeout","clearTimeout"],"sourceRoot":"../../../../src","sources":["runLoop/workletRuntime/setTimeout.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,QAAQ,QAAQ,aAAa;AAEtC,OAAO,SAASC,eAAeA,CAAA,EAAG;EAChC,SAAS;;EAET,MAAMC,eAA4B,GAAG,IAAIC,GAAG,CAAC,CAAC;EAC9C,IAAIC,EAAE,GAAG,CAAC;EAEV,MAAMC,kBAAkB,GAAGA,CACzBC,QAAsC,EACtCC,KAAa,GAAG,CAAC,EACjB,GAAGC,IAAe,KACf;IACH,MAAMC,SAAS,GAAGL,EAAE,EAAE;IAEtB,MAAMM,eAAe,GAAGA,CAAA,KAAM;MAC5B,IAAI,CAACR,eAAe,CAACS,GAAG,CAACF,SAAS,CAAC,EAAE;QACnC;MACF;MACAH,QAAQ,CAAC,GAAGE,IAAI,CAAC;MACjBN,eAAe,CAACU,MAAM,CAACH,SAAS,CAAC;IACnC,CAAC;IAEDP,eAAe,CAACW,GAAG,CAACJ,SAAS,CAAC;IAC9BT,QAAQ,CAACU,eAAe,EAAED,SAAS,EAAEF,KAAK,CAAC;IAC3C,OAAOE,SAAS;EAClB,CAAC;EAED,MAAMK,oBAAoB,GAAIC,aAAqB,IAAK;IACtDb,eAAe,CAACU,MAAM,CAACG,aAAa,CAAC;EACvC,CAAC;EAEDC,UAAU,CAACC,UAAU,GAAGZ,kBAAuC;EAC/DW,UAAU,CAACE,YAAY,GAAGJ,oBAA2C;AACvE","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export function setupTaskQueue() {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
const queue = {
|
|
7
|
+
microtasks: [],
|
|
8
|
+
timeoutCallbacks: new Map()
|
|
9
|
+
};
|
|
10
|
+
globalThis._taskQueue = queue;
|
|
11
|
+
globalThis.__runTimeoutCallback = function (handlerId) {
|
|
12
|
+
const task = queue.timeoutCallbacks.get(handlerId);
|
|
13
|
+
task?.();
|
|
14
|
+
queue.timeoutCallbacks.delete(handlerId);
|
|
15
|
+
globalThis.__flushMicrotasks();
|
|
16
|
+
};
|
|
17
|
+
globalThis.__flushMicrotasks = function () {
|
|
18
|
+
for (let i = 0; i < queue.microtasks.length; i++) {
|
|
19
|
+
queue.microtasks[i]();
|
|
20
|
+
}
|
|
21
|
+
queue.microtasks = [];
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function pushMicrotask(callback) {
|
|
25
|
+
'worklet';
|
|
26
|
+
|
|
27
|
+
const queue = globalThis._taskQueue;
|
|
28
|
+
queue.microtasks.push(callback);
|
|
29
|
+
}
|
|
30
|
+
export function pushTask(callback, handlerId, delay) {
|
|
31
|
+
'worklet';
|
|
32
|
+
|
|
33
|
+
const queue = globalThis._taskQueue;
|
|
34
|
+
queue.timeoutCallbacks.set(handlerId, callback);
|
|
35
|
+
globalThis._scheduleTimeoutCallback(delay, handlerId);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=taskQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupTaskQueue","queue","microtasks","timeoutCallbacks","Map","globalThis","_taskQueue","__runTimeoutCallback","handlerId","task","get","delete","__flushMicrotasks","i","length","pushMicrotask","callback","push","pushTask","delay","set","_scheduleTimeoutCallback"],"sourceRoot":"../../../../src","sources":["runLoop/workletRuntime/taskQueue.ts"],"mappings":"AAAA,YAAY;;AASZ,OAAO,SAASA,cAAcA,CAAA,EAAG;EAC/B,SAAS;;EACT,MAAMC,KAAY,GAAG;IACnBC,UAAU,EAAE,EAAE;IACdC,gBAAgB,EAAE,IAAIC,GAAG,CAAC;EAC5B,CAAC;EACDC,UAAU,CAACC,UAAU,GAAGL,KAAK;EAE7BI,UAAU,CAACE,oBAAoB,GAAG,UAAUC,SAAiB,EAAE;IAC7D,MAAMC,IAAI,GAAGR,KAAK,CAACE,gBAAgB,CAACO,GAAG,CAACF,SAAS,CAAC;IAClDC,IAAI,GAAG,CAAC;IACRR,KAAK,CAACE,gBAAgB,CAACQ,MAAM,CAACH,SAAS,CAAC;IACxCH,UAAU,CAACO,iBAAiB,CAAC,CAAC;EAChC,CAAC;EAEDP,UAAU,CAACO,iBAAiB,GAAG,YAAY;IACzC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGZ,KAAK,CAACC,UAAU,CAACY,MAAM,EAAED,CAAC,EAAE,EAAE;MAChDZ,KAAK,CAACC,UAAU,CAACW,CAAC,CAAC,CAAC,CAAC;IACvB;IACAZ,KAAK,CAACC,UAAU,GAAG,EAAE;EACvB,CAAC;AACH;AAEA,OAAO,SAASa,aAAaA,CAACC,QAAkB,EAAE;EAChD,SAAS;;EACT,MAAMf,KAAK,GAAGI,UAAU,CAACC,UAAU;EACnCL,KAAK,CAACC,UAAU,CAACe,IAAI,CAACD,QAAQ,CAAC;AACjC;AAEA,OAAO,SAASE,QAAQA,CAACF,QAAkB,EAAER,SAAiB,EAAEW,KAAa,EAAE;EAC7E,SAAS;;EACT,MAAMlB,KAAK,GAAGI,UAAU,CAACC,UAAU;EACnCL,KAAK,CAACE,gBAAgB,CAACiB,GAAG,CAACZ,SAAS,EAAEQ,QAAQ,CAAC;EAC/CX,UAAU,CAACgB,wBAAwB,CAACF,KAAK,EAAEX,SAAS,CAAC;AACvD","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
export let RuntimeKind = /*#__PURE__*/function (RuntimeKind) {
|
|
4
|
+
/**
|
|
5
|
+
* The React Native runtime, which is the main runtime for React Native where
|
|
6
|
+
* React exists and where components are rendered.
|
|
7
|
+
*/
|
|
8
|
+
RuntimeKind[RuntimeKind["ReactNative"] = 1] = "ReactNative";
|
|
9
|
+
/**
|
|
10
|
+
* The UI runtime, which is a special runtime that executes on the UI thread,
|
|
11
|
+
* mostly used for animations and gestures.
|
|
12
|
+
*/
|
|
13
|
+
RuntimeKind[RuntimeKind["UI"] = 2] = "UI";
|
|
14
|
+
/** Additional runtime created on-demand by the user. */
|
|
15
|
+
RuntimeKind[RuntimeKind["Worker"] = 3] = "Worker";
|
|
16
|
+
return RuntimeKind;
|
|
17
|
+
}({});
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Programmatic way to check the current runtime kind. It's useful when you need
|
|
21
|
+
* specific implementations for different runtimes created by Worklets.
|
|
22
|
+
*
|
|
23
|
+
* For more optimized calls you can check the value of
|
|
24
|
+
* `globalThis.__RUNTIME_KIND` directly.
|
|
25
|
+
*
|
|
26
|
+
* @returns The kind of the current runtime.
|
|
27
|
+
*/
|
|
28
|
+
export function getRuntimeKind() {
|
|
29
|
+
'worklet';
|
|
30
|
+
|
|
31
|
+
return globalThis.__RUNTIME_KIND;
|
|
32
|
+
}
|
|
33
|
+
if (globalThis.__RUNTIME_KIND === undefined) {
|
|
34
|
+
// In Jest environments eager imports make this file to evaluate before
|
|
35
|
+
// `initializers.ts` file, therefore we have to set the RuntimeKind here,
|
|
36
|
+
// just to be safe.
|
|
37
|
+
globalThis.__RUNTIME_KIND = RuntimeKind.ReactNative;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=runtimeKind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RuntimeKind","getRuntimeKind","globalThis","__RUNTIME_KIND","undefined","ReactNative"],"sourceRoot":"../../src","sources":["runtimeKind.ts"],"mappings":"AAAA,YAAY;;AAEZ,WAAYA,WAAW,0BAAXA,WAAW;EACrB;AACF;AACA;AACA;EAJYA,WAAW,CAAXA,WAAW;EAMrB;AACF;AACA;AACA;EATYA,WAAW,CAAXA,WAAW;EAWrB;EAXUA,WAAW,CAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;;AAevB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAgB;EAC5C,SAAS;;EACT,OAAOC,UAAU,CAACC,cAAc;AAClC;AAEA,IAAID,UAAU,CAACC,cAAc,KAAKC,SAAS,EAAE;EAC3C;EACA;EACA;EACAF,UAAU,CAACC,cAAc,GAAGH,WAAW,CAACK,WAAW;AACrD","ignoreList":[]}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
import { setupCallGuard } from './callGuard';
|
|
4
|
+
import { getMemorySafeCapturableConsole, setupConsole } from './initializers';
|
|
5
|
+
import { SHOULD_BE_USE_WEB } from './PlatformChecker';
|
|
6
|
+
import { setupRunLoop } from './runLoop/workletRuntime';
|
|
7
|
+
import { RuntimeKind } from './runtimeKind';
|
|
8
|
+
import { createSerializable, makeShareableCloneOnUIRecursive } from './serializable';
|
|
9
|
+
import { isWorkletFunction } from './workletFunction';
|
|
10
|
+
import { registerWorkletsError, WorkletsError } from './WorkletsError';
|
|
11
|
+
import { WorkletsModule } from './WorkletsModule';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Lets you create a new JS runtime which can be used to run worklets possibly
|
|
15
|
+
* on different threads than JS or UI thread.
|
|
16
|
+
*
|
|
17
|
+
* @param config - Runtime configuration object - {@link WorkletRuntimeConfig}.
|
|
18
|
+
* @returns WorkletRuntime which is a
|
|
19
|
+
* `jsi::HostObject<worklets::WorkletRuntime>` - {@link WorkletRuntime}
|
|
20
|
+
* @see https://docs.swmansion.com/react-native-worklets/docs/threading/createWorkletRuntime/
|
|
21
|
+
*/
|
|
22
|
+
// @ts-expect-error Public API overload.
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated Please use the new config object signature instead:
|
|
26
|
+
* `createWorkletRuntime({ name, initializer })`
|
|
27
|
+
*
|
|
28
|
+
* Lets you create a new JS runtime which can be used to run worklets possibly
|
|
29
|
+
* on different threads than JS or UI thread.
|
|
30
|
+
* @param name - A name used to identify the runtime which will appear in
|
|
31
|
+
* devices list in Chrome DevTools.
|
|
32
|
+
* @param initializer - An optional worklet that will be run synchronously on
|
|
33
|
+
* the same thread immediately after the runtime is created.
|
|
34
|
+
* @returns WorkletRuntime which is a
|
|
35
|
+
* `jsi::HostObject<worklets::WorkletRuntime>` - {@link WorkletRuntime}
|
|
36
|
+
* @see https://docs.swmansion.com/react-native-worklets/docs/threading/createWorkletRuntime/
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
export function createWorkletRuntime(nameOrConfig, initializer) {
|
|
40
|
+
const runtimeBoundCapturableConsole = getMemorySafeCapturableConsole();
|
|
41
|
+
let name;
|
|
42
|
+
let initializerFn;
|
|
43
|
+
let useDefaultQueue = true;
|
|
44
|
+
let customQueue;
|
|
45
|
+
let animationQueuePollingRate;
|
|
46
|
+
let enableEventLoop = true;
|
|
47
|
+
if (typeof nameOrConfig === 'string') {
|
|
48
|
+
name = nameOrConfig;
|
|
49
|
+
initializerFn = initializer;
|
|
50
|
+
} else {
|
|
51
|
+
// TODO: Make anonymous name globally unique.
|
|
52
|
+
name = nameOrConfig?.name ?? 'anonymous';
|
|
53
|
+
initializerFn = nameOrConfig?.initializer;
|
|
54
|
+
useDefaultQueue = nameOrConfig?.useDefaultQueue ?? true;
|
|
55
|
+
customQueue = nameOrConfig?.customQueue;
|
|
56
|
+
animationQueuePollingRate = Math.round(nameOrConfig?.animationQueuePollingRate ?? 16);
|
|
57
|
+
enableEventLoop = nameOrConfig?.enableEventLoop ?? true;
|
|
58
|
+
}
|
|
59
|
+
if (initializerFn && !isWorkletFunction(initializerFn)) {
|
|
60
|
+
throw new WorkletsError('The initializer passed to `createWorkletRuntime` is not a worklet.');
|
|
61
|
+
}
|
|
62
|
+
return WorkletsModule.createWorkletRuntime(name, createSerializable(() => {
|
|
63
|
+
'worklet';
|
|
64
|
+
|
|
65
|
+
setupCallGuard();
|
|
66
|
+
registerWorkletsError();
|
|
67
|
+
setupConsole(runtimeBoundCapturableConsole);
|
|
68
|
+
if (enableEventLoop) {
|
|
69
|
+
setupRunLoop(animationQueuePollingRate);
|
|
70
|
+
}
|
|
71
|
+
initializerFn?.();
|
|
72
|
+
}), useDefaultQueue, customQueue, enableEventLoop);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// @ts-expect-error Check `runOnUI` overload.
|
|
76
|
+
|
|
77
|
+
/** Schedule a worklet to execute on the background queue. */
|
|
78
|
+
export function runOnRuntime(workletRuntime, worklet) {
|
|
79
|
+
'worklet';
|
|
80
|
+
|
|
81
|
+
if (__DEV__ && !SHOULD_BE_USE_WEB && !isWorkletFunction(worklet)) {
|
|
82
|
+
throw new WorkletsError('The function passed to `runOnRuntime` is not a worklet.');
|
|
83
|
+
}
|
|
84
|
+
if (globalThis.__RUNTIME_KIND !== RuntimeKind.ReactNative) {
|
|
85
|
+
return (...args) => globalThis._scheduleOnRuntime(workletRuntime, makeShareableCloneOnUIRecursive(() => {
|
|
86
|
+
'worklet';
|
|
87
|
+
|
|
88
|
+
worklet(...args);
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
return (...args) => WorkletsModule.scheduleOnRuntime(workletRuntime, createSerializable(() => {
|
|
92
|
+
'worklet';
|
|
93
|
+
|
|
94
|
+
worklet(...args);
|
|
95
|
+
globalThis.__flushMicrotasks();
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** Configuration object for creating a worklet runtime. */
|
|
100
|
+
//# sourceMappingURL=runtimes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["setupCallGuard","getMemorySafeCapturableConsole","setupConsole","SHOULD_BE_USE_WEB","setupRunLoop","RuntimeKind","createSerializable","makeShareableCloneOnUIRecursive","isWorkletFunction","registerWorkletsError","WorkletsError","WorkletsModule","createWorkletRuntime","nameOrConfig","initializer","runtimeBoundCapturableConsole","name","initializerFn","useDefaultQueue","customQueue","animationQueuePollingRate","enableEventLoop","Math","round","runOnRuntime","workletRuntime","worklet","__DEV__","globalThis","__RUNTIME_KIND","ReactNative","args","_scheduleOnRuntime","scheduleOnRuntime","__flushMicrotasks"],"sourceRoot":"../../src","sources":["runtimes.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,cAAc,QAAQ,aAAa;AAC5C,SAASC,8BAA8B,EAAEC,YAAY,QAAQ,gBAAgB;AAC7E,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SACEC,kBAAkB,EAClBC,+BAA+B,QAC1B,gBAAgB;AACvB,SAASC,iBAAiB,QAAQ,mBAAmB;AACrD,SAASC,qBAAqB,EAAEC,aAAa,QAAQ,iBAAiB;AACtE,SAASC,cAAc,QAAQ,kBAAkB;;AAGjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,OAAO,SAASC,oBAAoBA,CAClCC,YAAoD,EACpDC,WAAuC,EACvB;EAChB,MAAMC,6BAA6B,GAAGd,8BAA8B,CAAC,CAAC;EAEtE,IAAIe,IAAY;EAChB,IAAIC,aAAuC;EAC3C,IAAIC,eAAe,GAAG,IAAI;EAC1B,IAAIC,WAA+B;EACnC,IAAIC,yBAAiC;EACrC,IAAIC,eAAe,GAAG,IAAI;EAC1B,IAAI,OAAOR,YAAY,KAAK,QAAQ,EAAE;IACpCG,IAAI,GAAGH,YAAY;IACnBI,aAAa,GAAGH,WAAW;EAC7B,CAAC,MAAM;IACL;IACAE,IAAI,GAAGH,YAAY,EAAEG,IAAI,IAAI,WAAW;IACxCC,aAAa,GAAGJ,YAAY,EAAEC,WAAW;IACzCI,eAAe,GAAGL,YAAY,EAAEK,eAAe,IAAI,IAAI;IACvDC,WAAW,GAAGN,YAAY,EAAEM,WAAW;IACvCC,yBAAyB,GAAGE,IAAI,CAACC,KAAK,CACpCV,YAAY,EAAEO,yBAAyB,IAAI,EAC7C,CAAC;IACDC,eAAe,GAAGR,YAAY,EAAEQ,eAAe,IAAI,IAAI;EACzD;EAEA,IAAIJ,aAAa,IAAI,CAACT,iBAAiB,CAACS,aAAa,CAAC,EAAE;IACtD,MAAM,IAAIP,aAAa,CACrB,oEACF,CAAC;EACH;EAEA,OAAOC,cAAc,CAACC,oBAAoB,CACxCI,IAAI,EACJV,kBAAkB,CAAC,MAAM;IACvB,SAAS;;IACTN,cAAc,CAAC,CAAC;IAChBS,qBAAqB,CAAC,CAAC;IACvBP,YAAY,CAACa,6BAA6B,CAAC;IAC3C,IAAIM,eAAe,EAAE;MACnBjB,YAAY,CAACgB,yBAAyB,CAAC;IACzC;IACAH,aAAa,GAAG,CAAC;EACnB,CAAC,CAAC,EACFC,eAAe,EACfC,WAAW,EACXE,eACF,CAAC;AACH;;AAEA;;AAKA;AACA,OAAO,SAASG,YAAYA,CAC1BC,cAA8B,EAC9BC,OAA2C,EAClB;EACzB,SAAS;;EACT,IAAIC,OAAO,IAAI,CAACxB,iBAAiB,IAAI,CAACK,iBAAiB,CAACkB,OAAO,CAAC,EAAE;IAChE,MAAM,IAAIhB,aAAa,CACrB,yDACF,CAAC;EACH;EACA,IAAIkB,UAAU,CAACC,cAAc,KAAKxB,WAAW,CAACyB,WAAW,EAAE;IACzD,OAAO,CAAC,GAAGC,IAAI,KACbH,UAAU,CAACI,kBAAkB,CAC3BP,cAAc,EACdlB,+BAA+B,CAAC,MAAM;MACpC,SAAS;;MACTmB,OAAO,CAAC,GAAGK,IAAI,CAAC;IAClB,CAAC,CACH,CAAC;EACL;EACA,OAAO,CAAC,GAAGA,IAAI,KACbpB,cAAc,CAACsB,iBAAiB,CAC9BR,cAAc,EACdnB,kBAAkB,CAAC,MAAM;IACvB,SAAS;;IACToB,OAAO,CAAC,GAAGK,IAAI,CAAC;IAChBH,UAAU,CAACM,iBAAiB,CAAC,CAAC;EAChC,CAAC,CACH,CAAC;AACL;;AAEA","ignoreList":[]}
|