vxrn 2.0.0-beta.33.1 → 2.0.0-beta.362.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backgroundComputation.mjs +145 -0
- package/dist/backgroundComputation.mjs.map +1 -0
- package/dist/backgroundComputation.native.js +163 -0
- package/dist/backgroundComputation.native.js.map +1 -0
- package/dist/backgroundComputationNative.mjs +16 -0
- package/dist/backgroundComputationNative.mjs.map +1 -0
- package/dist/backgroundComputationNative.native.js +18 -0
- package/dist/backgroundComputationNative.native.js.map +1 -0
- package/dist/cli.mjs +229 -261
- package/dist/cli.mjs.map +1 -1
- package/dist/cli.native.js +233 -265
- package/dist/cli.native.js.map +1 -1
- package/dist/config/getAdditionalViteConfig.mjs +32 -62
- package/dist/config/getAdditionalViteConfig.mjs.map +1 -1
- package/dist/config/getAdditionalViteConfig.native.js +32 -62
- package/dist/config/getAdditionalViteConfig.native.js.map +1 -1
- package/dist/config/getBaseViteConfigOnly.mjs +79 -77
- package/dist/config/getBaseViteConfigOnly.mjs.map +1 -1
- package/dist/config/getBaseViteConfigOnly.native.js +81 -79
- package/dist/config/getBaseViteConfigOnly.native.js.map +1 -1
- package/dist/config/getBaseViteConfigWithPlugins.mjs +6 -4
- package/dist/config/getBaseViteConfigWithPlugins.mjs.map +1 -1
- package/dist/config/getBaseViteConfigWithPlugins.native.js +6 -4
- package/dist/config/getBaseViteConfigWithPlugins.native.js.map +1 -1
- package/dist/config/getBaseVitePlugins.mjs +106 -130
- package/dist/config/getBaseVitePlugins.mjs.map +1 -1
- package/dist/config/getBaseVitePlugins.native.js +127 -152
- package/dist/config/getBaseVitePlugins.native.js.map +1 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.mjs +3 -3
- package/dist/config/getNonCliModeOnlyVitePlugins.mjs.map +1 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.native.js +3 -1
- package/dist/config/getNonCliModeOnlyVitePlugins.native.js.map +1 -1
- package/dist/config/getOptimizeDeps.mjs +132 -42
- package/dist/config/getOptimizeDeps.mjs.map +1 -1
- package/dist/config/getOptimizeDeps.native.js +132 -42
- package/dist/config/getOptimizeDeps.native.js.map +1 -1
- package/dist/config/getOptionsFilled.mjs +48 -52
- package/dist/config/getOptionsFilled.mjs.map +1 -1
- package/dist/config/getOptionsFilled.native.js +51 -55
- package/dist/config/getOptionsFilled.native.js.map +1 -1
- package/dist/config/getReactNativePlugins.mjs +17 -15
- package/dist/config/getReactNativePlugins.mjs.map +1 -1
- package/dist/config/getReactNativePlugins.native.js +19 -16
- package/dist/config/getReactNativePlugins.native.js.map +1 -1
- package/dist/config/getServerOptionsFilled.mjs +33 -35
- package/dist/config/getServerOptionsFilled.mjs.map +1 -1
- package/dist/config/getServerOptionsFilled.native.js +35 -38
- package/dist/config/getServerOptionsFilled.native.js.map +1 -1
- package/dist/config/getViteServerConfig.mjs +34 -45
- package/dist/config/getViteServerConfig.mjs.map +1 -1
- package/dist/config/getViteServerConfig.native.js +35 -46
- package/dist/config/getViteServerConfig.native.js.map +1 -1
- package/dist/config/mergeUserConfig.mjs +50 -28
- package/dist/config/mergeUserConfig.mjs.map +1 -1
- package/dist/config/mergeUserConfig.native.js +60 -38
- package/dist/config/mergeUserConfig.native.js.map +1 -1
- package/dist/constants/defaults.mjs +34 -12
- package/dist/constants/defaults.mjs.map +1 -1
- package/dist/constants/defaults.native.js +34 -12
- package/dist/constants/defaults.native.js.map +1 -1
- package/dist/constants.mjs +41 -6
- package/dist/constants.mjs.map +1 -1
- package/dist/constants.native.js +41 -6
- package/dist/constants.native.js.map +1 -1
- package/dist/exports/build.mjs +221 -270
- package/dist/exports/build.mjs.map +1 -1
- package/dist/exports/build.native.js +229 -283
- package/dist/exports/build.native.js.map +1 -1
- package/dist/exports/clean.mjs +71 -78
- package/dist/exports/clean.mjs.map +1 -1
- package/dist/exports/clean.native.js +76 -90
- package/dist/exports/clean.native.js.map +1 -1
- package/dist/exports/createServer.mjs +43 -46
- package/dist/exports/createServer.mjs.map +1 -1
- package/dist/exports/createServer.native.js +45 -48
- package/dist/exports/createServer.native.js.map +1 -1
- package/dist/exports/dev.mjs +180 -201
- package/dist/exports/dev.mjs.map +1 -1
- package/dist/exports/dev.native.js +194 -215
- package/dist/exports/dev.native.js.map +1 -1
- package/dist/exports/loadEnv.mjs +58 -49
- package/dist/exports/loadEnv.mjs.map +1 -1
- package/dist/exports/loadEnv.native.js +83 -58
- package/dist/exports/loadEnv.native.js.map +1 -1
- package/dist/exports/patch.mjs +9 -7
- package/dist/exports/patch.mjs.map +1 -1
- package/dist/exports/patch.native.js +9 -7
- package/dist/exports/patch.native.js.map +1 -1
- package/dist/exports/prebuild.mjs +74 -175
- package/dist/exports/prebuild.mjs.map +1 -1
- package/dist/exports/prebuild.native.js +77 -178
- package/dist/exports/prebuild.native.js.map +1 -1
- package/dist/exports/prebuildWithoutExpo.mjs +2300 -45
- package/dist/exports/prebuildWithoutExpo.mjs.map +1 -1
- package/dist/exports/prebuildWithoutExpo.native.js +2891 -46
- package/dist/exports/prebuildWithoutExpo.native.js.map +1 -1
- package/dist/exports/runAndroid.mjs +10 -11
- package/dist/exports/runAndroid.mjs.map +1 -1
- package/dist/exports/runAndroid.native.js +11 -12
- package/dist/exports/runAndroid.native.js.map +1 -1
- package/dist/exports/runIos.mjs +12 -11
- package/dist/exports/runIos.mjs.map +1 -1
- package/dist/exports/runIos.native.js +13 -12
- package/dist/exports/runIos.native.js.map +1 -1
- package/dist/exports/serve.mjs +23 -31
- package/dist/exports/serve.mjs.map +1 -1
- package/dist/exports/serve.native.js +26 -34
- package/dist/exports/serve.native.js.map +1 -1
- package/dist/exports/serveStaticAssets.mjs +109 -113
- package/dist/exports/serveStaticAssets.mjs.map +1 -1
- package/dist/exports/serveStaticAssets.native.js +180 -192
- package/dist/exports/serveStaticAssets.native.js.map +1 -1
- package/dist/index.js +32 -14
- package/dist/index.mjs +32 -14
- package/dist/index.native.js +32 -14
- package/dist/native-source-contract.mjs +3 -0
- package/dist/native-source-contract.native.js +3 -0
- package/dist/patches/builtInDepPatches.mjs +234 -424
- package/dist/patches/builtInDepPatches.mjs.map +1 -1
- package/dist/patches/builtInDepPatches.native.js +237 -427
- package/dist/patches/builtInDepPatches.native.js.map +1 -1
- package/dist/plugins/applyBuiltInPatchesPlugin.mjs +11 -11
- package/dist/plugins/applyBuiltInPatchesPlugin.mjs.map +1 -1
- package/dist/plugins/applyBuiltInPatchesPlugin.native.js +11 -11
- package/dist/plugins/applyBuiltInPatchesPlugin.native.js.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.mjs +87 -90
- package/dist/plugins/autoDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/autoDepOptimizePlugin.native.js +99 -102
- package/dist/plugins/autoDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/backgroundComputationPlugin.mjs +27 -0
- package/dist/plugins/backgroundComputationPlugin.mjs.map +1 -0
- package/dist/plugins/backgroundComputationPlugin.native.js +32 -0
- package/dist/plugins/backgroundComputationPlugin.native.js.map +1 -0
- package/dist/plugins/clientInjectPlugin.mjs +13 -11
- package/dist/plugins/clientInjectPlugin.mjs.map +1 -1
- package/dist/plugins/clientInjectPlugin.native.js +13 -11
- package/dist/plugins/clientInjectPlugin.native.js.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.mjs +15 -23
- package/dist/plugins/defaultDepOptimizePlugin.mjs.map +1 -1
- package/dist/plugins/defaultDepOptimizePlugin.native.js +15 -23
- package/dist/plugins/defaultDepOptimizePlugin.native.js.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.mjs +6 -5
- package/dist/plugins/getResolvedConfigSubset.mjs.map +1 -1
- package/dist/plugins/getResolvedConfigSubset.native.js +6 -5
- package/dist/plugins/getResolvedConfigSubset.native.js.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.mjs +210 -178
- package/dist/plugins/reactNativeCommonJsPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeCommonJsPlugin.native.js +283 -259
- package/dist/plugins/reactNativeCommonJsPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.mjs +73 -83
- package/dist/plugins/reactNativeDevAssetPlugin.mjs.map +1 -1
- package/dist/plugins/reactNativeDevAssetPlugin.native.js +76 -92
- package/dist/plugins/reactNativeDevAssetPlugin.native.js.map +1 -1
- package/dist/plugins/reactNativeDevServer.mjs +416 -328
- package/dist/plugins/reactNativeDevServer.mjs.map +1 -1
- package/dist/plugins/reactNativeDevServer.native.js +470 -391
- package/dist/plugins/reactNativeDevServer.native.js.map +1 -1
- package/dist/plugins/rnCodegenPlugin.mjs +13 -12
- package/dist/plugins/rnCodegenPlugin.mjs.map +1 -1
- package/dist/plugins/rnCodegenPlugin.native.js +13 -12
- package/dist/plugins/rnCodegenPlugin.native.js.map +1 -1
- package/dist/plugins/rollupRemoveUnusedImports.mjs +8 -7
- package/dist/plugins/rollupRemoveUnusedImports.mjs.map +1 -1
- package/dist/plugins/rollupRemoveUnusedImports.native.js +8 -7
- package/dist/plugins/rollupRemoveUnusedImports.native.js.map +1 -1
- package/dist/plugins/workletImportsPlugin.mjs +123 -149
- package/dist/plugins/workletImportsPlugin.mjs.map +1 -1
- package/dist/plugins/workletImportsPlugin.native.js +183 -219
- package/dist/plugins/workletImportsPlugin.native.js.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.mjs +48 -79
- package/dist/rn-commands/bundle/buildBundle.mjs.map +1 -1
- package/dist/rn-commands/bundle/buildBundle.native.js +49 -85
- package/dist/rn-commands/bundle/buildBundle.native.js.map +1 -1
- package/dist/runtime/hmr-client.mjs +133 -140
- package/dist/runtime/hmr-client.mjs.map +1 -1
- package/dist/runtime/hmr-client.native.js +223 -222
- package/dist/runtime/hmr-client.native.js.map +1 -1
- package/dist/runtime/hmr-runtime.mjs +192 -194
- package/dist/runtime/hmr-runtime.mjs.map +1 -1
- package/dist/runtime/hmr-runtime.native.js +424 -411
- package/dist/runtime/hmr-runtime.native.js.map +1 -1
- package/dist/runtime/hmr-types.mjs +0 -2
- package/dist/runtime/hmr-types.native.js +0 -2
- package/dist/runtime/native-prelude.mjs +3 -1
- package/dist/runtime/native-prelude.mjs.map +1 -1
- package/dist/runtime/native-prelude.native.js +3 -1
- package/dist/runtime/native-prelude.native.js.map +1 -1
- package/dist/runtime/react-refresh-utils.mjs +23 -22
- package/dist/runtime/react-refresh-utils.mjs.map +1 -1
- package/dist/runtime/react-refresh-utils.native.js +23 -27
- package/dist/runtime/react-refresh-utils.native.js.map +1 -1
- package/dist/serve/node.mjs +49 -49
- package/dist/serve/node.mjs.map +1 -1
- package/dist/serve/node.native.js +92 -96
- package/dist/serve/node.native.js.map +1 -1
- package/dist/swift-package-id.mjs +3 -0
- package/dist/swift-package-id.native.js +3 -0
- package/dist/types.mjs +0 -2
- package/dist/types.native.js +0 -2
- package/dist/user-interface/index.mjs +203 -270
- package/dist/user-interface/index.mjs.map +1 -1
- package/dist/user-interface/index.native.js +215 -306
- package/dist/user-interface/index.native.js.map +1 -1
- package/dist/utils/assert.mjs +7 -6
- package/dist/utils/assert.mjs.map +1 -1
- package/dist/utils/assert.native.js +7 -18
- package/dist/utils/assert.native.js.map +1 -1
- package/dist/utils/bindKeypressInput.mjs +36 -38
- package/dist/utils/bindKeypressInput.mjs.map +1 -1
- package/dist/utils/bindKeypressInput.native.js +36 -38
- package/dist/utils/bindKeypressInput.native.js.map +1 -1
- package/dist/utils/coerceToArray.mjs +2 -1
- package/dist/utils/coerceToArray.mjs.map +1 -1
- package/dist/utils/coerceToArray.native.js +2 -1
- package/dist/utils/coerceToArray.native.js.map +1 -1
- package/dist/utils/compileNativeDevBytecode.mjs +93 -0
- package/dist/utils/compileNativeDevBytecode.mjs.map +1 -0
- package/dist/utils/compileNativeDevBytecode.native.js +98 -0
- package/dist/utils/compileNativeDevBytecode.native.js.map +1 -0
- package/dist/utils/connectedNativeClients.mjs +3 -2
- package/dist/utils/connectedNativeClients.mjs.map +1 -1
- package/dist/utils/connectedNativeClients.native.js +3 -2
- package/dist/utils/connectedNativeClients.native.js.map +1 -1
- package/dist/utils/createNativeDevEngine.mjs +1168 -952
- package/dist/utils/createNativeDevEngine.mjs.map +1 -1
- package/dist/utils/createNativeDevEngine.native.js +1366 -1167
- package/dist/utils/createNativeDevEngine.native.js.map +1 -1
- package/dist/utils/dispose.mjs +4 -3
- package/dist/utils/dispose.mjs.map +1 -1
- package/dist/utils/dispose.native.js +6 -5
- package/dist/utils/dispose.native.js.map +1 -1
- package/dist/utils/environmentUtils.mjs +5 -4
- package/dist/utils/environmentUtils.mjs.map +1 -1
- package/dist/utils/environmentUtils.native.js +5 -4
- package/dist/utils/environmentUtils.native.js.map +1 -1
- package/dist/utils/execSync.mjs +7 -5
- package/dist/utils/execSync.mjs.map +1 -1
- package/dist/utils/execSync.native.js +8 -6
- package/dist/utils/execSync.native.js.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.mjs +24 -22
- package/dist/utils/filterViteServerResolvedUrls.mjs.map +1 -1
- package/dist/utils/filterViteServerResolvedUrls.native.js +61 -63
- package/dist/utils/filterViteServerResolvedUrls.native.js.map +1 -1
- package/dist/utils/getBoundPort.mjs +6 -5
- package/dist/utils/getBoundPort.mjs.map +1 -1
- package/dist/utils/getBoundPort.native.js +8 -12
- package/dist/utils/getBoundPort.native.js.map +1 -1
- package/dist/utils/getCacheDir.mjs +3 -1
- package/dist/utils/getCacheDir.mjs.map +1 -1
- package/dist/utils/getCacheDir.native.js +3 -1
- package/dist/utils/getCacheDir.native.js.map +1 -1
- package/dist/utils/getServerEntry.mjs +6 -4
- package/dist/utils/getServerEntry.mjs.map +1 -1
- package/dist/utils/getServerEntry.native.js +8 -11
- package/dist/utils/getServerEntry.native.js.map +1 -1
- package/dist/utils/getVitePath.mjs +42 -42
- package/dist/utils/getVitePath.mjs.map +1 -1
- package/dist/utils/getVitePath.native.js +43 -41
- package/dist/utils/getVitePath.native.js.map +1 -1
- package/dist/utils/globDir.mjs +7 -11
- package/dist/utils/globDir.mjs.map +1 -1
- package/dist/utils/globDir.native.js +10 -14
- package/dist/utils/globDir.native.js.map +1 -1
- package/dist/utils/isWithin.mjs +4 -2
- package/dist/utils/isWithin.mjs.map +1 -1
- package/dist/utils/isWithin.native.js +4 -2
- package/dist/utils/isWithin.native.js.map +1 -1
- package/dist/utils/nativeRun.mjs +150 -0
- package/dist/utils/nativeRun.mjs.map +1 -0
- package/dist/utils/nativeRun.native.js +189 -0
- package/dist/utils/nativeRun.native.js.map +1 -0
- package/dist/utils/nativeSourceContract.mjs +843 -0
- package/dist/utils/nativeSourceContract.mjs.map +1 -0
- package/dist/utils/nativeSourceContract.native.js +1050 -0
- package/dist/utils/nativeSourceContract.native.js.map +1 -0
- package/dist/utils/nearestPackageJson.mjs +16 -0
- package/dist/utils/nearestPackageJson.mjs.map +1 -0
- package/dist/utils/nearestPackageJson.native.js +16 -0
- package/dist/utils/nearestPackageJson.native.js.map +1 -0
- package/dist/utils/patches.mjs +233 -255
- package/dist/utils/patches.mjs.map +1 -1
- package/dist/utils/patches.native.js +415 -460
- package/dist/utils/patches.native.js.map +1 -1
- package/dist/utils/printServerUrls.mjs +9 -7
- package/dist/utils/printServerUrls.mjs.map +1 -1
- package/dist/utils/printServerUrls.native.js +48 -51
- package/dist/utils/printServerUrls.native.js.map +1 -1
- package/dist/utils/removeUndefined.mjs +8 -7
- package/dist/utils/removeUndefined.mjs.map +1 -1
- package/dist/utils/removeUndefined.native.js +8 -7
- package/dist/utils/removeUndefined.native.js.map +1 -1
- package/dist/utils/scanDepsToOptimize.mjs +196 -159
- package/dist/utils/scanDepsToOptimize.mjs.map +1 -1
- package/dist/utils/scanDepsToOptimize.native.js +232 -195
- package/dist/utils/scanDepsToOptimize.native.js.map +1 -1
- package/dist/utils/state.mjs +18 -18
- package/dist/utils/state.mjs.map +1 -1
- package/dist/utils/state.native.js +18 -18
- package/dist/utils/state.native.js.map +1 -1
- package/dist/utils/swiftPackageId.mjs +43 -0
- package/dist/utils/swiftPackageId.mjs.map +1 -0
- package/dist/utils/swiftPackageId.native.js +62 -0
- package/dist/utils/swiftPackageId.native.js.map +1 -0
- package/dist/utils/symbolicateNativeStack.mjs +54 -54
- package/dist/utils/symbolicateNativeStack.mjs.map +1 -1
- package/dist/utils/symbolicateNativeStack.native.js +58 -58
- package/dist/utils/symbolicateNativeStack.native.js.map +1 -1
- package/dist/utils/uniq.mjs +2 -1
- package/dist/utils/uniq.mjs.map +1 -1
- package/dist/utils/uniq.native.js +2 -1
- package/dist/utils/uniq.native.js.map +1 -1
- package/dist/utils/utils.mjs +19 -19
- package/dist/utils/utils.mjs.map +1 -1
- package/dist/utils/utils.native.js +38 -40
- package/dist/utils/utils.native.js.map +1 -1
- package/dist/vendor/debugger-app/index.mjs +0 -2
- package/dist/vendor/debugger-app/index.native.js +0 -2
- package/dist/vendor/debugger-app/src/debuggerWorker.mjs +0 -2
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js +0 -2
- package/dist/vendor/debugger-app/src/index.mjs +0 -2
- package/dist/vendor/debugger-app/src/index.native.js +0 -2
- package/dist/vxrn-vite-plugin.mjs +34 -33
- package/dist/vxrn-vite-plugin.mjs.map +1 -1
- package/dist/vxrn-vite-plugin.native.js +35 -34
- package/dist/vxrn-vite-plugin.native.js.map +1 -1
- package/expo-plugin.cjs +502 -888
- package/native-project-patches.cjs +740 -0
- package/package.json +40 -22
- package/react-native-commands.cjs +36 -30
- package/src/backgroundComputation.ts +220 -0
- package/src/backgroundComputationNative.ts +23 -0
- package/src/cli.ts +29 -6
- package/src/config/getAdditionalViteConfig.ts +0 -1
- package/src/config/getBaseViteConfigOnly.ts +12 -8
- package/src/config/getBaseVitePlugins.ts +2 -1
- package/src/config/getOptimizeDeps.test.ts +7 -0
- package/src/config/getOptimizeDeps.ts +20 -12
- package/src/config/getReactNativePlugins.ts +3 -15
- package/src/config/getServerOptionsFilled.ts +1 -1
- package/src/config/glbAssets.test.ts +228 -0
- package/src/constants/defaults.ts +7 -0
- package/src/exports/build.ts +4 -1
- package/src/exports/dev.ts +5 -1
- package/src/exports/expoPlugin.test.mjs +239 -0
- package/src/exports/loadEnv.test.ts +22 -0
- package/src/exports/loadEnv.ts +20 -11
- package/src/exports/prebuild.ts +68 -255
- package/src/exports/prebuildWithoutExpo.test.ts +2669 -0
- package/src/exports/prebuildWithoutExpo.ts +3110 -34
- package/src/exports/runAndroid.ts +2 -2
- package/src/exports/runIos.ts +13 -3
- package/src/index.ts +10 -0
- package/src/native-source-contract.ts +16 -0
- package/src/patches/builtInDepPatches.ts +0 -184
- package/src/plugins/backgroundComputationPlugin.test.ts +77 -0
- package/src/plugins/backgroundComputationPlugin.ts +29 -0
- package/src/plugins/reactNativeDevAssetPlugin.ts +5 -1
- package/src/plugins/reactNativeDevServer.ts +176 -6
- package/src/plugins/rnCodegenPlugin.test.ts +30 -0
- package/src/plugins/workletImportsPlugin.ts +20 -38
- package/src/rn-commands/bundle/buildBundle.ts +10 -8
- package/src/runtime/native-prelude.ts +1 -0
- package/src/swift-package-id.ts +1 -0
- package/src/user-interface/index.ts +3 -85
- package/src/utils/compileNativeDevBytecode.test.ts +168 -0
- package/src/utils/compileNativeDevBytecode.ts +117 -0
- package/src/utils/createNativeDevEngine.test.ts +424 -22
- package/src/utils/createNativeDevEngine.ts +308 -60
- package/src/utils/nativeRun.test.ts +184 -0
- package/src/utils/nativeRun.ts +184 -0
- package/src/utils/nativeSourceContract.test.ts +183 -0
- package/src/utils/nativeSourceContract.ts +812 -0
- package/src/utils/nearestPackageJson.ts +24 -0
- package/src/utils/scanDepsToOptimize.test.ts +113 -0
- package/src/utils/scanDepsToOptimize.ts +24 -12
- package/src/utils/swiftPackageId.ts +38 -0
- package/src/vxrn-vite-plugin.ts +2 -5
- package/types/backgroundComputation.d.ts +28 -0
- package/types/backgroundComputation.d.ts.map +1 -0
- package/types/backgroundComputationNative.d.ts +2 -0
- package/types/backgroundComputationNative.d.ts.map +1 -0
- package/types/config/getAdditionalViteConfig.d.ts.map +1 -1
- package/types/config/getBaseViteConfigOnly.d.ts.map +1 -1
- package/types/config/getBaseVitePlugins.d.ts.map +1 -1
- package/types/config/getOptimizeDeps.d.ts +5 -0
- package/types/config/getOptimizeDeps.d.ts.map +1 -1
- package/types/config/getOptionsFilled.d.ts +15 -15
- package/types/config/getOptionsFilled.d.ts.map +1 -1
- package/types/config/getReactNativePlugins.d.ts +2 -2
- package/types/config/getReactNativePlugins.d.ts.map +1 -1
- package/types/constants/defaults.d.ts.map +1 -1
- package/types/exports/build.d.ts +11 -11
- package/types/exports/build.d.ts.map +1 -1
- package/types/exports/clean.d.ts +1 -1
- package/types/exports/clean.d.ts.map +1 -1
- package/types/exports/createServer.d.ts.map +1 -1
- package/types/exports/dev.d.ts.map +1 -1
- package/types/exports/loadEnv.d.ts +1 -3
- package/types/exports/loadEnv.d.ts.map +1 -1
- package/types/exports/patch.d.ts.map +1 -1
- package/types/exports/prebuild.d.ts +5 -4
- package/types/exports/prebuild.d.ts.map +1 -1
- package/types/exports/prebuildWithoutExpo.d.ts +37 -1
- package/types/exports/prebuildWithoutExpo.d.ts.map +1 -1
- package/types/exports/runAndroid.d.ts.map +1 -1
- package/types/exports/runIos.d.ts +3 -1
- package/types/exports/runIos.d.ts.map +1 -1
- package/types/exports/serve.d.ts.map +1 -1
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +1 -1
- package/types/native-source-contract.d.ts +2 -0
- package/types/native-source-contract.d.ts.map +1 -0
- package/types/patches/builtInDepPatches.d.ts.map +1 -1
- package/types/plugins/autoDepOptimizePlugin.d.ts.map +1 -1
- package/types/plugins/backgroundComputationPlugin.d.ts +3 -0
- package/types/plugins/backgroundComputationPlugin.d.ts.map +1 -0
- package/types/plugins/reactNativeDevAssetPlugin.d.ts.map +1 -1
- package/types/plugins/reactNativeDevServer.d.ts.map +1 -1
- package/types/plugins/rollupRemoveUnusedImports.d.ts.map +1 -1
- package/types/plugins/workletImportsPlugin.d.ts.map +1 -1
- package/types/rn-commands/bundle/buildBundle.d.ts.map +1 -1
- package/types/runtime/hmr-client.d.ts.map +1 -1
- package/types/runtime/hmr-runtime.d.ts.map +1 -1
- package/types/runtime/hmr-types.d.ts.map +1 -1
- package/types/runtime/native-prelude.d.ts.map +1 -1
- package/types/swift-package-id.d.ts +2 -0
- package/types/swift-package-id.d.ts.map +1 -0
- package/types/user-interface/index.d.ts.map +1 -1
- package/types/utils/compileNativeDevBytecode.d.ts +3 -0
- package/types/utils/compileNativeDevBytecode.d.ts.map +1 -0
- package/types/utils/createNativeDevEngine.d.ts +8 -23
- package/types/utils/createNativeDevEngine.d.ts.map +1 -1
- package/types/utils/execSync.d.ts.map +1 -1
- package/types/utils/getServerEntry.d.ts.map +1 -1
- package/types/utils/nativeRun.d.ts +25 -0
- package/types/utils/nativeRun.d.ts.map +1 -0
- package/types/utils/nativeSourceContract.d.ts +67 -0
- package/types/utils/nativeSourceContract.d.ts.map +1 -0
- package/types/utils/nearestPackageJson.d.ts +2 -0
- package/types/utils/nearestPackageJson.d.ts.map +1 -0
- package/types/utils/scanDepsToOptimize.d.ts.map +1 -1
- package/types/utils/swiftPackageId.d.ts +4 -0
- package/types/utils/swiftPackageId.d.ts.map +1 -0
- package/types/vxrn-vite-plugin.d.ts +2 -2
- package/types/vxrn-vite-plugin.d.ts.map +1 -1
- package/dist/config/getOptimizeDeps.test.mjs +0 -20
- package/dist/config/getOptimizeDeps.test.mjs.map +0 -1
- package/dist/config/getOptimizeDeps.test.native.js +0 -39
- package/dist/config/getOptimizeDeps.test.native.js.map +0 -1
- package/dist/config/getServerOptionsFilled.test.mjs +0 -20
- package/dist/config/getServerOptionsFilled.test.mjs.map +0 -1
- package/dist/config/getServerOptionsFilled.test.native.js +0 -20
- package/dist/config/getServerOptionsFilled.test.native.js.map +0 -1
- package/dist/config/getViteServerConfig.test.mjs +0 -26
- package/dist/config/getViteServerConfig.test.mjs.map +0 -1
- package/dist/config/getViteServerConfig.test.native.js +0 -26
- package/dist/config/getViteServerConfig.test.native.js.map +0 -1
- package/dist/config/mergeUserConfig.test.mjs +0 -108
- package/dist/config/mergeUserConfig.test.mjs.map +0 -1
- package/dist/config/mergeUserConfig.test.native.js +0 -108
- package/dist/config/mergeUserConfig.test.native.js.map +0 -1
- package/dist/exports/clean.test.mjs +0 -81
- package/dist/exports/clean.test.mjs.map +0 -1
- package/dist/exports/clean.test.native.js +0 -88
- package/dist/exports/clean.test.native.js.map +0 -1
- package/dist/exports/loadEnv.test.mjs +0 -65
- package/dist/exports/loadEnv.test.mjs.map +0 -1
- package/dist/exports/loadEnv.test.native.js +0 -65
- package/dist/exports/loadEnv.test.native.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/index.native.js.map +0 -1
- package/dist/plugins/autoDepOptimizePlugin.test.mjs +0 -31
- package/dist/plugins/autoDepOptimizePlugin.test.mjs.map +0 -1
- package/dist/plugins/autoDepOptimizePlugin.test.native.js +0 -39
- package/dist/plugins/autoDepOptimizePlugin.test.native.js.map +0 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs +0 -189
- package/dist/plugins/expoManifestRequestHandlerPlugin.mjs.map +0 -1
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js +0 -202
- package/dist/plugins/expoManifestRequestHandlerPlugin.native.js.map +0 -1
- package/dist/plugins/resolveIdScan.test.mjs +0 -31
- package/dist/plugins/resolveIdScan.test.mjs.map +0 -1
- package/dist/plugins/resolveIdScan.test.native.js +0 -38
- package/dist/plugins/resolveIdScan.test.native.js.map +0 -1
- package/dist/plugins/rnCodegenPlugin.test.mjs +0 -239
- package/dist/plugins/rnCodegenPlugin.test.mjs.map +0 -1
- package/dist/plugins/rnCodegenPlugin.test.native.js +0 -242
- package/dist/plugins/rnCodegenPlugin.test.native.js.map +0 -1
- package/dist/plugins/serverExtensions.test.mjs +0 -106
- package/dist/plugins/serverExtensions.test.mjs.map +0 -1
- package/dist/plugins/serverExtensions.test.native.js +0 -117
- package/dist/plugins/serverExtensions.test.native.js.map +0 -1
- package/dist/runtime/hmr-types.mjs.map +0 -1
- package/dist/runtime/hmr-types.native.js.map +0 -1
- package/dist/serve/node.test.mjs +0 -60
- package/dist/serve/node.test.mjs.map +0 -1
- package/dist/serve/node.test.native.js +0 -72
- package/dist/serve/node.test.native.js.map +0 -1
- package/dist/types.mjs.map +0 -1
- package/dist/types.native.js.map +0 -1
- package/dist/utils/bindKeypressInput.test.mjs +0 -48
- package/dist/utils/bindKeypressInput.test.mjs.map +0 -1
- package/dist/utils/bindKeypressInput.test.native.js +0 -48
- package/dist/utils/bindKeypressInput.test.native.js.map +0 -1
- package/dist/utils/createNativeDevEngine.test.mjs +0 -1788
- package/dist/utils/createNativeDevEngine.test.mjs.map +0 -1
- package/dist/utils/createNativeDevEngine.test.native.js +0 -1942
- package/dist/utils/createNativeDevEngine.test.native.js.map +0 -1
- package/dist/utils/createNativeDevEngineFailure.test.mjs +0 -44
- package/dist/utils/createNativeDevEngineFailure.test.mjs.map +0 -1
- package/dist/utils/createNativeDevEngineFailure.test.native.js +0 -54
- package/dist/utils/createNativeDevEngineFailure.test.native.js.map +0 -1
- package/dist/utils/expoRun.mjs +0 -48
- package/dist/utils/expoRun.mjs.map +0 -1
- package/dist/utils/expoRun.native.js +0 -49
- package/dist/utils/expoRun.native.js.map +0 -1
- package/dist/utils/getBoundPort.test.mjs +0 -71
- package/dist/utils/getBoundPort.test.mjs.map +0 -1
- package/dist/utils/getBoundPort.test.native.js +0 -82
- package/dist/utils/getBoundPort.test.native.js.map +0 -1
- package/dist/utils/imageSizePatch.test.mjs +0 -29
- package/dist/utils/imageSizePatch.test.mjs.map +0 -1
- package/dist/utils/imageSizePatch.test.native.js +0 -30
- package/dist/utils/imageSizePatch.test.native.js.map +0 -1
- package/dist/utils/patches.test.mjs +0 -242
- package/dist/utils/patches.test.mjs.map +0 -1
- package/dist/utils/patches.test.native.js +0 -271
- package/dist/utils/patches.test.native.js.map +0 -1
- package/dist/utils/symbolicateNativeStack.test.mjs +0 -96
- package/dist/utils/symbolicateNativeStack.test.mjs.map +0 -1
- package/dist/utils/symbolicateNativeStack.test.native.js +0 -96
- package/dist/utils/symbolicateNativeStack.test.native.js.map +0 -1
- package/dist/vendor/debugger-app/index.mjs.map +0 -1
- package/dist/vendor/debugger-app/index.native.js.map +0 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.mjs.map +0 -1
- package/dist/vendor/debugger-app/src/debuggerWorker.native.js.map +0 -1
- package/dist/vendor/debugger-app/src/index.mjs.map +0 -1
- package/dist/vendor/debugger-app/src/index.native.js.map +0 -1
- package/expo-js-native-debugging-plugin.cjs +0 -241
- package/src/plugins/expoManifestRequestHandlerPlugin.ts +0 -260
- package/src/utils/expoRun.ts +0 -71
- package/types/config/getOptimizeDeps.test.d.ts +0 -2
- package/types/config/getOptimizeDeps.test.d.ts.map +0 -1
- package/types/config/getServerOptionsFilled.test.d.ts +0 -2
- package/types/config/getServerOptionsFilled.test.d.ts.map +0 -1
- package/types/config/getViteServerConfig.test.d.ts +0 -2
- package/types/config/getViteServerConfig.test.d.ts.map +0 -1
- package/types/config/mergeUserConfig.test.d.ts +0 -2
- package/types/config/mergeUserConfig.test.d.ts.map +0 -1
- package/types/exports/clean.test.d.ts +0 -2
- package/types/exports/clean.test.d.ts.map +0 -1
- package/types/exports/loadEnv.test.d.ts +0 -2
- package/types/exports/loadEnv.test.d.ts.map +0 -1
- package/types/plugins/autoDepOptimizePlugin.test.d.ts +0 -2
- package/types/plugins/autoDepOptimizePlugin.test.d.ts.map +0 -1
- package/types/plugins/expoManifestRequestHandlerPlugin.d.ts +0 -8
- package/types/plugins/expoManifestRequestHandlerPlugin.d.ts.map +0 -1
- package/types/plugins/resolveIdScan.test.d.ts +0 -2
- package/types/plugins/resolveIdScan.test.d.ts.map +0 -1
- package/types/plugins/rnCodegenPlugin.test.d.ts +0 -2
- package/types/plugins/rnCodegenPlugin.test.d.ts.map +0 -1
- package/types/plugins/serverExtensions.test.d.ts +0 -2
- package/types/plugins/serverExtensions.test.d.ts.map +0 -1
- package/types/serve/node.test.d.ts +0 -2
- package/types/serve/node.test.d.ts.map +0 -1
- package/types/utils/bindKeypressInput.test.d.ts +0 -2
- package/types/utils/bindKeypressInput.test.d.ts.map +0 -1
- package/types/utils/createNativeDevEngine.test.d.ts +0 -2
- package/types/utils/createNativeDevEngine.test.d.ts.map +0 -1
- package/types/utils/createNativeDevEngineFailure.test.d.ts +0 -2
- package/types/utils/createNativeDevEngineFailure.test.d.ts.map +0 -1
- package/types/utils/expoRun.d.ts +0 -6
- package/types/utils/expoRun.d.ts.map +0 -1
- package/types/utils/getBoundPort.test.d.ts +0 -2
- package/types/utils/getBoundPort.test.d.ts.map +0 -1
- package/types/utils/imageSizePatch.test.d.ts +0 -2
- package/types/utils/imageSizePatch.test.d.ts.map +0 -1
- package/types/utils/patches.test.d.ts +0 -2
- package/types/utils/patches.test.d.ts.map +0 -1
- package/types/utils/symbolicateNativeStack.test.d.ts +0 -2
- package/types/utils/symbolicateNativeStack.test.d.ts.map +0 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import MagicString from "magic-string";
|
|
2
|
+
import { parse } from "sucrase/dist/parser/index.js";
|
|
3
|
+
import { IdentifierRole } from "sucrase/dist/parser/tokenizer/index.js";
|
|
4
|
+
import { TokenType } from "sucrase/dist/parser/tokenizer/types.js";
|
|
5
|
+
|
|
6
|
+
const marker = ".__one_background_worker_";
|
|
7
|
+
const hex = (name) => [...new TextEncoder().encode(name)].map((byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
8
|
+
function loadBackgroundComputationModule(id) {
|
|
9
|
+
const match = id.match(/^(.*?)\.__one_background_worker_([a-f0-9]+)\.js(?:\?.*)?$/);
|
|
10
|
+
if (!match) return;
|
|
11
|
+
const [, calculate, encoded] = match;
|
|
12
|
+
const name = new TextDecoder().decode(Uint8Array.from(encoded.match(/../g), (byte) => Number.parseInt(byte, 16)));
|
|
13
|
+
return {
|
|
14
|
+
id,
|
|
15
|
+
calculate,
|
|
16
|
+
name,
|
|
17
|
+
platform: "web",
|
|
18
|
+
source: `import { ${name} as calculate } from ${JSON.stringify(calculate)};
|
|
19
|
+
self.onmessage = ({ data: { revision, input } }) => {
|
|
20
|
+
try {
|
|
21
|
+
const value = calculate(input);
|
|
22
|
+
if (value instanceof Promise) throw new TypeError('background computations must be synchronous');
|
|
23
|
+
self.postMessage({ ok: true, result: { revision, value } });
|
|
24
|
+
} catch (error) {
|
|
25
|
+
self.postMessage({ ok: false, revision, error: String(error) });
|
|
26
|
+
}
|
|
27
|
+
};`
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function transformBackgroundComputations(source, id, options) {
|
|
31
|
+
if (!source.includes("defineBackgroundComputation") || id.includes(marker)) return;
|
|
32
|
+
const file = parse(source, !/\.[cm]?ts(?:\?|$)/.test(id), /\.[cm]?tsx?(?:\?|$)/.test(id), false);
|
|
33
|
+
const { tokens } = file;
|
|
34
|
+
const text = (index) => tokens[index] ? source.slice(tokens[index].start, tokens[index].end) : "";
|
|
35
|
+
const imports = /* @__PURE__ */ new Map();
|
|
36
|
+
const definitions = /* @__PURE__ */ new Set();
|
|
37
|
+
for (let index = 0; index < tokens.length; index++) {
|
|
38
|
+
if (text(index) !== "import" || tokens[index].isType || text(index + 1) !== "{") continue;
|
|
39
|
+
const start = index + 2;
|
|
40
|
+
let end = start;
|
|
41
|
+
while (end < tokens.length && text(end) !== "}") end++;
|
|
42
|
+
if (text(end + 1) !== "from" || tokens[end + 2]?.type !== TokenType.string) continue;
|
|
43
|
+
const specifier = text(end + 2).slice(1, -1);
|
|
44
|
+
for (let binding = start; binding < end; binding++) {
|
|
45
|
+
if (tokens[binding].isType || tokens[binding].type !== TokenType.name) continue;
|
|
46
|
+
const name = text(binding);
|
|
47
|
+
const local = text(binding + 1) === "as" ? text(binding + 2) : name;
|
|
48
|
+
imports.set(local, {
|
|
49
|
+
source: specifier,
|
|
50
|
+
name
|
|
51
|
+
});
|
|
52
|
+
if (specifier === "one/background" && name === "defineBackgroundComputation") definitions.add(local);
|
|
53
|
+
if (local !== name) binding += 2;
|
|
54
|
+
}
|
|
55
|
+
index = end + 2;
|
|
56
|
+
}
|
|
57
|
+
if (!definitions.size) return;
|
|
58
|
+
const code = new MagicString(source);
|
|
59
|
+
const modules = [];
|
|
60
|
+
for (let index = 0; index < tokens.length; index++) {
|
|
61
|
+
const token = tokens[index];
|
|
62
|
+
if (token.identifierRole !== IdentifierRole.Access || !definitions.has(text(index))) continue;
|
|
63
|
+
let opening = index + 1;
|
|
64
|
+
while (tokens[opening]?.isType) opening++;
|
|
65
|
+
if (text(opening) !== "(") continue;
|
|
66
|
+
let binding = index - 2;
|
|
67
|
+
while (tokens[binding]?.isType) binding--;
|
|
68
|
+
if (token.scopeDepth !== 0 || text(index - 1) !== "=" || tokens[binding]?.identifierRole !== IdentifierRole.TopLevelDeclaration) throw new Error(`[one background] ${id}: definitions must be module-scope variables`);
|
|
69
|
+
const argument = tokens[opening + 1];
|
|
70
|
+
const calculate = argument?.type === TokenType.name ? imports.get(text(opening + 1)) : void 0;
|
|
71
|
+
if (!calculate || !calculate.source.startsWith(".") || text(opening + 2) !== ")") throw new Error(`[one background] ${id}: defineBackgroundComputation requires one named import from a relative pure module at module scope`);
|
|
72
|
+
const resolved = options.resolve(calculate.source, id);
|
|
73
|
+
if (options.platform === "native") {
|
|
74
|
+
const local = `__oneBackgroundCalculate${modules.length}`;
|
|
75
|
+
const module = {
|
|
76
|
+
id: `${resolved}.__one_background_native_${hex(calculate.name)}.js`,
|
|
77
|
+
source: `export { ${calculate.name} } from ${JSON.stringify(resolved)};`,
|
|
78
|
+
calculate: resolved,
|
|
79
|
+
name: calculate.name,
|
|
80
|
+
platform: "native"
|
|
81
|
+
};
|
|
82
|
+
const selected = options.nativeModule ? options.nativeModule(module) : `${calculate.source}?one-background=${encodeURIComponent(calculate.name)}`;
|
|
83
|
+
code.prepend(`import { ${calculate.name} as ${local} } from ${JSON.stringify(selected)};
|
|
84
|
+
`);
|
|
85
|
+
code.overwrite(argument.start, argument.end, local);
|
|
86
|
+
modules.push(module);
|
|
87
|
+
} else {
|
|
88
|
+
const module = loadBackgroundComputationModule(`${resolved}${marker}${hex(calculate.name)}.js`);
|
|
89
|
+
const factory = options.workerFactory ? options.workerFactory(module) : `() => new Worker(new URL(${JSON.stringify(module.id)}, import.meta.url), { type: 'module' })`;
|
|
90
|
+
code.appendLeft(tokens[opening + 2].start, `, ${factory}`);
|
|
91
|
+
modules.push(module);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!modules.length) return;
|
|
95
|
+
return {
|
|
96
|
+
code: code.toString(),
|
|
97
|
+
map: code.generateMap({ hires: true }),
|
|
98
|
+
modules
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function createBackgroundWorkletModule(bundle, names, key) {
|
|
102
|
+
const loader = `__oneLoadWorkletModule_${key}`;
|
|
103
|
+
return `function ${loader}() {
|
|
104
|
+
'worklet';
|
|
105
|
+
const cache = globalThis.__oneWorkletImportCache || (globalThis.__oneWorkletImportCache = new WeakMap());
|
|
106
|
+
let namespace = cache.get(${loader});
|
|
107
|
+
if (namespace === undefined) {
|
|
108
|
+
${bundle}
|
|
109
|
+
namespace = __oneWorkletBundle;
|
|
110
|
+
cache.set(${loader}, namespace);
|
|
111
|
+
}
|
|
112
|
+
return namespace;
|
|
113
|
+
}
|
|
114
|
+
${names.map((name, index) => `function __oneExport${index}(...args) {
|
|
115
|
+
'worklet';
|
|
116
|
+
return (0, ${loader}().__export${index})(...args);
|
|
117
|
+
}
|
|
118
|
+
export { __oneExport${index} as ${name} };`).join("\n")}`;
|
|
119
|
+
}
|
|
120
|
+
function assertBackgroundDependency(source) {
|
|
121
|
+
const name = source.replaceAll("\\", "/");
|
|
122
|
+
if (name.startsWith("node:") || /(?:^|\/node_modules\/)(?:react|react-native|react-native-worklets|react-native-reanimated|@react-native)(?:\/|$)/.test(name)) throw new Error(`[one background] runtime dependency ${source} is not pure JavaScript`);
|
|
123
|
+
}
|
|
124
|
+
function bundleBackgroundGraph(modules, entry, names) {
|
|
125
|
+
return `var __oneWorkletBundle = (function () {
|
|
126
|
+
const factories = { ${modules.map((module) => `${module.id}: function(global, _require, _importDefault, _importAll, module, exports, _dependencyMap) {
|
|
127
|
+
${module.code}
|
|
128
|
+
}`).join(",\n")} };
|
|
129
|
+
const dependencies = ${JSON.stringify(Object.fromEntries(modules.map((module) => [module.id, module.dependencies])))};
|
|
130
|
+
const cache = Object.create(null);
|
|
131
|
+
function require(id) {
|
|
132
|
+
if (cache[id]) return cache[id].exports;
|
|
133
|
+
const module = cache[id] = { exports: {} };
|
|
134
|
+
factories[id](globalThis, require, importDefault, importAll, module, module.exports, dependencies[id]);
|
|
135
|
+
return module.exports;
|
|
136
|
+
}
|
|
137
|
+
function importDefault(id) { const value = require(id); return value && value.__esModule ? value.default : value; }
|
|
138
|
+
function importAll(id) { const value = require(id); return value && value.__esModule ? value : Object.assign({ default: value }, value); }
|
|
139
|
+
const namespace = require(${entry});
|
|
140
|
+
return { ${names.map((name, index) => `__export${index}: namespace[${JSON.stringify(name)}]`).join(", ")} };
|
|
141
|
+
})();`;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
export { assertBackgroundDependency, bundleBackgroundGraph, createBackgroundWorkletModule, loadBackgroundComputationModule, transformBackgroundComputations };
|
|
145
|
+
//# sourceMappingURL=backgroundComputation.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backgroundComputation.js","names":[],"sources":["backgroundComputation.js"],"sourcesContent":["import MagicString from \"magic-string\";\nimport { parse } from \"sucrase/dist/parser/index.js\";\nimport { IdentifierRole } from \"sucrase/dist/parser/tokenizer/index.js\";\nimport { TokenType } from \"sucrase/dist/parser/tokenizer/types.js\";\nconst marker = \".__one_background_worker_\";\nconst hex = (name) => [...new TextEncoder().encode(name)].map((byte) => byte.toString(16).padStart(2, \"0\")).join(\"\");\nfunction loadBackgroundComputationModule(id) {\n const match = id.match(/^(.*?)\\.__one_background_worker_([a-f0-9]+)\\.js(?:\\?.*)?$/);\n if (!match) return;\n const [, calculate, encoded] = match;\n const name = new TextDecoder().decode(\n Uint8Array.from(encoded.match(/../g), (byte) => Number.parseInt(byte, 16))\n );\n return {\n id,\n calculate,\n name,\n platform: \"web\",\n source: `import { ${name} as calculate } from ${JSON.stringify(calculate)};\nself.onmessage = ({ data: { revision, input } }) => {\n try {\n const value = calculate(input);\n if (value instanceof Promise) throw new TypeError('background computations must be synchronous');\n self.postMessage({ ok: true, result: { revision, value } });\n } catch (error) {\n self.postMessage({ ok: false, revision, error: String(error) });\n }\n};`\n };\n}\nfunction transformBackgroundComputations(source, id, options) {\n if (!source.includes(\"defineBackgroundComputation\") || id.includes(marker)) return;\n const file = parse(\n source,\n !/\\.[cm]?ts(?:\\?|$)/.test(id),\n /\\.[cm]?tsx?(?:\\?|$)/.test(id),\n false\n );\n const { tokens } = file;\n const text = (index) => tokens[index] ? source.slice(tokens[index].start, tokens[index].end) : \"\";\n const imports = /* @__PURE__ */ new Map();\n const definitions = /* @__PURE__ */ new Set();\n for (let index = 0; index < tokens.length; index++) {\n if (text(index) !== \"import\" || tokens[index].isType || text(index + 1) !== \"{\")\n continue;\n const start = index + 2;\n let end = start;\n while (end < tokens.length && text(end) !== \"}\") end++;\n if (text(end + 1) !== \"from\" || tokens[end + 2]?.type !== TokenType.string) continue;\n const specifier = text(end + 2).slice(1, -1);\n for (let binding = start; binding < end; binding++) {\n if (tokens[binding].isType || tokens[binding].type !== TokenType.name) continue;\n const name = text(binding);\n const local = text(binding + 1) === \"as\" ? text(binding + 2) : name;\n imports.set(local, { source: specifier, name });\n if (specifier === \"one/background\" && name === \"defineBackgroundComputation\")\n definitions.add(local);\n if (local !== name) binding += 2;\n }\n index = end + 2;\n }\n if (!definitions.size) return;\n const code = new MagicString(source);\n const modules = [];\n for (let index = 0; index < tokens.length; index++) {\n const token = tokens[index];\n if (token.identifierRole !== IdentifierRole.Access || !definitions.has(text(index)))\n continue;\n let opening = index + 1;\n while (tokens[opening]?.isType) opening++;\n if (text(opening) !== \"(\") continue;\n let binding = index - 2;\n while (tokens[binding]?.isType) binding--;\n if (token.scopeDepth !== 0 || text(index - 1) !== \"=\" || tokens[binding]?.identifierRole !== IdentifierRole.TopLevelDeclaration)\n throw new Error(\n `[one background] ${id}: definitions must be module-scope variables`\n );\n const argument = tokens[opening + 1];\n const calculate = argument?.type === TokenType.name ? imports.get(text(opening + 1)) : void 0;\n if (!calculate || !calculate.source.startsWith(\".\") || text(opening + 2) !== \")\")\n throw new Error(\n `[one background] ${id}: defineBackgroundComputation requires one named import from a relative pure module at module scope`\n );\n const resolved = options.resolve(calculate.source, id);\n if (options.platform === \"native\") {\n const local = `__oneBackgroundCalculate${modules.length}`;\n const module = {\n id: `${resolved}.__one_background_native_${hex(calculate.name)}.js`,\n source: `export { ${calculate.name} } from ${JSON.stringify(resolved)};`,\n calculate: resolved,\n name: calculate.name,\n platform: \"native\"\n };\n const selected = options.nativeModule ? options.nativeModule(module) : `${calculate.source}?one-background=${encodeURIComponent(calculate.name)}`;\n code.prepend(\n `import { ${calculate.name} as ${local} } from ${JSON.stringify(selected)};\n`\n );\n code.overwrite(argument.start, argument.end, local);\n modules.push(module);\n } else {\n const module = loadBackgroundComputationModule(\n `${resolved}${marker}${hex(calculate.name)}.js`\n );\n const factory = options.workerFactory ? options.workerFactory(module) : `() => new Worker(new URL(${JSON.stringify(module.id)}, import.meta.url), { type: 'module' })`;\n code.appendLeft(tokens[opening + 2].start, `, ${factory}`);\n modules.push(module);\n }\n }\n if (!modules.length) return;\n return { code: code.toString(), map: code.generateMap({ hires: true }), modules };\n}\nfunction createBackgroundWorkletModule(bundle, names, key) {\n const loader = `__oneLoadWorkletModule_${key}`;\n return `function ${loader}() {\n 'worklet';\n const cache = globalThis.__oneWorkletImportCache || (globalThis.__oneWorkletImportCache = new WeakMap());\n let namespace = cache.get(${loader});\n if (namespace === undefined) {\n ${bundle}\n namespace = __oneWorkletBundle;\n cache.set(${loader}, namespace);\n }\n return namespace;\n}\n${names.map(\n (name, index) => `function __oneExport${index}(...args) {\n 'worklet';\n return (0, ${loader}().__export${index})(...args);\n}\nexport { __oneExport${index} as ${name} };`\n ).join(\"\\n\")}`;\n}\nfunction assertBackgroundDependency(source) {\n const name = source.replaceAll(\"\\\\\", \"/\");\n if (name.startsWith(\"node:\") || /(?:^|\\/node_modules\\/)(?:react|react-native|react-native-worklets|react-native-reanimated|@react-native)(?:\\/|$)/.test(\n name\n ))\n throw new Error(\n `[one background] runtime dependency ${source} is not pure JavaScript`\n );\n}\nfunction bundleBackgroundGraph(modules, entry, names) {\n return `var __oneWorkletBundle = (function () {\n const factories = { ${modules.map((module) => `${module.id}: function(global, _require, _importDefault, _importAll, module, exports, _dependencyMap) {\n${module.code}\n}`).join(\",\\n\")} };\n const dependencies = ${JSON.stringify(Object.fromEntries(modules.map((module) => [module.id, module.dependencies])))};\n const cache = Object.create(null);\n function require(id) {\n if (cache[id]) return cache[id].exports;\n const module = cache[id] = { exports: {} };\n factories[id](globalThis, require, importDefault, importAll, module, module.exports, dependencies[id]);\n return module.exports;\n }\n function importDefault(id) { const value = require(id); return value && value.__esModule ? value.default : value; }\n function importAll(id) { const value = require(id); return value && value.__esModule ? value : Object.assign({ default: value }, value); }\n const namespace = require(${entry});\n return { ${names.map((name, index) => `__export${index}: namespace[${JSON.stringify(name)}]`).join(\", \")} };\n})();`;\n}\nexport {\n assertBackgroundDependency,\n bundleBackgroundGraph,\n createBackgroundWorkletModule,\n loadBackgroundComputationModule,\n transformBackgroundComputations\n};\n//# sourceMappingURL=backgroundComputation.js.map\n"],"mappings":"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"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import MagicString from "magic-string";
|
|
2
|
+
import { parse } from "sucrase/dist/parser/index.js";
|
|
3
|
+
import { IdentifierRole } from "sucrase/dist/parser/tokenizer/index.js";
|
|
4
|
+
import { TokenType } from "sucrase/dist/parser/tokenizer/types.js";
|
|
5
|
+
|
|
6
|
+
var marker = ".__one_background_worker_";
|
|
7
|
+
var hex = function(name) {
|
|
8
|
+
return [...new TextEncoder().encode(name)].map(function(byte) {
|
|
9
|
+
return byte.toString(16).padStart(2, "0");
|
|
10
|
+
}).join("");
|
|
11
|
+
};
|
|
12
|
+
function loadBackgroundComputationModule(id) {
|
|
13
|
+
var match = id.match(/^(.*?)\.__one_background_worker_([a-f0-9]+)\.js(?:\?.*)?$/);
|
|
14
|
+
if (!match) return;
|
|
15
|
+
var [, calculate, encoded] = match;
|
|
16
|
+
var name = new TextDecoder().decode(Uint8Array.from(encoded.match(/../g), function(byte) {
|
|
17
|
+
return Number.parseInt(byte, 16);
|
|
18
|
+
}));
|
|
19
|
+
return {
|
|
20
|
+
id,
|
|
21
|
+
calculate,
|
|
22
|
+
name,
|
|
23
|
+
platform: "web",
|
|
24
|
+
source: `import { ${name} as calculate } from ${JSON.stringify(calculate)};
|
|
25
|
+
self.onmessage = ({ data: { revision, input } }) => {
|
|
26
|
+
try {
|
|
27
|
+
const value = calculate(input);
|
|
28
|
+
if (value instanceof Promise) throw new TypeError('background computations must be synchronous');
|
|
29
|
+
self.postMessage({ ok: true, result: { revision, value } });
|
|
30
|
+
} catch (error) {
|
|
31
|
+
self.postMessage({ ok: false, revision, error: String(error) });
|
|
32
|
+
}
|
|
33
|
+
};`
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function transformBackgroundComputations(source, id, options) {
|
|
37
|
+
if (!source.includes("defineBackgroundComputation") || id.includes(marker)) return;
|
|
38
|
+
var file = parse(source, !/\.[cm]?ts(?:\?|$)/.test(id), /\.[cm]?tsx?(?:\?|$)/.test(id), false);
|
|
39
|
+
var { tokens } = file;
|
|
40
|
+
var text = function(index2) {
|
|
41
|
+
return tokens[index2] ? source.slice(tokens[index2].start, tokens[index2].end) : "";
|
|
42
|
+
};
|
|
43
|
+
var imports = /* @__PURE__ */ new Map();
|
|
44
|
+
var definitions = /* @__PURE__ */ new Set();
|
|
45
|
+
for (var index = 0; index < tokens.length; index++) {
|
|
46
|
+
var _tokens_;
|
|
47
|
+
if (text(index) !== "import" || tokens[index].isType || text(index + 1) !== "{") continue;
|
|
48
|
+
var start = index + 2;
|
|
49
|
+
var end = start;
|
|
50
|
+
while (end < tokens.length && text(end) !== "}") end++;
|
|
51
|
+
if (text(end + 1) !== "from" || ((_tokens_ = tokens[end + 2]) === null || _tokens_ === void 0 ? void 0 : _tokens_.type) !== TokenType.string) continue;
|
|
52
|
+
var specifier = text(end + 2).slice(1, -1);
|
|
53
|
+
for (var binding = start; binding < end; binding++) {
|
|
54
|
+
if (tokens[binding].isType || tokens[binding].type !== TokenType.name) continue;
|
|
55
|
+
var name = text(binding);
|
|
56
|
+
var local = text(binding + 1) === "as" ? text(binding + 2) : name;
|
|
57
|
+
imports.set(local, {
|
|
58
|
+
source: specifier,
|
|
59
|
+
name
|
|
60
|
+
});
|
|
61
|
+
if (specifier === "one/background" && name === "defineBackgroundComputation") definitions.add(local);
|
|
62
|
+
if (local !== name) binding += 2;
|
|
63
|
+
}
|
|
64
|
+
index = end + 2;
|
|
65
|
+
}
|
|
66
|
+
if (!definitions.size) return;
|
|
67
|
+
var code = new MagicString(source);
|
|
68
|
+
var modules = [];
|
|
69
|
+
for (var index1 = 0; index1 < tokens.length; index1++) {
|
|
70
|
+
var _tokens_opening, _tokens_binding, _tokens_binding1;
|
|
71
|
+
var token = tokens[index1];
|
|
72
|
+
if (token.identifierRole !== IdentifierRole.Access || !definitions.has(text(index1))) continue;
|
|
73
|
+
var opening = index1 + 1;
|
|
74
|
+
while ((_tokens_opening = tokens[opening]) === null || _tokens_opening === void 0 ? void 0 : _tokens_opening.isType) opening++;
|
|
75
|
+
if (text(opening) !== "(") continue;
|
|
76
|
+
var binding1 = index1 - 2;
|
|
77
|
+
while ((_tokens_binding = tokens[binding1]) === null || _tokens_binding === void 0 ? void 0 : _tokens_binding.isType) binding1--;
|
|
78
|
+
if (token.scopeDepth !== 0 || text(index1 - 1) !== "=" || ((_tokens_binding1 = tokens[binding1]) === null || _tokens_binding1 === void 0 ? void 0 : _tokens_binding1.identifierRole) !== IdentifierRole.TopLevelDeclaration) throw new Error(`[one background] ${id}: definitions must be module-scope variables`);
|
|
79
|
+
var argument = tokens[opening + 1];
|
|
80
|
+
var calculate = (argument === null || argument === void 0 ? void 0 : argument.type) === TokenType.name ? imports.get(text(opening + 1)) : void 0;
|
|
81
|
+
if (!calculate || !calculate.source.startsWith(".") || text(opening + 2) !== ")") throw new Error(`[one background] ${id}: defineBackgroundComputation requires one named import from a relative pure module at module scope`);
|
|
82
|
+
var resolved = options.resolve(calculate.source, id);
|
|
83
|
+
if (options.platform === "native") {
|
|
84
|
+
var local1 = `__oneBackgroundCalculate${modules.length}`;
|
|
85
|
+
var module = {
|
|
86
|
+
id: `${resolved}.__one_background_native_${hex(calculate.name)}.js`,
|
|
87
|
+
source: `export { ${calculate.name} } from ${JSON.stringify(resolved)};`,
|
|
88
|
+
calculate: resolved,
|
|
89
|
+
name: calculate.name,
|
|
90
|
+
platform: "native"
|
|
91
|
+
};
|
|
92
|
+
var selected = options.nativeModule ? options.nativeModule(module) : `${calculate.source}?one-background=${encodeURIComponent(calculate.name)}`;
|
|
93
|
+
code.prepend(`import { ${calculate.name} as ${local1} } from ${JSON.stringify(selected)};
|
|
94
|
+
`);
|
|
95
|
+
code.overwrite(argument.start, argument.end, local1);
|
|
96
|
+
modules.push(module);
|
|
97
|
+
} else {
|
|
98
|
+
var module1 = loadBackgroundComputationModule(`${resolved}${marker}${hex(calculate.name)}.js`);
|
|
99
|
+
var factory = options.workerFactory ? options.workerFactory(module1) : `() => new Worker(new URL(${JSON.stringify(module1.id)}, import.meta.url), { type: 'module' })`;
|
|
100
|
+
code.appendLeft(tokens[opening + 2].start, `, ${factory}`);
|
|
101
|
+
modules.push(module1);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (!modules.length) return;
|
|
105
|
+
return {
|
|
106
|
+
code: code.toString(),
|
|
107
|
+
map: code.generateMap({ hires: true }),
|
|
108
|
+
modules
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function createBackgroundWorkletModule(bundle, names, key) {
|
|
112
|
+
var loader = `__oneLoadWorkletModule_${key}`;
|
|
113
|
+
return `function ${loader}() {
|
|
114
|
+
'worklet';
|
|
115
|
+
const cache = globalThis.__oneWorkletImportCache || (globalThis.__oneWorkletImportCache = new WeakMap());
|
|
116
|
+
let namespace = cache.get(${loader});
|
|
117
|
+
if (namespace === undefined) {
|
|
118
|
+
${bundle}
|
|
119
|
+
namespace = __oneWorkletBundle;
|
|
120
|
+
cache.set(${loader}, namespace);
|
|
121
|
+
}
|
|
122
|
+
return namespace;
|
|
123
|
+
}
|
|
124
|
+
${names.map(function(name, index) {
|
|
125
|
+
return `function __oneExport${index}(...args) {
|
|
126
|
+
'worklet';
|
|
127
|
+
return (0, ${loader}().__export${index})(...args);
|
|
128
|
+
}
|
|
129
|
+
export { __oneExport${index} as ${name} };`;
|
|
130
|
+
}).join("\n")}`;
|
|
131
|
+
}
|
|
132
|
+
function assertBackgroundDependency(source) {
|
|
133
|
+
var name = source.replaceAll("\\", "/");
|
|
134
|
+
if (name.startsWith("node:") || /(?:^|\/node_modules\/)(?:react|react-native|react-native-worklets|react-native-reanimated|@react-native)(?:\/|$)/.test(name)) throw new Error(`[one background] runtime dependency ${source} is not pure JavaScript`);
|
|
135
|
+
}
|
|
136
|
+
function bundleBackgroundGraph(modules, entry, names) {
|
|
137
|
+
return `var __oneWorkletBundle = (function () {
|
|
138
|
+
const factories = { ${modules.map(function(module) {
|
|
139
|
+
return `${module.id}: function(global, _require, _importDefault, _importAll, module, exports, _dependencyMap) {
|
|
140
|
+
${module.code}
|
|
141
|
+
}`;
|
|
142
|
+
}).join(",\n")} };
|
|
143
|
+
const dependencies = ${JSON.stringify(Object.fromEntries(modules.map(function(module) {
|
|
144
|
+
return [module.id, module.dependencies];
|
|
145
|
+
})))};
|
|
146
|
+
const cache = Object.create(null);
|
|
147
|
+
function require(id) {
|
|
148
|
+
if (cache[id]) return cache[id].exports;
|
|
149
|
+
const module = cache[id] = { exports: {} };
|
|
150
|
+
factories[id](globalThis, require, importDefault, importAll, module, module.exports, dependencies[id]);
|
|
151
|
+
return module.exports;
|
|
152
|
+
}
|
|
153
|
+
function importDefault(id) { const value = require(id); return value && value.__esModule ? value.default : value; }
|
|
154
|
+
function importAll(id) { const value = require(id); return value && value.__esModule ? value : Object.assign({ default: value }, value); }
|
|
155
|
+
const namespace = require(${entry});
|
|
156
|
+
return { ${names.map(function(name, index) {
|
|
157
|
+
return `__export${index}: namespace[${JSON.stringify(name)}]`;
|
|
158
|
+
}).join(", ")} };
|
|
159
|
+
})();`;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export { assertBackgroundDependency, bundleBackgroundGraph, createBackgroundWorkletModule, loadBackgroundComputationModule, transformBackgroundComputations };
|
|
163
|
+
//# sourceMappingURL=backgroundComputation.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backgroundComputation.native.js","names":[],"sources":["backgroundComputation.native.js"],"sourcesContent":["import MagicString from \"magic-string\";\nimport { parse } from \"sucrase/dist/parser/index.js\";\nimport { IdentifierRole } from \"sucrase/dist/parser/tokenizer/index.js\";\nimport { TokenType } from \"sucrase/dist/parser/tokenizer/types.js\";\nvar marker = \".__one_background_worker_\";\nvar hex = function(name) {\n return [\n ...new TextEncoder().encode(name)\n ].map(function(byte) {\n return byte.toString(16).padStart(2, \"0\");\n }).join(\"\");\n};\nfunction loadBackgroundComputationModule(id) {\n var match = id.match(/^(.*?)\\.__one_background_worker_([a-f0-9]+)\\.js(?:\\?.*)?$/);\n if (!match) return;\n var [, calculate, encoded] = match;\n var name = new TextDecoder().decode(Uint8Array.from(encoded.match(/../g), function(byte) {\n return Number.parseInt(byte, 16);\n }));\n return {\n id,\n calculate,\n name,\n platform: \"web\",\n source: `import { ${name} as calculate } from ${JSON.stringify(calculate)};\nself.onmessage = ({ data: { revision, input } }) => {\n try {\n const value = calculate(input);\n if (value instanceof Promise) throw new TypeError('background computations must be synchronous');\n self.postMessage({ ok: true, result: { revision, value } });\n } catch (error) {\n self.postMessage({ ok: false, revision, error: String(error) });\n }\n};`\n };\n}\nfunction transformBackgroundComputations(source, id, options) {\n if (!source.includes(\"defineBackgroundComputation\") || id.includes(marker)) return;\n var file = parse(source, !/\\.[cm]?ts(?:\\?|$)/.test(id), /\\.[cm]?tsx?(?:\\?|$)/.test(id), false);\n var { tokens } = file;\n var text = function(index2) {\n return tokens[index2] ? source.slice(tokens[index2].start, tokens[index2].end) : \"\";\n };\n var imports = /* @__PURE__ */ new Map();\n var definitions = /* @__PURE__ */ new Set();\n for (var index = 0; index < tokens.length; index++) {\n var _tokens_;\n if (text(index) !== \"import\" || tokens[index].isType || text(index + 1) !== \"{\") continue;\n var start = index + 2;\n var end = start;\n while (end < tokens.length && text(end) !== \"}\") end++;\n if (text(end + 1) !== \"from\" || ((_tokens_ = tokens[end + 2]) === null || _tokens_ === void 0 ? void 0 : _tokens_.type) !== TokenType.string) continue;\n var specifier = text(end + 2).slice(1, -1);\n for (var binding = start; binding < end; binding++) {\n if (tokens[binding].isType || tokens[binding].type !== TokenType.name) continue;\n var name = text(binding);\n var local = text(binding + 1) === \"as\" ? text(binding + 2) : name;\n imports.set(local, {\n source: specifier,\n name\n });\n if (specifier === \"one/background\" && name === \"defineBackgroundComputation\") definitions.add(local);\n if (local !== name) binding += 2;\n }\n index = end + 2;\n }\n if (!definitions.size) return;\n var code = new MagicString(source);\n var modules = [];\n for (var index1 = 0; index1 < tokens.length; index1++) {\n var _tokens_opening, _tokens_binding, _tokens_binding1;\n var token = tokens[index1];\n if (token.identifierRole !== IdentifierRole.Access || !definitions.has(text(index1))) continue;\n var opening = index1 + 1;\n while ((_tokens_opening = tokens[opening]) === null || _tokens_opening === void 0 ? void 0 : _tokens_opening.isType) opening++;\n if (text(opening) !== \"(\") continue;\n var binding1 = index1 - 2;\n while ((_tokens_binding = tokens[binding1]) === null || _tokens_binding === void 0 ? void 0 : _tokens_binding.isType) binding1--;\n if (token.scopeDepth !== 0 || text(index1 - 1) !== \"=\" || ((_tokens_binding1 = tokens[binding1]) === null || _tokens_binding1 === void 0 ? void 0 : _tokens_binding1.identifierRole) !== IdentifierRole.TopLevelDeclaration) throw new Error(`[one background] ${id}: definitions must be module-scope variables`);\n var argument = tokens[opening + 1];\n var calculate = (argument === null || argument === void 0 ? void 0 : argument.type) === TokenType.name ? imports.get(text(opening + 1)) : void 0;\n if (!calculate || !calculate.source.startsWith(\".\") || text(opening + 2) !== \")\") throw new Error(`[one background] ${id}: defineBackgroundComputation requires one named import from a relative pure module at module scope`);\n var resolved = options.resolve(calculate.source, id);\n if (options.platform === \"native\") {\n var local1 = `__oneBackgroundCalculate${modules.length}`;\n var module = {\n id: `${resolved}.__one_background_native_${hex(calculate.name)}.js`,\n source: `export { ${calculate.name} } from ${JSON.stringify(resolved)};`,\n calculate: resolved,\n name: calculate.name,\n platform: \"native\"\n };\n var selected = options.nativeModule ? options.nativeModule(module) : `${calculate.source}?one-background=${encodeURIComponent(calculate.name)}`;\n code.prepend(`import { ${calculate.name} as ${local1} } from ${JSON.stringify(selected)};\n`);\n code.overwrite(argument.start, argument.end, local1);\n modules.push(module);\n } else {\n var module1 = loadBackgroundComputationModule(`${resolved}${marker}${hex(calculate.name)}.js`);\n var factory = options.workerFactory ? options.workerFactory(module1) : `() => new Worker(new URL(${JSON.stringify(module1.id)}, import.meta.url), { type: 'module' })`;\n code.appendLeft(tokens[opening + 2].start, `, ${factory}`);\n modules.push(module1);\n }\n }\n if (!modules.length) return;\n return {\n code: code.toString(),\n map: code.generateMap({\n hires: true\n }),\n modules\n };\n}\nfunction createBackgroundWorkletModule(bundle, names, key) {\n var loader = `__oneLoadWorkletModule_${key}`;\n return `function ${loader}() {\n 'worklet';\n const cache = globalThis.__oneWorkletImportCache || (globalThis.__oneWorkletImportCache = new WeakMap());\n let namespace = cache.get(${loader});\n if (namespace === undefined) {\n ${bundle}\n namespace = __oneWorkletBundle;\n cache.set(${loader}, namespace);\n }\n return namespace;\n}\n${names.map(function(name, index) {\n return `function __oneExport${index}(...args) {\n 'worklet';\n return (0, ${loader}().__export${index})(...args);\n}\nexport { __oneExport${index} as ${name} };`;\n }).join(\"\\n\")}`;\n}\nfunction assertBackgroundDependency(source) {\n var name = source.replaceAll(\"\\\\\", \"/\");\n if (name.startsWith(\"node:\") || /(?:^|\\/node_modules\\/)(?:react|react-native|react-native-worklets|react-native-reanimated|@react-native)(?:\\/|$)/.test(name)) throw new Error(`[one background] runtime dependency ${source} is not pure JavaScript`);\n}\nfunction bundleBackgroundGraph(modules, entry, names) {\n return `var __oneWorkletBundle = (function () {\n const factories = { ${modules.map(function(module) {\n return `${module.id}: function(global, _require, _importDefault, _importAll, module, exports, _dependencyMap) {\n${module.code}\n}`;\n }).join(\",\\n\")} };\n const dependencies = ${JSON.stringify(Object.fromEntries(modules.map(function(module) {\n return [\n module.id,\n module.dependencies\n ];\n })))};\n const cache = Object.create(null);\n function require(id) {\n if (cache[id]) return cache[id].exports;\n const module = cache[id] = { exports: {} };\n factories[id](globalThis, require, importDefault, importAll, module, module.exports, dependencies[id]);\n return module.exports;\n }\n function importDefault(id) { const value = require(id); return value && value.__esModule ? value.default : value; }\n function importAll(id) { const value = require(id); return value && value.__esModule ? value : Object.assign({ default: value }, value); }\n const namespace = require(${entry});\n return { ${names.map(function(name, index) {\n return `__export${index}: namespace[${JSON.stringify(name)}]`;\n }).join(\", \")} };\n})();`;\n}\nexport {\n assertBackgroundDependency,\n bundleBackgroundGraph,\n createBackgroundWorkletModule,\n loadBackgroundComputationModule,\n transformBackgroundComputations\n};\n//# sourceMappingURL=backgroundComputation.js.map\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { JS_GLOBALS, getClosureVariables, transformHermesLoops } from "@vxrn/compiler/worklet-utils";
|
|
2
|
+
import { parseSync } from "oxc-parser";
|
|
3
|
+
|
|
4
|
+
function prepareBackgroundWorkletModule(source, id) {
|
|
5
|
+
const code = transformHermesLoops(source, id)?.code ?? source;
|
|
6
|
+
const parsed = parseSync(id, code, { lang: "js" });
|
|
7
|
+
if (parsed.errors.length) throw new Error(parsed.errors[0].message);
|
|
8
|
+
const captures = getClosureVariables(parsed.program.body[0], /* @__PURE__ */ new Set([...JS_GLOBALS, "arguments"]));
|
|
9
|
+
if (captures.length) {
|
|
10
|
+
throw new Error(`[worklet imports] ${id} requires unsupported runtime globals: ${captures.join(", ")}`);
|
|
11
|
+
}
|
|
12
|
+
return code;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { prepareBackgroundWorkletModule };
|
|
16
|
+
//# sourceMappingURL=backgroundComputationNative.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backgroundComputationNative.js","names":[],"sources":["backgroundComputationNative.js"],"sourcesContent":["import {\n getClosureVariables,\n JS_GLOBALS,\n transformHermesLoops\n} from \"@vxrn/compiler/worklet-utils\";\nimport { parseSync } from \"oxc-parser\";\nfunction prepareBackgroundWorkletModule(source, id) {\n const code = transformHermesLoops(source, id)?.code ?? source;\n const parsed = parseSync(id, code, { lang: \"js\" });\n if (parsed.errors.length) throw new Error(parsed.errors[0].message);\n const captures = getClosureVariables(\n parsed.program.body[0],\n /* @__PURE__ */ new Set([...JS_GLOBALS, \"arguments\"])\n );\n if (captures.length) {\n throw new Error(\n `[worklet imports] ${id} requires unsupported runtime globals: ${captures.join(\", \")}`\n );\n }\n return code;\n}\nexport {\n prepareBackgroundWorkletModule\n};\n//# sourceMappingURL=backgroundComputationNative.js.map\n"],"mappings":";;;;AAMA,SAAS,+BAA+B,QAAQ,IAAI;CAClD,MAAM,OAAO,qBAAqB,QAAQ,EAAE,CAAC,EAAE,QAAQ;CACvD,MAAM,SAAS,UAAU,IAAI,MAAM,EAAE,MAAM,KAAK,CAAC;CACjD,IAAI,OAAO,OAAO,QAAQ,MAAM,IAAI,MAAM,OAAO,OAAO,EAAE,CAAC,OAAO;CAClE,MAAM,WAAW,oBACf,OAAO,QAAQ,KAAK,oBACJ,IAAI,IAAI,CAAC,GAAG,YAAY,WAAW,CAAC,CACtD;CACA,IAAI,SAAS,QAAQ;EACnB,MAAM,IAAI,MACR,qBAAqB,GAAG,yCAAyC,SAAS,KAAK,IAAI,GACrF;CACF;CACA,OAAO;AACT"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { JS_GLOBALS, getClosureVariables, transformHermesLoops } from "@vxrn/compiler/worklet-utils";
|
|
2
|
+
import { parseSync } from "oxc-parser";
|
|
3
|
+
|
|
4
|
+
function prepareBackgroundWorkletModule(source, id) {
|
|
5
|
+
var _ref;
|
|
6
|
+
var _transformHermesLoops;
|
|
7
|
+
var code = (_ref = (_transformHermesLoops = transformHermesLoops(source, id)) === null || _transformHermesLoops === void 0 ? void 0 : _transformHermesLoops.code) !== null && _ref !== void 0 ? _ref : source;
|
|
8
|
+
var parsed = parseSync(id, code, { lang: "js" });
|
|
9
|
+
if (parsed.errors.length) throw new Error(parsed.errors[0].message);
|
|
10
|
+
var captures = getClosureVariables(parsed.program.body[0], /* @__PURE__ */ new Set([...JS_GLOBALS, "arguments"]));
|
|
11
|
+
if (captures.length) {
|
|
12
|
+
throw new Error(`[worklet imports] ${id} requires unsupported runtime globals: ${captures.join(", ")}`);
|
|
13
|
+
}
|
|
14
|
+
return code;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export { prepareBackgroundWorkletModule };
|
|
18
|
+
//# sourceMappingURL=backgroundComputationNative.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backgroundComputationNative.native.js","names":[],"sources":["backgroundComputationNative.native.js"],"sourcesContent":["import { getClosureVariables, JS_GLOBALS, transformHermesLoops } from \"@vxrn/compiler/worklet-utils\";\nimport { parseSync } from \"oxc-parser\";\nfunction prepareBackgroundWorkletModule(source, id) {\n var _ref;\n var _transformHermesLoops;\n var code = (_ref = (_transformHermesLoops = transformHermesLoops(source, id)) === null || _transformHermesLoops === void 0 ? void 0 : _transformHermesLoops.code) !== null && _ref !== void 0 ? _ref : source;\n var parsed = parseSync(id, code, {\n lang: \"js\"\n });\n if (parsed.errors.length) throw new Error(parsed.errors[0].message);\n var captures = getClosureVariables(parsed.program.body[0], /* @__PURE__ */ new Set([\n ...JS_GLOBALS,\n \"arguments\"\n ]));\n if (captures.length) {\n throw new Error(`[worklet imports] ${id} requires unsupported runtime globals: ${captures.join(\", \")}`);\n }\n return code;\n}\nexport {\n prepareBackgroundWorkletModule\n};\n//# sourceMappingURL=backgroundComputationNative.js.map\n"],"mappings":";;;;AAEA,SAAS,+BAA+B,QAAQ,IAAI;CAClD,IAAI;CACJ,IAAI;CACJ,IAAI,QAAQ,QAAQ,wBAAwB,qBAAqB,QAAQ,EAAE,OAAO,QAAQ,0BAA0B,KAAK,IAAI,KAAK,IAAI,sBAAsB,UAAU,QAAQ,SAAS,KAAK,IAAI,OAAO;CACvM,IAAI,SAAS,UAAU,IAAI,MAAM,EAC/B,MAAM,KACR,CAAC;CACD,IAAI,OAAO,OAAO,QAAQ,MAAM,IAAI,MAAM,OAAO,OAAO,EAAE,CAAC,OAAO;CAClE,IAAI,WAAW,oBAAoB,OAAO,QAAQ,KAAK,oBAAoB,IAAI,IAAI,CACjF,GAAG,YACH,WACF,CAAC,CAAC;CACF,IAAI,SAAS,QAAQ;EACnB,MAAM,IAAI,MAAM,qBAAqB,GAAG,yCAAyC,SAAS,KAAK,IAAI,GAAG;CACxG;CACA,OAAO;AACT"}
|