From 00248a917784f87718e3ebd2e1956d5f1e9dc190 Mon Sep 17 00:00:00 2001 From: Henry Heino <46334387+personalizedrefrigerator@users.noreply.github.com> Date: Wed, 4 Feb 2026 02:03:02 -0800 Subject: [PATCH] Mobile: Upgrade to React Native 0.81 (#14232) --- .eslintignore | 5 + .gitignore | 4 + .npmpackagejsonlintrc.json | 1 + cspell.json | 2 +- packages/app-mobile/android/app/build.gradle | 55 +- .../app-mobile/android/app/proguard-rules.pro | 4 + .../android/app/src/main/AndroidManifest.xml | 1 + .../android/app/src/main/cpp/CMakeLists.txt | 65 - .../app/src/main/cpp/whisperWrapper.cpp | 151 -- .../java/net/cozic/joplin/MainApplication.kt | 44 +- .../joplin/audio/InvalidSessionIdException.kt | 5 - .../cozic/joplin/audio/NativeWhisperLib.kt | 64 - .../joplin/audio/SpeechToTextConverter.kt | 62 - .../cozic/joplin/audio/SpeechToTextPackage.kt | 87 - .../audio/SpeechToTextSessionManager.kt | 111 - packages/app-mobile/android/build.gradle | 8 +- packages/app-mobile/android/gradle.properties | 9 +- .../android/gradle/wrapper/gradle-wrapper.jar | Bin 43705 -> 43764 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- packages/app-mobile/android/gradlew | 4 +- packages/app-mobile/android/gradlew.bat | 4 +- packages/app-mobile/android/vendor/.gitignore | 9 - packages/app-mobile/app.json | 7 +- .../app-mobile/components/BottomDrawer.tsx | 2 +- .../components/ExtendedWebView/index.tsx | 4 +- .../components/KeyboardAvoidingView.tsx | 26 + packages/app-mobile/components/Modal.tsx | 5 +- .../ProfileSwitcher/ProfileSwitcher.tsx | 2 +- .../components/ScreenHeader/index.tsx | 4 +- packages/app-mobile/components/SideMenu.tsx | 14 +- packages/app-mobile/components/app-nav.tsx | 34 +- .../plugins/PluginRunnerWebView.tsx | 14 +- packages/app-mobile/index.js | 6 +- packages/app-mobile/index.web.ts | 1 + .../app-mobile/ios/Joplin-tvOS/Info.plist | 2 + .../ios/Joplin.xcodeproj/project.pbxproj | 23 +- packages/app-mobile/ios/Joplin/Info.plist | 23 +- packages/app-mobile/ios/Podfile | 31 +- packages/app-mobile/ios/Podfile.lock | 1877 +++++++------ .../app-mobile/ios/Podfile.properties.json | 2 +- .../app-mobile/ios/ShareExtension/Info.plist | 2 + packages/app-mobile/jest.setup.js | 3 +- packages/app-mobile/metro.config.js | 1 + packages/app-mobile/package.json | 45 +- packages/app-mobile/root.tsx | 7 +- packages/app-mobile/services/e2ee/crypto.ts | 5 +- .../services/voiceTyping/whisper.test.ts | 36 +- .../services/voiceTyping/whisper.ts | 41 +- .../utils/fs-driver/fs-driver-rn.ts | 2 +- .../fs-driver/fs-driver-rn.web.worker.ts | 4 +- .../utils/image/getImageDimensions.ts | 7 +- .../app-mobile/utils/image/resizeImage.ts | 52 +- packages/app-mobile/utils/initReact.ts | 7 + .../app-mobile/utils/shim-init-react/index.ts | 4 +- packages/app-mobile/web/webpack.config.ts | 1 + packages/lib/shim-init-node.ts | 2 +- packages/react-native-saf-x/package.json | 4 +- packages/tools/cspell/dictionary4.txt | 1 + packages/tools/setupNewRelease.ts | 1 + packages/whisper-voice-typing/.gitignore | 84 + packages/whisper-voice-typing/.watchmanconfig | 1 + packages/whisper-voice-typing/README.md | 17 + .../WhisperVoiceTyping.podspec | 42 + .../android/CMakeLists.txt | 56 + .../whisper-voice-typing/android/build.gradle | 124 + .../android/gradle.properties | 5 + .../android/src/main/AndroidManifest.xml | 2 + .../android/src/main/cpp/cpp-adapter.cpp | 6 + .../whispervoicetyping}/AudioRecorder.kt | 62 +- .../whispervoicetyping/HybridAudioRecorder.kt | 44 + .../WhisperVoiceTypingPackage.kt | 22 + packages/whisper-voice-typing/babel.config.js | 3 + .../cpp/HybridWhisperSession.cpp | 48 + .../cpp/HybridWhisperSession.hpp | 22 + .../cpp/HybridWhisperVoiceTyping.cpp | 20 + .../cpp/HybridWhisperVoiceTyping.hpp | 16 + .../cpp/utils/SingleThread.cpp | 59 + .../cpp/utils/SingleThread.hpp | 61 + .../cpp/utils/SingleThread_test.cpp | 82 + .../cpp/utils/SingleThread_test.hpp | 3 + .../cpp/utils/WhisperSession.cpp | 14 +- .../cpp/utils/WhisperSession.hpp} | 2 +- .../cpp/utils/androidUtil.h | 12 + .../cpp/utils/findLongestSilence.cpp | 2 +- .../cpp/utils/findLongestSilence.hpp} | 0 .../cpp/utils/findLongestSilence_test.cpp | 14 +- .../cpp/utils/findLongestSilence_test.hpp} | 0 .../cpp/utils/testing.cpp | 9 + .../cpp/utils/testing.hpp | 20 + packages/whisper-voice-typing/ios/Bridge.h | 2 + packages/whisper-voice-typing/nitro.json | 26 + packages/whisper-voice-typing/package.json | 60 + .../react-native.config.js | 12 + packages/whisper-voice-typing/src/index.ts | 72 + .../src/specs/Whisper.nitro.ts | 25 + packages/whisper-voice-typing/tsconfig.json | 31 + .../vendor/README.md | 0 .../vendor/whisper.cpp/.gitignore | 0 .../vendor/whisper.cpp/AUTHORS | 0 .../vendor/whisper.cpp/CMakeLists.txt | 0 .../vendor/whisper.cpp/LICENSE | 0 .../vendor/whisper.cpp/README.md | 0 .../vendor/whisper.cpp/README_sycl.md | 496 ++-- .../vendor/whisper.cpp/build-xcframework.sh | 0 .../vendor/whisper.cpp/ci/README.md | 0 .../vendor/whisper.cpp/ci/run.sh | 0 .../vendor/whisper.cpp/close-issue.yml | 0 .../cmake/DefaultTargetOptions.cmake | 0 .../vendor/whisper.cpp/cmake/FindFFmpeg.cmake | 0 .../vendor/whisper.cpp/cmake/build-info.cmake | 0 .../vendor/whisper.cpp/cmake/git-vars.cmake | 0 .../whisper.cpp/cmake/whisper-config.cmake.in | 0 .../vendor/whisper.cpp/cmake/whisper.pc.in | 0 .../vendor/whisper.cpp/ggml/.gitignore | 0 .../vendor/whisper.cpp/ggml/CMakeLists.txt | 0 .../whisper.cpp/ggml/cmake/BuildTypes.cmake | 0 .../whisper.cpp/ggml/cmake/GitVars.cmake | 0 .../whisper.cpp/ggml/cmake/common.cmake | 0 .../ggml/cmake/ggml-config.cmake.in | 0 .../whisper.cpp/ggml/include/ggml-alloc.h | 0 .../whisper.cpp/ggml/include/ggml-backend.h | 0 .../whisper.cpp/ggml/include/ggml-blas.h | 0 .../whisper.cpp/ggml/include/ggml-cann.h | 0 .../whisper.cpp/ggml/include/ggml-cpp.h | 0 .../whisper.cpp/ggml/include/ggml-cpu.h | 0 .../whisper.cpp/ggml/include/ggml-cuda.h | 0 .../whisper.cpp/ggml/include/ggml-kompute.h | 0 .../whisper.cpp/ggml/include/ggml-metal.h | 0 .../whisper.cpp/ggml/include/ggml-opencl.h | 0 .../whisper.cpp/ggml/include/ggml-opt.h | 0 .../whisper.cpp/ggml/include/ggml-rpc.h | 0 .../whisper.cpp/ggml/include/ggml-sycl.h | 0 .../whisper.cpp/ggml/include/ggml-vulkan.h | 0 .../vendor/whisper.cpp/ggml/include/ggml.h | 0 .../vendor/whisper.cpp/ggml/include/gguf.h | 0 .../whisper.cpp/ggml/src/CMakeLists.txt | 0 .../vendor/whisper.cpp/ggml/src/ggml-alloc.c | 0 .../ggml/src/ggml-amx/CMakeLists.txt | 0 .../whisper.cpp/ggml/src/ggml-amx/common.h | 0 .../ggml/src/ggml-amx/ggml-amx.cpp | 0 .../whisper.cpp/ggml/src/ggml-amx/mmq.cpp | 0 .../whisper.cpp/ggml/src/ggml-amx/mmq.h | 0 .../whisper.cpp/ggml/src/ggml-backend-impl.h | 0 .../whisper.cpp/ggml/src/ggml-backend-reg.cpp | 0 .../whisper.cpp/ggml/src/ggml-backend.cpp | 0 .../ggml/src/ggml-blas/CMakeLists.txt | 0 .../ggml/src/ggml-blas/ggml-blas.cpp | 0 .../ggml/src/ggml-cann/CMakeLists.txt | 0 .../whisper.cpp/ggml/src/ggml-cann/Doxyfile | 0 .../ggml/src/ggml-cann/acl_tensor.cpp | 0 .../ggml/src/ggml-cann/acl_tensor.h | 0 .../ggml/src/ggml-cann/aclnn_ops.cpp | 0 .../ggml/src/ggml-cann/aclnn_ops.h | 0 .../whisper.cpp/ggml/src/ggml-cann/common.h | 0 .../ggml/src/ggml-cann/ggml-cann.cpp | 0 .../ggml/src/ggml-cann/kernels/CMakeLists.txt | 0 .../src/ggml-cann/kernels/ascendc_kernels.h | 0 .../ggml/src/ggml-cann/kernels/dup.cpp | 0 .../src/ggml-cann/kernels/get_row_f16.cpp | 0 .../src/ggml-cann/kernels/get_row_f32.cpp | 0 .../src/ggml-cann/kernels/get_row_q4_0.cpp | 0 .../src/ggml-cann/kernels/get_row_q8_0.cpp | 0 .../ggml-cann/kernels/quantize_f16_q8_0.cpp | 0 .../ggml-cann/kernels/quantize_f32_q8_0.cpp | 0 .../kernels/quantize_float_to_q4_0.cpp | 0 .../vendor/whisper.cpp/ggml/src/ggml-common.h | 0 .../ggml/src/ggml-cpu/CMakeLists.txt | 0 .../whisper.cpp/ggml/src/ggml-cpu/amx/amx.cpp | 0 .../whisper.cpp/ggml/src/ggml-cpu/amx/amx.h | 0 .../ggml/src/ggml-cpu/amx/common.h | 0 .../whisper.cpp/ggml/src/ggml-cpu/amx/mmq.cpp | 0 .../whisper.cpp/ggml/src/ggml-cpu/amx/mmq.h | 0 .../ggml/src/ggml-cpu/binary-ops.cpp | 0 .../ggml/src/ggml-cpu/binary-ops.h | 0 .../ggml/src/ggml-cpu/cmake/FindSIMD.cmake | 0 .../whisper.cpp/ggml/src/ggml-cpu/common.h | 0 .../ggml/src/ggml-cpu/cpu-feats-x86.cpp | 0 .../ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp | 0 .../ggml/src/ggml-cpu/ggml-cpu-aarch64.h | 0 .../ggml/src/ggml-cpu/ggml-cpu-hbm.cpp | 0 .../ggml/src/ggml-cpu/ggml-cpu-hbm.h | 0 .../ggml/src/ggml-cpu/ggml-cpu-impl.h | 0 .../ggml/src/ggml-cpu/ggml-cpu-quants.c | 0 .../ggml/src/ggml-cpu/ggml-cpu-quants.h | 0 .../ggml/src/ggml-cpu/ggml-cpu-traits.cpp | 0 .../ggml/src/ggml-cpu/ggml-cpu-traits.h | 0 .../whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.c | 0 .../ggml/src/ggml-cpu/ggml-cpu.cpp | 0 .../ggml/src/ggml-cpu/kleidiai/kernels.cpp | 0 .../ggml/src/ggml-cpu/kleidiai/kernels.h | 0 .../ggml/src/ggml-cpu/kleidiai/kleidiai.cpp | 0 .../ggml/src/ggml-cpu/kleidiai/kleidiai.h | 0 .../ggml/src/ggml-cpu/llamafile/sgemm.cpp | 0 .../ggml/src/ggml-cpu/llamafile/sgemm.h | 0 .../ggml/src/ggml-cpu/unary-ops.cpp | 0 .../whisper.cpp/ggml/src/ggml-cpu/unary-ops.h | 0 .../ggml/src/ggml-cuda/CMakeLists.txt | 0 .../whisper.cpp/ggml/src/ggml-cuda/acc.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/acc.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/arange.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/arange.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/argmax.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/argmax.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/argsort.cu | 0 .../ggml/src/ggml-cuda/argsort.cuh | 0 .../ggml/src/ggml-cuda/binbcast.cu | 0 .../ggml/src/ggml-cuda/binbcast.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/clamp.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/clamp.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/common.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/concat.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/concat.cuh | 0 .../ggml/src/ggml-cuda/conv-transpose-1d.cu | 0 .../ggml/src/ggml-cuda/conv-transpose-1d.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/convert.cu | 0 .../ggml/src/ggml-cuda/convert.cuh | 0 .../ggml/src/ggml-cuda/count-equal.cu | 0 .../ggml/src/ggml-cuda/count-equal.cuh | 0 .../ggml/src/ggml-cuda/cp-async.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/cpy.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/cpy.cuh | 0 .../ggml/src/ggml-cuda/cross-entropy-loss.cu | 0 .../ggml/src/ggml-cuda/cross-entropy-loss.cuh | 0 .../ggml/src/ggml-cuda/dequantize.cuh | 0 .../ggml/src/ggml-cuda/diagmask.cu | 0 .../ggml/src/ggml-cuda/diagmask.cuh | 0 .../ggml/src/ggml-cuda/fattn-common.cuh | 0 .../ggml/src/ggml-cuda/fattn-mma-f16.cuh | 0 .../ggml/src/ggml-cuda/fattn-tile-f16.cu | 0 .../ggml/src/ggml-cuda/fattn-tile-f16.cuh | 0 .../ggml/src/ggml-cuda/fattn-tile-f32.cu | 0 .../ggml/src/ggml-cuda/fattn-tile-f32.cuh | 0 .../ggml/src/ggml-cuda/fattn-vec-f16.cuh | 0 .../ggml/src/ggml-cuda/fattn-vec-f32.cuh | 0 .../ggml/src/ggml-cuda/fattn-wmma-f16.cu | 0 .../ggml/src/ggml-cuda/fattn-wmma-f16.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/fattn.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/fattn.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/getrows.cu | 0 .../ggml/src/ggml-cuda/getrows.cuh | 0 .../ggml/src/ggml-cuda/ggml-cuda.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/gla.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/gla.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/im2col.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/im2col.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/mma.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/mmq.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/mmq.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/mmv.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/mmv.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/mmvq.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/mmvq.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/norm.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/norm.cuh | 0 .../ggml/src/ggml-cuda/opt-step-adamw.cu | 0 .../ggml/src/ggml-cuda/opt-step-adamw.cuh | 0 .../ggml/src/ggml-cuda/out-prod.cu | 0 .../ggml/src/ggml-cuda/out-prod.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/pad.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/pad.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/pool2d.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/pool2d.cuh | 0 .../ggml/src/ggml-cuda/quantize.cu | 0 .../ggml/src/ggml-cuda/quantize.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/rope.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/rope.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/scale.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/scale.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/softmax.cu | 0 .../ggml/src/ggml-cuda/softmax.cuh | 0 .../ggml/src/ggml-cuda/ssm-conv.cu | 0 .../ggml/src/ggml-cuda/ssm-conv.cuh | 0 .../ggml/src/ggml-cuda/ssm-scan.cu | 0 .../ggml/src/ggml-cuda/ssm-scan.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/sum.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/sum.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/sumrows.cu | 0 .../ggml/src/ggml-cuda/sumrows.cuh | 0 ...attn-mma-f16-instance-ncols1_1-ncols2_8.cu | 0 ...ttn-mma-f16-instance-ncols1_16-ncols2_1.cu | 0 ...ttn-mma-f16-instance-ncols1_16-ncols2_2.cu | 0 ...ttn-mma-f16-instance-ncols1_16-ncols2_4.cu | 0 ...attn-mma-f16-instance-ncols1_2-ncols2_4.cu | 0 ...attn-mma-f16-instance-ncols1_2-ncols2_8.cu | 0 ...ttn-mma-f16-instance-ncols1_32-ncols2_1.cu | 0 ...ttn-mma-f16-instance-ncols1_32-ncols2_2.cu | 0 ...attn-mma-f16-instance-ncols1_4-ncols2_2.cu | 0 ...attn-mma-f16-instance-ncols1_4-ncols2_4.cu | 0 ...attn-mma-f16-instance-ncols1_4-ncols2_8.cu | 0 ...ttn-mma-f16-instance-ncols1_64-ncols2_1.cu | 0 ...attn-mma-f16-instance-ncols1_8-ncols2_1.cu | 0 ...attn-mma-f16-instance-ncols1_8-ncols2_2.cu | 0 ...attn-mma-f16-instance-ncols1_8-ncols2_4.cu | 0 ...attn-mma-f16-instance-ncols1_8-ncols2_8.cu | 0 .../fattn-vec-f16-instance-hs128-f16-f16.cu | 0 .../fattn-vec-f16-instance-hs128-f16-q4_0.cu | 0 .../fattn-vec-f16-instance-hs128-f16-q4_1.cu | 0 .../fattn-vec-f16-instance-hs128-f16-q5_0.cu | 0 .../fattn-vec-f16-instance-hs128-f16-q5_1.cu | 0 .../fattn-vec-f16-instance-hs128-f16-q8_0.cu | 0 .../fattn-vec-f16-instance-hs128-q4_0-f16.cu | 0 .../fattn-vec-f16-instance-hs128-q4_0-q4_0.cu | 0 .../fattn-vec-f16-instance-hs128-q4_0-q4_1.cu | 0 .../fattn-vec-f16-instance-hs128-q4_0-q5_0.cu | 0 .../fattn-vec-f16-instance-hs128-q4_0-q5_1.cu | 0 .../fattn-vec-f16-instance-hs128-q4_0-q8_0.cu | 0 .../fattn-vec-f16-instance-hs128-q4_1-f16.cu | 0 .../fattn-vec-f16-instance-hs128-q4_1-q4_0.cu | 0 .../fattn-vec-f16-instance-hs128-q4_1-q4_1.cu | 0 .../fattn-vec-f16-instance-hs128-q4_1-q5_0.cu | 0 .../fattn-vec-f16-instance-hs128-q4_1-q5_1.cu | 0 .../fattn-vec-f16-instance-hs128-q4_1-q8_0.cu | 0 .../fattn-vec-f16-instance-hs128-q5_0-f16.cu | 0 .../fattn-vec-f16-instance-hs128-q5_0-q4_0.cu | 0 .../fattn-vec-f16-instance-hs128-q5_0-q4_1.cu | 0 .../fattn-vec-f16-instance-hs128-q5_0-q5_0.cu | 0 .../fattn-vec-f16-instance-hs128-q5_0-q5_1.cu | 0 .../fattn-vec-f16-instance-hs128-q5_0-q8_0.cu | 0 .../fattn-vec-f16-instance-hs128-q5_1-f16.cu | 0 .../fattn-vec-f16-instance-hs128-q5_1-q4_0.cu | 0 .../fattn-vec-f16-instance-hs128-q5_1-q4_1.cu | 0 .../fattn-vec-f16-instance-hs128-q5_1-q5_0.cu | 0 .../fattn-vec-f16-instance-hs128-q5_1-q5_1.cu | 0 .../fattn-vec-f16-instance-hs128-q5_1-q8_0.cu | 0 .../fattn-vec-f16-instance-hs128-q8_0-f16.cu | 0 .../fattn-vec-f16-instance-hs128-q8_0-q4_0.cu | 0 .../fattn-vec-f16-instance-hs128-q8_0-q4_1.cu | 0 .../fattn-vec-f16-instance-hs128-q8_0-q5_0.cu | 0 .../fattn-vec-f16-instance-hs128-q8_0-q5_1.cu | 0 .../fattn-vec-f16-instance-hs128-q8_0-q8_0.cu | 0 .../fattn-vec-f16-instance-hs256-f16-f16.cu | 0 .../fattn-vec-f16-instance-hs64-f16-f16.cu | 0 .../fattn-vec-f16-instance-hs64-f16-q4_0.cu | 0 .../fattn-vec-f16-instance-hs64-f16-q4_1.cu | 0 .../fattn-vec-f16-instance-hs64-f16-q5_0.cu | 0 .../fattn-vec-f16-instance-hs64-f16-q5_1.cu | 0 .../fattn-vec-f16-instance-hs64-f16-q8_0.cu | 0 .../fattn-vec-f32-instance-hs128-f16-f16.cu | 0 .../fattn-vec-f32-instance-hs128-f16-q4_0.cu | 0 .../fattn-vec-f32-instance-hs128-f16-q4_1.cu | 0 .../fattn-vec-f32-instance-hs128-f16-q5_0.cu | 0 .../fattn-vec-f32-instance-hs128-f16-q5_1.cu | 0 .../fattn-vec-f32-instance-hs128-f16-q8_0.cu | 0 .../fattn-vec-f32-instance-hs128-q4_0-f16.cu | 0 .../fattn-vec-f32-instance-hs128-q4_0-q4_0.cu | 0 .../fattn-vec-f32-instance-hs128-q4_0-q4_1.cu | 0 .../fattn-vec-f32-instance-hs128-q4_0-q5_0.cu | 0 .../fattn-vec-f32-instance-hs128-q4_0-q5_1.cu | 0 .../fattn-vec-f32-instance-hs128-q4_0-q8_0.cu | 0 .../fattn-vec-f32-instance-hs128-q4_1-f16.cu | 0 .../fattn-vec-f32-instance-hs128-q4_1-q4_0.cu | 0 .../fattn-vec-f32-instance-hs128-q4_1-q4_1.cu | 0 .../fattn-vec-f32-instance-hs128-q4_1-q5_0.cu | 0 .../fattn-vec-f32-instance-hs128-q4_1-q5_1.cu | 0 .../fattn-vec-f32-instance-hs128-q4_1-q8_0.cu | 0 .../fattn-vec-f32-instance-hs128-q5_0-f16.cu | 0 .../fattn-vec-f32-instance-hs128-q5_0-q4_0.cu | 0 .../fattn-vec-f32-instance-hs128-q5_0-q4_1.cu | 0 .../fattn-vec-f32-instance-hs128-q5_0-q5_0.cu | 0 .../fattn-vec-f32-instance-hs128-q5_0-q5_1.cu | 0 .../fattn-vec-f32-instance-hs128-q5_0-q8_0.cu | 0 .../fattn-vec-f32-instance-hs128-q5_1-f16.cu | 0 .../fattn-vec-f32-instance-hs128-q5_1-q4_0.cu | 0 .../fattn-vec-f32-instance-hs128-q5_1-q4_1.cu | 0 .../fattn-vec-f32-instance-hs128-q5_1-q5_0.cu | 0 .../fattn-vec-f32-instance-hs128-q5_1-q5_1.cu | 0 .../fattn-vec-f32-instance-hs128-q5_1-q8_0.cu | 0 .../fattn-vec-f32-instance-hs128-q8_0-f16.cu | 0 .../fattn-vec-f32-instance-hs128-q8_0-q4_0.cu | 0 .../fattn-vec-f32-instance-hs128-q8_0-q4_1.cu | 0 .../fattn-vec-f32-instance-hs128-q8_0-q5_0.cu | 0 .../fattn-vec-f32-instance-hs128-q8_0-q5_1.cu | 0 .../fattn-vec-f32-instance-hs128-q8_0-q8_0.cu | 0 .../fattn-vec-f32-instance-hs256-f16-f16.cu | 0 .../fattn-vec-f32-instance-hs64-f16-f16.cu | 0 .../fattn-vec-f32-instance-hs64-f16-q4_0.cu | 0 .../fattn-vec-f32-instance-hs64-f16-q4_1.cu | 0 .../fattn-vec-f32-instance-hs64-f16-q5_0.cu | 0 .../fattn-vec-f32-instance-hs64-f16-q5_1.cu | 0 .../fattn-vec-f32-instance-hs64-f16-q8_0.cu | 0 .../template-instances/generate_cu_files.py | 0 .../template-instances/mmq-instance-iq1_s.cu | 0 .../template-instances/mmq-instance-iq2_s.cu | 0 .../template-instances/mmq-instance-iq2_xs.cu | 0 .../mmq-instance-iq2_xxs.cu | 0 .../template-instances/mmq-instance-iq3_s.cu | 0 .../mmq-instance-iq3_xxs.cu | 0 .../template-instances/mmq-instance-iq4_nl.cu | 0 .../template-instances/mmq-instance-iq4_xs.cu | 0 .../template-instances/mmq-instance-q2_k.cu | 0 .../template-instances/mmq-instance-q3_k.cu | 0 .../template-instances/mmq-instance-q4_0.cu | 0 .../template-instances/mmq-instance-q4_1.cu | 0 .../template-instances/mmq-instance-q4_k.cu | 0 .../template-instances/mmq-instance-q5_0.cu | 0 .../template-instances/mmq-instance-q5_1.cu | 0 .../template-instances/mmq-instance-q5_k.cu | 0 .../template-instances/mmq-instance-q6_k.cu | 0 .../template-instances/mmq-instance-q8_0.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/tsembd.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/tsembd.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/unary.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/unary.cuh | 0 .../whisper.cpp/ggml/src/ggml-cuda/upscale.cu | 0 .../ggml/src/ggml-cuda/upscale.cuh | 0 .../ggml/src/ggml-cuda/vecdotq.cuh | 0 .../ggml/src/ggml-cuda/vendors/cuda.h | 0 .../ggml/src/ggml-cuda/vendors/hip.h | 0 .../ggml/src/ggml-cuda/vendors/musa.h | 0 .../whisper.cpp/ggml/src/ggml-cuda/wkv.cu | 0 .../whisper.cpp/ggml/src/ggml-cuda/wkv.cuh | 0 .../ggml/src/ggml-hip/CMakeLists.txt | 0 .../vendor/whisper.cpp/ggml/src/ggml-impl.h | 0 .../ggml/src/ggml-kompute/CMakeLists.txt | 0 .../ggml/src/ggml-kompute/ggml-kompute.cpp | 0 .../ggml-kompute/kompute-shaders/common.comp | 0 .../ggml-kompute/kompute-shaders/op_add.comp | 0 .../kompute-shaders/op_addrow.comp | 0 .../kompute-shaders/op_cpy_f16_f16.comp | 0 .../kompute-shaders/op_cpy_f16_f32.comp | 0 .../kompute-shaders/op_cpy_f32_f16.comp | 0 .../kompute-shaders/op_cpy_f32_f32.comp | 0 .../kompute-shaders/op_diagmask.comp | 0 .../ggml-kompute/kompute-shaders/op_gelu.comp | 0 .../kompute-shaders/op_getrows.comp | 0 .../kompute-shaders/op_getrows_f16.comp | 0 .../kompute-shaders/op_getrows_f32.comp | 0 .../kompute-shaders/op_getrows_q4_0.comp | 0 .../kompute-shaders/op_getrows_q4_1.comp | 0 .../kompute-shaders/op_getrows_q6_k.comp | 0 .../ggml-kompute/kompute-shaders/op_mul.comp | 0 .../kompute-shaders/op_mul_mat_f16.comp | 0 .../kompute-shaders/op_mul_mat_mat_f32.comp | 0 .../kompute-shaders/op_mul_mat_q4_0.comp | 0 .../kompute-shaders/op_mul_mat_q4_1.comp | 0 .../kompute-shaders/op_mul_mat_q4_k.comp | 0 .../kompute-shaders/op_mul_mat_q6_k.comp | 0 .../kompute-shaders/op_mul_mat_q8_0.comp | 0 .../kompute-shaders/op_mul_mv_q_n.comp | 0 .../kompute-shaders/op_mul_mv_q_n_pre.comp | 0 .../ggml-kompute/kompute-shaders/op_norm.comp | 0 .../ggml-kompute/kompute-shaders/op_relu.comp | 0 .../kompute-shaders/op_rmsnorm.comp | 0 .../kompute-shaders/op_rope_neox_f16.comp | 0 .../kompute-shaders/op_rope_neox_f32.comp | 0 .../kompute-shaders/op_rope_norm_f16.comp | 0 .../kompute-shaders/op_rope_norm_f32.comp | 0 .../kompute-shaders/op_scale.comp | 0 .../kompute-shaders/op_scale_8.comp | 0 .../ggml-kompute/kompute-shaders/op_silu.comp | 0 .../kompute-shaders/op_softmax.comp | 0 .../kompute-shaders/rope_common.comp | 0 .../ggml/src/ggml-metal/CMakeLists.txt | 0 .../ggml/src/ggml-metal/ggml-metal-impl.h | 0 .../ggml/src/ggml-metal/ggml-metal.m | 0 .../ggml/src/ggml-metal/ggml-metal.metal | 0 .../ggml/src/ggml-musa/CMakeLists.txt | 0 .../ggml/src/ggml-opencl/CMakeLists.txt | 0 .../ggml/src/ggml-opencl/ggml-opencl.cpp | 0 .../src/ggml-opencl/kernels/embed_kernel.py | 0 .../src/ggml-opencl/kernels/ggml-opencl.cl | 0 .../ggml-opencl/kernels/ggml-opencl_cvt.cl | 0 .../kernels/ggml-opencl_gemv_noshuffle.cl | 0 .../ggml-opencl_gemv_noshuffle_general.cl | 0 .../ggml-opencl/kernels/ggml-opencl_im2col.cl | 0 .../src/ggml-opencl/kernels/ggml-opencl_mm.cl | 0 .../kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl | 0 .../kernels/ggml-opencl_transpose_16.cl | 0 .../kernels/ggml-opencl_transpose_32.cl | 0 .../kernels/ggml-opencl_transpose_32_16.cl | 0 .../vendor/whisper.cpp/ggml/src/ggml-opt.cpp | 0 .../vendor/whisper.cpp/ggml/src/ggml-quants.c | 0 .../vendor/whisper.cpp/ggml/src/ggml-quants.h | 0 .../ggml/src/ggml-rpc/CMakeLists.txt | 0 .../ggml/src/ggml-rpc/ggml-rpc.cpp | 0 .../ggml/src/ggml-sycl/CMakeLists.txt | 0 .../ggml/src/ggml-sycl/backend.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/common.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/common.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/concat.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/concat.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/conv.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/conv.hpp | 0 .../ggml/src/ggml-sycl/convert.cpp | 0 .../ggml/src/ggml-sycl/convert.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/cpy.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/cpy.hpp | 0 .../ggml/src/ggml-sycl/dequantize.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/dmmv.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/dmmv.hpp | 0 .../ggml/src/ggml-sycl/dpct/helper.hpp | 0 .../ggml/src/ggml-sycl/element_wise.cpp | 0 .../ggml/src/ggml-sycl/element_wise.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/gemm.hpp | 0 .../ggml/src/ggml-sycl/getrows.cpp | 0 .../ggml/src/ggml-sycl/getrows.hpp | 0 .../ggml/src/ggml-sycl/ggml-sycl.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/gla.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/gla.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/im2col.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/im2col.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/mmq.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/mmq.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/mmvq.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/mmvq.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/norm.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/norm.hpp | 0 .../ggml/src/ggml-sycl/outprod.cpp | 0 .../ggml/src/ggml-sycl/outprod.hpp | 0 .../ggml/src/ggml-sycl/presets.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/rope.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/rope.hpp | 0 .../ggml/src/ggml-sycl/softmax.cpp | 0 .../ggml/src/ggml-sycl/softmax.hpp | 0 .../ggml/src/ggml-sycl/sycl_hw.cpp | 0 .../ggml/src/ggml-sycl/sycl_hw.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/tsembd.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/tsembd.hpp | 0 .../ggml/src/ggml-sycl/vecdotq.hpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/wkv.cpp | 0 .../whisper.cpp/ggml/src/ggml-sycl/wkv.hpp | 0 .../whisper.cpp/ggml/src/ggml-threading.cpp | 0 .../whisper.cpp/ggml/src/ggml-threading.h | 0 .../ggml/src/ggml-vulkan/CMakeLists.txt | 0 .../ggml-vulkan/cmake/host-toolchain.cmake.in | 0 .../ggml/src/ggml-vulkan/ggml-vulkan.cpp | 0 .../ggml-vulkan/vulkan-shaders/CMakeLists.txt | 0 .../src/ggml-vulkan/vulkan-shaders/acc.comp | 0 .../src/ggml-vulkan/vulkan-shaders/add.comp | 0 .../ggml-vulkan/vulkan-shaders/argmax.comp | 0 .../ggml-vulkan/vulkan-shaders/argsort.comp | 0 .../src/ggml-vulkan/vulkan-shaders/clamp.comp | 0 .../ggml-vulkan/vulkan-shaders/concat.comp | 0 .../vulkan-shaders/contig_copy.comp | 0 .../src/ggml-vulkan/vulkan-shaders/copy.comp | 0 .../vulkan-shaders/copy_from_quant.comp | 0 .../vulkan-shaders/copy_to_quant.comp | 0 .../src/ggml-vulkan/vulkan-shaders/cos.comp | 0 .../vulkan-shaders/count_equal.comp | 0 .../vulkan-shaders/dequant_f32.comp | 0 .../vulkan-shaders/dequant_funcs.comp | 0 .../vulkan-shaders/dequant_funcs_cm2.comp | 0 .../vulkan-shaders/dequant_head.comp | 0 .../vulkan-shaders/dequant_iq1_m.comp | 0 .../vulkan-shaders/dequant_iq1_s.comp | 0 .../vulkan-shaders/dequant_iq2_s.comp | 0 .../vulkan-shaders/dequant_iq2_xs.comp | 0 .../vulkan-shaders/dequant_iq2_xxs.comp | 0 .../vulkan-shaders/dequant_iq3_s.comp | 0 .../vulkan-shaders/dequant_iq3_xxs.comp | 0 .../vulkan-shaders/dequant_iq4_nl.comp | 0 .../vulkan-shaders/dequant_iq4_xs.comp | 0 .../vulkan-shaders/dequant_q2_k.comp | 0 .../vulkan-shaders/dequant_q3_k.comp | 0 .../vulkan-shaders/dequant_q4_0.comp | 0 .../vulkan-shaders/dequant_q4_1.comp | 0 .../vulkan-shaders/dequant_q4_k.comp | 0 .../vulkan-shaders/dequant_q5_0.comp | 0 .../vulkan-shaders/dequant_q5_1.comp | 0 .../vulkan-shaders/dequant_q5_k.comp | 0 .../vulkan-shaders/dequant_q6_k.comp | 0 .../vulkan-shaders/dequant_q8_0.comp | 0 .../vulkan-shaders/diag_mask_inf.comp | 0 .../src/ggml-vulkan/vulkan-shaders/div.comp | 0 .../vulkan-shaders/flash_attn_cm2.comp | 0 .../src/ggml-vulkan/vulkan-shaders/gelu.comp | 0 .../vulkan-shaders/gelu_quick.comp | 0 .../vulkan-shaders/generic_binary_head.comp | 0 .../vulkan-shaders/generic_head.comp | 0 .../vulkan-shaders/generic_unary_head.comp | 0 .../ggml-vulkan/vulkan-shaders/get_rows.comp | 0 .../vulkan-shaders/get_rows_quant.comp | 0 .../vulkan-shaders/group_norm.comp | 0 .../ggml-vulkan/vulkan-shaders/im2col.comp | 0 .../ggml-vulkan/vulkan-shaders/l2_norm.comp | 0 .../vulkan-shaders/leaky_relu.comp | 0 .../src/ggml-vulkan/vulkan-shaders/mul.comp | 0 .../mul_mat_split_k_reduce.comp | 0 .../vulkan-shaders/mul_mat_vec.comp | 0 .../vulkan-shaders/mul_mat_vec_base.comp | 0 .../vulkan-shaders/mul_mat_vec_iq1_m.comp | 0 .../vulkan-shaders/mul_mat_vec_iq1_s.comp | 0 .../vulkan-shaders/mul_mat_vec_iq2_s.comp | 0 .../vulkan-shaders/mul_mat_vec_iq2_xs.comp | 0 .../vulkan-shaders/mul_mat_vec_iq2_xxs.comp | 0 .../vulkan-shaders/mul_mat_vec_iq3_s.comp | 0 .../vulkan-shaders/mul_mat_vec_iq3_xxs.comp | 0 .../vulkan-shaders/mul_mat_vec_nc.comp | 0 .../vulkan-shaders/mul_mat_vec_p021.comp | 0 .../vulkan-shaders/mul_mat_vec_q2_k.comp | 0 .../vulkan-shaders/mul_mat_vec_q3_k.comp | 0 .../vulkan-shaders/mul_mat_vec_q4_k.comp | 0 .../vulkan-shaders/mul_mat_vec_q5_k.comp | 0 .../vulkan-shaders/mul_mat_vec_q6_k.comp | 0 .../ggml-vulkan/vulkan-shaders/mul_mm.comp | 0 .../vulkan-shaders/mul_mm_cm2.comp | 0 .../ggml-vulkan/vulkan-shaders/mul_mmq.comp | 0 .../vulkan-shaders/mul_mmq_funcs.comp | 0 .../src/ggml-vulkan/vulkan-shaders/norm.comp | 0 .../vulkan-shaders/opt_step_adamw.comp | 0 .../src/ggml-vulkan/vulkan-shaders/pad.comp | 0 .../ggml-vulkan/vulkan-shaders/pool2d.comp | 0 .../vulkan-shaders/quantize_q8_1.comp | 0 .../src/ggml-vulkan/vulkan-shaders/relu.comp | 0 .../ggml-vulkan/vulkan-shaders/repeat.comp | 0 .../vulkan-shaders/repeat_back.comp | 0 .../ggml-vulkan/vulkan-shaders/rms_norm.comp | 0 .../vulkan-shaders/rms_norm_back.comp | 0 .../ggml-vulkan/vulkan-shaders/rope_head.comp | 0 .../vulkan-shaders/rope_multi.comp | 0 .../ggml-vulkan/vulkan-shaders/rope_neox.comp | 0 .../ggml-vulkan/vulkan-shaders/rope_norm.comp | 0 .../vulkan-shaders/rope_vision.comp | 0 .../src/ggml-vulkan/vulkan-shaders/scale.comp | 0 .../ggml-vulkan/vulkan-shaders/sigmoid.comp | 0 .../src/ggml-vulkan/vulkan-shaders/silu.comp | 0 .../ggml-vulkan/vulkan-shaders/silu_back.comp | 0 .../src/ggml-vulkan/vulkan-shaders/sin.comp | 0 .../ggml-vulkan/vulkan-shaders/soft_max.comp | 0 .../vulkan-shaders/soft_max_back.comp | 0 .../ggml-vulkan/vulkan-shaders/square.comp | 0 .../src/ggml-vulkan/vulkan-shaders/sub.comp | 0 .../ggml-vulkan/vulkan-shaders/sum_rows.comp | 0 .../src/ggml-vulkan/vulkan-shaders/tanh.comp | 0 .../vulkan-shaders/test_coopmat2_support.comp | 0 .../vulkan-shaders/test_coopmat_support.comp | 0 .../test_integer_dot_support.comp | 0 .../vulkan-shaders/timestep_embedding.comp | 0 .../src/ggml-vulkan/vulkan-shaders/types.comp | 0 .../ggml-vulkan/vulkan-shaders/upscale.comp | 0 .../vulkan-shaders/vulkan-shaders-gen.cpp | 0 .../src/ggml-vulkan/vulkan-shaders/wkv6.comp | 0 .../src/ggml-vulkan/vulkan-shaders/wkv7.comp | 0 .../vendor/whisper.cpp/ggml/src/ggml.c | 0 .../vendor/whisper.cpp/ggml/src/gguf.cpp | 0 .../whisper.cpp/grammars/assistant.gbnf | 0 .../vendor/whisper.cpp/grammars/chess.gbnf | 0 .../vendor/whisper.cpp/grammars/colors.gbnf | 0 .../vendor/whisper.cpp/include/whisper.h | 0 .../vendor/whisper.cpp/src/CMakeLists.txt | 0 .../src/coreml/whisper-decoder-impl.h | 0 .../src/coreml/whisper-decoder-impl.m | 0 .../src/coreml/whisper-encoder-impl.h | 0 .../src/coreml/whisper-encoder-impl.m | 0 .../whisper.cpp/src/coreml/whisper-encoder.h | 0 .../whisper.cpp/src/coreml/whisper-encoder.mm | 0 .../src/openvino/whisper-openvino-encoder.cpp | 0 .../src/openvino/whisper-openvino-encoder.h | 0 .../vendor/whisper.cpp/src/whisper-arch.h | 0 .../vendor/whisper.cpp/src/whisper.cpp | 0 renovate.json5 | 2 + yarn.lock | 2318 ++++++++++------- 652 files changed, 3984 insertions(+), 2911 deletions(-) delete mode 100644 packages/app-mobile/android/app/src/main/cpp/CMakeLists.txt delete mode 100644 packages/app-mobile/android/app/src/main/cpp/whisperWrapper.cpp delete mode 100644 packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/InvalidSessionIdException.kt delete mode 100644 packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/NativeWhisperLib.kt delete mode 100644 packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextConverter.kt delete mode 100644 packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextPackage.kt delete mode 100644 packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextSessionManager.kt delete mode 100644 packages/app-mobile/android/vendor/.gitignore create mode 100644 packages/app-mobile/components/KeyboardAvoidingView.tsx create mode 100644 packages/app-mobile/utils/initReact.ts create mode 100644 packages/whisper-voice-typing/.gitignore create mode 100644 packages/whisper-voice-typing/.watchmanconfig create mode 100644 packages/whisper-voice-typing/README.md create mode 100644 packages/whisper-voice-typing/WhisperVoiceTyping.podspec create mode 100644 packages/whisper-voice-typing/android/CMakeLists.txt create mode 100644 packages/whisper-voice-typing/android/build.gradle create mode 100644 packages/whisper-voice-typing/android/gradle.properties create mode 100644 packages/whisper-voice-typing/android/src/main/AndroidManifest.xml create mode 100644 packages/whisper-voice-typing/android/src/main/cpp/cpp-adapter.cpp rename packages/{app-mobile/android/app/src/main/java/net/cozic/joplin/audio => whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping}/AudioRecorder.kt (62%) create mode 100644 packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/HybridAudioRecorder.kt create mode 100644 packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/WhisperVoiceTypingPackage.kt create mode 100644 packages/whisper-voice-typing/babel.config.js create mode 100644 packages/whisper-voice-typing/cpp/HybridWhisperSession.cpp create mode 100644 packages/whisper-voice-typing/cpp/HybridWhisperSession.hpp create mode 100644 packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.cpp create mode 100644 packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.hpp create mode 100644 packages/whisper-voice-typing/cpp/utils/SingleThread.cpp create mode 100644 packages/whisper-voice-typing/cpp/utils/SingleThread.hpp create mode 100644 packages/whisper-voice-typing/cpp/utils/SingleThread_test.cpp create mode 100644 packages/whisper-voice-typing/cpp/utils/SingleThread_test.hpp rename packages/{app-mobile/android/app/src/main => whisper-voice-typing}/cpp/utils/WhisperSession.cpp (95%) rename packages/{app-mobile/android/app/src/main/cpp/utils/WhisperSession.h => whisper-voice-typing/cpp/utils/WhisperSession.hpp} (94%) rename packages/{app-mobile/android/app/src/main => whisper-voice-typing}/cpp/utils/androidUtil.h (75%) rename packages/{app-mobile/android/app/src/main => whisper-voice-typing}/cpp/utils/findLongestSilence.cpp (99%) rename packages/{app-mobile/android/app/src/main/cpp/utils/findLongestSilence.h => whisper-voice-typing/cpp/utils/findLongestSilence.hpp} (100%) rename packages/{app-mobile/android/app/src/main => whisper-voice-typing}/cpp/utils/findLongestSilence_test.cpp (94%) rename packages/{app-mobile/android/app/src/main/cpp/utils/findLongestSilence_test.h => whisper-voice-typing/cpp/utils/findLongestSilence_test.hpp} (100%) create mode 100644 packages/whisper-voice-typing/cpp/utils/testing.cpp create mode 100644 packages/whisper-voice-typing/cpp/utils/testing.hpp create mode 100644 packages/whisper-voice-typing/ios/Bridge.h create mode 100644 packages/whisper-voice-typing/nitro.json create mode 100644 packages/whisper-voice-typing/package.json create mode 100644 packages/whisper-voice-typing/react-native.config.js create mode 100644 packages/whisper-voice-typing/src/index.ts create mode 100644 packages/whisper-voice-typing/src/specs/Whisper.nitro.ts create mode 100644 packages/whisper-voice-typing/tsconfig.json rename packages/{app-mobile/android => whisper-voice-typing}/vendor/README.md (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/.gitignore (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/AUTHORS (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/LICENSE (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/README.md (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/README_sycl.md (96%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/build-xcframework.sh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ci/README.md (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ci/run.sh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/close-issue.yml (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/cmake/DefaultTargetOptions.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/cmake/FindFFmpeg.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/cmake/build-info.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/cmake/git-vars.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/cmake/whisper-config.cmake.in (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/cmake/whisper.pc.in (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/.gitignore (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/cmake/BuildTypes.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/cmake/GitVars.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/cmake/common.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/cmake/ggml-config.cmake.in (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-alloc.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-backend.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-blas.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-cann.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-cpp.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-cpu.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-cuda.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-kompute.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-metal.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-opencl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-opt.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-rpc.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-sycl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml-vulkan.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/ggml.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/include/gguf.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-alloc.c (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-amx/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-amx/common.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-amx/ggml-amx.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-backend-impl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-backend-reg.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-backend.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-blas/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-blas/ggml-blas.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/Doxyfile (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/common.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/ggml-cann.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/ascendc_kernels.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/dup.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f16.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f32.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q4_0.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q8_0.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f16_q8_0.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f32_q8_0.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_float_to_q4_0.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-common.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/common.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/common.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.c (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/common.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/cp-async.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/dequantize.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-common.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-mma-f16.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f16.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f32.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/ggml-cuda.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/mma.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/generate_cu_files.py (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq1_s.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_s.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xs.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xxs.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_s.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_xxs.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_nl.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_xs.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q2_k.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q3_k.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_k.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_1.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_k.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q6_k.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q8_0.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/vecdotq.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/cuda.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/hip.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/musa.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cu (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cuh (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-hip/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-impl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/ggml-kompute.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/common.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_add.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_addrow.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f16.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f32.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f16.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f32.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_diagmask.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_gelu.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f16.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f32.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_0.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_1.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q6_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_f16.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_mat_f32.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_0.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_1.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q6_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q8_0.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n_pre.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_norm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_relu.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rmsnorm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f16.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f32.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f16.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f32.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale_8.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_silu.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_softmax.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/rope_common.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-metal/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal-impl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.m (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.metal (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-musa/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/ggml-opencl.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/embed_kernel.py (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_cvt.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle_general.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_im2col.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mm.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_16.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32_16.cl (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-opt.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-quants.c (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-quants.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-rpc/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-rpc/ggml-rpc.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/backend.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/common.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/common.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/dequantize.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/dpct/helper.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/gemm.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/ggml-sycl.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/presets.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/vecdotq.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.hpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-threading.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-threading.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/cmake/host-toolchain.cmake.in (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/acc.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/add.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argmax.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argsort.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/clamp.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/concat.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/cos.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/count_equal.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_f32.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/div.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu_quick.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_head.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/group_norm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/im2col.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/leaky_relu.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_split_k_reduce.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_p021.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/norm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pad.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pool2d.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat_back.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_head.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_multi.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_neox.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_norm.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_vision.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/scale.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu_back.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sin.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max_back.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/square.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sub.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sum_rows.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/types.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/upscale.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv6.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv7.comp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/ggml.c (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/ggml/src/gguf.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/grammars/assistant.gbnf (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/grammars/chess.gbnf (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/grammars/colors.gbnf (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/include/whisper.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/CMakeLists.txt (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.m (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.m (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/coreml/whisper-encoder.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/coreml/whisper-encoder.mm (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.cpp (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/whisper-arch.h (100%) rename packages/{app-mobile/android => whisper-voice-typing}/vendor/whisper.cpp/src/whisper.cpp (100%) diff --git a/.eslintignore b/.eslintignore index 2c7f3da8c7..604486479d 100644 --- a/.eslintignore +++ b/.eslintignore @@ -92,6 +92,7 @@ readme/ packages/react-native-vosk/lib/ packages/lib/countable/Countable.js packages/onenote-converter/renderer/pkg/* +packages/whisper-voice-typing/lib/ # AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD packages/app-cli/app/LinkSelector.js @@ -691,6 +692,7 @@ packages/app-mobile/components/FeedbackBanner.js packages/app-mobile/components/FolderPicker.js packages/app-mobile/components/Icon.js packages/app-mobile/components/IconButton.js +packages/app-mobile/components/KeyboardAvoidingView.js packages/app-mobile/components/Modal.js packages/app-mobile/components/ModalDialog.js packages/app-mobile/components/NestableFlatList.js @@ -969,6 +971,7 @@ packages/app-mobile/utils/hooks/useSafeAreaPadding.js packages/app-mobile/utils/image/fileToImage.web.js packages/app-mobile/utils/image/getImageDimensions.js packages/app-mobile/utils/image/resizeImage.js +packages/app-mobile/utils/initReact.js packages/app-mobile/utils/initializeCommandService.js packages/app-mobile/utils/ipc/RNToWebViewMessenger.js packages/app-mobile/utils/ipc/WebViewToRNMessenger.js @@ -1942,4 +1945,6 @@ packages/tools/website/utils/pressCarousel.js packages/tools/website/utils/processTranslations.js packages/tools/website/utils/render.js packages/tools/website/utils/types.js +packages/whisper-voice-typing/src/index.js +packages/whisper-voice-typing/src/specs/Whisper.nitro.js # AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD diff --git a/.gitignore b/.gitignore index 42a25d2062..5e86bd5060 100644 --- a/.gitignore +++ b/.gitignore @@ -665,6 +665,7 @@ packages/app-mobile/components/FeedbackBanner.js packages/app-mobile/components/FolderPicker.js packages/app-mobile/components/Icon.js packages/app-mobile/components/IconButton.js +packages/app-mobile/components/KeyboardAvoidingView.js packages/app-mobile/components/Modal.js packages/app-mobile/components/ModalDialog.js packages/app-mobile/components/NestableFlatList.js @@ -943,6 +944,7 @@ packages/app-mobile/utils/hooks/useSafeAreaPadding.js packages/app-mobile/utils/image/fileToImage.web.js packages/app-mobile/utils/image/getImageDimensions.js packages/app-mobile/utils/image/resizeImage.js +packages/app-mobile/utils/initReact.js packages/app-mobile/utils/initializeCommandService.js packages/app-mobile/utils/ipc/RNToWebViewMessenger.js packages/app-mobile/utils/ipc/WebViewToRNMessenger.js @@ -1916,5 +1918,7 @@ packages/tools/website/utils/pressCarousel.js packages/tools/website/utils/processTranslations.js packages/tools/website/utils/render.js packages/tools/website/utils/types.js +packages/whisper-voice-typing/src/index.js +packages/whisper-voice-typing/src/specs/Whisper.nitro.js # AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD diff --git a/.npmpackagejsonlintrc.json b/.npmpackagejsonlintrc.json index f83e98a0ec..ec4233d47b 100644 --- a/.npmpackagejsonlintrc.json +++ b/.npmpackagejsonlintrc.json @@ -5,6 +5,7 @@ "exceptions": [ "@joplin/editor", "@joplin/fork-htmlparser2", + "@joplin/whisper-voice-typing", "@joplin/fork-sax", "@joplin/fork-uslug", "@joplin/htmlpack", diff --git a/cspell.json b/cspell.json index 3c810fb90f..c95390684c 100644 --- a/cspell.json +++ b/cspell.json @@ -33,7 +33,7 @@ "/packages/app-desktop/build/", "/packages/app-desktop/utils/checkForUpdatesUtilsTestData.ts", "/packages/app-desktop/vendor/", - "/packages/app-mobile/android/vendor/", + "/packages/whisper-voice-typing/vendor/", "/packages/app-mobile/ios/Pods/", "/packages/app-mobile/lib/rnInjectedJs", "/packages/app-mobile/pluginAssets", diff --git a/packages/app-mobile/android/app/build.gradle b/packages/app-mobile/android/app/build.gradle index b426758337..eab5f65aa2 100644 --- a/packages/app-mobile/android/app/build.gradle +++ b/packages/app-mobile/android/app/build.gradle @@ -2,11 +2,24 @@ apply plugin: "com.android.application" apply plugin: "org.jetbrains.kotlin.android" apply plugin: "com.facebook.react" +def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() + /** * This is the configuration block to customize your React Native Android app. * By default you don't need to apply any configuration, just uncomment the lines you need. */ react { + entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) + reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" + codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + + enableBundleCompression = (findProperty('android.enableBundleCompression') ?: false).toBoolean() + // (Disabled) Use Expo CLI to bundle the app, this ensures the Metro config + // works correctly with Expo projects. + // cliFile = new File(["node", "--print", "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })"].execute(null, rootDir).text.trim()) + // bundleCommand = "export:embed" + /* Folders */ // The root of your project, i.e. where "package.json" lives. Default is '../..' // root = file("../..") @@ -55,31 +68,12 @@ react { } /** - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + * Set this to true in release builds to optimize the app using [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization). */ -def enableProguardInReleaseBuilds = false - -/** - * The preferred build flavor of JavaScriptCore (JSC) - * - * For example, to use the international variant, you can use: - * `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+' +def enableMinifyInReleaseBuilds = (findProperty('android.enableMinifyInReleaseBuilds') ?: false).toBoolean() android { - externalNativeBuild { - cmake { - path file('src/main/cpp/CMakeLists.txt') - version '3.22.1' - } - } ndkVersion rootProject.ext.ndkVersion buildToolsVersion rootProject.ext.buildToolsVersion compileSdk rootProject.ext.compileSdkVersion @@ -91,19 +85,15 @@ android { targetSdkVersion rootProject.ext.targetSdkVersion versionCode 2097788 versionName "3.6.0" + + buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\"" + ndk { abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } // Needed to fix: The number of method references in a .dex file cannot exceed 64K multiDexEnabled true - externalNativeBuild { - cmake { - cppFlags '-DCMAKE_BUILD_TYPE=Release' - // For 16 KB pages. This should be removable after upgrading to NDK r28 - arguments "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" - } - } } signingConfigs { debug { @@ -129,7 +119,7 @@ android { // Caution! In production, you need to generate your own keystore file. // see https://reactnative.dev/docs/signed-apk-android. signingConfig signingConfigs.release - minifyEnabled enableProguardInReleaseBuilds + minifyEnabled enableMinifyInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } profileable { @@ -149,10 +139,5 @@ android { dependencies { // The version of react-native is set by the React Native Gradle Plugin implementation("com.facebook.react:react-android") - - if (hermesEnabled.toBoolean()) { - implementation("com.facebook.react:hermes-android") - } else { - implementation jscFlavor - } + implementation("com.facebook.react:hermes-android") } diff --git a/packages/app-mobile/android/app/proguard-rules.pro b/packages/app-mobile/android/app/proguard-rules.pro index 11b025724a..0902e263c7 100644 --- a/packages/app-mobile/android/app/proguard-rules.pro +++ b/packages/app-mobile/android/app/proguard-rules.pro @@ -8,3 +8,7 @@ # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: + +# Keep classes referenced by JNI +# (see https://developer.android.com/topic/performance/app-optimization/add-keep-rules) +-keep class com.margelo.nitro.whispervoicetyping.AudioRecorder diff --git a/packages/app-mobile/android/app/src/main/AndroidManifest.xml b/packages/app-mobile/android/app/src/main/AndroidManifest.xml index 786d18cd44..d92b5b156e 100644 --- a/packages/app-mobile/android/app/src/main/AndroidManifest.xml +++ b/packages/app-mobile/android/app/src/main/AndroidManifest.xml @@ -44,6 +44,7 @@ android:requestLegacyExternalStorage="true" android:resizeableActivity="true" android:theme="@style/AppTheme" + android:usesCleartextTraffic="${usesCleartextTraffic}" android:supportsRtl="true"> diff --git a/packages/app-mobile/android/app/src/main/cpp/CMakeLists.txt b/packages/app-mobile/android/app/src/main/cpp/CMakeLists.txt deleted file mode 100644 index 2749480eb1..0000000000 --- a/packages/app-mobile/android/app/src/main/cpp/CMakeLists.txt +++ /dev/null @@ -1,65 +0,0 @@ - -# For more information about using CMake with Android Studio, read the -# documentation: https://d.android.com/studio/projects/add-native-code.html. -# For more examples on how to use CMake, see https://github.com/android/ndk-samples. - -# Sets the minimum CMake version required for this project. -cmake_minimum_required(VERSION 3.22.1) - -# Declares the project name. The project name can be accessed via ${ PROJECT_NAME}, -# Since this is the top level CMakeLists.txt, the project name is also accessible -# with ${CMAKE_PROJECT_NAME} (both CMake variables are in-sync within the top level -# build script scope). -project("joplin") - -# Creates and names a library, sets it as either STATIC -# or SHARED, and provides the relative paths to its source code. -# You can define multiple libraries, and CMake builds them for you. -# Gradle automatically packages shared libraries with your APK. -# -# In this top level CMakeLists.txt, ${CMAKE_PROJECT_NAME} is used to define -# the target library name; in the sub-module's CMakeLists.txt, ${PROJECT_NAME} -# is preferred for the same purpose. -# -# In order to load a library into your app from Java/Kotlin, you must call -# System.loadLibrary() and pass the name of the library defined here; -# for GameActivity/NativeActivity derived applications, the same library name must be -# used in the AndroidManifest.xml file. -add_library(${CMAKE_PROJECT_NAME} SHARED - # List C/C++ source files with relative paths to this CMakeLists.txt. - whisperWrapper.cpp - utils/WhisperSession.cpp - utils/findLongestSilence.cpp - utils/findLongestSilence_test.cpp -) - - - -set(WHISPER_LIB_DIR ${CMAKE_SOURCE_DIR}/../../../../vendor/whisper.cpp) - -# Based on the Whisper.cpp Android example: -set(SHARED_FLAGS "-O3 ") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SHARED_FLAGS} ") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SHARED_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections") - -# Whisper: See https://stackoverflow.com/a/76290722 -add_subdirectory(${WHISPER_LIB_DIR} ./whisper) - -# Directories for header files -target_include_directories( - ${CMAKE_PROJECT_NAME} - PUBLIC - ${PROJECT_BASE_DIR}/shared - ${WHISPER_LIB_DIR}/include -) - - -# Specifies libraries CMake should link to your target library. You -# can link libraries from various origins, such as libraries defined in this -# build script, prebuilt third-party libraries, or Android system libraries. -target_link_libraries(${CMAKE_PROJECT_NAME} - whisper - # List libraries link to the target library - android - log -) diff --git a/packages/app-mobile/android/app/src/main/cpp/whisperWrapper.cpp b/packages/app-mobile/android/app/src/main/cpp/whisperWrapper.cpp deleted file mode 100644 index 128e215f69..0000000000 --- a/packages/app-mobile/android/app/src/main/cpp/whisperWrapper.cpp +++ /dev/null @@ -1,151 +0,0 @@ -// Write C++ code here. -// -// Do not forget to dynamically load the C++ library into your application. -// -// For instance, -// -// In MainActivity.java: -// static { -// System.loadLibrary("joplin"); -// } -// -// Or, in MainActivity.kt: -// companion object { -// init { -// System.loadLibrary("joplin") -// } -// } -#include -#include -#include -#include -#include -#include "whisper.h" -#include "utils/WhisperSession.h" -#include "utils/androidUtil.h" -#include "utils/findLongestSilence_test.h" - -void log_android(enum ggml_log_level level, const char* message, void* user_data) { - android_LogPriority priority = level == 4 ? ANDROID_LOG_ERROR : ANDROID_LOG_INFO; - __android_log_print(priority, "Whisper::JNI::cpp", "%s", message); -} - -jstring stringToJava(JNIEnv *env, const std::string& source) { - return env->NewStringUTF(source.c_str()); -} - -std::string stringToCXX(JNIEnv *env, jstring jString) { - const char *jStringChars = env->GetStringUTFChars(jString, nullptr); - std::string result { jStringChars }; - env->ReleaseStringUTFChars(jString, jStringChars); - - return result; -} - -void throwException(JNIEnv *env, const std::string& message) { - jclass errorClass = env->FindClass("java/lang/Exception"); - env->ThrowNew(errorClass, message.c_str()); -} - -extern "C" -JNIEXPORT jlong JNICALL -Java_net_cozic_joplin_audio_NativeWhisperLib_00024Companion_init( - JNIEnv *env, - jobject thiz, - jstring modelPath, - jstring language, - jstring prompt, - jboolean useShortAudioContext -) { - whisper_log_set(log_android, nullptr); - - try { - auto *pSession = new WhisperSession( - stringToCXX(env, modelPath), stringToCXX(env, language), stringToCXX(env, prompt), useShortAudioContext - ); - return (jlong) pSession; - } catch (const std::exception& exception) { - LOGW("Failed to init whisper: %s", exception.what()); - throwException(env, exception.what()); - return 0; - } -} - -extern "C" -JNIEXPORT void JNICALL -Java_net_cozic_joplin_audio_NativeWhisperLib_00024Companion_free(JNIEnv *env, jobject thiz, - jlong pointer) { - delete reinterpret_cast(pointer); -} - -extern "C" -JNIEXPORT void JNICALL -Java_net_cozic_joplin_audio_NativeWhisperLib_00024Companion_addAudio(JNIEnv *env, - jobject thiz, - jlong pointer, - jfloatArray audio_data) { - auto *pSession = reinterpret_cast (pointer); - jfloat *pAudioData = env->GetFloatArrayElements(audio_data, nullptr); - jsize lenAudioData = env->GetArrayLength(audio_data); - std::string result; - - try { - pSession->addAudio(pAudioData, lenAudioData); - } catch (const std::exception& exception) { - LOGW("Failed to add to audio buffer: %s", exception.what()); - throwException(env, exception.what()); - } - - // JNI_ABORT: "free the buffer without copying back the possible changes", pass 0 to copy - // changes (there should be no changes) - env->ReleaseFloatArrayElements(audio_data, pAudioData, JNI_ABORT); -} - -extern "C" -JNIEXPORT jstring JNICALL -Java_net_cozic_joplin_audio_NativeWhisperLib_00024Companion_transcribeNextChunk(JNIEnv *env, - jobject thiz, - jlong pointer) { - auto *pSession = reinterpret_cast (pointer); - std::string result; - - try { - result = pSession->transcribeNextChunk(); - } catch (const std::exception& exception) { - LOGW("Failed to run whisper: %s", exception.what()); - throwException(env, exception.what()); - return nullptr; - } - - return stringToJava(env, result); -} - -extern "C" -JNIEXPORT jstring JNICALL -Java_net_cozic_joplin_audio_NativeWhisperLib_00024Companion_transcribeRemaining(JNIEnv *env, - jobject thiz, - jlong pointer) { - auto *pSession = reinterpret_cast (pointer); - std::string result; - - try { - result = pSession->transcribeAll(); - } catch (const std::exception& exception) { - LOGW("Failed to run whisper: %s", exception.what()); - throwException(env, exception.what()); - return nullptr; - } - - return stringToJava(env, result); -} - -extern "C" -JNIEXPORT void JNICALL -Java_net_cozic_joplin_audio_NativeWhisperLib_00024Companion_runTests(JNIEnv *env, jobject thiz) { - try { - findLongestSilence_test(); - } catch (const std::exception& exception) { - LOGW("Failed to run tests: %s", exception.what()); - throwException(env, exception.what()); - } -} diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt index 97079cb1d4..72e3e3e636 100644 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt @@ -6,37 +6,36 @@ import expo.modules.ReactNativeHostWrapper import android.app.Application import com.facebook.react.PackageList import com.facebook.react.ReactApplication +import com.facebook.react.ReactNativeApplicationEntryPoint.loadReactNative import com.facebook.react.ReactHost import com.facebook.react.ReactNativeHost import com.facebook.react.ReactPackage -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.common.ReleaseLevel +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.react.soloader.OpenSourceMergedSoMapping -import com.facebook.soloader.SoLoader -import net.cozic.joplin.audio.SpeechToTextPackage import net.cozic.joplin.versioninfo.SystemVersionInformationPackage import net.cozic.joplin.share.SharePackage import net.cozic.joplin.ssl.SslPackage class MainApplication : Application(), ReactApplication { - override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(this, object : DefaultReactNativeHost(this) { - override fun getPackages(): List = + override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper( + this, + object : DefaultReactNativeHost(this) { + override fun getPackages(): List = PackageList(this).packages.apply { // Packages that cannot be autolinked yet can be added manually here, for example: add(SharePackage()) add(SslPackage()) add(SystemVersionInformationPackage()) - add(SpeechToTextPackage()) } - override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry" + override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry" - override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG + override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG - override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED - override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED - }) + override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED + }) override val reactHost: ReactHost get() = ReactNativeHostWrapper.createReactHost(this.applicationContext, reactNativeHost) @@ -44,16 +43,17 @@ class MainApplication : Application(), ReactApplication { override fun onCreate() { super.onCreate() - SoLoader.init(this, OpenSourceMergedSoMapping) - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - load() + try { + DefaultNewArchitectureEntryPoint.releaseLevel = ReleaseLevel.valueOf(BuildConfig.REACT_NATIVE_RELEASE_LEVEL.uppercase()) + } catch (e: IllegalArgumentException) { + DefaultNewArchitectureEntryPoint.releaseLevel = ReleaseLevel.STABLE } - ApplicationLifecycleDispatcher.onApplicationCreate(this) - } + loadReactNative(this) + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } - override fun onConfigurationChanged(newConfig: Configuration) { - super.onConfigurationChanged(newConfig) - ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) - } + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) + } } diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/InvalidSessionIdException.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/InvalidSessionIdException.kt deleted file mode 100644 index 38615fe42d..0000000000 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/InvalidSessionIdException.kt +++ /dev/null @@ -1,5 +0,0 @@ -package net.cozic.joplin.audio - - -class InvalidSessionIdException(id: Int) : IllegalArgumentException("Invalid session ID $id") { -} \ No newline at end of file diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/NativeWhisperLib.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/NativeWhisperLib.kt deleted file mode 100644 index a07af37099..0000000000 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/NativeWhisperLib.kt +++ /dev/null @@ -1,64 +0,0 @@ -package net.cozic.joplin.audio - -import java.io.Closeable - -class NativeWhisperLib( - modelPath: String, - languageCode: String, - prompt: String, - shortAudioContext: Boolean, -) : Closeable { - companion object { - init { - System.loadLibrary("joplin") - } - - external fun runTests(): Unit; - - // TODO: The example whisper.cpp project transfers pointers as Longs to the Kotlin code. - // This seems unsafe. Try changing how this is managed. - private external fun init(modelPath: String, languageCode: String, prompt: String, shortAudioContext: Boolean): Long; - private external fun free(pointer: Long): Unit; - - private external fun addAudio(pointer: Long, audioData: FloatArray): Unit; - private external fun transcribeNextChunk(pointer: Long): String; - private external fun transcribeRemaining(pointer: Long): String; - } - - private var closed = false - private val pointer: Long = init(modelPath, languageCode, prompt, shortAudioContext) - - fun addAudio(audioData: FloatArray) { - if (closed) { - throw Exception("Cannot add audio data to a closed session") - } - - Companion.addAudio(pointer, audioData) - } - - fun transcribeNextChunk(): String { - if (closed) { - throw Exception("Cannot transcribe using a closed session") - } - - return Companion.transcribeNextChunk(pointer) - } - - fun transcribeRemaining(): String { - if (closed) { - throw Exception("Cannot transcribeAll using a closed session") - } - - return Companion.transcribeRemaining(pointer) - } - - override fun close() { - if (closed) { - throw Exception("Cannot close a whisper session twice") - } - - closed = true - free(pointer) - } - -} \ No newline at end of file diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextConverter.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextConverter.kt deleted file mode 100644 index c2f752ae29..0000000000 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextConverter.kt +++ /dev/null @@ -1,62 +0,0 @@ -package net.cozic.joplin.audio - -import android.content.Context -import android.util.Log -import java.io.Closeable - -class SpeechToTextConverter( - modelPath: String, - locale: String, - prompt: String, - useShortAudioCtx: Boolean, - recorderFactory: AudioRecorderFactory, - context: Context, -) : Closeable { - private val recorder = recorderFactory(context) - private val languageCode = Regex("_.*").replace(locale, "") - private var whisper = NativeWhisperLib( - modelPath, - languageCode, - prompt, - useShortAudioCtx, - ) - - fun start() { - recorder.start() - } - - private fun convert(data: FloatArray): String { - Log.d("Whisper", "Pre-transcribe data of size ${data.size}") - whisper.addAudio(data) - val result = whisper.transcribeNextChunk() - Log.d("Whisper", "Post transcribe. Got $result") - return result; - } - - fun dropFirstSeconds(seconds: Double) { - Log.i("Whisper", "Drop first seconds $seconds") - recorder.dropFirstSeconds(seconds) - } - - val bufferLengthSeconds: Double get() = recorder.bufferLengthSeconds - - fun convertNext(seconds: Double): String { - val buffer = recorder.pullNextSeconds(seconds) - val result = convert(buffer) - dropFirstSeconds(seconds) - return result - } - - // Converts as many seconds of buffered data as possible, without waiting - fun convertRemaining(): String { - val buffer = recorder.pullAvailable() - whisper.addAudio(buffer) - return whisper.transcribeRemaining() - } - - override fun close() { - Log.d("Whisper", "Close") - recorder.close() - whisper.close() - } -} \ No newline at end of file diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextPackage.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextPackage.kt deleted file mode 100644 index 2e6f03e150..0000000000 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextPackage.kt +++ /dev/null @@ -1,87 +0,0 @@ -package net.cozic.joplin.audio - -import com.facebook.react.ReactPackage -import com.facebook.react.bridge.LifecycleEventListener -import com.facebook.react.bridge.NativeModule -import com.facebook.react.bridge.Promise -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.bridge.ReactContextBaseJavaModule -import com.facebook.react.bridge.ReactMethod -import com.facebook.react.uimanager.ViewManager -import java.util.concurrent.ExecutorService -import java.util.concurrent.Executors - -class SpeechToTextPackage : ReactPackage { - override fun createNativeModules(reactContext: ReactApplicationContext): List { - return listOf(SpeechToTextModule(reactContext)) - } - - override fun createViewManagers(reactContext: ReactApplicationContext): List> { - return emptyList() - } - - class SpeechToTextModule( - private var context: ReactApplicationContext, - ) : ReactContextBaseJavaModule(context), LifecycleEventListener { - private val executorService: ExecutorService = Executors.newFixedThreadPool(1) - private val sessionManager = SpeechToTextSessionManager(executorService) - - override fun getName() = "SpeechToTextModule" - - override fun onHostResume() { } - override fun onHostPause() { } - override fun onHostDestroy() { } - - @ReactMethod - fun runTests(promise: Promise) { - try { - NativeWhisperLib.runTests() - promise.resolve(true) - } catch (exception: Throwable) { - promise.reject(exception) - } - } - - @ReactMethod - fun openSession(modelPath: String, locale: String, prompt: String, useShortAudioCtx: Boolean, promise: Promise) { - val appContext = context.applicationContext - - try { - val sessionId = sessionManager.openSession(modelPath, locale, prompt, useShortAudioCtx, appContext) - promise.resolve(sessionId) - } catch (exception: Throwable) { - promise.reject(exception) - } - } - - @ReactMethod - fun startRecording(sessionId: Int, promise: Promise) { - sessionManager.startRecording(sessionId, promise) - } - - @ReactMethod - fun getBufferLengthSeconds(sessionId: Int, promise: Promise) { - sessionManager.getBufferLengthSeconds(sessionId, promise) - } - - @ReactMethod - fun dropFirstSeconds(sessionId: Int, duration: Double, promise: Promise) { - sessionManager.dropFirstSeconds(sessionId, duration, promise) - } - - @ReactMethod - fun convertNext(sessionId: Int, duration: Double, promise: Promise) { - sessionManager.convertNext(sessionId, duration, promise) - } - - @ReactMethod - fun convertAvailable(sessionId: Int, promise: Promise) { - sessionManager.convertAvailable(sessionId, promise) - } - - @ReactMethod - fun closeSession(sessionId: Int, promise: Promise) { - sessionManager.closeSession(sessionId, promise) - } - } -} \ No newline at end of file diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextSessionManager.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextSessionManager.kt deleted file mode 100644 index c770cc79af..0000000000 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/SpeechToTextSessionManager.kt +++ /dev/null @@ -1,111 +0,0 @@ -package net.cozic.joplin.audio - -import android.content.Context -import com.facebook.react.bridge.Promise -import java.util.concurrent.Executor -import java.util.concurrent.locks.ReentrantLock - -class SpeechToTextSession ( - val converter: SpeechToTextConverter -) { - val mutex = ReentrantLock() -} - -class SpeechToTextSessionManager( - private var executor: Executor, -) { - private val sessions: MutableMap = mutableMapOf() - private var nextSessionId: Int = 0 - - fun openSession( - modelPath: String, - locale: String, - prompt: String, - useShortAudioCtx: Boolean, - context: Context, - ): Int { - val sessionId = nextSessionId++ - sessions[sessionId] = SpeechToTextSession( - SpeechToTextConverter( - modelPath, locale, prompt, useShortAudioCtx, recorderFactory = AudioRecorder.factory, context, - ) - ) - return sessionId - } - - private fun getSession(id: Int): SpeechToTextSession { - return sessions[id] ?: throw InvalidSessionIdException(id) - } - - private fun concurrentWithSession( - id: Int, - callback: (session: SpeechToTextSession)->Unit, - ) { - executor.execute { - val session = getSession(id) - session.mutex.lock() - try { - callback(session) - } finally { - session.mutex.unlock() - } - } - } - private fun concurrentWithSession( - id: Int, - onError: (error: Throwable)->Unit, - callback: (session: SpeechToTextSession)->Unit, - ) { - return concurrentWithSession(id) { session -> - try { - callback(session) - } catch (error: Throwable) { - onError(error) - } - } - } - - fun startRecording(sessionId: Int, promise: Promise) { - this.concurrentWithSession(sessionId, promise::reject) { session -> - session.converter.start() - promise.resolve(null) - } - } - - // Left-shifts the recording buffer by [duration] seconds - fun dropFirstSeconds(sessionId: Int, duration: Double, promise: Promise) { - this.concurrentWithSession(sessionId, promise::reject) { session -> - session.converter.dropFirstSeconds(duration) - promise.resolve(sessionId) - } - } - - fun getBufferLengthSeconds(sessionId: Int, promise: Promise) { - this.concurrentWithSession(sessionId, promise::reject) { session -> - promise.resolve(session.converter.bufferLengthSeconds) - } - } - - // Waits for the next [duration] seconds to become available, then converts - fun convertNext(sessionId: Int, duration: Double, promise: Promise) { - this.concurrentWithSession(sessionId, promise::reject) { session -> - val result = session.converter.convertNext(duration) - promise.resolve(result) - } - } - - // Converts all available recorded data - fun convertAvailable(sessionId: Int, promise: Promise) { - this.concurrentWithSession(sessionId, promise::reject) { session -> - val result = session.converter.convertRemaining() - promise.resolve(result) - } - } - - fun closeSession(sessionId: Int, promise: Promise) { - this.concurrentWithSession(sessionId) { session -> - session.converter.close() - promise.resolve(null) - } - } -} diff --git a/packages/app-mobile/android/build.gradle b/packages/app-mobile/android/build.gradle index 6c978392e6..56a70e2703 100644 --- a/packages/app-mobile/android/build.gradle +++ b/packages/app-mobile/android/build.gradle @@ -2,14 +2,14 @@ buildscript { ext { - buildToolsVersion = "35.0.0" + buildToolsVersion = "36.0.0" minSdkVersion = 24 - compileSdkVersion = 35 - targetSdkVersion = 35 + compileSdkVersion = 36 + targetSdkVersion = 36 ndkVersion = "27.1.12297006" - kotlinVersion = "2.0.21" + kotlinVersion = "2.1.20" } repositories { google() diff --git a/packages/app-mobile/android/gradle.properties b/packages/app-mobile/android/gradle.properties index d30028f17c..5c016f5c82 100644 --- a/packages/app-mobile/android/gradle.properties +++ b/packages/app-mobile/android/gradle.properties @@ -16,7 +16,7 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryEr # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true +org.gradle.parallel=true # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app's APK @@ -34,12 +34,17 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 # your application. You should enable this flag either if you want # to write custom TurboModules/Fabric components OR use libraries that # are providing them. -newArchEnabled=false +newArchEnabled=true # Use this property to enable or disable the Hermes JS engine. # If set to false, you will be using JSC instead. hermesEnabled=true +# Use this property to enable edge-to-edge display support. +# This allows your app to draw behind system bars for an immersive UI. +# Note: Only works with ReactActivity and should not be used with custom Activity. +edgeToEdgeEnabled=true + # To fix this error: # # > Failed to transform bcprov-jdk15on-1.68.jar diff --git a/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.jar b/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.jar index 9bbc975c742b298b441bfb90dbc124400a3751b9..1b33c55baabb587c669f562ae36f953de2481846 100644 GIT binary patch delta 642 zcmdmamFde>rVZJA^}0Q$xegf!xPEW^+5YDM%iT2bEgct9o+jH~+sJas#HZ=szO|** z=Pj=X_vx?W&DSwKck|WWn~hffsvnQ+42*W$b7b0$SCcOoZ`{W{^$^pk;4>8-A*-)$ z?n(Po`1$6Jn_u?t-L+tsPyZ2#X}8T6OS8pAU;kdgd+_Hw4z4TW0p9E!T+=f7-c&O% zFic^X{7^$?^Ho04eona9n#mGMxKhA=~8B%JN`M zMhm5wc-2v)$``sY$!Q`9xiU@DhI73ZxiGEKg>yIPs)NmWwMdF-ngLXpZSqV5ez36n zVkxF2rjrjWR+_xr6e6@_u@s~2uv{9vi*1pj2)BjFD+-%@&pRVP1f{O1glxTOp2-62Ph;v z`N1+vCd)9ea)af*Ol1*JCfnp$%Uu}%OuoN7g2}3C@`L5FlP#(sA=|h@iixuZC?qp^ z=L$=v$ZoI}|87Wh=&h7udff{aieKr*l+zDp?pf)_bbRvUf>kn;HCDMXNlgbbo!QRK I1x7am0No)LiU0rr delta 584 zcmexzm1*ZyrVZJAexH5Moc8h7)w{^+t*dqJ%=yhh23L$9JpFV=_k`zJ-?Q4DI*eSe z+ES)HSrVnWLtJ&)lO%hRkV9zl5qqWRt0e;bb zPPo`)y?HTAyZI&u&X<|2$FDHCf4;!v8}p=?Tm`^F0`u(|1ttf~&t$qP3KUSD>@TJQ zRwJ}Pim6NzEc8KA6)e;S6gs8=7IIL8sQL*MYEuRYO;Uj<%3UbMbV&^&!Zvx+LKmjT z8Zch6rYP7Tw?$Hn(UTJwWiS=$f{lB(C=e*%usDV})0AQIK~sat=ND@+Gg*Pyij!rR z*fa02W|%BsV++>4W{DKDGSIUEHd2$P+8ct!RF+CHDowUuTEZOZ%rJSQv*qOXOSPDN zT|sP-$p*_3ncsWB*qoD7JQcyZ9xan%cJP6Tb4-?AZpr*F6v98hoNaPJm@HV`yya5N z))6pqFXn@}P(3T0nEzM8*c_9KtE9o|_pFd&K35GBXP^9Kg(b6GH-z8S4GDzIl~T+b zdLd#meKKHu$5u))8cu$=GKINkGDPOUD)!0$C(BH(U!}!-e;Q0ok8Sc?V1zRO04>ts AA^-pY diff --git a/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.properties b/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.properties index 37f853b1c8..d4081da476 100644 --- a/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/app-mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/packages/app-mobile/android/gradlew b/packages/app-mobile/android/gradlew index 1be20f740d..2250d6f26a 100755 --- a/packages/app-mobile/android/gradlew +++ b/packages/app-mobile/android/gradlew @@ -114,7 +114,7 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar +CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/packages/app-mobile/android/gradlew.bat b/packages/app-mobile/android/gradlew.bat index 9d21a21834..db3a6ac207 100644 --- a/packages/app-mobile/android/gradlew.bat +++ b/packages/app-mobile/android/gradlew.bat @@ -70,11 +70,11 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar +set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/packages/app-mobile/android/vendor/.gitignore b/packages/app-mobile/android/vendor/.gitignore deleted file mode 100644 index dd54241c72..0000000000 --- a/packages/app-mobile/android/vendor/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -whisper.cpp/.gitmodules -whisper.cpp/scripts/ -whisper.cpp/samples/ -whisper.cpp/tests/ -whisper.cpp/models/ -whisper.cpp/examples/ -whisper.cpp/.*/ -whisper.cpp/bindings/ -whisper.cpp/**/*.Dockerfile \ No newline at end of file diff --git a/packages/app-mobile/app.json b/packages/app-mobile/app.json index f7782a2455..33415b636b 100644 --- a/packages/app-mobile/app.json +++ b/packages/app-mobile/app.json @@ -1,4 +1,7 @@ { "name": "Joplin", - "displayName": "Joplin" -} \ No newline at end of file + "displayName": "Joplin", + "plugins": [ + "@react-native-community/datetimepicker" + ] +} diff --git a/packages/app-mobile/components/BottomDrawer.tsx b/packages/app-mobile/components/BottomDrawer.tsx index f82a6c6e2a..f449e19875 100644 --- a/packages/app-mobile/components/BottomDrawer.tsx +++ b/packages/app-mobile/components/BottomDrawer.tsx @@ -44,7 +44,7 @@ const useStyles = (theme: ThemeStyle) => { }, contentContainer: { padding: 20, - paddingBottom: 14, + paddingBottom: 14 + safeAreaPadding.paddingBottom, gap: 8, flexDirection: 'row', flexWrap: 'wrap', diff --git a/packages/app-mobile/components/ExtendedWebView/index.tsx b/packages/app-mobile/components/ExtendedWebView/index.tsx index 052518293e..51e5675c19 100644 --- a/packages/app-mobile/components/ExtendedWebView/index.tsx +++ b/packages/app-mobile/components/ExtendedWebView/index.tsx @@ -13,6 +13,7 @@ import shim from '@joplin/lib/shim'; import Logger from '@joplin/utils/Logger'; import { Props, WebViewControl } from './types'; import useCss from './utils/useCss'; +import { Platform } from 'react-native'; const logger = Logger.create('ExtendedWebView'); @@ -141,7 +142,8 @@ const ExtendedWebView = (props: Props, ref: Ref) => { onLoadEnd={props.onLoadEnd} onContentProcessDidTerminate={refreshWebViewAfterCrash} onRenderProcessGone={refreshWebViewAfterCrash} - decelerationRate='normal' + // See https://github.com/react-native-webview/react-native-webview/issues/3814 + decelerationRate={Platform.OS === 'ios' ? 'normal' : undefined} /> ); }; diff --git a/packages/app-mobile/components/KeyboardAvoidingView.tsx b/packages/app-mobile/components/KeyboardAvoidingView.tsx new file mode 100644 index 0000000000..f8afec33ef --- /dev/null +++ b/packages/app-mobile/components/KeyboardAvoidingView.tsx @@ -0,0 +1,26 @@ +import * as React from 'react'; +import { KeyboardAvoidingViewProps, KeyboardAvoidingView as NativeKeyboardAvoidingView } from 'react-native'; +import useKeyboardState from '../utils/hooks/useKeyboardState'; + +interface Props extends KeyboardAvoidingViewProps {} + +const KeyboardAvoidingView: React.FC = ({ enabled, children, ...forwardedProps }) => { + const keyboardState = useKeyboardState(); + + enabled &&= ( + // When the floating keyboard is enabled, the KeyboardAvoidingView can have a very small + // height. Don't use the KeyboardAvoidingView when the floating keyboard is enabled. + // See https://github.com/facebook/react-native/issues/29473 + !keyboardState.isFloatingKeyboard + ); + + return + {children} + ; +}; + +export default KeyboardAvoidingView; diff --git a/packages/app-mobile/components/Modal.tsx b/packages/app-mobile/components/Modal.tsx index 4c6806aa01..a0fc7c6cf5 100644 --- a/packages/app-mobile/components/Modal.tsx +++ b/packages/app-mobile/components/Modal.tsx @@ -1,12 +1,13 @@ import * as React from 'react'; import { RefObject, useCallback, useMemo, useRef, useState } from 'react'; -import { GestureResponderEvent, KeyboardAvoidingView, Modal, ModalProps, Platform, Pressable, ScrollView, ScrollViewProps, StyleSheet, View, ViewStyle } from 'react-native'; +import { GestureResponderEvent, Modal, ModalProps, Platform, Pressable, ScrollView, ScrollViewProps, StyleSheet, View, ViewStyle } from 'react-native'; import FocusControl from './accessibility/FocusControl/FocusControl'; import { msleep, Second } from '@joplin/utils/time'; import useAsyncEffect from '@joplin/lib/hooks/useAsyncEffect'; import { ModalState } from './accessibility/FocusControl/types'; import useSafeAreaPadding from '../utils/hooks/useSafeAreaPadding'; import { _ } from '@joplin/lib/locale'; +import KeyboardAvoidingView from './KeyboardAvoidingView'; export interface ModalElementProps extends ModalProps { children: React.ReactNode; @@ -175,7 +176,7 @@ const ModalElement: React.FC = ({ {...modalProps} > {scrollOverflow ? ( - + = ({ profile, profileConfig, s } }; - const switchProfileMessage = _('To switch the profile, the app is going to close and you will need to restart it.'); + const switchProfileMessage = _('To switch the profile, the app is going to restart.'); if (shim.mobilePlatform() === 'web') { if (confirm(switchProfileMessage)) { void doIt(); diff --git a/packages/app-mobile/components/ScreenHeader/index.tsx b/packages/app-mobile/components/ScreenHeader/index.tsx index 2ffe1b9817..bc2ec50c11 100644 --- a/packages/app-mobile/components/ScreenHeader/index.tsx +++ b/packages/app-mobile/components/ScreenHeader/index.tsx @@ -688,8 +688,8 @@ class ScreenHeaderComponent extends PureComponent - - + + ); diff --git a/packages/app-mobile/components/SideMenu.tsx b/packages/app-mobile/components/SideMenu.tsx index 09399eaa84..64fdc0c958 100644 --- a/packages/app-mobile/components/SideMenu.tsx +++ b/packages/app-mobile/components/SideMenu.tsx @@ -7,6 +7,7 @@ import AccessibleView from './accessibility/AccessibleView'; import { _ } from '@joplin/lib/locale'; import useReduceMotionEnabled from '../utils/hooks/useReduceMotionEnabled'; import { themeStyle } from './global-style'; +import useSafeAreaPadding from '../utils/hooks/useSafeAreaPadding'; export enum SideMenuPosition { Left = 'left', @@ -40,6 +41,8 @@ interface UseStylesProps { const useStyles = ({ themeId, isLeftMenu, menuWidth, menuOpenFraction }: UseStylesProps) => { const { height: windowHeight, width: windowWidth } = useWindowDimensions(); + const safeAreaInsets = useSafeAreaPadding(); + return useMemo(() => { const theme = themeStyle(themeId); return StyleSheet.create({ @@ -53,7 +56,7 @@ const useStyles = ({ themeId, isLeftMenu, menuWidth, menuOpenFraction }: UseStyl contentOuterWrapper: { flexGrow: 1, flexShrink: 1, - width: windowWidth, + width: '100%', height: windowHeight, transform: [{ translateX: menuOpenFraction.interpolate({ @@ -71,11 +74,18 @@ const useStyles = ({ themeId, isLeftMenu, menuWidth, menuOpenFraction }: UseStyl flexShrink: 1, }, menuWrapper: { + backgroundColor: theme.backgroundColor, + position: 'absolute', top: 0, bottom: 0, width: menuWidth, + paddingLeft: isLeftMenu ? safeAreaInsets.paddingLeft : 0, + paddingRight: isLeftMenu ? 0 : safeAreaInsets.paddingRight, + paddingTop: safeAreaInsets.paddingTop, + paddingBottom: safeAreaInsets.paddingBottom, + // In React Native, RTL replaces `left` with `right` and `right` with `left`. // As such, we need to reverse the normal direction in RTL mode. ...(isLeftMenu === !I18nManager.isRTL ? { @@ -107,7 +117,7 @@ const useStyles = ({ themeId, isLeftMenu, menuWidth, menuOpenFraction }: UseStyl width: windowWidth, }, }); - }, [themeId, isLeftMenu, windowWidth, windowHeight, menuWidth, menuOpenFraction]); + }, [themeId, isLeftMenu, windowWidth, windowHeight, menuWidth, menuOpenFraction, safeAreaInsets]); }; interface UseAnimationsProps { diff --git a/packages/app-mobile/components/app-nav.tsx b/packages/app-mobile/components/app-nav.tsx index b284e1f96b..68db961f4c 100644 --- a/packages/app-mobile/components/app-nav.tsx +++ b/packages/app-mobile/components/app-nav.tsx @@ -2,13 +2,16 @@ import * as React from 'react'; import { connect } from 'react-redux'; import NotesScreen from './screens/Notes/Notes'; import SearchScreen from './screens/SearchScreen'; -import { KeyboardAvoidingView, Platform, View } from 'react-native'; +import { Platform, View, StyleSheet } from 'react-native'; import { AppState } from '../utils/types'; import { themeStyle } from './global-style'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import useKeyboardState from '../utils/hooks/useKeyboardState'; import usePrevious from '@joplin/lib/hooks/usePrevious'; import FeedbackBanner from './FeedbackBanner'; +import { Theme } from '@joplin/lib/themes/type'; +import { useMemo } from 'react'; +import KeyboardAvoidingView from './KeyboardAvoidingView'; interface Props { // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied @@ -20,6 +23,15 @@ interface Props { themeId: number; } +const useStyles = (theme: Theme) => { + return useMemo(() => { + return StyleSheet.create({ + keyboardAvoidingView: { flex: 1, backgroundColor: theme.backgroundColor }, + }); + }, [theme]); +}; + + const AppNavComponent: React.FC = (props) => { const keyboardState = useKeyboardState(); const safeAreaPadding = useSafeAreaInsets(); @@ -50,20 +62,18 @@ const AppNavComponent: React.FC = (props) => { const searchScreenLoaded = searchScreenVisible || (previousRouteName === 'Search' && route.routeName === 'Note'); const theme = themeStyle(props.themeId); - - const style = { flex: 1, backgroundColor: theme.backgroundColor }; - - // When the floating keyboard is enabled, the KeyboardAvoidingView can have a very small - // height. Don't use the KeyboardAvoidingView when the floating keyboard is enabled. - // See https://github.com/facebook/react-native/issues/29473 - const keyboardAvoidingViewEnabled = !keyboardState.isFloatingKeyboard; - const autocompletionBarPadding = Platform.OS === 'ios' && keyboardState.keyboardVisible ? safeAreaPadding.top : 0; + const styles = useStyles(theme); + const autocompletionBarPadding = keyboardState.keyboardVisible ? safeAreaPadding.top : 0; return ( {searchScreenLoaded && } diff --git a/packages/app-mobile/components/plugins/PluginRunnerWebView.tsx b/packages/app-mobile/components/plugins/PluginRunnerWebView.tsx index 438f588609..25bf9bd907 100644 --- a/packages/app-mobile/components/plugins/PluginRunnerWebView.tsx +++ b/packages/app-mobile/components/plugins/PluginRunnerWebView.tsx @@ -16,6 +16,7 @@ import usePrevious from '@joplin/lib/hooks/usePrevious'; import PlatformImplementation from '../../services/plugins/PlatformImplementation'; import AccessibleView from '../accessibility/AccessibleView'; import useOnDevPluginsUpdated from './utils/useOnDevPluginsUpdated'; +import { ViewStyle } from 'react-native'; const logger = Logger.create('PluginRunnerWebView'); @@ -98,6 +99,17 @@ interface Props { themeId: number; } +// The WebView needs to have a non-zero size to be rendered by +// newer React Native versions. This style makes it visually hidden. +const hiddenStyle: ViewStyle = { + width: 1, + height: 1, + opacity: 0, + position: 'absolute', + top: 0, + zIndex: -1, +}; + const PluginRunnerWebViewComponent: React.FC = props => { const webviewRef = useRef(null); @@ -189,7 +201,7 @@ const PluginRunnerWebViewComponent: React.FC = props => { }; return ( - + {renderWebView()} ); diff --git a/packages/app-mobile/index.js b/packages/app-mobile/index.js index 8dd7c7de02..0d7a3b2de4 100644 --- a/packages/app-mobile/index.js +++ b/packages/app-mobile/index.js @@ -6,16 +6,14 @@ // So there's basically still a one way flux: React => SQLite => Redux => React +import './utils/initReact'; import './utils/polyfills'; +import Root from './root'; import { LogBox } from 'react-native'; import { registerRootComponent } from 'expo'; // Allows loading image assets. See https://github.com/expo/expo/issues/31240 import 'expo-asset'; -import shim from '@joplin/lib/shim'; -shim.setReact(require('react')); - -const Root = require('./root').default; // Seems JavaScript developers love adding warnings everywhere, even when these warnings can't be fixed // or don't really matter. Because we want important warnings to actually be fixed, we disable diff --git a/packages/app-mobile/index.web.ts b/packages/app-mobile/index.web.ts index 17bcf3a5fe..f33facedc7 100644 --- a/packages/app-mobile/index.web.ts +++ b/packages/app-mobile/index.web.ts @@ -1,4 +1,5 @@ import './utils/polyfills'; +import './utils/initReact'; import { AppRegistry } from 'react-native'; import Root from './root'; import Setting from '@joplin/lib/models/Setting'; diff --git a/packages/app-mobile/ios/Joplin-tvOS/Info.plist b/packages/app-mobile/ios/Joplin-tvOS/Info.plist index ecbd496be7..72946a7883 100644 --- a/packages/app-mobile/ios/Joplin-tvOS/Info.plist +++ b/packages/app-mobile/ios/Joplin-tvOS/Info.plist @@ -35,6 +35,8 @@ NSLocationWhenInUseUsageDescription + RCTNewArchEnabled + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities diff --git a/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj b/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj index 6cbb50591b..a9b5fe9b7c 100644 --- a/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj +++ b/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj @@ -321,6 +321,8 @@ files = ( ); inputPaths = ( + "$(SRCROOT)/.xcode.env", + "$(SRCROOT)/.xcode.env.local", ); name = "Bundle React Native code and images"; outputPaths = ( @@ -339,13 +341,12 @@ "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo/RNDeviceInfoPrivacyInfo.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNSVG/RNSVGFilters.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/React-Core_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact/React-cxxreact_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/boost/boost_privacy.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactNativeFs/RNFS_PrivacyInfo.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/react-native-image-picker/RNImagePickerPrivacyInfo.bundle", "${PODS_ROOT}/../../node_modules/@react-native-vector-icons/fontawesome5/fonts/FontAwesome5_Brands.ttf", "${PODS_ROOT}/../../node_modules/@react-native-vector-icons/fontawesome5/fonts/FontAwesome5_Regular.ttf", @@ -359,13 +360,12 @@ "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNDeviceInfoPrivacyInfo.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNSVGFilters.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/boost_privacy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNFS_PrivacyInfo.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SDWebImage.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNImagePickerPrivacyInfo.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Brands.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome5_Regular.ttf", @@ -409,11 +409,15 @@ inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Joplin/Pods-Joplin-frameworks.sh", "${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL-Universal/OpenSSL.framework/OpenSSL", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/React-Core-prebuilt/React.framework/React", + "${PODS_XCFRAMEWORKS_BUILD_DIR}/ReactNativeDependencies/ReactNativeDependencies.framework/ReactNativeDependencies", "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/React.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ReactNativeDependencies.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); runOnlyForDeploymentPostprocessing = 0; @@ -452,11 +456,16 @@ inputFileListPaths = ( ); inputPaths = ( + "$(SRCROOT)/.xcode.env", + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/Joplin/Joplin.entitlements", + "$(SRCROOT)/Pods/Target Support Files/Pods-Joplin/expo-configure-project.sh", ); name = "[Expo] Configure project"; outputFileListPaths = ( ); outputPaths = ( + "$(SRCROOT)/Pods/Target Support Files/Pods-Joplin/ExpoModulesProvider.swift", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -653,6 +662,7 @@ REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; USE_HERMES = true; }; name = Debug; @@ -729,6 +739,7 @@ ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; + SWIFT_ENABLE_EXPLICIT_MODULES = NO; USE_HERMES = true; VALIDATE_PRODUCT = YES; }; diff --git a/packages/app-mobile/ios/Joplin/Info.plist b/packages/app-mobile/ios/Joplin/Info.plist index 43fdf44ebf..38153f7665 100644 --- a/packages/app-mobile/ios/Joplin/Info.plist +++ b/packages/app-mobile/ios/Joplin/Info.plist @@ -44,16 +44,15 @@ NSAllowsLocalNetworking - NSExceptionDomains - localhost + api.joplincloud.local NSExceptionAllowsInsecureHTTPLoads - api.joplincloud.local + localhost NSExceptionAllowsInsecureHTTPLoads @@ -62,18 +61,22 @@ NSCameraUsageDescription To allow attaching a photo to a note + NSFaceIDUsageDescription + $(PRODUCT_NAME) requires FaceID access to secure access to the application NSLocationAlwaysAndWhenInUseUsageDescription To add geo-location information to a note. Can be disabled in app. NSLocationAlwaysUsageDescription To add geo-location information to a note. Can be disabled in app. NSLocationWhenInUseUsageDescription To add geo-location information to a note. Can be disabled in app. + NSMicrophoneUsageDescription + To allow attaching voice recordings to a note NSPhotoLibraryAddUsageDescription The images will be displayed on your notes. NSPhotoLibraryUsageDescription To allow attaching images to a note - NSMicrophoneUsageDescription - To allow attaching voice recordings to a note + RCTNewArchEnabled + UIAppFonts AntDesign.ttf @@ -86,6 +89,10 @@ MaterialDesignIcons.ttf MaterialCommunityIcons.ttf + UIBackgroundModes + + audio + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities @@ -109,11 +116,5 @@ Automatic UIViewControllerBasedStatusBarAppearance - NSFaceIDUsageDescription - $(PRODUCT_NAME) requires FaceID access to secure access to the application - UIBackgroundModes - - audio - diff --git a/packages/app-mobile/ios/Podfile b/packages/app-mobile/ios/Podfile index a75301129e..8a122a7107 100644 --- a/packages/app-mobile/ios/Podfile +++ b/packages/app-mobile/ios/Podfile @@ -5,23 +5,33 @@ require File.join(File.dirname(`node --print "require.resolve('react-native/pack require 'json' podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} -ENV['RCT_NEW_ARCH_ENABLED'] = '0' if podfile_properties['newArchEnabled'] == 'false' -ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] = podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] +def ccache_enabled?(podfile_properties) + # Environment variable takes precedence + return ENV['USE_CCACHE'] == '1' if ENV['USE_CCACHE'] + + # Fall back to Podfile properties + podfile_properties['apple.ccacheEnabled'] == 'true' +end +ENV['RCT_NEW_ARCH_ENABLED'] ||= '0' if podfile_properties['newArchEnabled'] == 'false' +ENV['EX_DEV_CLIENT_NETWORK_INSPECTOR'] ||= podfile_properties['EX_DEV_CLIENT_NETWORK_INSPECTOR'] +ENV['RCT_USE_RN_DEP'] ||= '1' if podfile_properties['ios.buildReactNativeFromSource'] != 'true' && podfile_properties['newArchEnabled'] != 'false' +ENV['RCT_USE_PREBUILT_RNCORE'] ||= '1' if podfile_properties['ios.buildReactNativeFromSource'] != 'true' && podfile_properties['newArchEnabled'] != 'false' platform :ios, podfile_properties['ios.deploymentTarget'] || '15.1' -install! 'cocoapods', - :deterministic_uuids => false prepare_react_native_project! target 'Joplin' do use_expo_modules! - if ENV['EXPO_USE_COMMUNITY_AUTOLINKING'] == '1' + if ENV['EXPO_USE_COMMUNITY_AUTOLINKING'] != '0' config_command = ['node', '-e', "process.argv=['', '', 'config'];require('@react-native-community/cli').run()"]; else config_command = [ - 'npx', + 'node', + '--no-warnings', + '--eval', + 'require(\'expo/bin/autolinking\')', 'expo-modules-autolinking', 'react-native-config', '--json', @@ -35,13 +45,14 @@ target 'Joplin' do use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS'] - use_react_native!( :path => config[:reactNativePath], + :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/.." + :app_path => "#{Pod::Config.instance.installation_root}/..", + :privacy_file_aggregation_enabled => podfile_properties['apple.privacyManifestAggregationEnabled'] != 'false', ) - + pod 'JoplinRNShareExtension', :path => 'ShareExtension' post_install do |installer| @@ -50,7 +61,7 @@ target 'Joplin' do installer, config[:reactNativePath], :mac_catalyst_enabled => false, - # :ccache_enabled => true + :ccache_enabled => ccache_enabled?(podfile_properties), ) end end diff --git a/packages/app-mobile/ios/Podfile.lock b/packages/app-mobile/ios/Podfile.lock index 92e0330f84..4171b79906 100644 --- a/packages/app-mobile/ios/Podfile.lock +++ b/packages/app-mobile/ios/Podfile.lock @@ -1,25 +1,23 @@ PODS: - - boost (1.84.0) - - DoubleConversion (1.1.6) - - EXAV (15.1.7): + - EXAV (16.0.8): - ExpoModulesCore - ReactCommon/turbomodule/core - - EXConstants (17.1.7): + - EXConstants (18.0.13): - ExpoModulesCore - - Expo (53.0.23): - - DoubleConversion + - EXImageLoader (6.0.0): + - ExpoModulesCore + - React-Core + - Expo (54.0.31): - ExpoModulesCore - - glog - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -32,32 +30,34 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - ExpoAsset (11.1.7): + - ExpoAsset (12.0.12): - ExpoModulesCore - - ExpoCamera (16.1.11): + - ExpoCamera (17.0.10): - ExpoModulesCore - ZXingObjC/OneD - ZXingObjC/PDF417 - - ExpoFileSystem (18.1.11): + - ExpoFileSystem (19.0.21): - ExpoModulesCore - - ExpoFont (13.3.2): + - ExpoFont (14.0.10): - ExpoModulesCore - - ExpoLocalAuthentication (16.0.5): + - ExpoImageManipulator (14.0.8): + - EXImageLoader - ExpoModulesCore - - ExpoModulesCore (2.5.0): - - DoubleConversion - - glog + - SDWebImageWebPCoder + - ExpoLocalAuthentication (17.0.8): + - ExpoModulesCore + - ExpoModulesCore (3.0.29): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-jsinspector @@ -69,81 +69,97 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - fast_float (6.1.4) - - FBLazyVector (0.79.2) - - fmt (11.0.2) - - glog (0.3.5) - - hermes-engine (0.79.2): - - hermes-engine/Pre-built (= 0.79.2) - - hermes-engine/Pre-built (0.79.2) + - FBLazyVector (0.81.5) + - hermes-engine (0.81.5): + - hermes-engine/Pre-built (= 0.81.5) + - hermes-engine/Pre-built (0.81.5) - JoplinCommonShareExtension (1.0.0) - JoplinRNShareExtension (1.0.0): - JoplinCommonShareExtension - React - - OpenSSL-Universal (3.3.2000) - - RCT-Folly (2024.11.18.00): - - boost - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog - - RCT-Folly/Default (= 2024.11.18.00) - - RCT-Folly/Default (2024.11.18.00): - - boost - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog - - RCT-Folly/Fabric (2024.11.18.00): - - boost - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog - - RCTDeprecation (0.79.2) - - RCTRequired (0.79.2) - - RCTTypeSafety (0.79.2): - - FBLazyVector (= 0.79.2) - - RCTRequired (= 0.79.2) - - React-Core (= 0.79.2) - - React (0.79.2): - - React-Core (= 0.79.2) - - React-Core/DevSupport (= 0.79.2) - - React-Core/RCTWebSocket (= 0.79.2) - - React-RCTActionSheet (= 0.79.2) - - React-RCTAnimation (= 0.79.2) - - React-RCTBlob (= 0.79.2) - - React-RCTImage (= 0.79.2) - - React-RCTLinking (= 0.79.2) - - React-RCTNetwork (= 0.79.2) - - React-RCTSettings (= 0.79.2) - - React-RCTText (= 0.79.2) - - React-RCTVibration (= 0.79.2) - - React-callinvoker (0.79.2) - - React-Core (0.79.2): - - glog + - libwebp (1.5.0): + - libwebp/demux (= 1.5.0) + - libwebp/mux (= 1.5.0) + - libwebp/sharpyuv (= 1.5.0) + - libwebp/webp (= 1.5.0) + - libwebp/demux (1.5.0): + - libwebp/webp + - libwebp/mux (1.5.0): + - libwebp/demux + - libwebp/sharpyuv (1.5.0) + - libwebp/webp (1.5.0): + - libwebp/sharpyuv + - NitroModules (0.33.2): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-callinvoker + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - OpenSSL-Universal (3.3.3001) + - RCTDeprecation (0.81.5) + - RCTRequired (0.81.5) + - RCTTypeSafety (0.81.5): + - FBLazyVector (= 0.81.5) + - RCTRequired (= 0.81.5) + - React-Core (= 0.81.5) + - React (0.81.5): + - React-Core (= 0.81.5) + - React-Core/DevSupport (= 0.81.5) + - React-Core/RCTWebSocket (= 0.81.5) + - React-RCTActionSheet (= 0.81.5) + - React-RCTAnimation (= 0.81.5) + - React-RCTBlob (= 0.81.5) + - React-RCTImage (= 0.81.5) + - React-RCTLinking (= 0.81.5) + - React-RCTNetwork (= 0.81.5) + - React-RCTSettings (= 0.81.5) + - React-RCTText (= 0.81.5) + - React-RCTVibration (= 0.81.5) + - React-callinvoker (0.81.5) + - React-Core (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation - - React-Core/Default (= 0.79.2) + - React-Core-prebuilt + - React-Core/Default (= 0.81.5) - React-cxxreact - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/CoreModulesHeaders (0.79.2): - - glog + - React-Core-prebuilt (0.81.5): + - ReactNativeDependencies + - React-Core/CoreModulesHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -151,53 +167,56 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/Default (0.79.2): - - glog + - React-Core/Default (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-cxxreact - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/DevSupport (0.79.2): - - glog + - React-Core/DevSupport (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation - - React-Core/Default (= 0.79.2) - - React-Core/RCTWebSocket (= 0.79.2) + - React-Core-prebuilt + - React-Core/Default (= 0.81.5) + - React-Core/RCTWebSocket (= 0.81.5) - React-cxxreact - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTActionSheetHeaders (0.79.2): - - glog + - React-Core/RCTActionSheetHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -205,17 +224,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTAnimationHeaders (0.79.2): - - glog + - React-Core/RCTAnimationHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -223,17 +243,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTBlobHeaders (0.79.2): - - glog + - React-Core/RCTBlobHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -241,17 +262,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTImageHeaders (0.79.2): - - glog + - React-Core/RCTImageHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -259,17 +281,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTLinkingHeaders (0.79.2): - - glog + - React-Core/RCTLinkingHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -277,17 +300,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTNetworkHeaders (0.79.2): - - glog + - React-Core/RCTNetworkHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -295,17 +319,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTSettingsHeaders (0.79.2): - - glog + - React-Core/RCTSettingsHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -313,17 +338,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTTextHeaders (0.79.2): - - glog + - React-Core/RCTTextHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -331,17 +357,18 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTVibrationHeaders (0.79.2): - - glog + - React-Core/RCTVibrationHeaders (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation + - React-Core-prebuilt - React-Core/Default - React-cxxreact - React-featureflags @@ -349,1078 +376,1036 @@ PODS: - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-Core/RCTWebSocket (0.79.2): - - glog + - React-Core/RCTWebSocket (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTDeprecation - - React-Core/Default (= 0.79.2) + - React-Core-prebuilt + - React-Core/Default (= 0.81.5) - React-cxxreact - React-featureflags - React-hermes - React-jsi - React-jsiexecutor - React-jsinspector + - React-jsinspectorcdp - React-jsitooling - React-perflogger + - React-runtimeexecutor - React-runtimescheduler - React-utils - - SocketRocket (= 0.7.1) + - ReactNativeDependencies - Yoga - - React-CoreModules (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - RCT-Folly (= 2024.11.18.00) - - RCTTypeSafety (= 0.79.2) - - React-Core/CoreModulesHeaders (= 0.79.2) - - React-jsi (= 0.79.2) + - React-CoreModules (0.81.5): + - RCTTypeSafety (= 0.81.5) + - React-Core-prebuilt + - React-Core/CoreModulesHeaders (= 0.81.5) + - React-jsi (= 0.81.5) - React-jsinspector + - React-jsinspectorcdp - React-jsinspectortracing - React-NativeModulesApple - React-RCTBlob - React-RCTFBReactNativeSpec - - React-RCTImage (= 0.79.2) + - React-RCTImage (= 0.81.5) + - React-runtimeexecutor - ReactCommon - - SocketRocket (= 0.7.1) - - React-cxxreact (0.79.2): - - boost - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-cxxreact (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.79.2) - - React-debug (= 0.79.2) - - React-jsi (= 0.79.2) + - React-callinvoker (= 0.81.5) + - React-Core-prebuilt + - React-debug (= 0.81.5) + - React-jsi (= 0.81.5) - React-jsinspector + - React-jsinspectorcdp - React-jsinspectortracing - - React-logger (= 0.79.2) - - React-perflogger (= 0.79.2) - - React-runtimeexecutor (= 0.79.2) - - React-timing (= 0.79.2) - - React-debug (0.79.2) - - React-defaultsnativemodule (0.79.2): + - React-logger (= 0.81.5) + - React-perflogger (= 0.81.5) + - React-runtimeexecutor + - React-timing (= 0.81.5) + - ReactNativeDependencies + - React-debug (0.81.5) + - React-defaultsnativemodule (0.81.5): - hermes-engine - - RCT-Folly + - React-Core-prebuilt - React-domnativemodule - React-featureflagsnativemodule - - React-hermes - React-idlecallbacksnativemodule - React-jsi - React-jsiexecutor - React-microtasksnativemodule - React-RCTFBReactNativeSpec - - React-domnativemodule (0.79.2): + - ReactNativeDependencies + - React-domnativemodule (0.81.5): - hermes-engine - - RCT-Folly + - React-Core-prebuilt - React-Fabric + - React-Fabric/bridging - React-FabricComponents - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec + - React-runtimeexecutor - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-Fabric (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-Fabric (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/animations (= 0.79.2) - - React-Fabric/attributedstring (= 0.79.2) - - React-Fabric/componentregistry (= 0.79.2) - - React-Fabric/componentregistrynative (= 0.79.2) - - React-Fabric/components (= 0.79.2) - - React-Fabric/consistency (= 0.79.2) - - React-Fabric/core (= 0.79.2) - - React-Fabric/dom (= 0.79.2) - - React-Fabric/imagemanager (= 0.79.2) - - React-Fabric/leakchecker (= 0.79.2) - - React-Fabric/mounting (= 0.79.2) - - React-Fabric/observers (= 0.79.2) - - React-Fabric/scheduler (= 0.79.2) - - React-Fabric/telemetry (= 0.79.2) - - React-Fabric/templateprocessor (= 0.79.2) - - React-Fabric/uimanager (= 0.79.2) + - React-Fabric/animations (= 0.81.5) + - React-Fabric/attributedstring (= 0.81.5) + - React-Fabric/bridging (= 0.81.5) + - React-Fabric/componentregistry (= 0.81.5) + - React-Fabric/componentregistrynative (= 0.81.5) + - React-Fabric/components (= 0.81.5) + - React-Fabric/consistency (= 0.81.5) + - React-Fabric/core (= 0.81.5) + - React-Fabric/dom (= 0.81.5) + - React-Fabric/imagemanager (= 0.81.5) + - React-Fabric/leakchecker (= 0.81.5) + - React-Fabric/mounting (= 0.81.5) + - React-Fabric/observers (= 0.81.5) + - React-Fabric/scheduler (= 0.81.5) + - React-Fabric/telemetry (= 0.81.5) + - React-Fabric/templateprocessor (= 0.81.5) + - React-Fabric/uimanager (= 0.81.5) - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/animations (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/animations (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/attributedstring (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/attributedstring (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistry (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/bridging (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/componentregistrynative (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/componentregistry (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/componentregistrynative (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.79.2) - - React-Fabric/components/root (= 0.79.2) - - React-Fabric/components/scrollview (= 0.79.2) - - React-Fabric/components/view (= 0.79.2) - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/legacyviewmanagerinterop (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/components (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug + - React-Fabric/components/legacyviewmanagerinterop (= 0.81.5) + - React-Fabric/components/root (= 0.81.5) + - React-Fabric/components/scrollview (= 0.81.5) + - React-Fabric/components/view (= 0.81.5) - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/root (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/components/legacyviewmanagerinterop (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/scrollview (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/components/root (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/components/view (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/components/scrollview (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt + - React-cxxreact + - React-debug + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimeexecutor + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - React-Fabric/components/view (0.81.5): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-renderercss - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-Fabric/consistency (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-Fabric/consistency (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/core (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/core (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/dom (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/dom (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/imagemanager (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/imagemanager (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/leakchecker (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/leakchecker (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/mounting (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/mounting (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/observers (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/observers/events (= 0.79.2) + - React-Fabric/observers/events (= 0.81.5) - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/observers/events (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/observers/events (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/scheduler (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/scheduler (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric/observers/events - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-performancetimeline - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/telemetry (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/telemetry (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/templateprocessor (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/templateprocessor (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/uimanager (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/uimanager/consistency (= 0.79.2) + - React-Fabric/uimanager/consistency (= 0.81.5) - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererconsistency - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-Fabric/uimanager/consistency (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-Fabric/uimanager/consistency (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger - React-rendererconsistency - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core - - React-FabricComponents (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-FabricComponents (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components (= 0.79.2) - - React-FabricComponents/textlayoutmanager (= 0.79.2) + - React-FabricComponents/components (= 0.81.5) + - React-FabricComponents/textlayoutmanager (= 0.81.5) - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.79.2) - - React-FabricComponents/components/iostextinput (= 0.79.2) - - React-FabricComponents/components/modal (= 0.79.2) - - React-FabricComponents/components/rncore (= 0.79.2) - - React-FabricComponents/components/safeareaview (= 0.79.2) - - React-FabricComponents/components/scrollview (= 0.79.2) - - React-FabricComponents/components/text (= 0.79.2) - - React-FabricComponents/components/textinput (= 0.79.2) - - React-FabricComponents/components/unimplementedview (= 0.79.2) + - React-FabricComponents/components/inputaccessory (= 0.81.5) + - React-FabricComponents/components/iostextinput (= 0.81.5) + - React-FabricComponents/components/modal (= 0.81.5) + - React-FabricComponents/components/rncore (= 0.81.5) + - React-FabricComponents/components/safeareaview (= 0.81.5) + - React-FabricComponents/components/scrollview (= 0.81.5) + - React-FabricComponents/components/switch (= 0.81.5) + - React-FabricComponents/components/text (= 0.81.5) + - React-FabricComponents/components/textinput (= 0.81.5) + - React-FabricComponents/components/unimplementedview (= 0.81.5) + - React-FabricComponents/components/virtualview (= 0.81.5) - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/inputaccessory (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/inputaccessory (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/iostextinput (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/iostextinput (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/modal (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/modal (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/rncore (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/rncore (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/safeareaview (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/safeareaview (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/scrollview (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/scrollview (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/text (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/switch (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/textinput (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/text (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/components/unimplementedview (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/textinput (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricComponents/textlayoutmanager (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/unimplementedview (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-cxxreact - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-logger + - React-RCTFBReactNativeSpec - React-rendererdebug - React-runtimescheduler - React-utils - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-FabricImage (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-FabricComponents/components/virtualview (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - - RCTRequired (= 0.79.2) - - RCTTypeSafety (= 0.79.2) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-RCTFBReactNativeSpec + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - React-FabricComponents/textlayoutmanager (0.81.5): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-cxxreact + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-RCTFBReactNativeSpec + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - React-FabricImage (0.81.5): + - hermes-engine + - RCTRequired (= 0.81.5) + - RCTTypeSafety (= 0.81.5) + - React-Core-prebuilt - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.79.2) + - React-jsiexecutor (= 0.81.5) - React-logger - React-rendererdebug - React-utils - ReactCommon + - ReactNativeDependencies - Yoga - - React-featureflags (0.79.2): - - RCT-Folly (= 2024.11.18.00) - - React-featureflagsnativemodule (0.79.2): + - React-featureflags (0.81.5): + - React-Core-prebuilt + - ReactNativeDependencies + - React-featureflagsnativemodule (0.81.5): - hermes-engine - - RCT-Folly + - React-Core-prebuilt - React-featureflags - - React-hermes - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core - - React-graphics (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-graphics (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - - React-hermes + - React-Core-prebuilt - React-jsi - React-jsiexecutor - React-utils - - React-hermes (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-hermes (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - React-cxxreact (= 0.79.2) + - React-Core-prebuilt + - React-cxxreact (= 0.81.5) - React-jsi - - React-jsiexecutor (= 0.79.2) + - React-jsiexecutor (= 0.81.5) - React-jsinspector + - React-jsinspectorcdp - React-jsinspectortracing - - React-perflogger (= 0.79.2) + - React-perflogger (= 0.81.5) - React-runtimeexecutor - - React-idlecallbacksnativemodule (0.79.2): - - glog + - ReactNativeDependencies + - React-idlecallbacksnativemodule (0.81.5): - hermes-engine - - RCT-Folly - - React-hermes + - React-Core-prebuilt - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec + - React-runtimeexecutor - React-runtimescheduler - ReactCommon/turbomodule/core - - React-ImageManager (0.79.2): - - glog - - RCT-Folly/Fabric + - ReactNativeDependencies + - React-ImageManager (0.81.5): + - React-Core-prebuilt - React-Core/Default - React-debug - React-Fabric - React-graphics - React-rendererdebug - React-utils - - React-jserrorhandler (0.79.2): - - glog + - ReactNativeDependencies + - React-jserrorhandler (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - React-jsi - ReactCommon/turbomodule/bridging - - React-jsi (0.79.2): - - boost - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - React-jsi (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - React-jsiexecutor (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-Core-prebuilt + - ReactNativeDependencies + - React-jsiexecutor (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - React-cxxreact (= 0.79.2) - - React-jsi (= 0.79.2) + - React-Core-prebuilt + - React-cxxreact (= 0.81.5) + - React-jsi (= 0.81.5) - React-jsinspector + - React-jsinspectorcdp - React-jsinspectortracing - - React-perflogger (= 0.79.2) - - React-jsinspector (0.79.2): - - DoubleConversion - - glog + - React-perflogger (= 0.81.5) + - React-runtimeexecutor + - ReactNativeDependencies + - React-jsinspector (0.81.5): - hermes-engine - - RCT-Folly + - React-Core-prebuilt - React-featureflags - React-jsi + - React-jsinspectorcdp + - React-jsinspectornetwork - React-jsinspectortracing - - React-perflogger (= 0.79.2) - - React-runtimeexecutor (= 0.79.2) - - React-jsinspectortracing (0.79.2): - - RCT-Folly - React-oscompat - - React-jsitooling (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog - - RCT-Folly (= 2024.11.18.00) - - React-cxxreact (= 0.79.2) - - React-jsi (= 0.79.2) + - React-perflogger (= 0.81.5) + - React-runtimeexecutor + - ReactNativeDependencies + - React-jsinspectorcdp (0.81.5): + - React-Core-prebuilt + - ReactNativeDependencies + - React-jsinspectornetwork (0.81.5): + - React-Core-prebuilt + - React-featureflags + - React-jsinspectorcdp + - React-performancetimeline + - React-timing + - ReactNativeDependencies + - React-jsinspectortracing (0.81.5): + - React-Core-prebuilt + - React-oscompat + - React-timing + - ReactNativeDependencies + - React-jsitooling (0.81.5): + - React-Core-prebuilt + - React-cxxreact (= 0.81.5) + - React-jsi (= 0.81.5) - React-jsinspector + - React-jsinspectorcdp - React-jsinspectortracing - - React-jsitracing (0.79.2): + - React-runtimeexecutor + - ReactNativeDependencies + - React-jsitracing (0.81.5): - React-jsi - - React-logger (0.79.2): - - glog - - React-Mapbuffer (0.79.2): - - glog + - React-logger (0.81.5): + - React-Core-prebuilt + - ReactNativeDependencies + - React-Mapbuffer (0.81.5): + - React-Core-prebuilt - React-debug - - React-microtasksnativemodule (0.79.2): + - ReactNativeDependencies + - React-microtasksnativemodule (0.81.5): - hermes-engine - - RCT-Folly - - React-hermes + - React-Core-prebuilt - React-jsi - React-jsiexecutor - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core + - ReactNativeDependencies - react-native-alarm-notification (3.6.0): - React - react-native-document-picker (10.1.7): - - DoubleConversion - - glog - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -1431,20 +1416,18 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - react-native-geolocation (3.4.0): - - DoubleConversion - - glog - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -1455,22 +1438,20 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - react-native-get-random-values (1.11.0): - React-Core - react-native-image-picker (8.2.1): - - DoubleConversion - - glog - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -1481,26 +1462,24 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - react-native-image-resizer (3.0.11): - - React-Core - react-native-netinfo (11.4.1): - React-Core + - react-native-quick-base64 (2.2.2): + - React-Core - react-native-quick-crypto (0.7.17): - - DoubleConversion - - glog - hermes-engine - OpenSSL-Universal - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -1511,28 +1490,46 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - react-native-rsa-native (2.0.5): - React - react-native-saf-x (3.6.0): - React-Core - - react-native-safe-area-context (5.6.1): - - React-Core - - react-native-sqlite-storage (6.0.1): - - React-Core - - react-native-vector-icons (12.3.0): - - DoubleConversion - - glog + - react-native-safe-area-context (5.6.2): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - react-native-safe-area-context/common (= 5.6.2) + - react-native-safe-area-context/fabric (= 5.6.2) + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - react-native-safe-area-context/common (5.6.2): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -1543,6 +1540,54 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - react-native-safe-area-context/fabric (5.6.2): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - react-native-safe-area-context/common + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - react-native-sqlite-storage (6.0.1): + - React-Core + - react-native-vector-icons (12.3.0): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - react-native-vector-icons-fontawesome5 (12.3.0) - react-native-vector-icons-ionicons (12.3.0) @@ -1550,19 +1595,16 @@ PODS: - react-native-vector-icons-material-icons (12.4.0) - react-native-version-info (1.1.1): - React-Core - - react-native-webview (13.16.0): - - DoubleConversion - - glog + - react-native-webview (13.15.0): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -1573,47 +1615,51 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - React-NativeModulesApple (0.79.2): - - glog + - React-NativeModulesApple (0.81.5): - hermes-engine - React-callinvoker - React-Core + - React-Core-prebuilt - React-cxxreact - React-featureflags - - React-hermes - React-jsi - React-jsinspector + - React-jsinspectorcdp - React-runtimeexecutor - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - React-oscompat (0.79.2) - - React-perflogger (0.79.2): - - DoubleConversion - - RCT-Folly (= 2024.11.18.00) - - React-performancetimeline (0.79.2): - - RCT-Folly (= 2024.11.18.00) - - React-cxxreact + - ReactNativeDependencies + - React-oscompat (0.81.5) + - React-perflogger (0.81.5): + - React-Core-prebuilt + - ReactNativeDependencies + - React-performancetimeline (0.81.5): + - React-Core-prebuilt - React-featureflags - React-jsinspectortracing - React-perflogger - React-timing - - React-RCTActionSheet (0.79.2): - - React-Core/RCTActionSheetHeaders (= 0.79.2) - - React-RCTAnimation (0.79.2): - - RCT-Folly (= 2024.11.18.00) + - ReactNativeDependencies + - React-RCTActionSheet (0.81.5): + - React-Core/RCTActionSheetHeaders (= 0.81.5) + - React-RCTAnimation (0.81.5): - RCTTypeSafety + - React-Core-prebuilt - React-Core/RCTAnimationHeaders + - React-featureflags - React-jsi - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-RCTAppDelegate (0.79.2): + - ReactNativeDependencies + - React-RCTAppDelegate (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-CoreModules - React-debug - React-defaultsnativemodule @@ -1631,130 +1677,156 @@ PODS: - React-rendererdebug - React-RuntimeApple - React-RuntimeCore + - React-runtimeexecutor - React-runtimescheduler - React-utils - ReactCommon - - React-RCTBlob (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) + - ReactNativeDependencies + - React-RCTBlob (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) + - React-Core-prebuilt - React-Core/RCTBlobHeaders - React-Core/RCTWebSocket - React-jsi - React-jsinspector + - React-jsinspectorcdp - React-NativeModulesApple - React-RCTFBReactNativeSpec - React-RCTNetwork - ReactCommon - - React-RCTFabric (0.79.2): - - glog + - ReactNativeDependencies + - React-RCTFabric (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-FabricComponents - React-FabricImage - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-jsinspector + - React-jsinspectorcdp + - React-jsinspectornetwork - React-jsinspectortracing - React-performancetimeline - React-RCTAnimation + - React-RCTFBReactNativeSpec - React-RCTImage - React-RCTText - React-rendererconsistency - React-renderercss - React-rendererdebug + - React-runtimeexecutor - React-runtimescheduler - React-utils + - ReactNativeDependencies - Yoga - - React-RCTFBReactNativeSpec (0.79.2): + - React-RCTFBReactNativeSpec (0.81.5): - hermes-engine - - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core - - React-hermes + - React-Core-prebuilt - React-jsi - - React-jsiexecutor - React-NativeModulesApple + - React-RCTFBReactNativeSpec/components (= 0.81.5) - ReactCommon - - React-RCTImage (0.79.2): - - RCT-Folly (= 2024.11.18.00) + - ReactNativeDependencies + - React-RCTFBReactNativeSpec/components (0.81.5): + - hermes-engine + - RCTRequired - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-jsi + - React-NativeModulesApple + - React-rendererdebug + - React-utils + - ReactCommon + - ReactNativeDependencies + - Yoga + - React-RCTImage (0.81.5): + - RCTTypeSafety + - React-Core-prebuilt - React-Core/RCTImageHeaders - React-jsi - React-NativeModulesApple - React-RCTFBReactNativeSpec - React-RCTNetwork - ReactCommon - - React-RCTLinking (0.79.2): - - React-Core/RCTLinkingHeaders (= 0.79.2) - - React-jsi (= 0.79.2) + - ReactNativeDependencies + - React-RCTLinking (0.81.5): + - React-Core/RCTLinkingHeaders (= 0.81.5) + - React-jsi (= 0.81.5) - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - ReactCommon/turbomodule/core (= 0.79.2) - - React-RCTNetwork (0.79.2): - - RCT-Folly (= 2024.11.18.00) + - ReactCommon/turbomodule/core (= 0.81.5) + - React-RCTNetwork (0.81.5): - RCTTypeSafety + - React-Core-prebuilt - React-Core/RCTNetworkHeaders + - React-featureflags - React-jsi + - React-jsinspectorcdp + - React-jsinspectornetwork - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-RCTRuntime (0.79.2): - - glog + - ReactNativeDependencies + - React-RCTRuntime (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - React-Core - - React-hermes + - React-Core-prebuilt - React-jsi - React-jsinspector + - React-jsinspectorcdp - React-jsinspectortracing - React-jsitooling - React-RuntimeApple - React-RuntimeCore + - React-runtimeexecutor - React-RuntimeHermes - - React-RCTSettings (0.79.2): - - RCT-Folly (= 2024.11.18.00) + - ReactNativeDependencies + - React-RCTSettings (0.81.5): - RCTTypeSafety + - React-Core-prebuilt - React-Core/RCTSettingsHeaders - React-jsi - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-RCTText (0.79.2): - - React-Core/RCTTextHeaders (= 0.79.2) + - ReactNativeDependencies + - React-RCTText (0.81.5): + - React-Core/RCTTextHeaders (= 0.81.5) - Yoga - - React-RCTVibration (0.79.2): - - RCT-Folly (= 2024.11.18.00) + - React-RCTVibration (0.81.5): + - React-Core-prebuilt - React-Core/RCTVibrationHeaders - React-jsi - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - React-rendererconsistency (0.79.2) - - React-renderercss (0.79.2): + - ReactNativeDependencies + - React-rendererconsistency (0.81.5) + - React-renderercss (0.81.5): - React-debug - React-utils - - React-rendererdebug (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - RCT-Folly (= 2024.11.18.00) + - React-rendererdebug (0.81.5): + - React-Core-prebuilt - React-debug - - React-rncore (0.79.2) - - React-RuntimeApple (0.79.2): + - ReactNativeDependencies + - React-RuntimeApple (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) - React-callinvoker + - React-Core-prebuilt - React-Core/Default - React-CoreModules - React-cxxreact @@ -1773,14 +1845,13 @@ PODS: - React-RuntimeHermes - React-runtimescheduler - React-utils - - React-RuntimeCore (0.79.2): - - glog + - ReactNativeDependencies + - React-RuntimeCore (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) + - React-Core-prebuilt - React-cxxreact - React-Fabric - React-featureflags - - React-hermes - React-jserrorhandler - React-jsi - React-jsiexecutor @@ -1790,29 +1861,36 @@ PODS: - React-runtimeexecutor - React-runtimescheduler - React-utils - - React-runtimeexecutor (0.79.2): - - React-jsi (= 0.79.2) - - React-RuntimeHermes (0.79.2): + - ReactNativeDependencies + - React-runtimeexecutor (0.81.5): + - React-Core-prebuilt + - React-debug + - React-featureflags + - React-jsi (= 0.81.5) + - React-utils + - ReactNativeDependencies + - React-RuntimeHermes (0.81.5): - hermes-engine - - RCT-Folly/Fabric (= 2024.11.18.00) + - React-Core-prebuilt - React-featureflags - React-hermes - React-jsi - React-jsinspector + - React-jsinspectorcdp - React-jsinspectortracing - React-jsitooling - React-jsitracing - React-RuntimeCore + - React-runtimeexecutor - React-utils - - React-runtimescheduler (0.79.2): - - glog + - ReactNativeDependencies + - React-runtimescheduler (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - React-callinvoker + - React-Core-prebuilt - React-cxxreact - React-debug - React-featureflags - - React-hermes - React-jsi - React-jsinspectortracing - React-performancetimeline @@ -1821,30 +1899,28 @@ PODS: - React-runtimeexecutor - React-timing - React-utils - - React-timing (0.79.2) - - React-utils (0.79.2): - - glog - - hermes-engine - - RCT-Folly (= 2024.11.18.00) + - ReactNativeDependencies + - React-timing (0.81.5): - React-debug - - React-hermes - - React-jsi (= 0.79.2) - - ReactAppDependencyProvider (0.79.2): + - React-utils (0.81.5): + - hermes-engine + - React-Core-prebuilt + - React-debug + - React-jsi (= 0.81.5) + - ReactNativeDependencies + - ReactAppDependencyProvider (0.81.5): - ReactCodegen - - ReactCodegen (0.79.2): - - DoubleConversion - - glog + - ReactCodegen (0.81.5): - hermes-engine - - RCT-Folly - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-FabricImage - React-featureflags - React-graphics - - React-hermes - React-jsi - React-jsiexecutor - React-NativeModulesApple @@ -1853,84 +1929,54 @@ PODS: - React-utils - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - - ReactCommon (0.79.2): - - ReactCommon/turbomodule (= 0.79.2) - - ReactCommon/turbomodule (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - ReactNativeDependencies + - ReactCommon (0.81.5): + - React-Core-prebuilt + - ReactCommon/turbomodule (= 0.81.5) + - ReactNativeDependencies + - ReactCommon/turbomodule (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.79.2) - - React-cxxreact (= 0.79.2) - - React-jsi (= 0.79.2) - - React-logger (= 0.79.2) - - React-perflogger (= 0.79.2) - - ReactCommon/turbomodule/bridging (= 0.79.2) - - ReactCommon/turbomodule/core (= 0.79.2) - - ReactCommon/turbomodule/bridging (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-callinvoker (= 0.81.5) + - React-Core-prebuilt + - React-cxxreact (= 0.81.5) + - React-jsi (= 0.81.5) + - React-logger (= 0.81.5) + - React-perflogger (= 0.81.5) + - ReactCommon/turbomodule/bridging (= 0.81.5) + - ReactCommon/turbomodule/core (= 0.81.5) + - ReactNativeDependencies + - ReactCommon/turbomodule/bridging (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.79.2) - - React-cxxreact (= 0.79.2) - - React-jsi (= 0.79.2) - - React-logger (= 0.79.2) - - React-perflogger (= 0.79.2) - - ReactCommon/turbomodule/core (0.79.2): - - DoubleConversion - - fast_float (= 6.1.4) - - fmt (= 11.0.2) - - glog + - React-callinvoker (= 0.81.5) + - React-Core-prebuilt + - React-cxxreact (= 0.81.5) + - React-jsi (= 0.81.5) + - React-logger (= 0.81.5) + - React-perflogger (= 0.81.5) + - ReactNativeDependencies + - ReactCommon/turbomodule/core (0.81.5): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - React-callinvoker (= 0.79.2) - - React-cxxreact (= 0.79.2) - - React-debug (= 0.79.2) - - React-featureflags (= 0.79.2) - - React-jsi (= 0.79.2) - - React-logger (= 0.79.2) - - React-perflogger (= 0.79.2) - - React-utils (= 0.79.2) - - rn-fetch-blob (0.12.0): - - React-Core - - RNCClipboard (1.16.3): - - React-Core - - RNCPushNotificationIOS (1.11.0): - - React-Core - - RNDateTimePicker (8.4.5): - - React-Core - - RNDeviceInfo (14.1.1): - - React-Core - - RNExitApp (2.0.0): - - React-Core - - RNFileViewer (2.1.5): - - React-Core - - RNFS (2.20.0): - - React-Core - - RNLocalize (3.5.4): - - React-Core - - RNQuickAction (0.3.13): - - React - - RNSecureRandom (1.0.1): - - React - - RNShare (12.2.0): - - DoubleConversion - - glog + - React-callinvoker (= 0.81.5) + - React-Core-prebuilt + - React-cxxreact (= 0.81.5) + - React-debug (= 0.81.5) + - React-featureflags (= 0.81.5) + - React-jsi (= 0.81.5) + - React-logger (= 0.81.5) + - React-perflogger (= 0.81.5) + - React-utils (= 0.81.5) + - ReactNativeDependencies + - ReactNativeDependencies (0.81.5) + - ReactNativeFs (2.36.2): - hermes-engine - - RCT-Folly (= 2024.11.18.00) - RCTRequired - RCTTypeSafety - React-Core + - React-Core-prebuilt - React-debug - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -1941,10 +1987,180 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - ReactNativeDependencies - Yoga - - RNSVG (15.13.0): + - rn-fetch-blob (0.12.0): - React-Core - - SocketRocket (0.7.1) + - RNCClipboard (1.16.3): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - RNCPushNotificationIOS (1.11.0): + - React-Core + - RNDateTimePicker (8.4.7): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - RNDeviceInfo (14.1.1): + - React-Core + - RNFileViewer (2.1.5): + - React-Core + - RNLocalize (3.5.4): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - RNQuickAction (0.3.13): + - React + - RNSecureRandom (1.0.1): + - React + - RNShare (12.2.0): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - RNSVG (15.12.1): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - RNSVG/common (= 15.12.1) + - Yoga + - RNSVG/common (15.12.1): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga + - SDWebImage/Core (5.21.5) + - SDWebImageWebPCoder (0.15.0): + - libwebp (~> 1.0) + - SDWebImage/Core (~> 5.17) + - WhisperVoiceTyping (3.6.0): + - hermes-engine + - RCTRequired + - RCTTypeSafety + - React-callinvoker + - React-Core + - React-Core-prebuilt + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsi + - React-NativeModulesApple + - React-RCTFabric + - React-renderercss + - React-rendererdebug + - React-utils + - ReactCodegen + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - ReactNativeDependencies + - Yoga - Yoga (0.0.0) - ZXingObjC/Core (3.6.9) - ZXingObjC/OneD (3.6.9): @@ -1953,32 +2169,29 @@ PODS: - ZXingObjC/Core DEPENDENCIES: - - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - EXAV (from `../node_modules/expo-av/ios`) - EXConstants (from `../node_modules/expo-constants/ios`) + - EXImageLoader (from `../node_modules/expo-image-loader/ios`) - Expo (from `../node_modules/expo`) - ExpoAsset (from `../node_modules/expo-asset/ios`) - ExpoCamera (from `../node_modules/expo-camera/ios`) - ExpoFileSystem (from `../node_modules/expo-file-system/ios`) - ExpoFont (from `../node_modules/expo-font/ios`) + - ExpoImageManipulator (from `../node_modules/expo-image-manipulator/ios`) - ExpoLocalAuthentication (from `../node_modules/expo-local-authentication/ios`) - ExpoModulesCore (from `../node_modules/expo-modules-core`) - - fast_float (from `../node_modules/react-native/third-party-podspecs/fast_float.podspec`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - JoplinCommonShareExtension (from `ShareExtension`) - JoplinRNShareExtension (from `ShareExtension`) - - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) + - NitroModules (from `../node_modules/react-native-nitro-modules`) - RCTDeprecation (from `../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`) - RCTRequired (from `../node_modules/react-native/Libraries/Required`) - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - React (from `../node_modules/react-native/`) - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - React-Core (from `../node_modules/react-native/`) + - React-Core-prebuilt (from `../node_modules/react-native/React-Core-prebuilt.podspec`) - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) @@ -1998,6 +2211,8 @@ DEPENDENCIES: - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`) + - React-jsinspectorcdp (from `../node_modules/react-native/ReactCommon/jsinspector-modern/cdp`) + - React-jsinspectornetwork (from `../node_modules/react-native/ReactCommon/jsinspector-modern/network`) - React-jsinspectortracing (from `../node_modules/react-native/ReactCommon/jsinspector-modern/tracing`) - React-jsitooling (from `../node_modules/react-native/ReactCommon/jsitooling`) - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) @@ -2009,8 +2224,8 @@ DEPENDENCIES: - "react-native-geolocation (from `../node_modules/@react-native-community/geolocation`)" - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) - react-native-image-picker (from `../node_modules/react-native-image-picker`) - - "react-native-image-resizer (from `../node_modules/@bam.tech/react-native-image-resizer`)" - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" + - react-native-quick-base64 (from `../node_modules/react-native-quick-base64`) - react-native-quick-crypto (from `../node_modules/react-native-quick-crypto`) - react-native-rsa-native (from `../node_modules/react-native-rsa-native`) - "react-native-saf-x (from `../node_modules/@joplin/react-native-saf-x`)" @@ -2043,7 +2258,6 @@ DEPENDENCIES: - React-rendererconsistency (from `../node_modules/react-native/ReactCommon/react/renderer/consistency`) - React-renderercss (from `../node_modules/react-native/ReactCommon/react/renderer/css`) - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) - - React-rncore (from `../node_modules/react-native/ReactCommon`) - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) @@ -2054,36 +2268,37 @@ DEPENDENCIES: - ReactAppDependencyProvider (from `build/generated/ios`) - ReactCodegen (from `build/generated/ios`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - ReactNativeDependencies (from `../node_modules/react-native/third-party-podspecs/ReactNativeDependencies.podspec`) + - "ReactNativeFs (from `../node_modules/@dr.pogodin/react-native-fs`)" - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) - "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" - "RNCPushNotificationIOS (from `../node_modules/@react-native-community/push-notification-ios`)" - "RNDateTimePicker (from `../node_modules/@react-native-community/datetimepicker`)" - RNDeviceInfo (from `../node_modules/react-native-device-info`) - - RNExitApp (from `../node_modules/react-native-exit-app`) - RNFileViewer (from `../node_modules/react-native-file-viewer`) - - RNFS (from `../node_modules/react-native-fs`) - RNLocalize (from `../node_modules/react-native-localize`) - RNQuickAction (from `../node_modules/react-native-quick-actions`) - RNSecureRandom (from `../node_modules/react-native-securerandom`) - RNShare (from `../node_modules/react-native-share`) - RNSVG (from `../node_modules/react-native-svg`) + - "WhisperVoiceTyping (from `../node_modules/@joplin/whisper-voice-typing`)" - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: trunk: + - libwebp - OpenSSL-Universal - - SocketRocket + - SDWebImage + - SDWebImageWebPCoder - ZXingObjC EXTERNAL SOURCES: - boost: - :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" - DoubleConversion: - :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" EXAV: :path: "../node_modules/expo-av/ios" EXConstants: :path: "../node_modules/expo-constants/ios" + EXImageLoader: + :path: "../node_modules/expo-image-loader/ios" Expo: :path: "../node_modules/expo" ExpoAsset: @@ -2094,27 +2309,23 @@ EXTERNAL SOURCES: :path: "../node_modules/expo-file-system/ios" ExpoFont: :path: "../node_modules/expo-font/ios" + ExpoImageManipulator: + :path: "../node_modules/expo-image-manipulator/ios" ExpoLocalAuthentication: :path: "../node_modules/expo-local-authentication/ios" ExpoModulesCore: :path: "../node_modules/expo-modules-core" - fast_float: - :podspec: "../node_modules/react-native/third-party-podspecs/fast_float.podspec" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" - fmt: - :podspec: "../node_modules/react-native/third-party-podspecs/fmt.podspec" - glog: - :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" hermes-engine: :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - :tag: hermes-2025-03-03-RNv0.79.0-bc17d964d03743424823d7dd1a9f37633459c5c5 + :tag: hermes-2025-07-07-RNv0.81.0-e0fc67142ec0763c6b6153ca2bf96df815539782 JoplinCommonShareExtension: :path: ShareExtension JoplinRNShareExtension: :path: ShareExtension - RCT-Folly: - :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" + NitroModules: + :path: "../node_modules/react-native-nitro-modules" RCTDeprecation: :path: "../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation" RCTRequired: @@ -2127,6 +2338,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/callinvoker" React-Core: :path: "../node_modules/react-native/" + React-Core-prebuilt: + :podspec: "../node_modules/react-native/React-Core-prebuilt.podspec" React-CoreModules: :path: "../node_modules/react-native/React/CoreModules" React-cxxreact: @@ -2163,6 +2376,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/jsiexecutor" React-jsinspector: :path: "../node_modules/react-native/ReactCommon/jsinspector-modern" + React-jsinspectorcdp: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/cdp" + React-jsinspectornetwork: + :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/network" React-jsinspectortracing: :path: "../node_modules/react-native/ReactCommon/jsinspector-modern/tracing" React-jsitooling: @@ -2185,10 +2402,10 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-get-random-values" react-native-image-picker: :path: "../node_modules/react-native-image-picker" - react-native-image-resizer: - :path: "../node_modules/@bam.tech/react-native-image-resizer" react-native-netinfo: :path: "../node_modules/@react-native-community/netinfo" + react-native-quick-base64: + :path: "../node_modules/react-native-quick-base64" react-native-quick-crypto: :path: "../node_modules/react-native-quick-crypto" react-native-rsa-native: @@ -2253,8 +2470,6 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/react/renderer/css" React-rendererdebug: :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" - React-rncore: - :path: "../node_modules/react-native/ReactCommon" React-RuntimeApple: :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" React-RuntimeCore: @@ -2275,6 +2490,10 @@ EXTERNAL SOURCES: :path: build/generated/ios ReactCommon: :path: "../node_modules/react-native/ReactCommon" + ReactNativeDependencies: + :podspec: "../node_modules/react-native/third-party-podspecs/ReactNativeDependencies.podspec" + ReactNativeFs: + :path: "../node_modules/@dr.pogodin/react-native-fs" rn-fetch-blob: :path: "../node_modules/rn-fetch-blob" RNCClipboard: @@ -2285,12 +2504,8 @@ EXTERNAL SOURCES: :path: "../node_modules/@react-native-community/datetimepicker" RNDeviceInfo: :path: "../node_modules/react-native-device-info" - RNExitApp: - :path: "../node_modules/react-native-exit-app" RNFileViewer: :path: "../node_modules/react-native-file-viewer" - RNFS: - :path: "../node_modules/react-native-fs" RNLocalize: :path: "../node_modules/react-native-localize" RNQuickAction: @@ -2301,127 +2516,131 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native-share" RNSVG: :path: "../node_modules/react-native-svg" + WhisperVoiceTyping: + :path: "../node_modules/@joplin/whisper-voice-typing" Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" SPEC CHECKSUMS: - boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 - DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb - EXAV: ae28256069c4cdde93d185c007d8f68d92902c2e - EXConstants: 98bcf0f22b820f9b28f9fee55ff2daededadd2f8 - Expo: c8f323f74218c45c46e27eed40d8a53ba50667c3 - ExpoAsset: ef06e880126c375f580d4923fdd1cdf4ee6ee7d6 - ExpoCamera: e1879906d41184e84b57d7643119f8509414e318 - ExpoFileSystem: 7f92f7be2f5c5ed40a7c9efc8fa30821181d9d63 - ExpoFont: cf508bc2e6b70871e05386d71cab927c8524cc8e - ExpoLocalAuthentication: c35f18692dcb35775a1be0f37b2131096951a6bd - ExpoModulesCore: f55e7872391bae03ee5547c83152c81750d89508 - fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 - FBLazyVector: 84b955f7b4da8b895faf5946f73748267347c975 - fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd - glog: 5683914934d5b6e4240e497e0f4a3b42d1854183 - hermes-engine: 314be5250afa5692b57b4dd1705959e1973a8ebe + EXAV: b60fcf142fae6684d295bc28cd7cfcb3335570ea + EXConstants: fce59a631a06c4151602843667f7cfe35f81e271 + EXImageLoader: 189e3476581efe3ad4d1d3fb4735b7179eb26f05 + Expo: 04993fbd7b06dc98ffac58da8847298470dc3db1 + ExpoAsset: f867e55ceb428aab99e1e8c082b5aee7c159ea18 + ExpoCamera: 6a326deb45ba840749652e4c15198317aa78497e + ExpoFileSystem: 858a44267a3e6e9057e0888ad7c7cfbf55d52063 + ExpoFont: 35ac6191ed86bbf56b3ebd2d9154eda9fad5b509 + ExpoImageManipulator: 607a5c8c88085381639458a46cc55fb9d3869148 + ExpoLocalAuthentication: 8a31808565da7af926dd9b595e98594d8b1553b6 + ExpoModulesCore: f3da4f1ab5a8375d0beafab763739dbee8446583 + FBLazyVector: e95a291ad2dadb88e42b06e0c5fb8262de53ec12 + hermes-engine: 9f4dfe93326146a1c99eb535b1cb0b857a3cd172 JoplinCommonShareExtension: a8b60b02704d85a7305627912c0240e94af78db7 JoplinRNShareExtension: e158a4b53ee0aa9cd3037a16221dc8adbd6f7860 - OpenSSL-Universal: b60a3702c9fea8b3145549d421fdb018e53ab7b4 - RCT-Folly: e78785aa9ba2ed998ea4151e314036f6c49e6d82 - RCTDeprecation: 83ffb90c23ee5cea353bd32008a7bca100908f8c - RCTRequired: eb7c0aba998009f47a540bec9e9d69a54f68136e - RCTTypeSafety: 659ae318c09de0477fd27bbc9e140071c7ea5c93 - React: c2d3aa44c49bb34e4dfd49d3ee92da5ebacc1c1c - React-callinvoker: 1bdfb7549b5af266d85757193b5069f60659ef9d - React-Core: 10597593fdbae06f0089881e025a172e51d4a769 - React-CoreModules: 6907b255529dd46895cf687daa67b24484a612c2 - React-cxxreact: a9f5b8180d6955bc3f6a3fcd657c4d9b4d95c1f6 - React-debug: e74e76912b91e08d580c481c34881899ccf63da9 - React-defaultsnativemodule: 11f6ee2cf69bf3af9d0f28a6253def33d21b5266 - React-domnativemodule: f940bbc4fa9e134190acbf3a4a9f95621b5a8f51 - React-Fabric: 6f5c357bf3a42ff11f8844ad3fc7a1eb04f4b9de - React-FabricComponents: 10e0c0209822ac9e69412913a8af1ca33573379b - React-FabricImage: f582e764072dfa4715ae8c42979a5bace9cbcc12 - React-featureflags: d5facceff8f8f6de430e0acecf4979a9a0839ba9 - React-featureflagsnativemodule: a7dd141f1ef4b7c1331af0035689fbc742a49ff4 - React-graphics: 36ae3407172c1c77cea29265d2b12b90aaef6aa0 - React-hermes: 9116d4e6d07abeb519a2852672de087f44da8f12 - React-idlecallbacksnativemodule: ae7f5ffc6cf2d2058b007b78248e5b08172ad5c3 - React-ImageManager: 9daee0dc99ad6a001d4b9e691fbf37107e2b7b54 - React-jserrorhandler: 1e6211581071edaf4ecd5303147328120c73f4dc - React-jsi: 753ba30c902f3a41fa7f956aca8eea3317a44ee6 - React-jsiexecutor: 47520714aa7d9589c51c0f3713dfbfca4895d4f9 - React-jsinspector: cfd27107f6d6f1076a57d88c932401251560fe5f - React-jsinspectortracing: 76a7d791f3c0c09a0d2bf6f46dfb0e79a4fcc0ac - React-jsitooling: 995e826570dd58f802251490486ebd3244a037ab - React-jsitracing: 094ae3d8c123cea67b50211c945b7c0443d3e97b - React-logger: 8edfcedc100544791cd82692ca5a574240a16219 - React-Mapbuffer: c3f4b608e4a59dd2f6a416ef4d47a14400194468 - React-microtasksnativemodule: 054f34e9b82f02bd40f09cebd4083828b5b2beb6 + libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8 + NitroModules: 114b4f79e10be9b202723e721d6a54382fa4b599 + OpenSSL-Universal: 6082b0bf950e5636fe0d78def171184e2b3899c2 + RCTDeprecation: 943572d4be82d480a48f4884f670135ae30bf990 + RCTRequired: 8f3cfc90cc25cf6e420ddb3e7caaaabc57df6043 + RCTTypeSafety: 16a4144ca3f959583ab019b57d5633df10b5e97c + React: 914f8695f9bf38e6418228c2ffb70021e559f92f + React-callinvoker: 1c0808402aee0c6d4a0d8e7220ce6547af9fba71 + React-Core: c61410ef0ca6055e204a963992e363227e0fd1c5 + React-Core-prebuilt: 02f0ad625ddd47463c009c2d0c5dd35c0d982599 + React-CoreModules: 1f6d1744b5f9f2ec684a4bb5ced25370f87e5382 + React-cxxreact: 3af79478e8187b63ffc22b794cd42d3fc1f1f2da + React-debug: 6328c2228e268846161f10082e80dc69eac2e90a + React-defaultsnativemodule: d635ef36d755321e5d6fc065bd166b2c5a0e9833 + React-domnativemodule: dd28f6d96cd21236e020be2eff6fe0b7d4ec3b66 + React-Fabric: 2e32c3fdbb1fbcf5fde54607e3abe453c6652ce2 + React-FabricComponents: 5ed0cdb81f6b91656cb4d3be432feaa28a58071a + React-FabricImage: 2bc714f818cb24e454f5d3961864373271b2faf8 + React-featureflags: 847642f41fa71ad4eec5e0351badebcad4fe6171 + React-featureflagsnativemodule: c868a544b2c626fa337bcbd364b1befe749f0d3f + React-graphics: 192ec701def5b3f2a07db2814dfba5a44986cff6 + React-hermes: e875778b496c86d07ab2ccaa36a9505d248a254b + React-idlecallbacksnativemodule: 4d57965cdf82c14ee3b337189836cd8491632b76 + React-ImageManager: bd0b99e370b13de82c9cd15f0f08144ff3de079e + React-jserrorhandler: a2fdef4cbcfdcdf3fa9f5d1f7190f7fd4535248d + React-jsi: 89d43d1e7d4d0663f8ba67e0b39eb4e4672c27de + React-jsiexecutor: abe4874aaab90dfee5dec480680220b2f8af07e3 + React-jsinspector: a0b3e051aef842b0b2be2353790ae2b2a5a65a8f + React-jsinspectorcdp: 6346013b2247c6263fbf5199adf4a8751e53bd89 + React-jsinspectornetwork: 26281aa50d49fc1ec93abf981d934698fa95714f + React-jsinspectortracing: 55eedf6d57540507570259a778663b90060bbd6e + React-jsitooling: 0e001113fa56d8498aa8ac28437ac0d36348e51a + React-jsitracing: b713793eb8a5bbc4d86a84e9d9e5023c0f58cbaf + React-logger: 50fdb9a8236da90c0b1072da5c32ee03aeb5bf28 + React-Mapbuffer: 9050ee10c19f4f7fca8963d0211b2854d624973e + React-microtasksnativemodule: f775db9e991c6f3b8ccbc02bfcde22770f96e23b react-native-alarm-notification: 846df1df72eca38e711409b9c064a5c635ff1c32 - react-native-document-picker: b6419b766863408dacbdf5e97b2f3a694c611150 - react-native-geolocation: ec15ffebc53790314885eb9e5f2132132fbc2600 + react-native-document-picker: 4aa06b45d0f6dfc7fac5bcb5d1cee4f45af5d68a + react-native-geolocation: cfc39041210bd9f591ec2beb7d417291251da8e5 react-native-get-random-values: d16467cf726c618e9c7a8c3c39c31faa2244bbba - react-native-image-picker: 7babe45e727db306b3f00d08c72eda3586d6e9c1 - react-native-image-resizer: 24c5d06fae2176dc0caed4b6396e02befb44064a + react-native-image-picker: 48d850454b4a389753053e1d7378b624d3b47d77 react-native-netinfo: cec9c4e86083cb5b6aba0e0711f563e2fbbff187 - react-native-quick-crypto: b475b71e7fa4dbf3446be55e8ad4ef2c58ac4f7f + react-native-quick-base64: 6568199bb2ac8e72ecdfdc73a230fbc5c1d3aac4 + react-native-quick-crypto: 1a2467cf17acc57dce5bb076a953978b79e3fd11 react-native-rsa-native: a7931cdda1f73a8576a46d7f431378c5550f0c38 react-native-saf-x: 50d176763ed692b379c190bf55ae7293a3ee09bb - react-native-safe-area-context: 2243039f43d10cb1ea30ec5ac57fc6d1448413f4 + react-native-safe-area-context: 37e680fc4cace3c0030ee46e8987d24f5d3bdab2 react-native-sqlite-storage: 0c84826214baaa498796c7e46a5ccc9a82e114ed - react-native-vector-icons: a45ecc326ec090450f152dfc7076ce1173331ce5 + react-native-vector-icons: 8215b0e62bf79d3be628cf658ec23777f9bec53c react-native-vector-icons-fontawesome5: 271d813e27a86d30bb8cf1fc2f12dae74b74b69b react-native-vector-icons-ionicons: ad07e944a092a5cf71b8b569d8f5ce2bf674c415 react-native-vector-icons-material-design-icons: 76cd460b3540b80527b4a80fb7f867f7deedb498 react-native-vector-icons-material-icons: d67e485a05560416ff6b5977d5fa7e0eb6af6870 react-native-version-info: f0b04e16111c4016749235ff6d9a757039189141 - react-native-webview: 8ad427a520a3b94d2006a62bb7756be726116af5 - React-NativeModulesApple: 2c4377e139522c3d73f5df582e4f051a838ff25e - React-oscompat: ef5df1c734f19b8003e149317d041b8ce1f7d29c - React-perflogger: 9a151e0b4c933c9205fd648c246506a83f31395d - React-performancetimeline: 5b0dfc0acba29ea0269ddb34cd6dd59d3b8a1c66 - React-RCTActionSheet: a499b0d6d9793886b67ba3e16046a3fef2cdbbc3 - React-RCTAnimation: cc64adc259aabc3354b73065e2231d796dfce576 - React-RCTAppDelegate: 67e2ec7a321f581a36cd65dfe6c9350b88b51686 - React-RCTBlob: e727f53eeefded7e6432eb76bd22b57bc880e5d1 - React-RCTFabric: f67ec0aed20d583bb6572bcfb2e8d5b17597b62d - React-RCTFBReactNativeSpec: 971b40c8e3a834e23689610ef5d164beff787876 - React-RCTImage: 7159cbdbb18a09d97ba1a611416eced75b3ccb29 - React-RCTLinking: 46293afdb859bccc63e1d3dedc6901a3c04ef360 - React-RCTNetwork: 4a6cd18f5bcd0363657789c64043123a896b1170 - React-RCTRuntime: 923732ea6440d61bbd71fbd09f5d86d4d119f6fb - React-RCTSettings: 61e361dc85136d1cb0e148b7541993d2ee950ea7 - React-RCTText: abd1e196c3167175e6baef18199c6d9d8ac54b4e - React-RCTVibration: 490e0dcb01a3fe4a0dfb7bc51ad5856d8b84f343 - React-rendererconsistency: 351fdbc5c1fe4da24243d939094a80f0e149c7a1 - React-renderercss: 3438814bee838ae7840a633ab085ac81699fd5cf - React-rendererdebug: 0ac2b9419ad6f88444f066d4b476180af311fb1e - React-rncore: 57ed480649bb678d8bdc386d20fee8bf2b0c307c - React-RuntimeApple: 8b7a9788f31548298ba1990620fe06b40de65ad7 - React-RuntimeCore: e03d96fbd57ce69fd9bca8c925942194a5126dbc - React-runtimeexecutor: d60846710facedd1edb70c08b738119b3ee2c6c2 - React-RuntimeHermes: aab794755d9f6efd249b61f3af4417296904e3ba - React-runtimescheduler: c3cd124fa5db7c37f601ee49ca0d97019acd8788 - React-timing: a90f4654cbda9c628614f9bee68967f1768bd6a5 - React-utils: a612d50555b6f0f90c74b7d79954019ad47f5de6 - ReactAppDependencyProvider: 04d5eb15eb46be6720e17a4a7fa92940a776e584 - ReactCodegen: c63eda03ba1d94353fb97b031fc84f75a0d125ba - ReactCommon: 76d2dc87136d0a667678668b86f0fca0c16fdeb0 + react-native-webview: b29007f4723bca10872028067b07abacfa1cb35a + React-NativeModulesApple: 8969913947d5b576de4ed371a939455a8daf28aa + React-oscompat: ce47230ed20185e91de62d8c6d139ae61763d09c + React-perflogger: 02b010e665772c7dcb859d85d44c1bfc5ac7c0e4 + React-performancetimeline: 130db956b5a83aa4fb41ddf5ae68da89f3fb1526 + React-RCTActionSheet: 0b14875b3963e9124a5a29a45bd1b22df8803916 + React-RCTAnimation: a7b90fd2af7bb9c084428867445a1481a8cb112e + React-RCTAppDelegate: 3262bedd01263f140ec62b7989f4355f57cec016 + React-RCTBlob: c17531368702f1ebed5d0ada75a7cf5915072a53 + React-RCTFabric: 6409edd8cfdc3133b6cc75636d3b858fdb1d11ea + React-RCTFBReactNativeSpec: c004b27b4fa3bd85878ad2cf53de3bbec85da797 + React-RCTImage: c68078a120d0123f4f07a5ac77bea3bb10242f32 + React-RCTLinking: cf8f9391fe7fe471f96da3a5f0435235eca18c5b + React-RCTNetwork: ca31f7c879355760c2d9832a06ee35f517938a20 + React-RCTRuntime: a6cf4a1e42754fc87f493e538f2ac6b820e45418 + React-RCTSettings: e0e140b2ff4bf86d34e9637f6316848fc00be035 + React-RCTText: 75915bace6f7877c03a840cc7b6c622fb62bfa6b + React-RCTVibration: 25f26b85e5e432bb3c256f8b384f9269e9529f25 + React-rendererconsistency: 2dac03f448ff337235fd5820b10f81633328870d + React-renderercss: 477da167bb96b5ac86d30c5d295412fb853f5453 + React-rendererdebug: 2a1798c6f3ef5f22d466df24c33653edbabb5b89 + React-RuntimeApple: 28cf4d8eb18432f6a21abbed7d801ab7f6b6f0b4 + React-RuntimeCore: 41bf0fd56a00de5660f222415af49879fa49c4f0 + React-runtimeexecutor: 1afb774dde3011348e8334be69d2f57a359ea43e + React-RuntimeHermes: f3b158ea40e8212b1a723a68b4315e7a495c5fc6 + React-runtimescheduler: 3e1e2bec7300bae512533107d8e54c6e5c63fe0f + React-timing: 6fa9883de2e41791e5dc4ec404e5e37f3f50e801 + React-utils: 6e2035b53d087927768649a11a26c4e092448e34 + ReactAppDependencyProvider: 1bcd3527ac0390a1c898c114f81ff954be35ed79 + ReactCodegen: 7d4593f7591f002d137fe40cef3f6c11f13c88cc + ReactCommon: 08810150b1206cc44aecf5f6ae19af32f29151a8 + ReactNativeDependencies: 71ce9c28beb282aa720ea7b46980fff9669f428a + ReactNativeFs: 601d5cf876d91f779583cef9a7d90d8b45394492 rn-fetch-blob: 25612b6d6f6e980c6f17ed98ba2f58f5696a51ca - RNCClipboard: f6679d470d0da2bce2a37b0af7b9e0bf369ecda5 + RNCClipboard: 88d7eeb555d1183915f0885bdbc5c97eb6f7f3ba RNCPushNotificationIOS: 6c4ca3388c7434e4a662b92e4dfeeee858e6f440 - RNDateTimePicker: 8c12d12e8660697c2e176d2f98775764431c141f + RNDateTimePicker: f11373a05d806e849ab984e2806c531278b47cdd RNDeviceInfo: bcce8752b5043a623fe3c26789679b473f705d3c - RNExitApp: 4432b9b7cc5ccec9f91c94e507849891282befd4 RNFileViewer: 4b5d83358214347e4ab2d4ca8d5c1c90d869e251 - RNFS: 89de7d7f4c0f6bafa05343c578f61118c8282ed8 - RNLocalize: d7859f87f1083349c73aa089e360af33ef89efc2 + RNLocalize: da3c00bf1044a67e72cf8b450289e263fd5baab3 RNQuickAction: c2c8f379e614428be0babe4d53a575739667744d RNSecureRandom: b64d263529492a6897e236a22a2c4249aa1b53dc - RNShare: 40ace3f87cd881869e8085aced9dc16b425c74aa - RNSVG: 295a96bc43f2baa5958d64aeec9847a1d8ca7a3d - SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 - Yoga: c758bfb934100bb4bf9cbaccb52557cee35e8bdf + RNShare: 446a4a16e416c9daf64d381ed9196c3d972e71db + RNSVG: 31d6639663c249b7d5abc9728dde2041eb2a3c34 + SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838 + SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377 + WhisperVoiceTyping: 343ea840cbde2a5f3508f8b016ebcf1c089179ea + Yoga: 5934998fbeaef7845dbf698f698518695ab4cd1a ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 -PODFILE CHECKSUM: 862189470c6e7bbee6a39c783bf65a36b631921c +PODFILE CHECKSUM: e822222a3fa702bf2b95fed246a9dab9eaf26905 COCOAPODS: 1.16.2 diff --git a/packages/app-mobile/ios/Podfile.properties.json b/packages/app-mobile/ios/Podfile.properties.json index e57e2ac5ef..40fab263ca 100644 --- a/packages/app-mobile/ios/Podfile.properties.json +++ b/packages/app-mobile/ios/Podfile.properties.json @@ -1,3 +1,3 @@ { - "newArchEnabled": "false" + "newArchEnabled": "true" } diff --git a/packages/app-mobile/ios/ShareExtension/Info.plist b/packages/app-mobile/ios/ShareExtension/Info.plist index 03a089fad1..5c6a21ba96 100644 --- a/packages/app-mobile/ios/ShareExtension/Info.plist +++ b/packages/app-mobile/ios/ShareExtension/Info.plist @@ -43,5 +43,7 @@ NSExtensionPointIdentifier com.apple.share-services + RCTNewArchEnabled + diff --git a/packages/app-mobile/jest.setup.js b/packages/app-mobile/jest.setup.js index 6abd29e5cb..8e71c0cb70 100644 --- a/packages/app-mobile/jest.setup.js +++ b/packages/app-mobile/jest.setup.js @@ -84,6 +84,7 @@ const emptyMockPackages = [ '@joplin/react-native-saf-x', 'expo-av', 'expo-av/build/Audio', + 'expo-image-manipulator', ]; for (const packageName of emptyMockPackages) { jest.doMock(packageName, () => { @@ -130,7 +131,7 @@ mockIconLibrary('@react-native-vector-icons/fontawesome5', 'FontAwesome5'); // Use a temporary folder instead. const tempDirectoryPath = path.join(tmpdir(), `appmobile-test-${uuid.createNano()}`); -jest.doMock('react-native-fs', () => { +jest.doMock('@dr.pogodin/react-native-fs', () => { return { CachesDirectoryPath: tempDirectoryPath, }; diff --git a/packages/app-mobile/metro.config.js b/packages/app-mobile/metro.config.js index 945df0790a..e35eaf2827 100644 --- a/packages/app-mobile/metro.config.js +++ b/packages/app-mobile/metro.config.js @@ -23,6 +23,7 @@ const localPackages = { '@joplin/tools': path.resolve(__dirname, '../tools/'), '@joplin/utils': path.resolve(__dirname, '../utils/'), '@joplin/fork-htmlparser2': path.resolve(__dirname, '../fork-htmlparser2/'), + '@joplin/whisper-voice-typing': path.resolve(__dirname, '../whisper-voice-typing/'), '@joplin/fork-uslug': path.resolve(__dirname, '../fork-uslug/'), '@joplin/react-native-saf-x': path.resolve(__dirname, '../react-native-saf-x/'), '@joplin/react-native-alarm-notification': path.resolve(__dirname, '../react-native-alarm-notification/'), diff --git a/packages/app-mobile/package.json b/packages/app-mobile/package.json index 5970cb45fa..32c1218a78 100644 --- a/packages/app-mobile/package.json +++ b/packages/app-mobile/package.json @@ -21,13 +21,14 @@ "postinstall": "jetify" }, "dependencies": { - "@bam.tech/react-native-image-resizer": "3.0.11", + "@dr.pogodin/react-native-fs": "2.36.2", "@joplin/editor": "~3.6", "@joplin/lib": "~3.6", "@joplin/react-native-alarm-notification": "~3.6", "@joplin/react-native-saf-x": "~3.6", "@joplin/renderer": "~3.6", "@joplin/utils": "~3.6", + "@joplin/whisper-voice-typing": "~3.6", "@js-draw/material-icons": "1.33.0", "@react-native-clipboard/clipboard": "1.16.3", "@react-native-community/datetimepicker": "8.4.7", @@ -47,40 +48,41 @@ "crypto-browserify": "3.12.1", "deprecated-react-native-prop-types": "5.0.0", "events": "3.3.0", - "expo": "53.0.23", - "expo-av": "15.1.7", - "expo-camera": "16.1.11", - "expo-local-authentication": "16.0.5", + "expo": "54.0.31", + "expo-av": "16.0.8", + "expo-camera": "17.0.10", + "expo-image-manipulator": "14.0.8", + "expo-local-authentication": "17.0.8", "js-draw": "1.33.0", "lodash": "4.17.21", "md5": "2.3.0", "path-browserify": "1.0.1", "prop-types": "15.8.1", "punycode": "2.3.1", - "react": "19.0.0", - "react-native": "0.79.2", + "react": "19.1.0", + "react-native": "0.81.5", "react-native-device-info": "14.1.1", "react-native-dropdownalert": "5.2.0", - "react-native-exit-app": "2.0.0", "react-native-file-viewer": "2.1.5", - "react-native-fs": "2.20.0", "react-native-get-random-values": "1.11.0", "react-native-image-picker": "8.2.1", "react-native-localize": "3.5.4", "react-native-modal-datetime-picker": "18.0.0", + "react-native-nitro-modules": "0.33.2", "react-native-paper": "5.14.5", "react-native-popup-menu": "0.17.0", "react-native-quick-actions": "0.3.13", + "react-native-quick-base64": "2.2.2", "react-native-quick-crypto": "0.7.17", "react-native-rsa-native": "2.0.5", "react-native-safe-area-context": "5.6.2", "react-native-securerandom": "1.0.1", "react-native-share": "12.2.0", "react-native-sqlite-storage": "6.0.1", - "react-native-svg": "15.13.0", + "react-native-svg": "15.12.1", "react-native-url-polyfill": "2.0.0", "react-native-version-info": "1.1.1", - "react-native-webview": "13.16.0", + "react-native-webview": "13.15.0", "react-native-zip-archive": "7.0.2", "react-redux": "8.1.3", "redux": "4.2.1", @@ -101,18 +103,18 @@ "@joplin/turndown": "~4.0.80", "@joplin/turndown-plugin-gfm": "~1.0.62", "@pmmmwh/react-refresh-webpack-plugin": "^0.6.0", - "@react-native-community/cli": "16.0.3", - "@react-native-community/cli-platform-android": "16.0.3", - "@react-native-community/cli-platform-ios": "16.0.3", - "@react-native/babel-preset": "0.80.1", - "@react-native/metro-config": "0.79.5", - "@react-native/typescript-config": "0.80.2", + "@react-native-community/cli": "20.0.0", + "@react-native-community/cli-platform-android": "20.0.0", + "@react-native-community/cli-platform-ios": "20.0.0", + "@react-native/babel-preset": "0.81.5", + "@react-native/metro-config": "0.81.5", + "@react-native/typescript-config": "0.81.5", "@sqlite.org/sqlite-wasm": "3.46.0-build2", "@testing-library/react-native": "13.2.0", "@types/fs-extra": "11.0.4", "@types/jest": "29.5.14", "@types/node": "18.19.130", - "@types/react": "19.0.14", + "@types/react": "19.1.10", "@types/react-redux": "7.1.33", "@types/serviceworker": "0.0.164", "@types/tar-stream": "3.1.4", @@ -130,10 +132,10 @@ "jsdom": "26.1.0", "nodemon": "3.1.10", "punycode": "2.3.1", - "react-dom": "19.0.0", + "react-dom": "19.1.0", "react-native-web": "0.21.2", "react-refresh": "0.18.0", - "react-test-renderer": "19.0.0", + "react-test-renderer": "19.1.0", "sharp": "0.34.4", "sqlite3": "5.1.6", "timers-browserify": "2.0.12", @@ -147,7 +149,7 @@ "webpack-dev-server": "5.2.2" }, "engines": { - "node": ">=18" + "node": ">=20" }, "expo": { "autolinking": { @@ -157,7 +159,6 @@ }, "install": { "exclude": [ - "react-native@~0.76.6", "react-native-reanimated@~3.16.1", "react-native-gesture-handler@~2.20.0", "react-native-screens@~4.4.0", diff --git a/packages/app-mobile/root.tsx b/packages/app-mobile/root.tsx index 85e689e9c4..64d4ef1cfd 100644 --- a/packages/app-mobile/root.tsx +++ b/packages/app-mobile/root.tsx @@ -1,8 +1,5 @@ import * as React from 'react'; -import shim from '@joplin/lib/shim'; import PerformanceLogger from '@joplin/lib/PerformanceLogger'; - -shim.setReact(React); PerformanceLogger.onAppStartBegin(); import setupQuickActions from './setupQuickActions'; @@ -695,12 +692,12 @@ class AppComponent extends React.Component let disableSideMenuGestures = this.props.disableSideMenuGestures; if (this.props.routeName === 'Note') { - sideMenuContent = ; + sideMenuContent = ; menuPosition = SideMenuPosition.Right; } else if (this.props.routeName === 'Config') { disableSideMenuGestures = true; } else { - sideMenuContent = ; + sideMenuContent = ; } const appNavInit = { diff --git a/packages/app-mobile/services/e2ee/crypto.ts b/packages/app-mobile/services/e2ee/crypto.ts index 09712bb493..cf5e7c5b49 100644 --- a/packages/app-mobile/services/e2ee/crypto.ts +++ b/packages/app-mobile/services/e2ee/crypto.ts @@ -71,7 +71,10 @@ const crypto: Crypto = { digest: async (algorithm: Digest, data: Uint8Array) => { const hash = QuickCrypto.createHash(digestNameMap[algorithm]); - hash.update(data); + hash.update( + // Cast: hash.update accepts TypedArrays, despite its declared types + data as unknown as ArrayBuffer, + ); return hash.digest(); }, diff --git a/packages/app-mobile/services/voiceTyping/whisper.test.ts b/packages/app-mobile/services/voiceTyping/whisper.test.ts index d3ab6da852..facd41f473 100644 --- a/packages/app-mobile/services/voiceTyping/whisper.test.ts +++ b/packages/app-mobile/services/voiceTyping/whisper.test.ts @@ -3,35 +3,29 @@ import whisper from './whisper'; import { dirname, join } from 'path'; import { exists, mkdir, remove, writeFile } from 'fs-extra'; import Setting from '@joplin/lib/models/Setting'; -import { NativeModules } from 'react-native'; -const SpeechToTextModule = NativeModules.SpeechToTextModule; - -jest.mock('react-native', () => { - const reactNative = jest.requireActual('react-native'); +const { testing__lastPrompt } = require('@joplin/whisper-voice-typing'); +jest.mock('@joplin/whisper-voice-typing', () => { let lastPrompt: string|null = null; - // Set properties on reactNative rather than creating a new object with - // {...reactNative, ...}. Creating a new object triggers deprecation warnings. - // See https://github.com/facebook/react-native/issues/28839. - reactNative.NativeModules.SpeechToTextModule = { - convertNext: () => 'Test. This is test output. Test!', - runTests: ()=> {}, - openSession: jest.fn((_path, _locale, prompt) => { - lastPrompt = prompt; - const someId = 1234; - return someId; + return { + runTests: ()=> {}, + openSession: jest.fn((options) => { + lastPrompt = options.prompt; + + return { + open: jest.fn(), + close: jest.fn(), + convertNext: jest.fn(() => 'Test. This is test output. Test!'), + convertAvailable: jest.fn(() => ''), + }; }), - closeSession: jest.fn(), - startRecording: jest.fn(), - convertAvailable: jest.fn(() => ''), + test: ()=>{}, testing__lastPrompt: () => { return lastPrompt; }, }; - - return reactNative; }); interface ModelConfig { @@ -135,6 +129,6 @@ describe('whisper', () => { }); await session.start(); - expect(SpeechToTextModule.testing__lastPrompt()).toBe(expectedPrompt); + expect(testing__lastPrompt()).toBe(expectedPrompt); }); }); diff --git a/packages/app-mobile/services/voiceTyping/whisper.ts b/packages/app-mobile/services/voiceTyping/whisper.ts index a8bb632f1b..a570a04a30 100644 --- a/packages/app-mobile/services/voiceTyping/whisper.ts +++ b/packages/app-mobile/services/voiceTyping/whisper.ts @@ -3,14 +3,13 @@ import shim from '@joplin/lib/shim'; import Logger from '@joplin/utils/Logger'; import { rtrimSlashes } from '@joplin/utils/path'; import { dirname, join } from 'path'; -import { NativeModules } from 'react-native'; +import { openSession, test as testWhisper, Session as WhisperSession } from '@joplin/whisper-voice-typing'; import { SpeechToTextCallbacks, VoiceTypingProvider, VoiceTypingSession } from './VoiceTyping'; import { languageCodeOnly, stringByLocale } from '@joplin/lib/locale'; +import { Platform } from 'react-native'; const logger = Logger.create('voiceTyping/whisper'); -const { SpeechToTextModule } = NativeModules; - class WhisperConfig { public prompts: Map = new Map(); public supportsShortAudioCtx = false; @@ -86,7 +85,7 @@ class Whisper implements VoiceTypingSession { private isFirstParagraph = true; public constructor( - private sessionId: number|null, + private session: WhisperSession|null, private callbacks: SpeechToTextCallbacks, private config: WhisperConfig, ) { @@ -124,18 +123,18 @@ class Whisper implements VoiceTypingSession { } public async start() { - if (this.sessionId === null) { + if (this.session === null) { throw new Error('Session closed.'); } try { logger.debug('starting recorder'); - await SpeechToTextModule.startRecording(this.sessionId); + await this.session.open(); logger.debug('recorder started'); const loopStartCounter = this.closeCounter; - while (this.closeCounter === loopStartCounter && this.sessionId !== null) { + while (this.closeCounter === loopStartCounter && this.session !== null) { logger.debug('reading block'); - const data: string = await SpeechToTextModule.convertNext(this.sessionId, 4); + const data: string = await this.session.convertNext(4); this.onDataFinalize(data); logger.debug('done reading block. Length', data?.length); @@ -148,13 +147,13 @@ class Whisper implements VoiceTypingSession { } public async stop() { - if (this.sessionId === null) { + if (this.session === null) { logger.debug('Session already closed.'); return; } try { - const data: string = await SpeechToTextModule.convertAvailable(this.sessionId); + const data: string = await this.session.convertNext(null); this.onDataFinalize(data); } catch (error) { logger.error('Error stopping session: ', error); @@ -164,17 +163,17 @@ class Whisper implements VoiceTypingSession { } public cancel() { - if (this.sessionId === null) { + if (this.session === null) { logger.debug('No session to cancel.'); - return; + return Promise.resolve(); } logger.info('Closing session...'); - const sessionId = this.sessionId; - this.sessionId = null; + this.session.close(); + this.session = null; this.closeCounter ++; - return SpeechToTextModule.closeSession(sessionId); + return Promise.resolve(); } } @@ -213,7 +212,7 @@ const modelLocalFilepath = () => { }; const whisper: VoiceTypingProvider = { - supported: () => !!SpeechToTextModule && Setting.value('buildFlag.voiceTypingEnabled'), + supported: () => Platform.OS === 'android' && Setting.value('buildFlag.voiceTypingEnabled'), modelLocalFilepath: modelLocalFilepath, getDownloadUrl: (locale) => { const lang = languageCodeOnly(locale).toLowerCase(); @@ -251,7 +250,7 @@ const whisper: VoiceTypingProvider = { if (Setting.value('env') === Env.Dev) { try { - await SpeechToTextModule.runTests(); + await testWhisper(); } catch (error) { logger.error('Testing error', error); await shim.showErrorDialog(`Test failure: ${error}`); @@ -268,10 +267,10 @@ const whisper: VoiceTypingProvider = { } logger.debug('Starting whisper session', config.supportsShortAudioCtx ? '(short audio context)' : ''); - const sessionId = await SpeechToTextModule.openSession( - modelPath, locale, getPrompt(locale, config.prompts), config.supportsShortAudioCtx, - ); - return new Whisper(sessionId, callbacks, config); + const session = openSession({ + modelPath, locale, prompt: getPrompt(locale, config.prompts), shortAudioContext: config.supportsShortAudioCtx, + }); + return new Whisper(session, callbacks, config); }, modelName: 'whisper', }; diff --git a/packages/app-mobile/utils/fs-driver/fs-driver-rn.ts b/packages/app-mobile/utils/fs-driver/fs-driver-rn.ts index 82349591bf..150969180e 100644 --- a/packages/app-mobile/utils/fs-driver/fs-driver-rn.ts +++ b/packages/app-mobile/utils/fs-driver/fs-driver-rn.ts @@ -1,6 +1,6 @@ import FsDriverBase, { ReadDirStatsOptions } from '@joplin/lib/fs-driver-base'; const RNFetchBlob = require('rn-fetch-blob').default; -import * as RNFS from 'react-native-fs'; +import * as RNFS from '@dr.pogodin/react-native-fs'; import RNSAF, { DocumentFileDetail, openDocumentTree } from '@joplin/react-native-saf-x'; import { Platform } from 'react-native'; import tarCreate from './tarCreate'; diff --git a/packages/app-mobile/utils/fs-driver/fs-driver-rn.web.worker.ts b/packages/app-mobile/utils/fs-driver/fs-driver-rn.web.worker.ts index 19da4d06ab..0409696579 100644 --- a/packages/app-mobile/utils/fs-driver/fs-driver-rn.web.worker.ts +++ b/packages/app-mobile/utils/fs-driver/fs-driver-rn.web.worker.ts @@ -310,7 +310,7 @@ export class WorkerApi { at = writer.getSize(); } - write = (data: ArrayBufferLike) => writer.write(data, { at }); + write = (data: BufferSource) => writer.write(data, { at }); close = () => writer.close(); } catch (error) { // In some cases, createSyncAccessHandle isn't available. In other cases, @@ -318,7 +318,7 @@ export class WorkerApi { logger.warn('Failed to createSyncAccessHandle', error); const writer = await handle.createWritable({ keepExistingData: options?.keepExistingData }); - write = (data: ArrayBufferLike) => writer.write(data); + write = (data: BufferSource) => writer.write(data); close = () => writer.close(); } diff --git a/packages/app-mobile/utils/image/getImageDimensions.ts b/packages/app-mobile/utils/image/getImageDimensions.ts index f71b7fdfa0..e94dc4e1e9 100644 --- a/packages/app-mobile/utils/image/getImageDimensions.ts +++ b/packages/app-mobile/utils/image/getImageDimensions.ts @@ -1,10 +1,13 @@ -import { Size } from '@joplin/utils/types'; import { fileUriToPath } from '@joplin/utils/url'; import { Image as NativeImage, Platform } from 'react-native'; import fileToImage from './fileToImage.web'; +interface ImageDimensions { + width: number; + height: number; +} -const getImageDimensions = async (uri: string): Promise => { +const getImageDimensions = async (uri: string): Promise => { if (uri.startsWith('/')) { uri = `file://${uri}`; } diff --git a/packages/app-mobile/utils/image/resizeImage.ts b/packages/app-mobile/utils/image/resizeImage.ts index dc76fd7ba2..5bb4ded690 100644 --- a/packages/app-mobile/utils/image/resizeImage.ts +++ b/packages/app-mobile/utils/image/resizeImage.ts @@ -1,8 +1,9 @@ import shim from '@joplin/lib/shim'; import Logger from '@joplin/utils/Logger'; -import ImageResizer from '@bam.tech/react-native-image-resizer'; +import { ImageManipulator, SaveFormat } from 'expo-image-manipulator'; import fileToImage from './fileToImage.web'; import FsDriverWeb from '../fs-driver/fs-driver-rn.web'; +import getImageDimensions from './getImageDimensions'; const logger = Logger.create('resizeImage'); @@ -18,17 +19,23 @@ interface Options { } const resizeImage = async (options: Options) => { + type Sized = { width: number; height: number }; + const computeScale = (image: Sized) => { + // Choose a scale factor such that the resized image fits within a + // maxWidth x maxHeight box. + const scale = Math.min( + options.maxWidth / image.width, + options.maxHeight / image.height, + ); + return scale; + }; + if (shim.mobilePlatform() === 'web') { const image = await fileToImage(options.inputPath); try { const canvas = document.createElement('canvas'); - // Choose a scale factor such that the resized image fits within a - // maxWidth x maxHeight box. - const scale = Math.min( - options.maxWidth / image.image.width, - options.maxHeight / image.image.height, - ); + const scale = computeScale(image.image); canvas.width = image.image.width * scale; canvas.height = image.image.height * scale; @@ -54,18 +61,27 @@ const resizeImage = async (options: Options) => { image.free(); } } else { - const resizedImage = await ImageResizer.createResizedImage( - options.inputPath, - options.maxWidth, - options.maxHeight, - options.format, - options.quality, // quality - undefined, // rotation - undefined, // outputPath - true, // keep metadata - ); + const originalSize = await getImageDimensions(options.inputPath); + logger.debug('Processing image with size', originalSize.width, 'x', originalSize.height); - const resizedImagePath = resizedImage.uri; + let context = ImageManipulator.manipulate(options.inputPath); + + // Only rescale the image if it's bigger than the maximum size: + if (originalSize.width > options.maxWidth || originalSize.height > options.maxHeight) { + const scale = computeScale(originalSize); + context = context.resize({ + width: originalSize.width * scale, + height: originalSize.height * scale, + }); + } + + const final = await context.renderAsync(); + const saved = await final.saveAsync({ + format: options.format === 'PNG' ? SaveFormat.PNG : SaveFormat.JPEG, + compress: options.quality, + }); + + const resizedImagePath = saved.uri; logger.info('Resized image ', resizedImagePath); logger.info(`Moving ${resizedImagePath} => ${options.outputPath}`); diff --git a/packages/app-mobile/utils/initReact.ts b/packages/app-mobile/utils/initReact.ts new file mode 100644 index 0000000000..1840f23dbc --- /dev/null +++ b/packages/app-mobile/utils/initReact.ts @@ -0,0 +1,7 @@ +import shim from '@joplin/lib/shim'; + +// .setReact needs to be called very early in the application startup process. +// This file can be imported to ensure that .setReact has been called prior to +// all other import/requires. +const React = require('react'); +shim.setReact(React); diff --git a/packages/app-mobile/utils/shim-init-react/index.ts b/packages/app-mobile/utils/shim-init-react/index.ts index b07c05287f..c7c24a0491 100644 --- a/packages/app-mobile/utils/shim-init-react/index.ts +++ b/packages/app-mobile/utils/shim-init-react/index.ts @@ -7,7 +7,7 @@ import { generateSecureRandom } from 'react-native-securerandom'; import FsDriverRN from '../fs-driver/fs-driver-rn'; import { Linking, Platform } from 'react-native'; import crypto from '../../services/e2ee/crypto'; -const RNExitApp = require('react-native-exit-app').default; +import { reloadAppAsync } from 'expo'; export default function shimInit() { shim.Geolocation = GeolocationReact; @@ -178,7 +178,7 @@ export default function shimInit() { }; shim.restartApp = () => { - RNExitApp.exitApp(); + void reloadAppAsync(); }; shimInitShared(); diff --git a/packages/app-mobile/web/webpack.config.ts b/packages/app-mobile/web/webpack.config.ts index 5bc413c38a..3fd7ec2918 100644 --- a/packages/app-mobile/web/webpack.config.ts +++ b/packages/app-mobile/web/webpack.config.ts @@ -79,6 +79,7 @@ const buildSharedConfig = (hotReload: boolean): webpack.Configuration => { '@react-native-documents/picker': emptyLibraryMock, 'react-native-exit-app': emptyLibraryMock, 'expo-camera': emptyLibraryMock, + 'react-native-nitro-modules': emptyLibraryMock, 'react-native-vector-icons/MaterialCommunityIcons': throwOnLoadLibraryMock, // Workaround for applying serviceworker types to a single file. diff --git a/packages/lib/shim-init-node.ts b/packages/lib/shim-init-node.ts index c56ad9e14f..da3d783d68 100644 --- a/packages/lib/shim-init-node.ts +++ b/packages/lib/shim-init-node.ts @@ -220,7 +220,7 @@ function shimInit(options: ShimInitOptions = null) { if (shim.isElectron()) { return shim.electronBridge().showMessageBox(message, options ?? {}); } else { - throw new Error('Not implemented'); + throw new Error(`Not implemented: showMessageBox(${JSON.stringify(message)})`); } }; diff --git a/packages/react-native-saf-x/package.json b/packages/react-native-saf-x/package.json index d50bd48af8..793bf6ed96 100644 --- a/packages/react-native-saf-x/package.json +++ b/packages/react-native-saf-x/package.json @@ -46,8 +46,8 @@ "devDependencies": { "@babel/core": "7.16.0", "@types/react-native": "0.64.19", - "react": "18.3.1", - "react-native": "0.70.6", + "react": "19.1.0", + "react-native": "0.81.5", "typescript": "5.8.3" }, "peerDependencies": { diff --git a/packages/tools/cspell/dictionary4.txt b/packages/tools/cspell/dictionary4.txt index 87695016f3..63cdd11b18 100644 --- a/packages/tools/cspell/dictionary4.txt +++ b/packages/tools/cspell/dictionary4.txt @@ -241,6 +241,7 @@ xhdpi xxhdpi xxxhdpi scrollend +pogodin youtube youtu nocookie diff --git a/packages/tools/setupNewRelease.ts b/packages/tools/setupNewRelease.ts index 73cceaa0e4..d897793f41 100644 --- a/packages/tools/setupNewRelease.ts +++ b/packages/tools/setupNewRelease.ts @@ -145,6 +145,7 @@ async function main() { await updatePackageVersion(`${rootDir}/packages/default-plugins/package.json`, majorMinorVersion, options); await updatePackageVersion(`${rootDir}/packages/editor/package.json`, majorMinorVersion, options); await updatePackageVersion(`${rootDir}/packages/transcribe/package.json`, majorMinorVersion, options); + await updatePackageVersion(`${rootDir}/packages/whisper-voice-typing/package.json`, majorMinorVersion, options); if (options.updateVersion) { await updateGradleVersion(`${rootDir}/packages/app-mobile/android/app/build.gradle`, majorMinorVersion); diff --git a/packages/whisper-voice-typing/.gitignore b/packages/whisper-voice-typing/.gitignore new file mode 100644 index 0000000000..6bb9d24818 --- /dev/null +++ b/packages/whisper-voice-typing/.gitignore @@ -0,0 +1,84 @@ +# OSX +# +.DS_Store + +# XDE +.expo/ + +# VSCode +.vscode/ +jsconfig.json + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android/IJ +# +.classpath +.cxx +.gradle +.idea +.project +.settings +local.properties +android.iml + +# Cocoapods +# +example/ios/Pods + +# Ruby +example/vendor/ + +# node.js +# +node_modules/ +npm-debug.log +yarn-debug.log +yarn-error.log + +# BUCK +buck-out/ +\.buckd/ +android/app/libs +android/keystores/debug.keystore + +# Yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +# Expo +.expo/ + +# Turborepo +.turbo/ + +# generated +lib/ +nitrogen/ + +# caches +.eslintcache +.cache +*.tsbuildinfo diff --git a/packages/whisper-voice-typing/.watchmanconfig b/packages/whisper-voice-typing/.watchmanconfig new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/packages/whisper-voice-typing/.watchmanconfig @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/packages/whisper-voice-typing/README.md b/packages/whisper-voice-typing/README.md new file mode 100644 index 0000000000..93a0fee907 --- /dev/null +++ b/packages/whisper-voice-typing/README.md @@ -0,0 +1,17 @@ +# react-native-whisper-voice-typing + +Wraps `whisper.cpp` for use in React Native. + +## Development + +This package uses [react-native-nitro-modules](https://nitro.margelo.com/docs/what-is-nitro) and was scaffolded using [`nitrogen`](https://nitro.margelo.com/docs/how-to-build-a-nitro-module#1-create-a-nitro-module). + +### Adding a new native hybrid object + +Process summary: +1. Add a TypeScript type declaration to `src/specs/Whisper.nitro.ts`. +2. (Optional) Update `nitro.json`'s autolinking section. +3. Run `yarn build`. This regenerates the `nitrogen/generated` folder. +4. Implement the new interface(s) in `android/src/main/java/` or `cpp/`. + +See [the documentation](https://nitro.margelo.com/docs/nitro-modules) for full instructions. diff --git a/packages/whisper-voice-typing/WhisperVoiceTyping.podspec b/packages/whisper-voice-typing/WhisperVoiceTyping.podspec new file mode 100644 index 0000000000..484503f424 --- /dev/null +++ b/packages/whisper-voice-typing/WhisperVoiceTyping.podspec @@ -0,0 +1,42 @@ +require "json" + +package = JSON.parse(File.read(File.join(__dir__, "package.json"))) + +# Currently disabled on iOS. +# To enable, +# 1. Uncomment the code after "DISABLED:" +# 2. Run vencor/whisper.cpp/build-xcframework.sh +# 3. Add vendor/whisper.cpp as a dependency? +# 4. Implement cpp/IAudioRecorder.hpp for iOS. + + +Pod::Spec.new do |s| + s.name = "WhisperVoiceTyping" + s.version = package["version"] + s.summary = package["description"] + s.homepage = package["homepage"] + s.license = package["license"] + s.authors = package["author"] + + s.platforms = { :ios => min_ios_version_supported, :visionos => 1.0 } + s.source = { :git => "https://github.com/mrousavy/nitro.git", :tag => "#{s.version}" } + + s.source_files = [ + # Implementation (Swift) + "ios/**/*.{swift}", + # Autolinking/Registration (Objective-C++) + "ios/**/*.{m,mm}", + # Implementation (C++ objects) + # DISABLED: for now: + #"cpp/**/*.{hpp,cpp}", + ] + + # DISABLED: Currently, this package lacks iOS support + #load 'nitrogen/generated/ios/WhisperVoiceTyping+autolinking.rb' + #add_nitrogen_files(s) + + s.dependency 'React-jsi' + s.dependency 'React-callinvoker' + install_modules_dependencies(s) +end + diff --git a/packages/whisper-voice-typing/android/CMakeLists.txt b/packages/whisper-voice-typing/android/CMakeLists.txt new file mode 100644 index 0000000000..2d935254a0 --- /dev/null +++ b/packages/whisper-voice-typing/android/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required(VERSION 3.9.0) +project(WhisperVoiceTyping) + +set(PACKAGE_NAME WhisperVoiceTyping) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_CXX_STANDARD 20) + +# Define C++ library and add all sources +add_library( + ${PACKAGE_NAME} SHARED + src/main/cpp/cpp-adapter.cpp + ../cpp/utils/testing.cpp + ../cpp/utils/findLongestSilence_test.cpp + ../cpp/utils/findLongestSilence.cpp + ../cpp/utils/WhisperSession.cpp + ../cpp/utils/SingleThread.cpp + ../cpp/utils/SingleThread_test.cpp + ../cpp/HybridWhisperSession.cpp + ../cpp/HybridWhisperVoiceTyping.cpp +) + +# Add Nitrogen specs :) +include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/WhisperVoiceTyping+autolinking.cmake) + +# Set up local includes +include_directories("src/main/cpp" "../cpp" "../cpp/utils") + +################################ +# Whisper.cpp configuration # +################################ + +set(WHISPER_LIB_DIR ${CMAKE_SOURCE_DIR}/../vendor/whisper.cpp) + +# Based on the Whisper.cpp Android example: +set(SHARED_FLAGS "-O3 ") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SHARED_FLAGS} ") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SHARED_FLAGS} -fvisibility=hidden -fvisibility-inlines-hidden -ffunction-sections -fdata-sections") + +# Whisper: See https://stackoverflow.com/a/76290722 +add_subdirectory(${WHISPER_LIB_DIR} ./whisper) + +include_directories(${WHISPER_LIB_DIR}/include) + +################################# +# END Whisper.cpp configuration # +################################# + +find_library(LOG_LIB log) + +# Link all libraries together +target_link_libraries( + ${PACKAGE_NAME} + ${LOG_LIB} + whisper + android # <-- Android core +) diff --git a/packages/whisper-voice-typing/android/build.gradle b/packages/whisper-voice-typing/android/build.gradle new file mode 100644 index 0000000000..9d16ea42d6 --- /dev/null +++ b/packages/whisper-voice-typing/android/build.gradle @@ -0,0 +1,124 @@ +// Note: Based on part of the [react-native-builder-bob](https://github.com/callstack/react-native-builder-bob) +// Nitro module template. + +buildscript { + ext.WhisperVoiceTyping = [ + kotlinVersion: "2.0.21", + minSdkVersion: 24, + compileSdkVersion: 36, + targetSdkVersion: 36 + ] + + ext.getExtOrDefault = { prop -> + if (rootProject.ext.has(prop)) { + return rootProject.ext.get(prop) + } + + return WhisperVoiceTyping[prop] + } + + repositories { + google() + mavenCentral() + } + + dependencies { + classpath "com.android.tools.build:gradle:8.7.2" + // noinspection DifferentKotlinGradleVersion + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}" + } +} + +def reactNativeArchitectures() { + def value = rootProject.getProperties().get("reactNativeArchitectures") + return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] +} + +apply plugin: "com.android.library" +apply plugin: "kotlin-android" +apply from: '../nitrogen/generated/android/WhisperVoiceTyping+autolinking.gradle' + +// Disabled: Including the "com.facebook.react" plugin seems to cause "ActivityIndicatorViewManagerDelegate is defined multiple times" +// errors: +// apply plugin: "com.facebook.react" + +android { + namespace "com.margelo.nitro.whispervoicetyping" + + compileSdkVersion getExtOrDefault("compileSdkVersion") + + defaultConfig { + minSdkVersion getExtOrDefault("minSdkVersion") + targetSdkVersion getExtOrDefault("targetSdkVersion") + + externalNativeBuild { + cmake { + cppFlags "-frtti -fexceptions -Wall -fstack-protector-all" + arguments "-DANDROID_STL=c++_shared", "-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON" + abiFilters (*reactNativeArchitectures()) + + buildTypes { + debug { + cppFlags "-O1 -g" + } + release { + cppFlags "-O2" + } + } + } + } + } + + externalNativeBuild { + cmake { + path "CMakeLists.txt" + } + } + + packagingOptions { + excludes = [ + "META-INF", + "META-INF/**", + "**/libc++_shared.so", + "**/libNitroModules.so", + "**/libfbjni.so", + "**/libjsi.so", + "**/libfolly_json.so", + "**/libfolly_runtime.so", + "**/libglog.so", + "**/libhermes.so", + "**/libhermes-executor-debug.so", + "**/libhermes_executor.so", + "**/libreactnative.so", + "**/libreactnativejni.so", + "**/libturbomodulejsijni.so", + "**/libreact_nativemodule_core.so", + "**/libjscexecutor.so" + ] + } + + buildFeatures { + buildConfig true + prefab true + } + + buildTypes { + release { + minifyEnabled false + } + } + + lint { + disable "GradleCompatible" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + implementation "com.facebook.react:react-android" + implementation project(":react-native-nitro-modules") +} diff --git a/packages/whisper-voice-typing/android/gradle.properties b/packages/whisper-voice-typing/android/gradle.properties new file mode 100644 index 0000000000..edb3a3b385 --- /dev/null +++ b/packages/whisper-voice-typing/android/gradle.properties @@ -0,0 +1,5 @@ +WhisperVoiceTyping_kotlinVersion=2.1.20 +WhisperVoiceTyping_minSdkVersion=23 +WhisperVoiceTyping_targetSdkVersion=36 +WhisperVoiceTyping_compileSdkVersion=36 +WhisperVoiceTyping_ndkVersion=27.1.12297006 diff --git a/packages/whisper-voice-typing/android/src/main/AndroidManifest.xml b/packages/whisper-voice-typing/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..a2f47b6057 --- /dev/null +++ b/packages/whisper-voice-typing/android/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/packages/whisper-voice-typing/android/src/main/cpp/cpp-adapter.cpp b/packages/whisper-voice-typing/android/src/main/cpp/cpp-adapter.cpp new file mode 100644 index 0000000000..466b4e25ee --- /dev/null +++ b/packages/whisper-voice-typing/android/src/main/cpp/cpp-adapter.cpp @@ -0,0 +1,6 @@ +#include +#include "WhisperVoiceTypingOnLoad.hpp" + +JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) { + return margelo::nitro::whispervoicetyping::initialize(vm); +} diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/AudioRecorder.kt b/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/AudioRecorder.kt similarity index 62% rename from packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/AudioRecorder.kt rename to packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/AudioRecorder.kt index 21e5e8ed0d..6f37f0ffcc 100644 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/audio/AudioRecorder.kt +++ b/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/AudioRecorder.kt @@ -1,4 +1,4 @@ -package net.cozic.joplin.audio +package com.margelo.nitro.whispervoicetyping import android.Manifest import android.annotation.SuppressLint @@ -10,22 +10,20 @@ import android.media.MediaRecorder.AudioSource import java.io.Closeable import kotlin.math.max import kotlin.math.min +import com.margelo.nitro.NitroModules +import java.nio.FloatBuffer -typealias AudioRecorderFactory = (context: Context)->AudioRecorder; - -class AudioRecorder(context: Context) : Closeable { +class AudioRecorder (context: Context) : Closeable { private val sampleRate = 16_000 // Don't allow the unprocessed audio buffer to grow indefinitely -- discard // data if longer than this: private val maxLengthSeconds = 120 private val maxRecorderBufferLengthSeconds = 20 - private val maxBufferSize = sampleRate * maxLengthSeconds - private val buffer = FloatArray(maxBufferSize) + private val maxBufferSizeFloats = sampleRate * maxLengthSeconds + private val buffer = FloatArray(maxBufferSizeFloats) + private var bufferWriteOffset = 0 - // Accessor must not modify result - private val bufferedData: FloatArray get() = buffer.sliceArray(0 until bufferWriteOffset) - val bufferLengthSeconds: Double get() = bufferWriteOffset.toDouble() / sampleRate init { val permissionResult = context.checkSelfPermission(Manifest.permission.RECORD_AUDIO) @@ -46,65 +44,61 @@ class AudioRecorder(context: Context) : Closeable { .setChannelMask(AudioFormat.CHANNEL_IN_MONO) .build() ) + // Use a smaller internal buffer size in the recorder .setBufferSizeInBytes(maxRecorderBufferLengthSeconds * sampleRate * Float.SIZE_BYTES) .build() // Discards the first [samples] samples from the start of the buffer. Conceptually, this // advances the buffer's start point. private fun advanceStartBySamples(samples: Int) { - val samplesClamped = min(samples, maxBufferSize) - val remainingBuffer = buffer.sliceArray(samplesClamped until maxBufferSize) + val samplesClamped = min(samples, maxBufferSizeFloats) + val remainingBuffer = buffer.sliceArray(samplesClamped until maxBufferSizeFloats) - buffer.fill(0f, samplesClamped, maxBufferSize) + buffer.fill(0f, samplesClamped, maxBufferSizeFloats) remainingBuffer.copyInto(buffer, 0) bufferWriteOffset = max(bufferWriteOffset - samplesClamped, 0) } - fun dropFirstSeconds(seconds: Double) { - advanceStartBySamples((seconds * sampleRate).toInt()) - } - fun start() { recorder.startRecording() } + @Synchronized private fun read(requestedSize: Int, mode: Int) { - val size = min(requestedSize, maxBufferSize - bufferWriteOffset) + val size = min(requestedSize, maxBufferSizeFloats - bufferWriteOffset) val sizeRead = recorder.read(buffer, bufferWriteOffset, size, mode) if (sizeRead > 0) { bufferWriteOffset += sizeRead } } - // Pulls all available data from the audio recorder's buffer + // Returns a pointer to the buffered data fun pullAvailable(): FloatArray { - read(maxBufferSize, AudioRecord.READ_NON_BLOCKING) - - val result = bufferedData - buffer.fill(0.0f, 0, maxBufferSize); - bufferWriteOffset = 0 - return result + read(maxBufferSizeFloats, AudioRecord.READ_NON_BLOCKING) + return buffer.sliceArray(0 until bufferWriteOffset) } - fun pullNextSeconds(seconds: Double):FloatArray { - val remainingSize = maxBufferSize - bufferWriteOffset + // Sets the buffer write offset back to zero. + fun resetBuffer() { + bufferWriteOffset = 0 + } + + // Pushes at least [seconds] seconds of new data to the recording buffer. + // Call "pullAvailable" to read the buffered data. + fun bufferAdditionalData(seconds: Double) { + val remainingSize = maxBufferSizeFloats - bufferWriteOffset val requestedSize = (seconds * sampleRate).toInt() // If low on size, make more room. - if (remainingSize < maxBufferSize / 3) { - advanceStartBySamples(maxBufferSize / 3) + if (remainingSize < maxBufferSizeFloats / 3) { + advanceStartBySamples(maxBufferSizeFloats / 3) } read(requestedSize, AudioRecord.READ_BLOCKING) - return pullAvailable() } override fun close() { recorder.stop() recorder.release() } - - companion object { - val factory: AudioRecorderFactory = { context -> AudioRecorder(context) } - } -} \ No newline at end of file +} diff --git a/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/HybridAudioRecorder.kt b/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/HybridAudioRecorder.kt new file mode 100644 index 0000000000..026b37f741 --- /dev/null +++ b/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/HybridAudioRecorder.kt @@ -0,0 +1,44 @@ +package com.margelo.nitro.whispervoicetyping + +import android.util.Log +import com.margelo.nitro.core.ArrayBuffer +import com.margelo.nitro.core.Promise +import com.margelo.nitro.NitroModules +import java.nio.ByteBuffer +import java.nio.ByteOrder + +// Wraps an AudioRecorder in an interface that can be accessed from C++ +class HybridAudioRecorder : HybridAudioRecorderSpec() { + private val recorder = AudioRecorder(NitroModules.applicationContext!!) + + override fun start() { + recorder.start() + } + + override fun stop() { + recorder.close() + } + + override fun waitForData(seconds: Double): Promise { + return Promise.async { + recorder.bufferAdditionalData(seconds) + } + } + + override fun pullAvailable(): ArrayBuffer { + val floatData = recorder.pullAvailable() + val bytes = convertToBytes(floatData) + + val buffer = ArrayBuffer.copy(bytes) + recorder.resetBuffer() + return buffer + } + + private fun convertToBytes(floatData: FloatArray): ByteArray { + // Convert to a ByteBuffer first. (Similar approach to https://stackoverflow.com/q/11385596) + val output = ByteBuffer.allocate(floatData.size * Float.SIZE_BYTES) + output.order(ByteOrder.nativeOrder()) + output.asFloatBuffer().put(floatData) + return output.array() + } +} \ No newline at end of file diff --git a/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/WhisperVoiceTypingPackage.kt b/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/WhisperVoiceTypingPackage.kt new file mode 100644 index 0000000000..a6caa9b31a --- /dev/null +++ b/packages/whisper-voice-typing/android/src/main/java/com/margelo/nitro/whispervoicetyping/WhisperVoiceTypingPackage.kt @@ -0,0 +1,22 @@ +package com.margelo.nitro.whispervoicetyping + +import com.facebook.react.BaseReactPackage +import com.facebook.react.bridge.NativeModule +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.module.model.ReactModuleInfoProvider + +class WhisperVoiceTypingPackage : BaseReactPackage() { + override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? { + return null + } + + override fun getReactModuleInfoProvider(): ReactModuleInfoProvider { + return ReactModuleInfoProvider { HashMap() } + } + + companion object { + init { + System.loadLibrary("WhisperVoiceTyping") + } + } +} diff --git a/packages/whisper-voice-typing/babel.config.js b/packages/whisper-voice-typing/babel.config.js new file mode 100644 index 0000000000..903ccef060 --- /dev/null +++ b/packages/whisper-voice-typing/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: ['module:@react-native/babel-preset'], +}; diff --git a/packages/whisper-voice-typing/cpp/HybridWhisperSession.cpp b/packages/whisper-voice-typing/cpp/HybridWhisperSession.cpp new file mode 100644 index 0000000000..0a2b4ac92b --- /dev/null +++ b/packages/whisper-voice-typing/cpp/HybridWhisperSession.cpp @@ -0,0 +1,48 @@ +#include "HybridWhisperSession.hpp" +#include "androidUtil.h" +#include + +using namespace margelo::nitro::whispervoicetyping; + +struct HybridWhisperSession::State_ { + State_(const SessionOptions& options) + : session_(options.modelPath, options.locale, options.prompt, options.shortAudioContext) + {}; + + void addAudio(ArrayBuffer& data); + + std::mutex mutex_; + WhisperSession session_; +}; + +void HybridWhisperSession::State_::addAudio(ArrayBuffer& data) { + float* dataFloat = reinterpret_cast(data.data()); + size_t sizeFloats = data.size() / sizeof(float); + + if (dataFloat == nullptr) { + throw std::logic_error("Attempting to add audio from a source that has already been deleted."); + } + + LOGD("Add audio (size %zu)", sizeFloats); + session_.addAudio(dataFloat, sizeFloats); +} + +HybridWhisperSession::HybridWhisperSession( + const SessionOptions& options +) + : HybridObject(TAG), + state_(std::make_shared(options)) +{ } + +void HybridWhisperSession::pushAudio(const std::shared_ptr& audio) { + std::lock_guard lock { state_->mutex_ }; + + state_->addAudio(*audio); +} + +std::shared_ptr> HybridWhisperSession::convertNext() { + return Promise::async([state = state_] () -> std::string { + std::lock_guard lock { state->mutex_ }; + return state->session_.transcribeNextChunk(); + }); +} diff --git a/packages/whisper-voice-typing/cpp/HybridWhisperSession.hpp b/packages/whisper-voice-typing/cpp/HybridWhisperSession.hpp new file mode 100644 index 0000000000..e39f16b776 --- /dev/null +++ b/packages/whisper-voice-typing/cpp/HybridWhisperSession.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include +#include + +#include "HybridWhisperSessionSpec.hpp" +#include "SessionOptions.hpp" +#include "utils/WhisperSession.hpp" + +namespace margelo::nitro::whispervoicetyping { + class HybridWhisperSession : public HybridWhisperSessionSpec { + public: + explicit HybridWhisperSession(const SessionOptions& options); + + void pushAudio(const std::shared_ptr& audio) override; + std::shared_ptr> convertNext() override; + + private: + struct State_; + std::shared_ptr state_; + }; +} diff --git a/packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.cpp b/packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.cpp new file mode 100644 index 0000000000..9e4b011759 --- /dev/null +++ b/packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.cpp @@ -0,0 +1,20 @@ +#include + +#include "HybridWhisperVoiceTyping.hpp" +#include "HybridWhisperSession.hpp" +#include "findLongestSilence_test.hpp" +#include "SingleThread_test.hpp" + + +using namespace margelo::nitro::whispervoicetyping; + +SessionPointer HybridWhisperVoiceTyping::openSession(const SessionOptions& options) { + return std::make_shared (options); +} + +std::shared_ptr> HybridWhisperVoiceTyping::test() { + return Promise::async([=] () -> void { + findLongestSilence_test(); + SingleThread_test(); + }); +} diff --git a/packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.hpp b/packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.hpp new file mode 100644 index 0000000000..81307ff42f --- /dev/null +++ b/packages/whisper-voice-typing/cpp/HybridWhisperVoiceTyping.hpp @@ -0,0 +1,16 @@ +#pragma once +#include "HybridWhisperVoiceTypingSpec.hpp" + +namespace margelo::nitro::whispervoicetyping { + using SessionPointer = std::shared_ptr; + + class HybridWhisperVoiceTyping : public HybridWhisperVoiceTypingSpec { + public: + HybridWhisperVoiceTyping(): HybridObject(TAG) {}; + + SessionPointer openSession(const SessionOptions& options) override; + + // Runs tests + std::shared_ptr> test() override; + }; +} diff --git a/packages/whisper-voice-typing/cpp/utils/SingleThread.cpp b/packages/whisper-voice-typing/cpp/utils/SingleThread.cpp new file mode 100644 index 0000000000..db0a0c7f04 --- /dev/null +++ b/packages/whisper-voice-typing/cpp/utils/SingleThread.cpp @@ -0,0 +1,59 @@ +#include "SingleThread.hpp" +#include "androidUtil.h" + +#include +#include +#include + +struct SingleThread::State_ { + std::vector> tasks; + + // mutex_ and cv_ are used as a signaling mechanism. + // See, for example https://cplusplus.com/reference/condition_variable/condition_variable/ + // https://en.cppreference.com/w/cpp/thread/condition_variable.html + std::condition_variable cv; + std::mutex mutex; + + bool cancelled = false; +}; + +void threadLoop(std::shared_ptr state) { + while (!state->cancelled) { + // Create a lock that can be used by state->cv (see https://stackoverflow.com/a/13102893 + // for why). + std::unique_lock lock {state->mutex}; + + // Run all tasks **first**, to handle the case where the threadLoop starts after the first + // task has been posted. + for (auto& task : state->tasks) { + task(); + } + state->tasks.clear(); + + state->cv.wait(lock); + } +} + +SingleThread::SingleThread() + : state_ { std::make_shared() }, + thread_ { threadLoop, state_ } { +} + +SingleThread::~SingleThread() { + { + std::lock_guard lock { state_->mutex }; + state_->cancelled = true; + } + + state_->cv.notify_all(); + thread_.join(); +} + +void SingleThread::post(std::function task) { + { + std::lock_guard lock { state_->mutex }; + state_->tasks.push_back(std::move(task)); + } + state_->cv.notify_all(); +} + diff --git a/packages/whisper-voice-typing/cpp/utils/SingleThread.hpp b/packages/whisper-voice-typing/cpp/utils/SingleThread.hpp new file mode 100644 index 0000000000..b364c4501e --- /dev/null +++ b/packages/whisper-voice-typing/cpp/utils/SingleThread.hpp @@ -0,0 +1,61 @@ +#pragma once + +#include +#include +#include + +// Reserves a single thread. Similar to Java/Android's "Handler" +class SingleThread { +public: + SingleThread(); + // Waits for all pending tasks to complete before destruction + ~SingleThread(); + + // Run the `task` on the thread and return a future that will resolve to the result + template + std::future run(std::function task) { + auto promise = std::make_shared>(); + post([promise = promise, task = std::move(task)] { + try { + T result = task(); + promise->set_value(result); + } catch (...) { + // Use current_exception to create an exception pointer. + // See https://en.cppreference.com/w/cpp/thread/promise/set_exception + promise->set_exception(std::current_exception()); + } + }); + return promise->get_future(); + } + + // Explicit definition of run to work around templating issues: + std::future run(std::function task) { + auto promise = std::make_shared>(); + post([promise = promise, task = std::move(task)] { + try { + task(); + promise->set_value(); + } catch (...) { + promise->set_exception(std::current_exception()); + } + }); + return promise->get_future(); + } + + // Run the `task` on the thread and wait for it to complete + template + T runAndWait(std::function task) { + return run(task).get(); + } + + struct State_; +private: + // Asynchronously runs the given `task` on the thread + void post(std::function task); + +private: + std::shared_ptr state_; + + std::thread thread_; +}; + diff --git a/packages/whisper-voice-typing/cpp/utils/SingleThread_test.cpp b/packages/whisper-voice-typing/cpp/utils/SingleThread_test.cpp new file mode 100644 index 0000000000..3b8e50f7ea --- /dev/null +++ b/packages/whisper-voice-typing/cpp/utils/SingleThread_test.cpp @@ -0,0 +1,82 @@ +#include "SingleThread_test.hpp" +#include "SingleThread.hpp" +#include "testing.hpp" +#include "androidUtil.h" + +#include +#include +#include +#include +#include + +void shouldConstructAndDestruct(); +void shouldReturnSingleValue(); +void shouldReturnMultipleAsync(); +void shouldForwardExceptions(); + +void SingleThread_test() { + LOGD("SingleThread: Starting tests..."); + shouldConstructAndDestruct(); + shouldReturnSingleValue(); + shouldReturnMultipleAsync(); + shouldForwardExceptions(); +} + +void shouldConstructAndDestruct() { + { + SingleThread thread {}; + LOGD("SingleThread: Constructed!"); + } + LOGD("SingleThread: Destructed!"); + logTestPass("shouldConstructAndDestruct"); +} + +void shouldReturnSingleValue() { + SingleThread thread {}; + + LOGD("SingleThread: Posting a value and waiting!"); + + assertEqual(thread.runAndWait([] { + LOGD("SingleThread: Inside thread!"); + return 3; + }), 3, "should support returning a value from a lambda"); + LOGD("SingleThread: Posted a value and waited!"); + + logTestPass("shouldReturnSingleValue"); +} + +void shouldReturnMultipleAsync() { + SingleThread thread {}; + + auto future1 = thread.run([] { + return 1; + }); + auto future2 = thread.run([] { + return 2; + }); + auto future3 = thread.run([] { + return 3; + }); + + assertEqual(future1.get(), 1, "getting future1"); + assertEqual(future3.get(), 3, "getting future3"); + assertEqual(future2.get(), 2, "getting future2"); + + logTestPass("shouldReturnMultipleAsync"); +} + +void shouldForwardExceptions() { + SingleThread thread {}; + + bool caught = false; + try { + thread.runAndWait([] { + throw std::runtime_error("testing..."); + }); + } catch (std::runtime_error ex) { + caught = true; + } + + assertEqual(caught, true, "should have caught the exception"); + logTestPass("shouldForwardExceptions"); +} diff --git a/packages/whisper-voice-typing/cpp/utils/SingleThread_test.hpp b/packages/whisper-voice-typing/cpp/utils/SingleThread_test.hpp new file mode 100644 index 0000000000..db7b683bb5 --- /dev/null +++ b/packages/whisper-voice-typing/cpp/utils/SingleThread_test.hpp @@ -0,0 +1,3 @@ +#pragma once + +void SingleThread_test(); diff --git a/packages/app-mobile/android/app/src/main/cpp/utils/WhisperSession.cpp b/packages/whisper-voice-typing/cpp/utils/WhisperSession.cpp similarity index 95% rename from packages/app-mobile/android/app/src/main/cpp/utils/WhisperSession.cpp rename to packages/whisper-voice-typing/cpp/utils/WhisperSession.cpp index 36a6ca366d..6dbc2e6995 100644 --- a/packages/app-mobile/android/app/src/main/cpp/utils/WhisperSession.cpp +++ b/packages/whisper-voice-typing/cpp/utils/WhisperSession.cpp @@ -1,10 +1,10 @@ -#include "WhisperSession.h" +#include "WhisperSession.hpp" #include #include #include #include "whisper.h" -#include "findLongestSilence.h" +#include "findLongestSilence.hpp" #include "androidUtil.h" WhisperSession::WhisperSession(const std::string& modelPath, std::string lang, std::string prompt, bool shortAudioContext) @@ -216,11 +216,11 @@ WhisperSession::transcribeNextChunk() { } -void WhisperSession::addAudio(const float *pAudio, int sizeAudio) { - // Update the local audio buffer - for (int i = 0; i < sizeAudio; i++) { - audioBuffer_.push_back(pAudio[i]); - } +void WhisperSession::addAudio(float* data, size_t count) { + // See https://en.cppreference.com/w/cpp/algorithm/copy_n.html, + // and the suggestions at https://stackoverflow.com/q/34552783. + audioBuffer_.reserve(count); + std::copy_n(data, count, std::back_inserter(audioBuffer_)); } std::string WhisperSession::transcribeAll() { diff --git a/packages/app-mobile/android/app/src/main/cpp/utils/WhisperSession.h b/packages/whisper-voice-typing/cpp/utils/WhisperSession.hpp similarity index 94% rename from packages/app-mobile/android/app/src/main/cpp/utils/WhisperSession.h rename to packages/whisper-voice-typing/cpp/utils/WhisperSession.hpp index be5c8f9127..8b67d101f6 100644 --- a/packages/app-mobile/android/app/src/main/cpp/utils/WhisperSession.h +++ b/packages/whisper-voice-typing/cpp/utils/WhisperSession.hpp @@ -10,7 +10,7 @@ public: WhisperSession(const std::string& modelPath, std::string lang, std::string prompt, bool shortAudioContext); ~WhisperSession(); // Adds to the buffer - void addAudio(const float *pAudio, int sizeAudio); + void addAudio(float* audio, size_t count); // Returns the next finalized slice of audio (if any) and updates the preview. std::string transcribeNextChunk(); // Transcribes all buffered audio data that hasn't been finalized yet diff --git a/packages/app-mobile/android/app/src/main/cpp/utils/androidUtil.h b/packages/whisper-voice-typing/cpp/utils/androidUtil.h similarity index 75% rename from packages/app-mobile/android/app/src/main/cpp/utils/androidUtil.h rename to packages/whisper-voice-typing/cpp/utils/androidUtil.h index 7f67b9eaeb..481ec4fe86 100644 --- a/packages/app-mobile/android/app/src/main/cpp/utils/androidUtil.h +++ b/packages/whisper-voice-typing/cpp/utils/androidUtil.h @@ -1,5 +1,15 @@ #pragma once +#ifdef __APPLE__ + +// For now, logging methods are no-ops on iOS +#define LOGW(...) void; +#define LOGI(...) void; +#define LOGD(...) void; + + +#else + #include // Use macros for these rather than functions. Functions generate a "may be unsafe" @@ -8,3 +18,5 @@ #define LOGW(...) __android_log_print(ANDROID_LOG_WARN, "Whisper::JNI", __VA_ARGS__); #define LOGI(...) __android_log_print(ANDROID_LOG_INFO, "Whisper::JNI", __VA_ARGS__); #define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "Whisper::JNI", __VA_ARGS__); + +#endif diff --git a/packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence.cpp b/packages/whisper-voice-typing/cpp/utils/findLongestSilence.cpp similarity index 99% rename from packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence.cpp rename to packages/whisper-voice-typing/cpp/utils/findLongestSilence.cpp index 22f646ffb0..628538f67f 100644 --- a/packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence.cpp +++ b/packages/whisper-voice-typing/cpp/utils/findLongestSilence.cpp @@ -1,4 +1,4 @@ -#include "findLongestSilence.h" +#include "findLongestSilence.hpp" #include "androidUtil.h" static void highpass(std::vector& data, int sampleRate) { diff --git a/packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence.h b/packages/whisper-voice-typing/cpp/utils/findLongestSilence.hpp similarity index 100% rename from packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence.h rename to packages/whisper-voice-typing/cpp/utils/findLongestSilence.hpp diff --git a/packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence_test.cpp b/packages/whisper-voice-typing/cpp/utils/findLongestSilence_test.cpp similarity index 94% rename from packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence_test.cpp rename to packages/whisper-voice-typing/cpp/utils/findLongestSilence_test.cpp index fb91e6dd94..1d0c0f3f14 100644 --- a/packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence_test.cpp +++ b/packages/whisper-voice-typing/cpp/utils/findLongestSilence_test.cpp @@ -1,6 +1,7 @@ -#include "findLongestSilence_test.h" -#include "findLongestSilence.h" +#include "findLongestSilence_test.hpp" +#include "findLongestSilence.hpp" #include "androidUtil.h" +#include "testing.hpp" #include #include @@ -13,8 +14,6 @@ static void testToneWithPause(); static void testSilence(); static void testNoise(); -static void fail(const std::string& message); - struct GeneratedAudio { std::vector data; int sampleRate; @@ -91,10 +90,6 @@ static void testNoise() { } -static void fail(const std::string& message) { - throw std::runtime_error(message); -} - static GeneratedAudio makeAudio(const AudioGenerator& generator, int sampleRate, float duration) { std::vector result { }; @@ -111,9 +106,6 @@ static GeneratedAudio makeAudio(const AudioGenerator& generator, int sampleRate, }; } -static void logTestPass(const std::string& message) { - LOGI("Test PASS: %s", message.c_str()); -} static float samplesToSeconds(int samples, int sampleRate) { return static_cast(samples) / static_cast(sampleRate); diff --git a/packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence_test.h b/packages/whisper-voice-typing/cpp/utils/findLongestSilence_test.hpp similarity index 100% rename from packages/app-mobile/android/app/src/main/cpp/utils/findLongestSilence_test.h rename to packages/whisper-voice-typing/cpp/utils/findLongestSilence_test.hpp diff --git a/packages/whisper-voice-typing/cpp/utils/testing.cpp b/packages/whisper-voice-typing/cpp/utils/testing.cpp new file mode 100644 index 0000000000..9859b67f7e --- /dev/null +++ b/packages/whisper-voice-typing/cpp/utils/testing.cpp @@ -0,0 +1,9 @@ +#include "testing.hpp" + +void fail(const std::string& message) { + throw std::runtime_error(message); +} + +void logTestPass(const std::string& message) { + LOGI("Test PASS: %s", message.c_str()); +} diff --git a/packages/whisper-voice-typing/cpp/utils/testing.hpp b/packages/whisper-voice-typing/cpp/utils/testing.hpp new file mode 100644 index 0000000000..dfa1490d68 --- /dev/null +++ b/packages/whisper-voice-typing/cpp/utils/testing.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include +#include +#include "androidUtil.h" + +// Test-related utilities + +void fail(const std::string& message); + +void logTestPass(const std::string& message); + +template +void assertEqual(const T& a, const T& b, const std::string& message) { + if (a != b) { + std::stringstream fullMessage; + fullMessage << "Not equal:" << a << " != " << b << " (" << message << ")"; + fail(fullMessage.str()); + } +} diff --git a/packages/whisper-voice-typing/ios/Bridge.h b/packages/whisper-voice-typing/ios/Bridge.h new file mode 100644 index 0000000000..21e8d8fc15 --- /dev/null +++ b/packages/whisper-voice-typing/ios/Bridge.h @@ -0,0 +1,2 @@ +// Auto-generated +#pragma once diff --git a/packages/whisper-voice-typing/nitro.json b/packages/whisper-voice-typing/nitro.json new file mode 100644 index 0000000000..c1aa761c26 --- /dev/null +++ b/packages/whisper-voice-typing/nitro.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://nitro.margelo.com/nitro.schema.json", + "cxxNamespace": [ + "whispervoicetyping" + ], + "ios": { + "iosModuleName": "WhisperVoiceTyping" + }, + "android": { + "androidNamespace": [ + "whispervoicetyping" + ], + "androidCxxLibName": "WhisperVoiceTyping" + }, + "autolinking": { + "WhisperVoiceTyping": { + "cpp": "HybridWhisperVoiceTyping" + }, + "AudioRecorder": { + "kotlin": "HybridAudioRecorder" + } + }, + "ignorePaths": [ + "**/node_modules" + ] +} diff --git a/packages/whisper-voice-typing/package.json b/packages/whisper-voice-typing/package.json new file mode 100644 index 0000000000..92724af583 --- /dev/null +++ b/packages/whisper-voice-typing/package.json @@ -0,0 +1,60 @@ +{ + "name": "@joplin/whisper-voice-typing", + "version": "3.6.0", + "private": true, + "description": "Whisper.cpp bindings for React Native!", + "author": "Joplin team", + "main": "lib/index", + "module": "lib/index", + "types": "lib/index.d.ts", + "react-native": "src/index", + "source": "src/index", + "files": [ + "src", + "react-native.config.js", + "lib", + "nitrogen", + "android/build.gradle", + "android/gradle.properties", + "android/CMakeLists.txt", + "android/src", + "ios/**/*.h", + "ios/**/*.m", + "ios/**/*.mm", + "ios/**/*.cpp", + "ios/**/*.swift", + "cppxx/**/*", + "app.plugin.js", + "nitro.json", + "*.podspec", + "README.md" + ], + "scripts": { + "clean": "rm -rf android/build node_modules/**/android/build lib", + "tsc": "tsc", + "build": "tsc && nitrogen" + }, + "keywords": [ + "react-native", + "nitro" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/laurent22/joplin.git" + }, + "homepage": "https://github.com/laurent22/joplin", + "license": "AGPL-3.0-or-later", + "devDependencies": { + "@types/react": "19.2.10", + "nitrogen": "0.33.2", + "react": "19.1.0", + "react-native": "0.81.5", + "react-native-nitro-modules": "0.33.2", + "typescript": "5.8.3" + }, + "peerDependencies": { + "react": "*", + "react-native": "*", + "react-native-nitro-modules": "*" + } +} diff --git a/packages/whisper-voice-typing/react-native.config.js b/packages/whisper-voice-typing/react-native.config.js new file mode 100644 index 0000000000..733243a318 --- /dev/null +++ b/packages/whisper-voice-typing/react-native.config.js @@ -0,0 +1,12 @@ +// https://github.com/react-native-community/cli/blob/main/docs/dependencies.md + +module.exports = { + dependency: { + platforms: { + // * @type {import('@react-native-community/cli-types').IOSDependencyParams} + ios: {}, + // * @type {import('@react-native-community/cli-types').AndroidDependencyParams} + android: {}, + }, + }, +}; diff --git a/packages/whisper-voice-typing/src/index.ts b/packages/whisper-voice-typing/src/index.ts new file mode 100644 index 0000000000..2af782a336 --- /dev/null +++ b/packages/whisper-voice-typing/src/index.ts @@ -0,0 +1,72 @@ +import { NitroModules } from 'react-native-nitro-modules'; +import type { AudioRecorder, SessionOptions, WhisperSession, WhisperVoiceTyping } from './specs/Whisper.nitro'; + +let WhisperVoiceTypingHybridObject: WhisperVoiceTyping|null = null; + +export type { SessionOptions }; + +const getVoiceTyping = () => { + WhisperVoiceTypingHybridObject ??= NitroModules.createHybridObject('WhisperVoiceTyping'); + return WhisperVoiceTypingHybridObject; +}; + +export class Session { + private recorder_: AudioRecorder|null = null; + private nativeSession_: WhisperSession|null = null; + private convertCancellationCounter_ = 0; + + public constructor(private options_: SessionOptions) {} + + private isOpen_() { + return this.recorder_ || this.nativeSession_; + } + + public open() { + if (this.isOpen_()) { + this.close(); + } + + this.recorder_ = NitroModules.createHybridObject('AudioRecorder'); + this.nativeSession_ = getVoiceTyping().openSession(this.options_); + this.recorder_.start(); + } + + public async convertNext(duration: number|null) { + if (!this.nativeSession_ || !this.recorder_) { + throw new Error('No available session! Call .open() before .convertNext().'); + } + + this.convertCancellationCounter_++; + const cancelCounter = this.convertCancellationCounter_; + + if (duration) { + await this.recorder_.waitForData(duration); + } + + // Cancelled? + if (cancelCounter !== this.convertCancellationCounter_) { + return ''; + } + + const available = this.recorder_.pullAvailable(); + this.nativeSession_.pushAudio(available); + return this.nativeSession_.convertNext(); + } + + public close() { + this.recorder_?.stop(); + + // Allow recorder_ and nativeSession_ to be garbage collected: + this.recorder_ = null; + this.nativeSession_ = null; + this.convertCancellationCounter_++; + } +} + +export function openSession(options: SessionOptions) { + return new Session(options); +} + +export function test() { + return getVoiceTyping().test(); +} diff --git a/packages/whisper-voice-typing/src/specs/Whisper.nitro.ts b/packages/whisper-voice-typing/src/specs/Whisper.nitro.ts new file mode 100644 index 0000000000..37d0d377da --- /dev/null +++ b/packages/whisper-voice-typing/src/specs/Whisper.nitro.ts @@ -0,0 +1,25 @@ +import type { HybridObject } from 'react-native-nitro-modules'; + +export interface AudioRecorder extends HybridObject<{ android: 'kotlin' }> { + start(): void; + stop(): void; + waitForData(seconds: number): Promise; + pullAvailable(): ArrayBuffer; +} + +export interface WhisperSession extends HybridObject<{ android: 'c++' }> { + pushAudio(audio: ArrayBuffer): void; + convertNext(): Promise; +} + +export interface SessionOptions { + modelPath: string; + locale: string; + prompt: string; + shortAudioContext: boolean; +} + +export interface WhisperVoiceTyping extends HybridObject<{ android: 'c++' }> { + openSession(options: SessionOptions): WhisperSession; + test(): Promise; +} diff --git a/packages/whisper-voice-typing/tsconfig.json b/packages/whisper-voice-typing/tsconfig.json new file mode 100644 index 0000000000..d041602323 --- /dev/null +++ b/packages/whisper-voice-typing/tsconfig.json @@ -0,0 +1,31 @@ +{ + "include": [ + "src" + ], + "compilerOptions": { + "composite": true, + "outDir": "lib", + "rootDir": "src", + "allowUnreachableCode": false, + "allowUnusedLabels": false, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react", + "lib": ["esnext"], + "module": "esnext", + "moduleResolution": "node", + "noEmit": false, + "noFallthroughCasesInSwitch": true, + "noImplicitReturns": true, + "noImplicitUseStrict": false, + "noStrictGenericChecks": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "esnext", + "verbatimModuleSyntax": true + } +} diff --git a/packages/app-mobile/android/vendor/README.md b/packages/whisper-voice-typing/vendor/README.md similarity index 100% rename from packages/app-mobile/android/vendor/README.md rename to packages/whisper-voice-typing/vendor/README.md diff --git a/packages/app-mobile/android/vendor/whisper.cpp/.gitignore b/packages/whisper-voice-typing/vendor/whisper.cpp/.gitignore similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/.gitignore rename to packages/whisper-voice-typing/vendor/whisper.cpp/.gitignore diff --git a/packages/app-mobile/android/vendor/whisper.cpp/AUTHORS b/packages/whisper-voice-typing/vendor/whisper.cpp/AUTHORS similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/AUTHORS rename to packages/whisper-voice-typing/vendor/whisper.cpp/AUTHORS diff --git a/packages/app-mobile/android/vendor/whisper.cpp/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/LICENSE b/packages/whisper-voice-typing/vendor/whisper.cpp/LICENSE similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/LICENSE rename to packages/whisper-voice-typing/vendor/whisper.cpp/LICENSE diff --git a/packages/app-mobile/android/vendor/whisper.cpp/README.md b/packages/whisper-voice-typing/vendor/whisper.cpp/README.md similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/README.md rename to packages/whisper-voice-typing/vendor/whisper.cpp/README.md diff --git a/packages/app-mobile/android/vendor/whisper.cpp/README_sycl.md b/packages/whisper-voice-typing/vendor/whisper.cpp/README_sycl.md similarity index 96% rename from packages/app-mobile/android/vendor/whisper.cpp/README_sycl.md rename to packages/whisper-voice-typing/vendor/whisper.cpp/README_sycl.md index 9ea2a7908a..d9c0621c81 100644 --- a/packages/app-mobile/android/vendor/whisper.cpp/README_sycl.md +++ b/packages/whisper-voice-typing/vendor/whisper.cpp/README_sycl.md @@ -1,249 +1,249 @@ -# whisper.cpp for SYCL - -[Background](#background) - -[OS](#os) - -[Intel GPU](#intel-gpu) - -[Linux](#linux) - -[Environment Variable](#environment-variable) - -[Known Issue](#known-issue) - -[Todo](#todo) - -## Background - -SYCL is a higher-level programming model to improve programming productivity on various hardware accelerators—such as CPUs, GPUs, and FPGAs. It is a single-source embedded domain-specific language based on pure C++17. - -oneAPI is a specification that is open and standards-based, supporting multiple architecture types including but not limited to GPU, CPU, and FPGA. The spec has both direct programming and API-based programming paradigms. - -Intel uses the SYCL as direct programming language to support CPU, GPUs and FPGAs. - -To avoid re-inventing the wheel, this code refers other code paths in llama.cpp (like OpenBLAS, cuBLAS, CLBlast). We use a open-source tool [SYCLomatic](https://github.com/oneapi-src/SYCLomatic) (Commercial release [Intel® DPC++ Compatibility Tool](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html)) migrate to SYCL. - -The whisper.cpp for SYCL is used to support Intel GPUs. - -For Intel CPU, recommend to use whisper.cpp for X86 (Intel MKL build). - -## OS - -|OS|Status|Verified| -|-|-|-| -|Linux|Support|Ubuntu 22.04| -|Windows|Ongoing| | - - -## Intel GPU - -|Intel GPU| Status | Verified Model| -|-|-|-| -|Intel Data Center Max Series| Support| Max 1550| -|Intel Data Center Flex Series| Support| Flex 170| -|Intel Arc Series| Support| Arc 770| -|Intel built-in Arc GPU| Support| built-in Arc GPU in Meteor Lake| -|Intel iGPU| Support| iGPU in i5-1250P, i7-1165G7| - - -## Linux - -### Setup Environment - -1. Install Intel GPU driver. - -a. Please install Intel GPU driver by official guide: [Install GPU Drivers](https://dgpu-docs.intel.com/driver/installation.html). - -Note: for iGPU, please install the client GPU driver. - -b. Add user to group: video, render. - -``` -sudo usermod -aG render username -sudo usermod -aG video username -``` - -Note: re-login to enable it. - -c. Check - -``` -sudo apt install clinfo -sudo clinfo -l -``` - -Output (example): - -``` -Platform #0: Intel(R) OpenCL Graphics - `-- Device #0: Intel(R) Arc(TM) A770 Graphics - - -Platform #0: Intel(R) OpenCL HD Graphics - `-- Device #0: Intel(R) Iris(R) Xe Graphics [0x9a49] -``` - -2. Install Intel® oneAPI Base toolkit. - - -a. Please follow the procedure in [Get the Intel® oneAPI Base Toolkit ](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html). - -Recommend to install to default folder: **/opt/intel/oneapi**. - -Following guide use the default folder as example. If you use other folder, please modify the following guide info with your folder. - -b. Check - -``` -source /opt/intel/oneapi/setvars.sh - -sycl-ls -``` - -There should be one or more level-zero devices. Like **[ext_oneapi_level_zero:gpu:0]**. - -Output (example): -``` -[opencl:acc:0] Intel(R) FPGA Emulation Platform for OpenCL(TM), Intel(R) FPGA Emulation Device OpenCL 1.2 [2023.16.10.0.17_160000] -[opencl:cpu:1] Intel(R) OpenCL, 13th Gen Intel(R) Core(TM) i7-13700K OpenCL 3.0 (Build 0) [2023.16.10.0.17_160000] -[opencl:gpu:2] Intel(R) OpenCL Graphics, Intel(R) Arc(TM) A770 Graphics OpenCL 3.0 NEO [23.30.26918.50] -[ext_oneapi_level_zero:gpu:0] Intel(R) Level-Zero, Intel(R) Arc(TM) A770 Graphics 1.3 [1.3.26918] - -``` - -2. Build locally: - -``` -mkdir -p build -cd build -source /opt/intel/oneapi/setvars.sh - -#for FP16 -#cmake .. -DWHISPER_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DWHISPER_SYCL_F16=ON - -#for FP32 -cmake .. -DWHISPER_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx - -#build example/main only -#cmake --build . --config Release --target main - -#build all binary -cmake --build . --config Release -v - -``` - -or - -``` -./examples/sycl/build.sh -``` - -Note: - -- By default, it will build for all binary files. It will take more time. To reduce the time, we recommend to build for **example/main** only. - -### Run - -1. Put model file to folder **models** - -2. Enable oneAPI running environment - -``` -source /opt/intel/oneapi/setvars.sh -``` - -3. List device ID - -Run without parameter: - -``` -./build/bin/ls-sycl-device - -or - -./build/bin/main -``` - -Check the ID in startup log, like: - -``` -found 4 SYCL devices: - Device 0: Intel(R) Arc(TM) A770 Graphics, compute capability 1.3, - max compute_units 512, max work group size 1024, max sub group size 32, global mem size 16225243136 - Device 1: Intel(R) FPGA Emulation Device, compute capability 1.2, - max compute_units 24, max work group size 67108864, max sub group size 64, global mem size 67065057280 - Device 2: 13th Gen Intel(R) Core(TM) i7-13700K, compute capability 3.0, - max compute_units 24, max work group size 8192, max sub group size 64, global mem size 67065057280 - Device 3: Intel(R) Arc(TM) A770 Graphics, compute capability 3.0, - max compute_units 512, max work group size 1024, max sub group size 32, global mem size 16225243136 - -``` - -|Attribute|Note| -|-|-| -|compute capability 1.3|Level-zero running time, recommended | -|compute capability 3.0|OpenCL running time, slower than level-zero in most cases| - -4. Set device ID and execute whisper.cpp - -Set device ID = 0 by **GGML_SYCL_DEVICE=0** - -``` -GGML_SYCL_DEVICE=0 ./build/bin/main -m models/ggml-base.en.bin -f samples/jfk.wav -``` -or run by script: - -``` -./examples/sycl/run_whisper.sh -``` - - - -5. Check the device ID in output - -Like: -``` -Using device **0** (Intel(R) Arc(TM) A770 Graphics) as main device -``` - - -## Environment Variable - -#### Build - -|Name|Value|Function| -|-|-|-| -|WHISPER_SYCL|ON (mandatory)|Enable build with SYCL code path.
For FP32/FP16, WHISPER_SYCL=ON is mandatory.| -|WHISPER_SYCL_F16|ON (optional)|Enable FP16 build with SYCL code path.For FP32, do not set it.| -|CMAKE_C_COMPILER|icx|Use icx compiler for SYCL code path| -|CMAKE_CXX_COMPILER|icpx|use icpx for SYCL code path| - -#### Running - - -|Name|Value|Function| -|-|-|-| -|GGML_SYCL_DEVICE|0 (default) or 1|Set the device id used. Check the device ids by default running output| -|GGML_SYCL_DEBUG|0 (default) or 1|Enable log function by macro: GGML_SYCL_DEBUG| - -## Known Issue - -- Error: `error while loading shared libraries: libsycl.so.7: cannot open shared object file: No such file or directory`. - - Miss to enable oneAPI running environment. - - Install oneAPI base toolkit and enable it by: `source /opt/intel/oneapi/setvars.sh`. - - -- Hang during startup - - llama.cpp use mmap as default way to read model file and copy to GPU. In some system, memcpy will be abnormal and block. - - Solution: add **--no-mmap**. - -## Todo - -- Support to build in Windows. - +# whisper.cpp for SYCL + +[Background](#background) + +[OS](#os) + +[Intel GPU](#intel-gpu) + +[Linux](#linux) + +[Environment Variable](#environment-variable) + +[Known Issue](#known-issue) + +[Todo](#todo) + +## Background + +SYCL is a higher-level programming model to improve programming productivity on various hardware accelerators—such as CPUs, GPUs, and FPGAs. It is a single-source embedded domain-specific language based on pure C++17. + +oneAPI is a specification that is open and standards-based, supporting multiple architecture types including but not limited to GPU, CPU, and FPGA. The spec has both direct programming and API-based programming paradigms. + +Intel uses the SYCL as direct programming language to support CPU, GPUs and FPGAs. + +To avoid re-inventing the wheel, this code refers other code paths in llama.cpp (like OpenBLAS, cuBLAS, CLBlast). We use a open-source tool [SYCLomatic](https://github.com/oneapi-src/SYCLomatic) (Commercial release [Intel® DPC++ Compatibility Tool](https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html)) migrate to SYCL. + +The whisper.cpp for SYCL is used to support Intel GPUs. + +For Intel CPU, recommend to use whisper.cpp for X86 (Intel MKL build). + +## OS + +|OS|Status|Verified| +|-|-|-| +|Linux|Support|Ubuntu 22.04| +|Windows|Ongoing| | + + +## Intel GPU + +|Intel GPU| Status | Verified Model| +|-|-|-| +|Intel Data Center Max Series| Support| Max 1550| +|Intel Data Center Flex Series| Support| Flex 170| +|Intel Arc Series| Support| Arc 770| +|Intel built-in Arc GPU| Support| built-in Arc GPU in Meteor Lake| +|Intel iGPU| Support| iGPU in i5-1250P, i7-1165G7| + + +## Linux + +### Setup Environment + +1. Install Intel GPU driver. + +a. Please install Intel GPU driver by official guide: [Install GPU Drivers](https://dgpu-docs.intel.com/driver/installation.html). + +Note: for iGPU, please install the client GPU driver. + +b. Add user to group: video, render. + +``` +sudo usermod -aG render username +sudo usermod -aG video username +``` + +Note: re-login to enable it. + +c. Check + +``` +sudo apt install clinfo +sudo clinfo -l +``` + +Output (example): + +``` +Platform #0: Intel(R) OpenCL Graphics + `-- Device #0: Intel(R) Arc(TM) A770 Graphics + + +Platform #0: Intel(R) OpenCL HD Graphics + `-- Device #0: Intel(R) Iris(R) Xe Graphics [0x9a49] +``` + +2. Install Intel® oneAPI Base toolkit. + + +a. Please follow the procedure in [Get the Intel® oneAPI Base Toolkit ](https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit.html). + +Recommend to install to default folder: **/opt/intel/oneapi**. + +Following guide use the default folder as example. If you use other folder, please modify the following guide info with your folder. + +b. Check + +``` +source /opt/intel/oneapi/setvars.sh + +sycl-ls +``` + +There should be one or more level-zero devices. Like **[ext_oneapi_level_zero:gpu:0]**. + +Output (example): +``` +[opencl:acc:0] Intel(R) FPGA Emulation Platform for OpenCL(TM), Intel(R) FPGA Emulation Device OpenCL 1.2 [2023.16.10.0.17_160000] +[opencl:cpu:1] Intel(R) OpenCL, 13th Gen Intel(R) Core(TM) i7-13700K OpenCL 3.0 (Build 0) [2023.16.10.0.17_160000] +[opencl:gpu:2] Intel(R) OpenCL Graphics, Intel(R) Arc(TM) A770 Graphics OpenCL 3.0 NEO [23.30.26918.50] +[ext_oneapi_level_zero:gpu:0] Intel(R) Level-Zero, Intel(R) Arc(TM) A770 Graphics 1.3 [1.3.26918] + +``` + +2. Build locally: + +``` +mkdir -p build +cd build +source /opt/intel/oneapi/setvars.sh + +#for FP16 +#cmake .. -DWHISPER_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DWHISPER_SYCL_F16=ON + +#for FP32 +cmake .. -DWHISPER_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx + +#build example/main only +#cmake --build . --config Release --target main + +#build all binary +cmake --build . --config Release -v + +``` + +or + +``` +./examples/sycl/build.sh +``` + +Note: + +- By default, it will build for all binary files. It will take more time. To reduce the time, we recommend to build for **example/main** only. + +### Run + +1. Put model file to folder **models** + +2. Enable oneAPI running environment + +``` +source /opt/intel/oneapi/setvars.sh +``` + +3. List device ID + +Run without parameter: + +``` +./build/bin/ls-sycl-device + +or + +./build/bin/main +``` + +Check the ID in startup log, like: + +``` +found 4 SYCL devices: + Device 0: Intel(R) Arc(TM) A770 Graphics, compute capability 1.3, + max compute_units 512, max work group size 1024, max sub group size 32, global mem size 16225243136 + Device 1: Intel(R) FPGA Emulation Device, compute capability 1.2, + max compute_units 24, max work group size 67108864, max sub group size 64, global mem size 67065057280 + Device 2: 13th Gen Intel(R) Core(TM) i7-13700K, compute capability 3.0, + max compute_units 24, max work group size 8192, max sub group size 64, global mem size 67065057280 + Device 3: Intel(R) Arc(TM) A770 Graphics, compute capability 3.0, + max compute_units 512, max work group size 1024, max sub group size 32, global mem size 16225243136 + +``` + +|Attribute|Note| +|-|-| +|compute capability 1.3|Level-zero running time, recommended | +|compute capability 3.0|OpenCL running time, slower than level-zero in most cases| + +4. Set device ID and execute whisper.cpp + +Set device ID = 0 by **GGML_SYCL_DEVICE=0** + +``` +GGML_SYCL_DEVICE=0 ./build/bin/main -m models/ggml-base.en.bin -f samples/jfk.wav +``` +or run by script: + +``` +./examples/sycl/run_whisper.sh +``` + + + +5. Check the device ID in output + +Like: +``` +Using device **0** (Intel(R) Arc(TM) A770 Graphics) as main device +``` + + +## Environment Variable + +#### Build + +|Name|Value|Function| +|-|-|-| +|WHISPER_SYCL|ON (mandatory)|Enable build with SYCL code path.
For FP32/FP16, WHISPER_SYCL=ON is mandatory.| +|WHISPER_SYCL_F16|ON (optional)|Enable FP16 build with SYCL code path.For FP32, do not set it.| +|CMAKE_C_COMPILER|icx|Use icx compiler for SYCL code path| +|CMAKE_CXX_COMPILER|icpx|use icpx for SYCL code path| + +#### Running + + +|Name|Value|Function| +|-|-|-| +|GGML_SYCL_DEVICE|0 (default) or 1|Set the device id used. Check the device ids by default running output| +|GGML_SYCL_DEBUG|0 (default) or 1|Enable log function by macro: GGML_SYCL_DEBUG| + +## Known Issue + +- Error: `error while loading shared libraries: libsycl.so.7: cannot open shared object file: No such file or directory`. + + Miss to enable oneAPI running environment. + + Install oneAPI base toolkit and enable it by: `source /opt/intel/oneapi/setvars.sh`. + + +- Hang during startup + + llama.cpp use mmap as default way to read model file and copy to GPU. In some system, memcpy will be abnormal and block. + + Solution: add **--no-mmap**. + +## Todo + +- Support to build in Windows. + - Support multiple cards. \ No newline at end of file diff --git a/packages/app-mobile/android/vendor/whisper.cpp/build-xcframework.sh b/packages/whisper-voice-typing/vendor/whisper.cpp/build-xcframework.sh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/build-xcframework.sh rename to packages/whisper-voice-typing/vendor/whisper.cpp/build-xcframework.sh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ci/README.md b/packages/whisper-voice-typing/vendor/whisper.cpp/ci/README.md similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ci/README.md rename to packages/whisper-voice-typing/vendor/whisper.cpp/ci/README.md diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ci/run.sh b/packages/whisper-voice-typing/vendor/whisper.cpp/ci/run.sh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ci/run.sh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ci/run.sh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/close-issue.yml b/packages/whisper-voice-typing/vendor/whisper.cpp/close-issue.yml similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/close-issue.yml rename to packages/whisper-voice-typing/vendor/whisper.cpp/close-issue.yml diff --git a/packages/app-mobile/android/vendor/whisper.cpp/cmake/DefaultTargetOptions.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/cmake/DefaultTargetOptions.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/cmake/DefaultTargetOptions.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/cmake/DefaultTargetOptions.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/cmake/FindFFmpeg.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/cmake/FindFFmpeg.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/cmake/FindFFmpeg.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/cmake/FindFFmpeg.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/cmake/build-info.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/cmake/build-info.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/cmake/build-info.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/cmake/build-info.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/cmake/git-vars.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/cmake/git-vars.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/cmake/git-vars.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/cmake/git-vars.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/cmake/whisper-config.cmake.in b/packages/whisper-voice-typing/vendor/whisper.cpp/cmake/whisper-config.cmake.in similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/cmake/whisper-config.cmake.in rename to packages/whisper-voice-typing/vendor/whisper.cpp/cmake/whisper-config.cmake.in diff --git a/packages/app-mobile/android/vendor/whisper.cpp/cmake/whisper.pc.in b/packages/whisper-voice-typing/vendor/whisper.cpp/cmake/whisper.pc.in similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/cmake/whisper.pc.in rename to packages/whisper-voice-typing/vendor/whisper.cpp/cmake/whisper.pc.in diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/.gitignore b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/.gitignore similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/.gitignore rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/.gitignore diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/BuildTypes.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/BuildTypes.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/BuildTypes.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/BuildTypes.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/GitVars.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/GitVars.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/GitVars.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/GitVars.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/common.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/common.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/common.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/common.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/ggml-config.cmake.in b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/ggml-config.cmake.in similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/cmake/ggml-config.cmake.in rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/cmake/ggml-config.cmake.in diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-alloc.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-alloc.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-alloc.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-alloc.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-backend.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-backend.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-backend.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-backend.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-blas.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-blas.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-blas.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-blas.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cann.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cann.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cann.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cann.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cpp.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cpp.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cpp.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cpp.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cpu.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cpu.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cpu.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cpu.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cuda.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cuda.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-cuda.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-cuda.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-kompute.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-kompute.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-kompute.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-kompute.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-metal.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-metal.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-metal.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-metal.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-opencl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-opencl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-opencl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-opencl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-opt.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-opt.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-opt.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-opt.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-rpc.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-rpc.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-rpc.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-rpc.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-sycl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-sycl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-sycl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-sycl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-vulkan.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-vulkan.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml-vulkan.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml-vulkan.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/ggml.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/ggml.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/include/gguf.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/gguf.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/include/gguf.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/include/gguf.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-alloc.c b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-alloc.c similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-alloc.c rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-alloc.c diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/common.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/common.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/common.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/common.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/ggml-amx.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/ggml-amx.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/ggml-amx.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/ggml-amx.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-amx/mmq.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-backend-impl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-backend-impl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-backend-impl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-backend-impl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-backend-reg.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-backend-reg.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-backend-reg.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-backend-reg.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-backend.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-backend.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-backend.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-backend.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-blas/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-blas/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-blas/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-blas/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-blas/ggml-blas.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-blas/ggml-blas.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-blas/ggml-blas.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-blas/ggml-blas.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/Doxyfile b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/Doxyfile similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/Doxyfile rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/Doxyfile diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/acl_tensor.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/aclnn_ops.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/common.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/common.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/common.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/common.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/ggml-cann.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/ggml-cann.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/ggml-cann.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/ggml-cann.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/ascendc_kernels.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/ascendc_kernels.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/ascendc_kernels.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/ascendc_kernels.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/dup.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/dup.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/dup.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/dup.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f16.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f16.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f16.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f16.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f32.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f32.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f32.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_f32.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q4_0.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q4_0.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q4_0.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q4_0.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q8_0.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q8_0.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q8_0.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/get_row_q8_0.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f16_q8_0.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f16_q8_0.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f16_q8_0.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f16_q8_0.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f32_q8_0.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f32_q8_0.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f32_q8_0.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_f32_q8_0.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_float_to_q4_0.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_float_to_q4_0.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_float_to_q4_0.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cann/kernels/quantize_float_to_q4_0.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-common.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-common.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-common.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-common.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/amx.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/common.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/common.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/common.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/common.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/amx/mmq.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/binary-ops.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/common.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/common.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/common.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/common.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/cpu-feats-x86.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-aarch64.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-hbm.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.c diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-quants.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu-traits.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.c b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.c similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.c rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.c diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/ggml-cpu.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kernels.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/llamafile/sgemm.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cpu/unary-ops.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/acc.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/arange.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argmax.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/argsort.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/binbcast.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/clamp.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/common.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/common.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/common.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/common.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/concat.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/conv-transpose-1d.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/convert.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/count-equal.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cp-async.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cp-async.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cp-async.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cp-async.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cpy.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/cross-entropy-loss.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/dequantize.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/dequantize.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/dequantize.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/dequantize.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/diagmask.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-common.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-common.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-common.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-common.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-mma-f16.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-mma-f16.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-mma-f16.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-mma-f16.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f16.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-tile-f32.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f16.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f16.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f16.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f16.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f32.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f32.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f32.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-vec-f32.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn-wmma-f16.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/fattn.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/getrows.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ggml-cuda.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ggml-cuda.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ggml-cuda.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ggml-cuda.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/gla.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/im2col.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mma.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mma.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mma.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mma.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmq.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmv.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/mmvq.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/norm.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/opt-step-adamw.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/out-prod.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pad.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/pool2d.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/quantize.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/rope.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/scale.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/softmax.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-conv.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/ssm-scan.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sum.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/sumrows.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/generate_cu_files.py b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/generate_cu_files.py similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/generate_cu_files.py rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/generate_cu_files.py diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq1_s.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq1_s.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq1_s.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq1_s.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_s.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_s.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_s.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_s.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xs.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xs.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xs.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xs.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xxs.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xxs.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xxs.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xxs.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_s.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_s.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_s.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_s.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_xxs.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_xxs.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_xxs.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_xxs.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_nl.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_nl.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_nl.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_nl.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_xs.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_xs.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_xs.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_xs.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q2_k.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q2_k.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q2_k.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q2_k.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q3_k.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q3_k.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q3_k.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q3_k.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_k.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_k.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_k.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_k.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_1.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_1.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_1.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_1.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_k.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_k.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_k.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_k.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q6_k.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q6_k.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q6_k.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q6_k.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q8_0.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q8_0.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q8_0.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/template-instances/mmq-instance-q8_0.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/tsembd.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/unary.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/upscale.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vecdotq.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vecdotq.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vecdotq.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vecdotq.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/cuda.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/cuda.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/cuda.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/cuda.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/hip.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/hip.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/hip.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/hip.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/musa.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/musa.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/musa.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/vendors/musa.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cu b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cu similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cu rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cu diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cuh b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cuh similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cuh rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-cuda/wkv.cuh diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-hip/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-hip/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-hip/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-hip/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-impl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-impl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-impl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-impl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/ggml-kompute.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/ggml-kompute.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/ggml-kompute.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/ggml-kompute.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/common.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/common.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/common.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/common.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_add.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_add.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_add.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_add.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_addrow.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_addrow.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_addrow.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_addrow.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f16.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f16.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f16.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f16.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f32.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f32.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f32.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f32.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f16.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f16.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f16.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f16.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f32.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f32.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f32.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f32.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_diagmask.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_diagmask.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_diagmask.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_diagmask.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_gelu.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_gelu.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_gelu.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_gelu.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f16.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f16.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f16.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f16.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f32.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f32.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f32.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f32.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_0.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_0.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_0.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_0.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_1.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_1.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_1.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_1.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q6_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q6_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q6_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q6_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_f16.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_f16.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_f16.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_f16.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_mat_f32.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_mat_f32.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_mat_f32.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_mat_f32.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_0.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_0.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_0.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_0.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_1.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_1.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_1.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_1.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q6_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q6_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q6_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q6_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q8_0.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q8_0.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q8_0.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q8_0.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n_pre.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n_pre.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n_pre.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n_pre.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_norm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_norm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_norm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_norm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_relu.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_relu.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_relu.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_relu.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rmsnorm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rmsnorm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rmsnorm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rmsnorm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f16.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f16.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f16.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f16.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f32.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f32.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f32.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f32.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f16.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f16.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f16.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f16.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f32.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f32.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f32.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f32.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale_8.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale_8.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale_8.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_scale_8.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_silu.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_silu.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_silu.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_silu.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_softmax.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_softmax.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_softmax.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/op_softmax.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/rope_common.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/rope_common.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/rope_common.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-kompute/kompute-shaders/rope_common.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal-impl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal-impl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal-impl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal-impl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.m b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.m similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.m rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.m diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.metal b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.metal similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.metal rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-metal/ggml-metal.metal diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-musa/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-musa/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-musa/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-musa/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/ggml-opencl.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/ggml-opencl.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/ggml-opencl.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/ggml-opencl.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/embed_kernel.py b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/embed_kernel.py similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/embed_kernel.py rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/embed_kernel.py diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_cvt.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_cvt.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_cvt.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_cvt.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle_general.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle_general.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle_general.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_gemv_noshuffle_general.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_im2col.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_im2col.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_im2col.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_im2col.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mm.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mm.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mm.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mm.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_mul_mat_Ab_Bi_8x4.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_16.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_16.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_16.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_16.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32_16.cl b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32_16.cl similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32_16.cl rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opencl/kernels/ggml-opencl_transpose_32_16.cl diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opt.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opt.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-opt.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-opt.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-quants.c b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-quants.c similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-quants.c rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-quants.c diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-quants.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-quants.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-quants.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-quants.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-rpc/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-rpc/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-rpc/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-rpc/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-rpc/ggml-rpc.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-rpc/ggml-rpc.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-rpc/ggml-rpc.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-rpc/ggml-rpc.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/backend.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/backend.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/backend.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/backend.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/common.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/common.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/common.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/common.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/common.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/common.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/common.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/common.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/concat.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/conv.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/convert.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/cpy.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dequantize.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dequantize.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dequantize.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dequantize.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dmmv.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dpct/helper.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dpct/helper.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/dpct/helper.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/dpct/helper.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/element_wise.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/gemm.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/gemm.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/gemm.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/gemm.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/getrows.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/ggml-sycl.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/ggml-sycl.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/ggml-sycl.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/ggml-sycl.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/gla.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/im2col.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmq.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/mmvq.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/norm.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/outprod.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/presets.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/presets.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/presets.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/presets.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/rope.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/softmax.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/sycl_hw.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/tsembd.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/vecdotq.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/vecdotq.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/vecdotq.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/vecdotq.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.hpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.hpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.hpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-sycl/wkv.hpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-threading.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-threading.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-threading.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-threading.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-threading.h b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-threading.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-threading.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-threading.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/cmake/host-toolchain.cmake.in b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/cmake/host-toolchain.cmake.in similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/cmake/host-toolchain.cmake.in rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/cmake/host-toolchain.cmake.in diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/ggml-vulkan.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/acc.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/acc.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/acc.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/acc.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/add.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/add.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/add.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/add.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argmax.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argmax.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argmax.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argmax.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argsort.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argsort.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argsort.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/argsort.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/clamp.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/clamp.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/clamp.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/clamp.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/concat.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/concat.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/concat.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/concat.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/cos.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/cos.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/cos.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/cos.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/count_equal.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/count_equal.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/count_equal.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/count_equal.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_f32.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_f32.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_f32.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_f32.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/div.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/div.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/div.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/div.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu_quick.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu_quick.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu_quick.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/gelu_quick.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_head.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_head.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_head.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_head.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/group_norm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/group_norm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/group_norm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/group_norm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/im2col.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/im2col.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/im2col.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/im2col.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/leaky_relu.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/leaky_relu.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/leaky_relu.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/leaky_relu.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_split_k_reduce.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_split_k_reduce.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_split_k_reduce.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_split_k_reduce.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_p021.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_p021.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_p021.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_p021.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/norm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/norm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/norm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/norm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pad.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pad.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pad.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pad.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pool2d.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pool2d.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pool2d.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/pool2d.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat_back.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat_back.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat_back.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/repeat_back.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_head.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_head.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_head.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_head.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_multi.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_multi.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_multi.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_multi.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_neox.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_neox.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_neox.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_neox.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_norm.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_norm.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_norm.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_norm.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_vision.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_vision.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_vision.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/rope_vision.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/scale.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/scale.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/scale.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/scale.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu_back.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu_back.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu_back.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/silu_back.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sin.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sin.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sin.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sin.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max_back.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max_back.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max_back.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/soft_max_back.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/square.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/square.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/square.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/square.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sub.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sub.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sub.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sub.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sum_rows.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sum_rows.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sum_rows.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/sum_rows.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/types.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/types.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/types.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/types.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/upscale.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/upscale.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/upscale.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/upscale.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv6.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv6.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv6.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv6.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv7.comp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv7.comp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv7.comp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml-vulkan/vulkan-shaders/wkv7.comp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml.c b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml.c similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/ggml.c rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/ggml.c diff --git a/packages/app-mobile/android/vendor/whisper.cpp/ggml/src/gguf.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/gguf.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/ggml/src/gguf.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/ggml/src/gguf.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/grammars/assistant.gbnf b/packages/whisper-voice-typing/vendor/whisper.cpp/grammars/assistant.gbnf similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/grammars/assistant.gbnf rename to packages/whisper-voice-typing/vendor/whisper.cpp/grammars/assistant.gbnf diff --git a/packages/app-mobile/android/vendor/whisper.cpp/grammars/chess.gbnf b/packages/whisper-voice-typing/vendor/whisper.cpp/grammars/chess.gbnf similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/grammars/chess.gbnf rename to packages/whisper-voice-typing/vendor/whisper.cpp/grammars/chess.gbnf diff --git a/packages/app-mobile/android/vendor/whisper.cpp/grammars/colors.gbnf b/packages/whisper-voice-typing/vendor/whisper.cpp/grammars/colors.gbnf similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/grammars/colors.gbnf rename to packages/whisper-voice-typing/vendor/whisper.cpp/grammars/colors.gbnf diff --git a/packages/app-mobile/android/vendor/whisper.cpp/include/whisper.h b/packages/whisper-voice-typing/vendor/whisper.cpp/include/whisper.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/include/whisper.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/include/whisper.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/CMakeLists.txt b/packages/whisper-voice-typing/vendor/whisper.cpp/src/CMakeLists.txt similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/CMakeLists.txt rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/CMakeLists.txt diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.m b/packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.m similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.m rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-decoder-impl.m diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.h b/packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.m b/packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.m similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.m rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder-impl.m diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder.h b/packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder.mm b/packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder.mm similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/coreml/whisper-encoder.mm rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/coreml/whisper-encoder.mm diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.cpp diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.h b/packages/whisper-voice-typing/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/openvino/whisper-openvino-encoder.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/whisper-arch.h b/packages/whisper-voice-typing/vendor/whisper.cpp/src/whisper-arch.h similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/whisper-arch.h rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/whisper-arch.h diff --git a/packages/app-mobile/android/vendor/whisper.cpp/src/whisper.cpp b/packages/whisper-voice-typing/vendor/whisper.cpp/src/whisper.cpp similarity index 100% rename from packages/app-mobile/android/vendor/whisper.cpp/src/whisper.cpp rename to packages/whisper-voice-typing/vendor/whisper.cpp/src/whisper.cpp diff --git a/renovate.json5 b/renovate.json5 index 1c75d1ea9c..bd8bc86caa 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -76,6 +76,8 @@ "prosemirror-state", "prosemirror-view", "prosemirror-tables", + // Does not use semver + "@dr.pogodin/react-native-fs", "@fortawesome/fontawesome-svg-core", "@fortawesome/free-solid-svg-icons", "@svgr/webpack", diff --git a/yarn.lock b/yarn.lock index 85e2759408..331d5e9541 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2596,6 +2596,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.20.0, @babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.27.1" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10/721b8a6e360a1fa0f1c9fe7351ae6c874828e119183688b533c477aa378f1010f37cc9afbfc4722c686d1f5cdd00da02eab4ba7278a0c504fa0d7a321dcd4fdf + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" @@ -2845,6 +2856,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/generator@npm:7.28.5" + dependencies: + "@babel/parser": "npm:^7.28.5" + "@babel/types": "npm:^7.28.5" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10/ae618f0a17a6d76c3983e1fd5d9c2f5fdc07703a119efdb813a7d9b8ad4be0a07d4c6f0d718440d2de01a68e321f64e2d63c77fc5d43ae47ae143746ef28ac1f + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.16.0, @babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -2872,6 +2896,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-annotate-as-pure@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" + dependencies: + "@babel/types": "npm:^7.27.3" + checksum: 10/63863a5c936ef82b546ca289c9d1b18fabfc24da5c4ee382830b124e2e79b68d626207febc8d4bffc720f50b2ee65691d7d12cc0308679dee2cd6bdc926b7190 + languageName: node + linkType: hard + "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.5" @@ -3036,6 +3069,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.28.3": + version: 7.28.5 + resolution: "@babel/helper-create-class-features-plugin@npm:7.28.5" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.27.3" + "@babel/helper-member-expression-to-functions": "npm:^7.28.5" + "@babel/helper-optimise-call-expression": "npm:^7.27.1" + "@babel/helper-replace-supers": "npm:^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" + "@babel/traverse": "npm:^7.28.5" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/0bbf3dfe91875f642fe7ef38f60647f0df8eb9994d4350b19a4d1a9bdc32629e49e56e9a80afb12eeb6f6bcc6666392b37f32231b7c054fc91a0d5251cd67d5b + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.5" @@ -3189,6 +3239,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-globals@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/helper-globals@npm:7.28.0" + checksum: 10/91445f7edfde9b65dcac47f4f858f68dc1661bf73332060ab67ad7cc7b313421099a2bfc4bda30c3db3842cfa1e86fffbb0d7b2c5205a177d91b22c8d7d9cb47 + languageName: node + linkType: hard + "@babel/helper-hoist-variables@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-hoist-variables@npm:7.22.5" @@ -3255,6 +3312,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.27.1, @babel/helper-member-expression-to-functions@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/helper-member-expression-to-functions@npm:7.28.5" + dependencies: + "@babel/traverse": "npm:^7.28.5" + "@babel/types": "npm:^7.28.5" + checksum: 10/05e0857cf7913f03d88ca62952d3888693c21a4f4d7cfc141c630983f71fc0a64393e05cecceb7701dfe98298f7cc38fcb735d892e3c8c6f56f112c85ee1b154 + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.16.0, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-module-imports@npm:7.22.5" @@ -3379,6 +3446,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-optimise-call-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" + dependencies: + "@babel/types": "npm:^7.27.1" + checksum: 10/0fb7ee824a384529d6b74f8a58279f9b56bfe3cce332168067dddeab2552d8eeb56dc8eaf86c04a3a09166a316cb92dfc79c4c623cd034ad4c563952c98b464f + languageName: node + linkType: hard + "@babel/helper-plugin-utils@npm:7.10.4": version: 7.10.4 resolution: "@babel/helper-plugin-utils@npm:7.10.4" @@ -3540,6 +3616,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-replace-supers@npm:7.27.1" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.27.1" + "@babel/helper-optimise-call-expression": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/72e3f8bef744c06874206bf0d80a0abbedbda269586966511c2491df4f6bf6d47a94700810c7a6737345a545dfb8295222e1e72f506bcd0b40edb3f594f739ea + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -3588,6 +3677,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" + dependencies: + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10/4f380c5d0e0769fa6942a468b0c2d7c8f0c438f941aaa88f785f8752c103631d0904c7b4e76207a3b0e6588b2dec376595370d92ca8f8f1b422c14a69aa146d4 + languageName: node + linkType: hard + "@babel/helper-split-export-declaration@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-split-export-declaration@npm:7.22.5" @@ -3685,6 +3784,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/helper-validator-identifier@npm:7.28.5" + checksum: 10/8e5d9b0133702cfacc7f368bf792f0f8ac0483794877c6dca5fcb73810ee138e27527701826fb58a40a004f3a5ec0a2f3c3dd5e326d262530b119918f3132ba7 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-validator-option@npm:7.22.5" @@ -3825,7 +3931,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.0, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.22.5": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.0, @babel/parser@npm:^7.22.5": version: 7.22.5 resolution: "@babel/parser@npm:7.22.5" bin: @@ -3885,6 +3991,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/parser@npm:7.28.5" + dependencies: + "@babel/types": "npm:^7.28.5" + bin: + parser: ./bin/babel-parser.js + checksum: 10/8d9bfb437af6c97a7f6351840b9ac06b4529ba79d6d3def24d6c2996ab38ff7f1f9d301e868ca84a93a3050fadb3d09dbc5105b24634cd281671ac11eebe8df7 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": version: 7.25.9 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" @@ -4693,6 +4810,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-class-static-block@npm:^7.27.1": + version: 7.28.3 + resolution: "@babel/plugin-transform-class-static-block@npm:7.28.3" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.28.3" + "@babel/helper-plugin-utils": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 10/c0ba8f0cbf3699287e5a711907dab3b29f346d9c107faa4e424aa26252e45845d74ca08ee6245bfccf32a8c04bc1d07a89b635e51522592c6044b810a48d3f58 + languageName: node + linkType: hard + "@babel/plugin-transform-classes@npm:^7.0.0": version: 7.22.5 resolution: "@babel/plugin-transform-classes@npm:7.22.5" @@ -6531,6 +6660,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.2" + "@babel/types": "npm:^7.27.1" + checksum: 10/fed15a84beb0b9340e5f81566600dbee5eccd92e4b9cc42a944359b1aa1082373391d9d5fc3656981dff27233ec935d0bc96453cf507f60a4b079463999244d8 + languageName: node + linkType: hard + "@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.27.0": version: 7.27.0 resolution: "@babel/traverse@npm:7.27.0" @@ -6615,6 +6755,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/traverse@npm:7.28.5" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.28.5" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/parser": "npm:^7.28.5" + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.28.5" + debug: "npm:^4.3.1" + checksum: 10/1fce426f5ea494913c40f33298ce219708e703f71cac7ac045ebde64b5a7b17b9275dfa4e05fb92c3f123136913dff62c8113172f4a5de66dab566123dbe7437 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.0, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.22.5, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.22.5 resolution: "@babel/types@npm:7.22.5" @@ -6679,6 +6834,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/types@npm:7.28.5" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.28.5" + checksum: 10/4256bb9fb2298c4f9b320bde56e625b7091ea8d2433d98dcf524d4086150da0b6555aabd7d0725162670614a9ac5bf036d1134ca13dedc9707f988670f1362d7 + languageName: node + linkType: hard + "@babel/types@npm:^7.27.7": version: 7.27.7 resolution: "@babel/types@npm:7.27.7" @@ -6689,16 +6854,6 @@ __metadata: languageName: node linkType: hard -"@bam.tech/react-native-image-resizer@npm:3.0.11": - version: 3.0.11 - resolution: "@bam.tech/react-native-image-resizer@npm:3.0.11" - peerDependencies: - react: "*" - react-native: "*" - checksum: 10/b003cb04307e52576691254e066ea8e74fa628095e387b00185c9caebfbbabd01a15a39034d28d18ec5167e4dde9a1afae2a4530e579537e957fa4f78ab439bd - languageName: node - linkType: hard - "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -6835,7 +6990,7 @@ __metadata: languageName: node linkType: hard -"@codemirror/lang-html@npm:6.4.11, @codemirror/lang-html@npm:^6.0.0": +"@codemirror/lang-html@npm:6.4.11": version: 6.4.11 resolution: "@codemirror/lang-html@npm:6.4.11" dependencies: @@ -6852,6 +7007,23 @@ __metadata: languageName: node linkType: hard +"@codemirror/lang-html@npm:^6.0.0": + version: 6.4.9 + resolution: "@codemirror/lang-html@npm:6.4.9" + dependencies: + "@codemirror/autocomplete": "npm:^6.0.0" + "@codemirror/lang-css": "npm:^6.0.0" + "@codemirror/lang-javascript": "npm:^6.0.0" + "@codemirror/language": "npm:^6.4.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.17.0" + "@lezer/common": "npm:^1.0.0" + "@lezer/css": "npm:^1.1.0" + "@lezer/html": "npm:^1.3.0" + checksum: 10/db4288a9e87613a54836313cd48df7e11450b885c64b5a6c054d057d33501ee1501cf72d246eb588131b90574e5471509f00944fc5b55bacc83750f1321a58e1 + languageName: node + linkType: hard + "@codemirror/lang-java@npm:^6.0.0": version: 6.0.1 resolution: "@codemirror/lang-java@npm:6.0.1" @@ -7118,12 +7290,12 @@ __metadata: linkType: hard "@craftzdog/react-native-buffer@npm:^6.0.5": - version: 6.0.5 - resolution: "@craftzdog/react-native-buffer@npm:6.0.5" + version: 6.1.1 + resolution: "@craftzdog/react-native-buffer@npm:6.1.1" dependencies: ieee754: "npm:^1.2.1" - react-native-quick-base64: "npm:^2.0.5" - checksum: 10/9963b430d0cd2af030605a7e81b3982dfec36603406d4f14d520e28936d24a79d69ca4e8a3b650734f6e45b12d87f1bd1ce86f0db11379103e7b1c024a2510d5 + react-native-quick-base64: "npm:^2.2.2" + checksum: 10/a78a74d8c63597f601b79e3b14e809508d481a407b35041bd46e50a245f4c98382af574d2e9f01adaa77e26a5683ec2c47c7bf2392b49afeabdc37a1a5bfbac5 languageName: node linkType: hard @@ -8192,6 +8364,19 @@ __metadata: languageName: node linkType: hard +"@dr.pogodin/react-native-fs@npm:2.36.2": + version: 2.36.2 + resolution: "@dr.pogodin/react-native-fs@npm:2.36.2" + dependencies: + buffer: "npm:^6.0.3" + http-status-codes: "npm:^2.3.0" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/6a4b1c324386c455e01ccf45daf80474364079bc6495f0a65c1468e4e15607951754b81d9d720fb635a8caba5ba94b34719d0140357ce8e168172583e09156d4 + languageName: node + linkType: hard + "@electron/asar@npm:^3.2.1": version: 3.2.4 resolution: "@electron/asar@npm:3.2.4" @@ -8817,29 +9002,29 @@ __metadata: languageName: node linkType: hard -"@expo/cli@npm:0.24.22": - version: 0.24.22 - resolution: "@expo/cli@npm:0.24.22" +"@expo/cli@npm:54.0.21": + version: 54.0.21 + resolution: "@expo/cli@npm:54.0.21" dependencies: "@0no-co/graphql.web": "npm:^1.0.8" - "@babel/runtime": "npm:^7.20.0" - "@expo/code-signing-certificates": "npm:^0.0.5" - "@expo/config": "npm:~11.0.13" - "@expo/config-plugins": "npm:~10.1.2" - "@expo/devcert": "npm:^1.1.2" - "@expo/env": "npm:~1.0.7" - "@expo/image-utils": "npm:^0.7.6" - "@expo/json-file": "npm:^9.1.5" - "@expo/metro-config": "npm:~0.20.17" - "@expo/osascript": "npm:^2.2.5" - "@expo/package-manager": "npm:^1.8.6" - "@expo/plist": "npm:^0.3.5" - "@expo/prebuild-config": "npm:^9.0.12" - "@expo/schema-utils": "npm:^0.1.0" + "@expo/code-signing-certificates": "npm:^0.0.6" + "@expo/config": "npm:~12.0.13" + "@expo/config-plugins": "npm:~54.0.4" + "@expo/devcert": "npm:^1.2.1" + "@expo/env": "npm:~2.0.8" + "@expo/image-utils": "npm:^0.8.8" + "@expo/json-file": "npm:^10.0.8" + "@expo/metro": "npm:~54.2.0" + "@expo/metro-config": "npm:~54.0.13" + "@expo/osascript": "npm:^2.3.8" + "@expo/package-manager": "npm:^1.9.9" + "@expo/plist": "npm:^0.4.8" + "@expo/prebuild-config": "npm:^54.0.8" + "@expo/schema-utils": "npm:^0.1.8" "@expo/spawn-async": "npm:^1.7.2" "@expo/ws-tunnel": "npm:^1.0.1" "@expo/xcpretty": "npm:^4.3.0" - "@react-native/dev-middleware": "npm:0.79.6" + "@react-native/dev-middleware": "npm:0.81.5" "@urql/core": "npm:^5.0.6" "@urql/exchange-retry": "npm:^1.3.0" accepts: "npm:^1.3.8" @@ -8853,12 +9038,13 @@ __metadata: connect: "npm:^3.7.0" debug: "npm:^4.3.4" env-editor: "npm:^0.4.1" + expo-server: "npm:^1.0.5" freeport-async: "npm:^2.0.0" getenv: "npm:^2.0.0" - glob: "npm:^10.4.2" + glob: "npm:^13.0.0" lan-network: "npm:^0.1.6" minimatch: "npm:^9.0.0" - node-forge: "npm:^1.3.1" + node-forge: "npm:^1.3.3" npm-package-arg: "npm:^11.0.0" ora: "npm:^3.4.0" picomatch: "npm:^3.0.1" @@ -8878,112 +9064,135 @@ __metadata: source-map-support: "npm:~0.5.21" stacktrace-parser: "npm:^0.1.10" structured-headers: "npm:^0.4.1" - tar: "npm:^7.4.3" + tar: "npm:^7.5.2" terminal-link: "npm:^2.1.1" undici: "npm:^6.18.2" wrap-ansi: "npm:^7.0.0" ws: "npm:^8.12.1" + peerDependencies: + expo: "*" + expo-router: "*" + react-native: "*" + peerDependenciesMeta: + expo-router: + optional: true + react-native: + optional: true bin: expo-internal: build/bin/cli - checksum: 10/2d49b3b24092380846a19519e9e7554ce0fa8958b3d5abc6c5a9485efe8195446dc64771f08a096f6c56de0705b74e59a1608c268620ec810b156aa252ad487f + checksum: 10/076d321c837c1d2f7cb680ac4e7431d5adb2a2d7f12beed48dd35459f0266b887fca3c8da8b96408d31c2d0f3585f4ab8e82931c8f977f8ec100c4f4bd86cc2a languageName: node linkType: hard -"@expo/code-signing-certificates@npm:^0.0.5": - version: 0.0.5 - resolution: "@expo/code-signing-certificates@npm:0.0.5" +"@expo/code-signing-certificates@npm:^0.0.6": + version: 0.0.6 + resolution: "@expo/code-signing-certificates@npm:0.0.6" dependencies: - node-forge: "npm:^1.2.1" - nullthrows: "npm:^1.1.1" - checksum: 10/6783721e2eafff5547500eaf99bee54641f076dc7221e52b48f1494f993040d779fe13ae7d95d3874c483eb545cafbf692315e2da0b0fc24e7a477b84e289617 + node-forge: "npm:^1.3.3" + checksum: 10/4446cca45e8b48b90ba728e39aab6b1195ede730d7aba7d9830f635aa16a52634e6eba9dc510f83cc6ff6fb6b0e3077bc6021098f0157f6dba96f8494685c388 languageName: node linkType: hard -"@expo/config-plugins@npm:~10.1.2": - version: 10.1.2 - resolution: "@expo/config-plugins@npm:10.1.2" +"@expo/config-plugins@npm:~54.0.4": + version: 54.0.4 + resolution: "@expo/config-plugins@npm:54.0.4" dependencies: - "@expo/config-types": "npm:^53.0.5" - "@expo/json-file": "npm:~9.1.5" - "@expo/plist": "npm:^0.3.5" + "@expo/config-types": "npm:^54.0.10" + "@expo/json-file": "npm:~10.0.8" + "@expo/plist": "npm:^0.4.8" "@expo/sdk-runtime-versions": "npm:^1.0.0" chalk: "npm:^4.1.2" debug: "npm:^4.3.5" getenv: "npm:^2.0.0" - glob: "npm:^10.4.2" + glob: "npm:^13.0.0" resolve-from: "npm:^5.0.0" semver: "npm:^7.5.4" slash: "npm:^3.0.0" slugify: "npm:^1.6.6" xcode: "npm:^3.0.1" xml2js: "npm:0.6.0" - checksum: 10/01281c474513e4c3aa5b0cb0c9da5b1fdb625fe529d078b11c733d84d771c0514ec7b37741df94d4bcde4c3fb8189df324d1fa1d58afc8a716f48fab5a60e293 + checksum: 10/55dab3f5f29b6dfb58bc32a9b0a681766f6b260ee94b1c295f67ac3c5e8f372afc512bb416f2e50901e387d4012e3a4a8fd3b461e5aa8c20e16fdcde64a07327 languageName: node linkType: hard -"@expo/config-types@npm:^53.0.5": - version: 53.0.5 - resolution: "@expo/config-types@npm:53.0.5" - checksum: 10/71971858185b6163459271734903258c9cdd26a0ffc9775d038f37ebb71ab07153494b0157b96eed03600789592862458e81dfbcc8ef440d28fdcf965f0ba012 +"@expo/config-types@npm:^54.0.10": + version: 54.0.10 + resolution: "@expo/config-types@npm:54.0.10" + checksum: 10/7e4d598d2d1905dc53f2b30d5a1e0817dd486b13c89a24575deb4e25ec441b0de009d156f041a3c9a1f2121dfba28f2a24fd4fb5a056cac90502ca67c639bb8a languageName: node linkType: hard -"@expo/config@npm:~11.0.12, @expo/config@npm:~11.0.13": - version: 11.0.13 - resolution: "@expo/config@npm:11.0.13" +"@expo/config@npm:~12.0.13": + version: 12.0.13 + resolution: "@expo/config@npm:12.0.13" dependencies: "@babel/code-frame": "npm:~7.10.4" - "@expo/config-plugins": "npm:~10.1.2" - "@expo/config-types": "npm:^53.0.5" - "@expo/json-file": "npm:^9.1.5" + "@expo/config-plugins": "npm:~54.0.4" + "@expo/config-types": "npm:^54.0.10" + "@expo/json-file": "npm:^10.0.8" deepmerge: "npm:^4.3.1" getenv: "npm:^2.0.0" - glob: "npm:^10.4.2" + glob: "npm:^13.0.0" require-from-string: "npm:^2.0.2" resolve-from: "npm:^5.0.0" resolve-workspace-root: "npm:^2.0.0" semver: "npm:^7.6.0" slugify: "npm:^1.3.4" - sucrase: "npm:3.35.0" - checksum: 10/b81511676c243d712fe31af123752cbd8cf1d09f42f2dd5df3827f2ce5bcb84233bf90e1cfa255fcb89eecf82b6a992a32bb0d38fea8f920f4afed09a659fe68 + sucrase: "npm:~3.35.1" + checksum: 10/2caac758fb706a75fc6d07df31c24c22d633f522091148e615d9c28475ae35cfaed29458cfd08f13d40d71d33715e5ac618af78591c11886529157b8519fe4ea languageName: node linkType: hard -"@expo/devcert@npm:^1.1.2": - version: 1.2.0 - resolution: "@expo/devcert@npm:1.2.0" +"@expo/devcert@npm:^1.2.1": + version: 1.2.1 + resolution: "@expo/devcert@npm:1.2.1" dependencies: "@expo/sudo-prompt": "npm:^9.3.1" debug: "npm:^3.1.0" - glob: "npm:^10.4.2" - checksum: 10/03ebd67da4857265479be9f4ecac5a36997081af81a9d58a08e1604aefb561c98a68b479e271ff975e508b11bc03ed6fada7fd44c211194d7b5c7e0eb454c4fd + checksum: 10/39ac1ea49fd6c95eee78a3ca712647aa546a08cf1133d2586a7abd23bf4aa2222f618002e8e8b54c26b576cae8a6ed4cdb3ba77d04aa46f147c4cf59d27bd1fc languageName: node linkType: hard -"@expo/env@npm:~1.0.7": - version: 1.0.7 - resolution: "@expo/env@npm:1.0.7" +"@expo/devtools@npm:0.1.8": + version: 0.1.8 + resolution: "@expo/devtools@npm:0.1.8" + dependencies: + chalk: "npm:^4.1.2" + peerDependencies: + react: "*" + react-native: "*" + peerDependenciesMeta: + react: + optional: true + react-native: + optional: true + checksum: 10/ecbf927c91b45697c53a528f77ddcc63b6bad4efc29af18f9d6f7aa0d1e6e47c8b2a061dfa29b3ebb470ce3b4c95e40dbcf51066b0ff1db17c7d1be88fe162f1 + languageName: node + linkType: hard + +"@expo/env@npm:~2.0.8": + version: 2.0.8 + resolution: "@expo/env@npm:2.0.8" dependencies: chalk: "npm:^4.0.0" debug: "npm:^4.3.4" dotenv: "npm:~16.4.5" dotenv-expand: "npm:~11.0.6" getenv: "npm:^2.0.0" - checksum: 10/3275e4be6a2e190cdece4238d44243cbc94ada2720b7cd45a1d9a3775c0b73bc087b756f1558a1e5b3a6dc723e5c2d4f52c25c10a7086193097df61ea4c1a2d4 + checksum: 10/d440e0c7d8f4d438a9f82794435c315b63fc18a9b251ee7238f150255634d2786874cd85ff78589eb0488125d41d57a9b055fb1a25c4e06a08a0330d809e78cd languageName: node linkType: hard -"@expo/fingerprint@npm:0.13.4": - version: 0.13.4 - resolution: "@expo/fingerprint@npm:0.13.4" +"@expo/fingerprint@npm:0.15.4": + version: 0.15.4 + resolution: "@expo/fingerprint@npm:0.15.4" dependencies: "@expo/spawn-async": "npm:^1.7.2" arg: "npm:^5.0.2" chalk: "npm:^4.1.2" debug: "npm:^4.3.4" - find-up: "npm:^5.0.0" getenv: "npm:^2.0.0" - glob: "npm:^10.4.2" + glob: "npm:^13.0.0" ignore: "npm:^5.3.1" minimatch: "npm:^9.0.0" p-limit: "npm:^3.1.0" @@ -8991,13 +9200,13 @@ __metadata: semver: "npm:^7.6.0" bin: fingerprint: bin/cli.js - checksum: 10/930d6711279e908c81d8969d3baec7f767351976331b026fd1813794960d7a8bd4fdfe0ab5799577c8a724e7d260d92b84bd70f068da593da5c9b33acf613954 + checksum: 10/854c5b8c298d145d58d47d45081f14fd1fc3c4880e6706257c4863ea4e56a368d055d1043538c74e35f5b23971c945bcd3e62750ffe23d2210f73d3712447b5a languageName: node linkType: hard -"@expo/image-utils@npm:^0.7.6": - version: 0.7.6 - resolution: "@expo/image-utils@npm:0.7.6" +"@expo/image-utils@npm:^0.8.8": + version: 0.8.8 + resolution: "@expo/image-utils@npm:0.8.8" dependencies: "@expo/spawn-async": "npm:^1.7.2" chalk: "npm:^4.0.0" @@ -9005,104 +9214,136 @@ __metadata: jimp-compact: "npm:0.16.1" parse-png: "npm:^2.1.0" resolve-from: "npm:^5.0.0" + resolve-global: "npm:^1.0.0" semver: "npm:^7.6.0" temp-dir: "npm:~2.0.0" unique-string: "npm:~2.0.0" - checksum: 10/455cd36137f0a2691a78a54dbe624e8c92ff924879f15537a9640a8208c9d4877c6071f4aa96b2cd6dc39cbde35ca6c67272e1a0062ce920c2f8669614558080 + checksum: 10/f7a2d81785e81e3ba5cabf1ae9acf3923b9320345b1761dfd6ebaaa1dc77f7b08e5a86aead2657223d47b65dec96fb70f012b149149dbf202de4809e5920baf5 languageName: node linkType: hard -"@expo/json-file@npm:^9.1.5, @expo/json-file@npm:~9.1.5": - version: 9.1.5 - resolution: "@expo/json-file@npm:9.1.5" +"@expo/json-file@npm:^10.0.8, @expo/json-file@npm:~10.0.8": + version: 10.0.8 + resolution: "@expo/json-file@npm:10.0.8" dependencies: "@babel/code-frame": "npm:~7.10.4" json5: "npm:^2.2.3" - checksum: 10/b4a8019ac68ffb04606b03ff2fbec81ed031a9bbb2e9f21ba5e7a74f36d68ad1aa68111342ac26d2082f1322b5eb343ad0976b51793599501f33160cd92c25be + checksum: 10/d744edb72ea5a52d8829357fb2adb93be3181a522e3b6b8dc3a32a448c9c76eca603f8a390f1a126f4b16c21a470e0c1b2dde0bcd2cb799d97178e48df93a3b3 languageName: node linkType: hard -"@expo/metro-config@npm:0.20.17, @expo/metro-config@npm:~0.20.17": - version: 0.20.17 - resolution: "@expo/metro-config@npm:0.20.17" +"@expo/metro-config@npm:54.0.13, @expo/metro-config@npm:~54.0.13": + version: 54.0.13 + resolution: "@expo/metro-config@npm:54.0.13" dependencies: + "@babel/code-frame": "npm:^7.20.0" "@babel/core": "npm:^7.20.0" "@babel/generator": "npm:^7.20.5" - "@babel/parser": "npm:^7.20.0" - "@babel/types": "npm:^7.20.0" - "@expo/config": "npm:~11.0.12" - "@expo/env": "npm:~1.0.7" - "@expo/json-file": "npm:~9.1.5" + "@expo/config": "npm:~12.0.13" + "@expo/env": "npm:~2.0.8" + "@expo/json-file": "npm:~10.0.8" + "@expo/metro": "npm:~54.2.0" "@expo/spawn-async": "npm:^1.7.2" + browserslist: "npm:^4.25.0" chalk: "npm:^4.1.0" debug: "npm:^4.3.2" dotenv: "npm:~16.4.5" dotenv-expand: "npm:~11.0.6" getenv: "npm:^2.0.0" - glob: "npm:^10.4.2" + glob: "npm:^13.0.0" + hermes-parser: "npm:^0.29.1" jsc-safe-url: "npm:^0.2.4" - lightningcss: "npm:~1.27.0" + lightningcss: "npm:^1.30.1" minimatch: "npm:^9.0.0" postcss: "npm:~8.4.32" resolve-from: "npm:^5.0.0" - checksum: 10/94b6d09662ca81b646fa5e3461e897b3d7cf9cc94adb6b401e61924ae63d1a49e4ebe48498f998559f2613690d248302404d16eca76e0175be91c2a72feb8f31 + peerDependencies: + expo: "*" + peerDependenciesMeta: + expo: + optional: true + checksum: 10/858bb74f0620b94602f15cf7ba254dc95dc332876908aff61d6736bd06827ff48d674c461a771f92619bf6bdac2e7458ecc66423a8309a72865dda671a45aa3a languageName: node linkType: hard -"@expo/osascript@npm:^2.2.5": - version: 2.2.5 - resolution: "@expo/osascript@npm:2.2.5" +"@expo/metro@npm:~54.2.0": + version: 54.2.0 + resolution: "@expo/metro@npm:54.2.0" + dependencies: + metro: "npm:0.83.3" + metro-babel-transformer: "npm:0.83.3" + metro-cache: "npm:0.83.3" + metro-cache-key: "npm:0.83.3" + metro-config: "npm:0.83.3" + metro-core: "npm:0.83.3" + metro-file-map: "npm:0.83.3" + metro-minify-terser: "npm:0.83.3" + metro-resolver: "npm:0.83.3" + metro-runtime: "npm:0.83.3" + metro-source-map: "npm:0.83.3" + metro-symbolicate: "npm:0.83.3" + metro-transform-plugins: "npm:0.83.3" + metro-transform-worker: "npm:0.83.3" + checksum: 10/36087cec4cb1788f6c8f6148f9dcd30e8d3693fbf8a14f8b0a3c9575895bd6b1847690c958181d7e92718d49ab66df285a79d64ff3c13e4168bbfee26b670d7f + languageName: node + linkType: hard + +"@expo/osascript@npm:^2.3.8": + version: 2.3.8 + resolution: "@expo/osascript@npm:2.3.8" dependencies: "@expo/spawn-async": "npm:^1.7.2" exec-async: "npm:^2.2.0" - checksum: 10/1025a18f02a934326f494fa84f64201a6887324fb4406099792c6434a75f3366f2ffcfe669ebd32451dfaa027c7ee83b5ba8ac53a0a8d31bbab1887a15c2e588 + checksum: 10/153ddb710870a29a4f69d2b6a42a492bf03f9707f8bc2c8929540429b3844c0ff3ccdb8f8ff78ee886fa54c3e8a584f7ca1d9718322503fca7c325558f121db6 languageName: node linkType: hard -"@expo/package-manager@npm:^1.8.6": - version: 1.8.6 - resolution: "@expo/package-manager@npm:1.8.6" +"@expo/package-manager@npm:^1.9.9": + version: 1.9.9 + resolution: "@expo/package-manager@npm:1.9.9" dependencies: - "@expo/json-file": "npm:^9.1.5" + "@expo/json-file": "npm:^10.0.8" "@expo/spawn-async": "npm:^1.7.2" chalk: "npm:^4.0.0" npm-package-arg: "npm:^11.0.0" ora: "npm:^3.4.0" resolve-workspace-root: "npm:^2.0.0" - checksum: 10/29d6ac3f9e433c365a2166cca6bf9e86e67f0f88c598b13aca3c46e701c9c76af8233391505e15f4af21c64eba91e6aea62decf91803dd999ea9d016dccfd0be + checksum: 10/d39c90599a8f94fcb93a274e6505df60872ef1f574fbb29e653de622a93536db926e3f9219ac4e8249c8380143518b92e95736a4aa0bed220bf33114206974fb languageName: node linkType: hard -"@expo/plist@npm:^0.3.5": - version: 0.3.5 - resolution: "@expo/plist@npm:0.3.5" +"@expo/plist@npm:^0.4.8": + version: 0.4.8 + resolution: "@expo/plist@npm:0.4.8" dependencies: "@xmldom/xmldom": "npm:^0.8.8" base64-js: "npm:^1.2.3" xmlbuilder: "npm:^15.1.1" - checksum: 10/a79f11e21c0072baf32444a0ca38883f966470df44d7bd30b244e4dba2aa1c66e186129d22c1ed7fd4139fd053ec9ae3d9d41a4f6fc36f51306a5b9a455d7676 + checksum: 10/48ba4ad5cc3668e8c26c5197bf7915a29745d0ae1cba1c38aad0d797ee1835ac74fb577a9e810594063e5984d9e52b367f4069d0ef1d906ba3013fce1c01a19c languageName: node linkType: hard -"@expo/prebuild-config@npm:^9.0.12": - version: 9.0.12 - resolution: "@expo/prebuild-config@npm:9.0.12" +"@expo/prebuild-config@npm:^54.0.8": + version: 54.0.8 + resolution: "@expo/prebuild-config@npm:54.0.8" dependencies: - "@expo/config": "npm:~11.0.13" - "@expo/config-plugins": "npm:~10.1.2" - "@expo/config-types": "npm:^53.0.5" - "@expo/image-utils": "npm:^0.7.6" - "@expo/json-file": "npm:^9.1.5" - "@react-native/normalize-colors": "npm:0.79.6" + "@expo/config": "npm:~12.0.13" + "@expo/config-plugins": "npm:~54.0.4" + "@expo/config-types": "npm:^54.0.10" + "@expo/image-utils": "npm:^0.8.8" + "@expo/json-file": "npm:^10.0.8" + "@react-native/normalize-colors": "npm:0.81.5" debug: "npm:^4.3.1" resolve-from: "npm:^5.0.0" semver: "npm:^7.6.0" xml2js: "npm:0.6.0" - checksum: 10/7b31e0b7499c4df314d21ceec3e4effff01826616b823a18c8cabfded4a52659a842650e8da75ec289e09a71877b839e448f62eaf375dcd6baaad78e1534eca8 + peerDependencies: + expo: "*" + checksum: 10/67f0fd1ad9332ff10c554e4b31602656daf222f2c51cebde9c024cb47b7ea13653ee1b01a00b6ea7cdf8fe8c99e20955788de9dec578c394e6b2357ef5919ab9 languageName: node linkType: hard -"@expo/schema-utils@npm:^0.1.0": +"@expo/schema-utils@npm:^0.1.8": version: 0.1.8 resolution: "@expo/schema-utils@npm:0.1.8" checksum: 10/72c02dcd107da08bd0df829b57edca77e48d9e3386304510a043c8d19892d20ec230ccdb27f5b2e08b3576046b3bfe66afdaf1e071c6a0296fa3817dbaa49932 @@ -9132,12 +9373,14 @@ __metadata: languageName: node linkType: hard -"@expo/vector-icons@npm:^14.0.0": - version: 14.0.4 - resolution: "@expo/vector-icons@npm:14.0.4" - dependencies: - prop-types: "npm:^15.8.1" - checksum: 10/bb807830dd886cb439e90bbaf5afd5e9ea538486d3bd0cc240210a230c53e7d858b460d05836875ae0ef3958bc591c21afedb5f58086be4aeeb362d08665c809 +"@expo/vector-icons@npm:^15.0.3": + version: 15.0.3 + resolution: "@expo/vector-icons@npm:15.0.3" + peerDependencies: + expo-font: ">=14.0.4" + react: "*" + react-native: "*" + checksum: 10/8845ed6aeade73d7c684776a134153658549e1ee473e99ac56c355af53d848a4c91f9d218da798f481b117a08b86ab523c9c3f3de0c50b1f111ded644825803c languageName: node linkType: hard @@ -10331,7 +10574,7 @@ __metadata: "@babel/plugin-transform-export-namespace-from": "npm:7.27.1" "@babel/preset-env": "npm:7.25.3" "@babel/runtime": "npm:7.25.0" - "@bam.tech/react-native-image-resizer": "npm:3.0.11" + "@dr.pogodin/react-native-fs": "npm:2.36.2" "@joplin/editor": "npm:~3.6" "@joplin/lib": "npm:~3.6" "@joplin/react-native-alarm-notification": "npm:~3.6" @@ -10341,12 +10584,13 @@ __metadata: "@joplin/turndown": "npm:~4.0.80" "@joplin/turndown-plugin-gfm": "npm:~1.0.62" "@joplin/utils": "npm:~3.6" + "@joplin/whisper-voice-typing": "npm:~3.6" "@js-draw/material-icons": "npm:1.33.0" "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.6.0" "@react-native-clipboard/clipboard": "npm:1.16.3" - "@react-native-community/cli": "npm:16.0.3" - "@react-native-community/cli-platform-android": "npm:16.0.3" - "@react-native-community/cli-platform-ios": "npm:16.0.3" + "@react-native-community/cli": "npm:20.0.0" + "@react-native-community/cli-platform-android": "npm:20.0.0" + "@react-native-community/cli-platform-ios": "npm:20.0.0" "@react-native-community/datetimepicker": "npm:8.4.7" "@react-native-community/geolocation": "npm:3.4.0" "@react-native-community/netinfo": "npm:11.4.1" @@ -10357,15 +10601,15 @@ __metadata: "@react-native-vector-icons/ionicons": "patch:@react-native-vector-icons/ionicons@npm%3A12.3.0#~/.yarn/patches/@react-native-vector-icons-ionicons-npm-12.3.0-9bd4746f3f.patch" "@react-native-vector-icons/material-design-icons": "patch:@react-native-vector-icons/material-design-icons@npm%3A12.4.0#~/.yarn/patches/@react-native-vector-icons-material-design-icons-npm-12.4.0-890f7f618b.patch" "@react-native-vector-icons/material-icons": "patch:@react-native-vector-icons/material-icons@npm%3A12.4.0#~/.yarn/patches/@react-native-vector-icons-material-icons-npm-12.4.0-94138e627b.patch" - "@react-native/babel-preset": "npm:0.80.1" - "@react-native/metro-config": "npm:0.79.5" - "@react-native/typescript-config": "npm:0.80.2" + "@react-native/babel-preset": "npm:0.81.5" + "@react-native/metro-config": "npm:0.81.5" + "@react-native/typescript-config": "npm:0.81.5" "@sqlite.org/sqlite-wasm": "npm:3.46.0-build2" "@testing-library/react-native": "npm:13.2.0" "@types/fs-extra": "npm:11.0.4" "@types/jest": "npm:29.5.14" "@types/node": "npm:18.19.130" - "@types/react": "npm:19.0.14" + "@types/react": "npm:19.1.10" "@types/react-redux": "npm:7.1.33" "@types/serviceworker": "npm:0.0.164" "@types/tar-stream": "npm:3.1.4" @@ -10381,10 +10625,11 @@ __metadata: deprecated-react-native-prop-types: "npm:5.0.0" esbuild: "npm:0.25.12" events: "npm:3.3.0" - expo: "npm:53.0.23" - expo-av: "npm:15.1.7" - expo-camera: "npm:16.1.11" - expo-local-authentication: "npm:16.0.5" + expo: "npm:54.0.31" + expo-av: "npm:16.0.8" + expo-camera: "npm:17.0.10" + expo-image-manipulator: "npm:14.0.8" + expo-local-authentication: "npm:17.0.8" fast-deep-equal: "npm:3.1.3" fs-extra: "npm:11.3.2" gulp: "npm:4.0.2" @@ -10399,36 +10644,36 @@ __metadata: path-browserify: "npm:1.0.1" prop-types: "npm:15.8.1" punycode: "npm:2.3.1" - react: "npm:19.0.0" - react-dom: "npm:19.0.0" - react-native: "npm:0.79.2" + react: "npm:19.1.0" + react-dom: "npm:19.1.0" + react-native: "npm:0.81.5" react-native-device-info: "npm:14.1.1" react-native-dropdownalert: "npm:5.2.0" - react-native-exit-app: "npm:2.0.0" react-native-file-viewer: "npm:2.1.5" - react-native-fs: "npm:2.20.0" react-native-get-random-values: "npm:1.11.0" react-native-image-picker: "npm:8.2.1" react-native-localize: "npm:3.5.4" react-native-modal-datetime-picker: "npm:18.0.0" + react-native-nitro-modules: "npm:0.33.2" react-native-paper: "npm:5.14.5" react-native-popup-menu: "npm:0.17.0" react-native-quick-actions: "npm:0.3.13" + react-native-quick-base64: "npm:2.2.2" react-native-quick-crypto: "npm:0.7.17" react-native-rsa-native: "npm:2.0.5" react-native-safe-area-context: "npm:5.6.2" react-native-securerandom: "npm:1.0.1" react-native-share: "npm:12.2.0" react-native-sqlite-storage: "npm:6.0.1" - react-native-svg: "npm:15.13.0" + react-native-svg: "npm:15.12.1" react-native-url-polyfill: "npm:2.0.0" react-native-version-info: "npm:1.1.1" react-native-web: "npm:0.21.2" - react-native-webview: "npm:13.16.0" + react-native-webview: "npm:13.15.0" react-native-zip-archive: "npm:7.0.2" react-redux: "npm:8.1.3" react-refresh: "npm:0.18.0" - react-test-renderer: "npm:19.0.0" + react-test-renderer: "npm:19.1.0" redux: "npm:4.2.1" rn-fetch-blob: "npm:0.12.0" sharp: "npm:0.34.4" @@ -10773,8 +11018,8 @@ __metadata: dependencies: "@babel/core": "npm:7.16.0" "@types/react-native": "npm:0.64.19" - react: "npm:18.3.1" - react-native: "npm:0.70.6" + react: "npm:19.1.0" + react-native: "npm:0.81.5" typescript: "npm:5.8.3" peerDependencies: react: "*" @@ -11043,6 +11288,23 @@ __metadata: languageName: unknown linkType: soft +"@joplin/whisper-voice-typing@npm:~3.6, @joplin/whisper-voice-typing@workspace:packages/whisper-voice-typing": + version: 0.0.0-use.local + resolution: "@joplin/whisper-voice-typing@workspace:packages/whisper-voice-typing" + dependencies: + "@types/react": "npm:19.2.10" + nitrogen: "npm:0.33.2" + react: "npm:19.1.0" + react-native: "npm:0.81.5" + react-native-nitro-modules: "npm:0.33.2" + typescript: "npm:5.8.3" + peerDependencies: + react: "*" + react-native: "*" + react-native-nitro-modules: "*" + languageName: unknown + linkType: soft + "@jridgewell/gen-mapping@npm:^0.3.0": version: 0.3.3 resolution: "@jridgewell/gen-mapping@npm:0.3.3" @@ -11054,6 +11316,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.12": + version: 0.3.13 + resolution: "@jridgewell/gen-mapping@npm:0.3.13" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/902f8261dcf450b4af7b93f9656918e02eec80a2169e155000cb2059f90113dd98f3ccf6efc6072cee1dd84cac48cade51da236972d942babc40e4c23da4d62a + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.3.2": version: 0.3.2 resolution: "@jridgewell/gen-mapping@npm:0.3.2" @@ -11185,6 +11457,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/trace-mapping@npm:^0.3.28": + version: 0.3.31 + resolution: "@jridgewell/trace-mapping@npm:0.3.31" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10/da0283270e691bdb5543806077548532791608e52386cfbbf3b9e8fb00457859d1bd01d512851161c886eb3a2f3ce6fd9bcf25db8edf3bddedd275bd4a88d606 + languageName: node + linkType: hard + "@js-draw/material-icons@npm:1.33.0": version: 1.33.0 resolution: "@js-draw/material-icons@npm:1.33.0" @@ -12092,6 +12374,17 @@ __metadata: languageName: node linkType: hard +"@lezer/html@npm:^1.3.0": + version: 1.3.10 + resolution: "@lezer/html@npm:1.3.10" + dependencies: + "@lezer/common": "npm:^1.2.0" + "@lezer/highlight": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + checksum: 10/b69f796492c0a2c000ebba88e1b1f0dc0885ed3392c11b46a9d7c638da1a325d6a288375fbeec52d0d05437b801302299e0e57359f95a494db1e251b3d66d29c + languageName: node + linkType: hard + "@lezer/html@npm:^1.3.12": version: 1.3.13 resolution: "@lezer/html@npm:1.3.13" @@ -13042,15 +13335,15 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-clean@npm:16.0.3" +"@react-native-community/cli-clean@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-clean@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-tools": "npm:20.0.0" chalk: "npm:^4.1.2" execa: "npm:^5.0.0" fast-glob: "npm:^3.3.2" - checksum: 10/5a06ccca742bf05bbc06968c4edde8faf29eeb41e9dce25f8c0fd8530b5e83edaac37c223ed4288d6c180faef6b9d40ef459cee6e55e0141f66779b6b509e2f1 + checksum: 10/56a261a83eb4fc60e81778659ace53997cc5d045fc09c7e7a3a991eaae60347a7349868bcc5b45db73d3234fc714fe6adbaf641669eddd94cfcfe1037dd616c1 languageName: node linkType: hard @@ -13066,41 +13359,41 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-config-android@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-config-android@npm:16.0.3" +"@react-native-community/cli-config-android@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-config-android@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-tools": "npm:20.0.0" chalk: "npm:^4.1.2" fast-glob: "npm:^3.3.2" fast-xml-parser: "npm:^4.4.1" - checksum: 10/c84ad319f992c47ff7964c042ed347c1367f81bdf649c048f7f9c55d6b06bd466c27ed23d199f9406f159dadae9dba12ca918e40f8b41b777acfd50b65fc2ff8 + checksum: 10/fbd897df48793b050429e77114b8fcf42364b8847a199873818977cb8102ce303bb3e4fbf1842fd66608d96409e27835111e19e80c670dc6067066e53d4c500f languageName: node linkType: hard -"@react-native-community/cli-config-apple@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-config-apple@npm:16.0.3" +"@react-native-community/cli-config-apple@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-config-apple@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-tools": "npm:20.0.0" chalk: "npm:^4.1.2" execa: "npm:^5.0.0" fast-glob: "npm:^3.3.2" - checksum: 10/d887348caf44ee8ca54a47cdae2a534e6e76e186cd5ac31e75af5dd459e34526a8b8f8ca6137049fe2bc4c5839ec2951c6b82f66546b58e0caea6ed8a6fbb2b6 + checksum: 10/7c4e01c894199db48c15265d6d336ece4e103bf23e282e09f08eaa9e03b2237e8dae659e41a2f5fe7f091c9b31f22b3756bdd0f92b8eb6483d279c71b7fc6c99 languageName: node linkType: hard -"@react-native-community/cli-config@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-config@npm:16.0.3" +"@react-native-community/cli-config@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-config@npm:20.0.0" dependencies: - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-tools": "npm:20.0.0" chalk: "npm:^4.1.2" cosmiconfig: "npm:^9.0.0" deepmerge: "npm:^4.3.0" fast-glob: "npm:^3.3.2" joi: "npm:^17.2.1" - checksum: 10/3d7cf43cb0d300dcf609d26df6bb20196cf13ca9ce7a933138c5644a1c2eace8a954c979ed3e3924518c02f026e9ca8a73f21c49872830bedf7a907948f0452e + checksum: 10/aaf5e5cb07105abe0eb179b2ed230f24546068780cee02986b5d71447f928f5bff0e2fbc84e02302cf60f2795da8fa919eb204da41f9421f2cfaec9dc53c98c7 languageName: node linkType: hard @@ -13117,15 +13410,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-debugger-ui@npm:16.0.3" - dependencies: - serve-static: "npm:^1.13.1" - checksum: 10/72d6b8d996935a306a003bdc92b074fd5f1392b2bbd5f76d8e65a9c367f94e11e3082b8741e3a68bbfd9dfbac56789f98d4565407896113b3f74d0c527f60152 - languageName: node - linkType: hard - "@react-native-community/cli-debugger-ui@npm:^9.0.0": version: 9.0.0 resolution: "@react-native-community/cli-debugger-ui@npm:9.0.0" @@ -13135,15 +13419,15 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-doctor@npm:16.0.3" +"@react-native-community/cli-doctor@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-doctor@npm:20.0.0" dependencies: - "@react-native-community/cli-config": "npm:16.0.3" - "@react-native-community/cli-platform-android": "npm:16.0.3" - "@react-native-community/cli-platform-apple": "npm:16.0.3" - "@react-native-community/cli-platform-ios": "npm:16.0.3" - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-config": "npm:20.0.0" + "@react-native-community/cli-platform-android": "npm:20.0.0" + "@react-native-community/cli-platform-apple": "npm:20.0.0" + "@react-native-community/cli-platform-ios": "npm:20.0.0" + "@react-native-community/cli-tools": "npm:20.0.0" chalk: "npm:^4.1.2" command-exists: "npm:^1.2.8" deepmerge: "npm:^4.3.0" @@ -13152,10 +13436,9 @@ __metadata: node-stream-zip: "npm:^1.9.1" ora: "npm:^5.4.1" semver: "npm:^7.5.2" - strip-ansi: "npm:^5.2.0" wcwidth: "npm:^1.0.1" yaml: "npm:^2.2.1" - checksum: 10/bad9c5f1b23b44ce3ed80c48ee12c488620e6cf8ba7c7c87c4204e03ff1872185e53137f668b44ceb893e22900321ff3fd83e8d241069583d8929d033f2910f5 + checksum: 10/c78de0b83287c1db03e780123a83c3f26a8883dc54b5b3a1c34e2d3ed1050e39fbf597b95d8899f878b5ef61a89e05493c62d644e84293008eb4da73a4feb2a8 languageName: node linkType: hard @@ -13196,16 +13479,16 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-platform-android@npm:16.0.3" +"@react-native-community/cli-platform-android@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-platform-android@npm:20.0.0" dependencies: - "@react-native-community/cli-config-android": "npm:16.0.3" - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-config-android": "npm:20.0.0" + "@react-native-community/cli-tools": "npm:20.0.0" chalk: "npm:^4.1.2" execa: "npm:^5.0.0" logkitty: "npm:^0.7.1" - checksum: 10/faaef1ae892d65d990409650ad611c4be1e24ff4964fad770ba6023da1acdba98d2cc38fd01116aec6aa9a12f65dd9cc19a6103f65efd4747b0f15d31a2373e7 + checksum: 10/a5b4da7a329e3723d4285f60b18068e78a18451cc948ef79088f1dfbfffc22413a7e94a3c3cc91aee27cf9438bb6b57212b5275e7e5d7af7db41011c4c628f12 languageName: node linkType: hard @@ -13224,25 +13507,25 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-apple@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-platform-apple@npm:16.0.3" +"@react-native-community/cli-platform-apple@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-platform-apple@npm:20.0.0" dependencies: - "@react-native-community/cli-config-apple": "npm:16.0.3" - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-config-apple": "npm:20.0.0" + "@react-native-community/cli-tools": "npm:20.0.0" chalk: "npm:^4.1.2" execa: "npm:^5.0.0" fast-xml-parser: "npm:^4.4.1" - checksum: 10/d07b8c0bee2114be2e5ae8a8c938f9b14ca50d83ee2a62249e07b40064722cd625e5b43900a263707ddc8373fa53c88703083f4e05840b336fe44b421f4b8a79 + checksum: 10/a1a4c0fcdf9e3c819e0804de2447aed230d1f16c36107728374121deda60acd644550c0f5aeb98f6cd25846da9e6358617c67aaf895eab6e9a81cff1030cf8dd languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-platform-ios@npm:16.0.3" +"@react-native-community/cli-platform-ios@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-platform-ios@npm:20.0.0" dependencies: - "@react-native-community/cli-platform-apple": "npm:16.0.3" - checksum: 10/944e848e5b44e78d5c30f21007ae37f31e4355014d714fa9ee0612bf4404c84665f0d09b40c9e96880b03e0c14dfe509289e622ffac360e0006e57aa6f33b7d3 + "@react-native-community/cli-platform-apple": "npm:20.0.0" + checksum: 10/c7fc89332a7cb9fa71c1c5d4fe928d39b0514c74fdcc85251a7a35344f1f5e9e3b4cd23a85a70ce447dded6e6552a5edfa848cf07d8b26127a0c3b05ce3e1768 languageName: node linkType: hard @@ -13277,20 +13560,21 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-server-api@npm:16.0.3" +"@react-native-community/cli-server-api@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-server-api@npm:20.0.0" dependencies: - "@react-native-community/cli-debugger-ui": "npm:16.0.3" - "@react-native-community/cli-tools": "npm:16.0.3" + "@react-native-community/cli-tools": "npm:20.0.0" + body-parser: "npm:^1.20.3" compression: "npm:^1.7.1" connect: "npm:^3.6.5" errorhandler: "npm:^1.5.1" nocache: "npm:^3.0.1" - pretty-format: "npm:^26.6.2" + open: "npm:^6.2.0" + pretty-format: "npm:^29.7.0" serve-static: "npm:^1.13.1" ws: "npm:^6.2.3" - checksum: 10/9d7e30a4b18169e687e5297f859e98cdad5c6f7ddc3507476a3f145b3d0cb80a5b1a264f731d702b2b8c3be98e5d91e7c64985a4c1584dbdfa230bc49a6c33d0 + checksum: 10/1d58c5a4a451c861db13065898f6c825b8c811fb37fa588fc76edede10d4899fd786055137339eda4033335db97630419017b4f843f4f36a1b00b37296710f47 languageName: node linkType: hard @@ -13311,22 +13595,21 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-tools@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-tools@npm:16.0.3" +"@react-native-community/cli-tools@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-tools@npm:20.0.0" dependencies: "@vscode/sudo-prompt": "npm:^9.0.0" appdirsjs: "npm:^1.2.4" chalk: "npm:^4.1.2" execa: "npm:^5.0.0" find-up: "npm:^5.0.0" + launch-editor: "npm:^2.9.1" mime: "npm:^2.4.1" - open: "npm:^6.2.0" ora: "npm:^5.4.1" prompts: "npm:^2.4.2" semver: "npm:^7.5.2" - shell-quote: "npm:^1.7.3" - checksum: 10/e78817b5f4a2db8128296c5c5e6dfc4067de121f122e9621515eab6a237cb64d95944c7faeaba4c222685b3d27f0ae2691d97447888b4f473a8da83bcffa730b + checksum: 10/5418844eb46e159d05d6ca4af38e054ffd157ae016576eed4d10bb3bdc345bdb8ca30e3cc5a27aff4a7a49727fd4b1da88f7855469ebbfbbdd042ad58951b764 languageName: node linkType: hard @@ -13347,12 +13630,12 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-types@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli-types@npm:16.0.3" +"@react-native-community/cli-types@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli-types@npm:20.0.0" dependencies: joi: "npm:^17.2.1" - checksum: 10/3041c49465652f61106730923bb9b2babccad149368740239e028cc2ed619de3321269a5261b86443eae1c8e24c438eaa357672750157b2dad4553bdd1970093 + checksum: 10/b64b03ff09eb3952c37ba96544156f0b6ffa76e616361a48254e645f914beaa844943ff77ee1fba46445ef8b45f726109fc9ad249afb9d360602cb03db846368 languageName: node linkType: hard @@ -13365,17 +13648,16 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli@npm:16.0.3": - version: 16.0.3 - resolution: "@react-native-community/cli@npm:16.0.3" +"@react-native-community/cli@npm:20.0.0": + version: 20.0.0 + resolution: "@react-native-community/cli@npm:20.0.0" dependencies: - "@react-native-community/cli-clean": "npm:16.0.3" - "@react-native-community/cli-config": "npm:16.0.3" - "@react-native-community/cli-debugger-ui": "npm:16.0.3" - "@react-native-community/cli-doctor": "npm:16.0.3" - "@react-native-community/cli-server-api": "npm:16.0.3" - "@react-native-community/cli-tools": "npm:16.0.3" - "@react-native-community/cli-types": "npm:16.0.3" + "@react-native-community/cli-clean": "npm:20.0.0" + "@react-native-community/cli-config": "npm:20.0.0" + "@react-native-community/cli-doctor": "npm:20.0.0" + "@react-native-community/cli-server-api": "npm:20.0.0" + "@react-native-community/cli-tools": "npm:20.0.0" + "@react-native-community/cli-types": "npm:20.0.0" chalk: "npm:^4.1.2" commander: "npm:^9.4.1" deepmerge: "npm:^4.3.0" @@ -13387,7 +13669,7 @@ __metadata: semver: "npm:^7.5.2" bin: rnc-cli: build/bin.js - checksum: 10/e5c76ad8c9340ec367591ae91eb539c9a215bd18446f515409025fb3205672abe0a95121e58c58611c24b90d6bac791279176fe8c65582cf74cd0b2d521754ff + checksum: 10/9f52dce4f6c25d414ba4549153b70daef7708f5603f88f90147c9ec4dd29118f62995294eb20cb3f7c4018367bda66dac344d25ed0e9ffaad6b62a94b29ba75b languageName: node linkType: hard @@ -13604,10 +13886,10 @@ __metadata: languageName: node linkType: hard -"@react-native/assets-registry@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/assets-registry@npm:0.79.2" - checksum: 10/bca594f4524d7e53a229c6454cd6bdfc70f2f1d994f140cc322bf768507383133e99b0d5621bc49d4998ad0fc28e30361423d6f375de3658e2b98a994de0e704 +"@react-native/assets-registry@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/assets-registry@npm:0.81.5" + checksum: 10/1ba7e8c4fcc0fa7984f8a0b2809cbcd5bd14d01810691016b1a9484273b8e9b9c3be38dd3aa9370f0a1042741347e9590361d90be0c82943ec24c35393276d93 languageName: node linkType: hard @@ -13618,39 +13900,19 @@ __metadata: languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.79.5": - version: 0.79.5 - resolution: "@react-native/babel-plugin-codegen@npm:0.79.5" +"@react-native/babel-plugin-codegen@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/babel-plugin-codegen@npm:0.81.5" dependencies: "@babel/traverse": "npm:^7.25.3" - "@react-native/codegen": "npm:0.79.5" - checksum: 10/fdc87144f1bf3ce71f60be8c477e442c9cf69ad3d1ad1b9231f8e12290dc10dfa27f7d7ae2870d637eb9400cb0a277903b6d8565405db0becaa97598aed06a01 + "@react-native/codegen": "npm:0.81.5" + checksum: 10/e8a4bb4c0d6f79e1162aeadb45e0495cb7515f75adda35de77c2b21be345b0e0e45ff7c4710a0ea285b9a42a8354ac66995f7bb5e7fbb144dbff3c67e1b6c9c7 languageName: node linkType: hard -"@react-native/babel-plugin-codegen@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/babel-plugin-codegen@npm:0.79.6" - dependencies: - "@babel/traverse": "npm:^7.25.3" - "@react-native/codegen": "npm:0.79.6" - checksum: 10/80ee3ef484d1d98fee0fdf6a770008767d883b2a5cf77628a664095c0aa15ad10380cc227c33dd474c39dc283b4aef5953a0c8079b2caa923c946c6978d0d27b - languageName: node - linkType: hard - -"@react-native/babel-plugin-codegen@npm:0.80.1": - version: 0.80.1 - resolution: "@react-native/babel-plugin-codegen@npm:0.80.1" - dependencies: - "@babel/traverse": "npm:^7.25.3" - "@react-native/codegen": "npm:0.80.1" - checksum: 10/42843a8b3fd4f469f60f9b23a3f3b7820d9520df0a495d878e907bd5548c7155ce65482de6c120351f50b2cd7c8373a08625efc9cc0bc3de56e0a83b9cfece08 - languageName: node - linkType: hard - -"@react-native/babel-preset@npm:0.79.5": - version: 0.79.5 - resolution: "@react-native/babel-preset@npm:0.79.5" +"@react-native/babel-preset@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/babel-preset@npm:0.81.5" dependencies: "@babel/core": "npm:^7.25.2" "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" @@ -13693,305 +13955,119 @@ __metadata: "@babel/plugin-transform-typescript": "npm:^7.25.2" "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" "@babel/template": "npm:^7.25.0" - "@react-native/babel-plugin-codegen": "npm:0.79.5" - babel-plugin-syntax-hermes-parser: "npm:0.25.1" + "@react-native/babel-plugin-codegen": "npm:0.81.5" + babel-plugin-syntax-hermes-parser: "npm:0.29.1" babel-plugin-transform-flow-enums: "npm:^0.0.2" react-refresh: "npm:^0.14.0" peerDependencies: "@babel/core": "*" - checksum: 10/07ee06dec35eccb915af455cf574320c5c85e577e92913c986c8c9a4ef4731a08c416f05aee8c0531457f6a22db02a1f60d4ad816075d67640cae47b608bae2d + checksum: 10/c077e01b093be9f93e08b36dd7bc425d897749f76f9a2912cff8589f9ad3e36be0d6b54542ec6fbf13bd4b87ff7648b17a275930c546665d7b8accf4c89b6ff3 languageName: node linkType: hard -"@react-native/babel-preset@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/babel-preset@npm:0.79.6" - dependencies: - "@babel/core": "npm:^7.25.2" - "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.0" - "@babel/plugin-transform-class-properties": "npm:^7.25.4" - "@babel/plugin-transform-classes": "npm:^7.25.4" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.8" - "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.24.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-react-display-name": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx": "npm:^7.25.2" - "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-runtime": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-typescript": "npm:^7.25.2" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/template": "npm:^7.25.0" - "@react-native/babel-plugin-codegen": "npm:0.79.6" - babel-plugin-syntax-hermes-parser: "npm:0.25.1" - babel-plugin-transform-flow-enums: "npm:^0.0.2" - react-refresh: "npm:^0.14.0" - peerDependencies: - "@babel/core": "*" - checksum: 10/dd9d69cf68ee2e52d4c1c3d23ff69087b86a6daf885f83bef220cb881512868e9eee1920571de43d3844757b23b0ca8b3459f38bee8c71c58b6d6029bc31483f - languageName: node - linkType: hard - -"@react-native/babel-preset@npm:0.80.1": - version: 0.80.1 - resolution: "@react-native/babel-preset@npm:0.80.1" - dependencies: - "@babel/core": "npm:^7.25.2" - "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.0" - "@babel/plugin-transform-class-properties": "npm:^7.25.4" - "@babel/plugin-transform-classes": "npm:^7.25.4" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.8" - "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.24.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-react-display-name": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx": "npm:^7.25.2" - "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" - "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-runtime": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-typescript": "npm:^7.25.2" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/template": "npm:^7.25.0" - "@react-native/babel-plugin-codegen": "npm:0.80.1" - babel-plugin-syntax-hermes-parser: "npm:0.28.1" - babel-plugin-transform-flow-enums: "npm:^0.0.2" - react-refresh: "npm:^0.14.0" - peerDependencies: - "@babel/core": "*" - checksum: 10/c922b0a90294724d1c5056edf5473ba52c7b42b82d31995d913f69c4f8c163a9bc25bebdcf84af88ab4ca2135d9a46617a55005d73fa54254e5bc45878f022b1 - languageName: node - linkType: hard - -"@react-native/codegen@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/codegen@npm:0.79.2" - dependencies: - glob: "npm:^7.1.1" - hermes-parser: "npm:0.25.1" - invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - yargs: "npm:^17.6.2" - peerDependencies: - "@babel/core": "*" - checksum: 10/1bb9f50f71fdc4cc32a19191715ed1bdd3e5c2c926da523e7850d79701c974c869bd6e3c815339f6a09e112d78c8a0c10ae2da7dfc5b4271775df160ff812ed7 - languageName: node - linkType: hard - -"@react-native/codegen@npm:0.79.5": - version: 0.79.5 - resolution: "@react-native/codegen@npm:0.79.5" - dependencies: - glob: "npm:^7.1.1" - hermes-parser: "npm:0.25.1" - invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - yargs: "npm:^17.6.2" - peerDependencies: - "@babel/core": "*" - checksum: 10/a642d32e416d261799eb0677a6618bbb15d1274fb14951cf76e3c37b3d427bc2cba5e34885ffcb76131c5c50b3982771de8668917916ab86a1a1e3b3c49ea0e0 - languageName: node - linkType: hard - -"@react-native/codegen@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/codegen@npm:0.79.6" +"@react-native/codegen@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/codegen@npm:0.81.5" dependencies: "@babel/core": "npm:^7.25.2" "@babel/parser": "npm:^7.25.3" glob: "npm:^7.1.1" - hermes-parser: "npm:0.25.1" + hermes-parser: "npm:0.29.1" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" yargs: "npm:^17.6.2" peerDependencies: "@babel/core": "*" - checksum: 10/24c4461d6d9b8db1fc540e074d8948f487e710e86903344f9fab0a39f1ddcdab2b674c88adb82c95cfd3c41f5ae5b8703713aca5c1037d3297a3178cb400fe84 + checksum: 10/eb162a2b4232e6b6a345a659688c488610ba918e40dc8e4a9d17ed4fd3e026ca8066825128533ea5955b0eb58b3af0f8beb813f188bc506d8989285572f5d34f languageName: node linkType: hard -"@react-native/codegen@npm:0.80.1": - version: 0.80.1 - resolution: "@react-native/codegen@npm:0.80.1" +"@react-native/community-cli-plugin@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/community-cli-plugin@npm:0.81.5" dependencies: - glob: "npm:^7.1.1" - hermes-parser: "npm:0.28.1" + "@react-native/dev-middleware": "npm:0.81.5" + debug: "npm:^4.4.0" invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - yargs: "npm:^17.6.2" - peerDependencies: - "@babel/core": "*" - checksum: 10/cd568b3721b4d52797f7eb8acfff17832db376e4b54299bf15c7db840e8e1ea7e525c7d2e58da0d3775360507ea1070a1a5f909829ed5a0fcebb88bcce8018c7 - languageName: node - linkType: hard - -"@react-native/community-cli-plugin@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/community-cli-plugin@npm:0.79.2" - dependencies: - "@react-native/dev-middleware": "npm:0.79.2" - chalk: "npm:^4.0.0" - debug: "npm:^2.2.0" - invariant: "npm:^2.2.4" - metro: "npm:^0.82.0" - metro-config: "npm:^0.82.0" - metro-core: "npm:^0.82.0" + metro: "npm:^0.83.1" + metro-config: "npm:^0.83.1" + metro-core: "npm:^0.83.1" semver: "npm:^7.1.3" peerDependencies: "@react-native-community/cli": "*" + "@react-native/metro-config": "*" peerDependenciesMeta: "@react-native-community/cli": optional: true - checksum: 10/54359f0914fb6346a8820a6abcfd938c16c7579ffdf55cc95f44e945ee8af3b444964ccba4520a9be9a75b823201cd601113a03e271de8b9f1faa48e73602a74 + "@react-native/metro-config": + optional: true + checksum: 10/c6427b52daeded80b496564184cdb27f6f1ca376c36c30ba37fa749442756c1be23ac8d171721665461df52eaed302236d629bd095f94adbb3192b950bc1b731 languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/debugger-frontend@npm:0.79.2" - checksum: 10/8a97eacba43984403bb3af8beac48109abbea9cb7d0ca23fd4dba9528647ec8f23452a92b7bfb70331d5ef6c3727e62406bf0712b3bb8476f04b5d83a11c39ef +"@react-native/debugger-frontend@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/debugger-frontend@npm:0.81.5" + checksum: 10/a5d6e908129f8d6efe5a02251d4f64de677b9a6719b8351b57f0c2a8c40b04d923e7f5b08351c2f4968d88ce3f6fbaa94c3f5603cb10b8285c447f0ed93228fe languageName: node linkType: hard -"@react-native/debugger-frontend@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/debugger-frontend@npm:0.79.6" - checksum: 10/fca04379d556a62367628f3ec8478bd0eceeef34d6f7e434e5285edba6d8f7d1b833ec62ff8b96a3444d55da569cdd9c36690439736b263898478e23a2b7fe12 - languageName: node - linkType: hard - -"@react-native/dev-middleware@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/dev-middleware@npm:0.79.2" +"@react-native/dev-middleware@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/dev-middleware@npm:0.81.5" dependencies: "@isaacs/ttlcache": "npm:^1.4.1" - "@react-native/debugger-frontend": "npm:0.79.2" + "@react-native/debugger-frontend": "npm:0.81.5" chrome-launcher: "npm:^0.15.2" chromium-edge-launcher: "npm:^0.2.0" connect: "npm:^3.6.5" - debug: "npm:^2.2.0" + debug: "npm:^4.4.0" invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" open: "npm:^7.0.3" serve-static: "npm:^1.16.2" ws: "npm:^6.2.3" - checksum: 10/a36e747c64191e38b4d075f0b860d9b675712b5a731772fee7a6697b1b1182ab3381b595631ce5b5d186f5ce2f4009ee3aee84fcee77bb9b2506d52dcea311c6 + checksum: 10/bd65d55b98c8d28e5e4163873f496add4e67b87f3a350b57cfe4b110f217a40d0bf4207b57a4b32a4d275b5b4661f1e1fb915a76c5cbc93ab316fe37ab49503a languageName: node linkType: hard -"@react-native/dev-middleware@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/dev-middleware@npm:0.79.6" - dependencies: - "@isaacs/ttlcache": "npm:^1.4.1" - "@react-native/debugger-frontend": "npm:0.79.6" - chrome-launcher: "npm:^0.15.2" - chromium-edge-launcher: "npm:^0.2.0" - connect: "npm:^3.6.5" - debug: "npm:^2.2.0" - invariant: "npm:^2.2.4" - nullthrows: "npm:^1.1.1" - open: "npm:^7.0.3" - serve-static: "npm:^1.16.2" - ws: "npm:^6.2.3" - checksum: 10/e1073a149e054bdc10028e65505d9f9db8bf47d9902a37f2a1afd283d9607a70e605bc20cd4c1ea445061b6840c28730edb500833e08e5e601c076e48c9a7274 +"@react-native/gradle-plugin@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/gradle-plugin@npm:0.81.5" + checksum: 10/4d426e2657be9a9e64845974dbbc11fb08f705d55708d7a7529b9bb199bef91c60bb7b18ffa080bf417a801abd1035b2c8fac8d495adf5fe72083f518b5f1bbf languageName: node linkType: hard -"@react-native/gradle-plugin@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/gradle-plugin@npm:0.79.2" - checksum: 10/a55eac49fd025304fec3e39dd7241565de4693231133cc92457741a8fa3141f015b851ae20483ca245d27be15e281edf54dc8ea9ccd1c0e10f788c2c260319b2 +"@react-native/js-polyfills@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/js-polyfills@npm:0.81.5" + checksum: 10/47110ad1ff87fccb7f767a69b4be2be9eda67429e70028a823090b8245bd19f18fbc6ba665ddfcbbec501e2da8c9465fc04d612d97877d1a53f3556cadfdef0c languageName: node linkType: hard -"@react-native/js-polyfills@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/js-polyfills@npm:0.79.2" - checksum: 10/436d9e69c4c95d2b58803ad1b750750998a46b2fab742fcdbb4df691abe357f09a3ca1e3f2e700faae37eb6112575cf9a9d44458addc6e36150a69fafd943218 - languageName: node - linkType: hard - -"@react-native/js-polyfills@npm:0.79.5": - version: 0.79.5 - resolution: "@react-native/js-polyfills@npm:0.79.5" - checksum: 10/42a23ce0ebfece40bde68f454a79bf4df0a3dd685a72e9887b4b2bb5751ebe60cabd42f094134c70f940f16f65865109caf357b465e74c9809d36b9b55076c03 - languageName: node - linkType: hard - -"@react-native/metro-babel-transformer@npm:0.79.5": - version: 0.79.5 - resolution: "@react-native/metro-babel-transformer@npm:0.79.5" +"@react-native/metro-babel-transformer@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/metro-babel-transformer@npm:0.81.5" dependencies: "@babel/core": "npm:^7.25.2" - "@react-native/babel-preset": "npm:0.79.5" - hermes-parser: "npm:0.25.1" + "@react-native/babel-preset": "npm:0.81.5" + hermes-parser: "npm:0.29.1" nullthrows: "npm:^1.1.1" peerDependencies: "@babel/core": "*" - checksum: 10/66f74de944d6fabd2964cf24522f80a19d80b3b8be2e79b4398d2c8c8dd2a3057afe5570296a0d0c379d2f4c87a65b983fdc818ab3be2f50101781571a64c54e + checksum: 10/401cd5e396a0c04865164c8321c29c17b9cdfbfef5efdf771befb77f830fd28c0bafe116f6d51930e684372f37b4a47f143a404341780187ae9e9fab0da39af4 languageName: node linkType: hard -"@react-native/metro-config@npm:0.79.5": - version: 0.79.5 - resolution: "@react-native/metro-config@npm:0.79.5" +"@react-native/metro-config@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/metro-config@npm:0.81.5" dependencies: - "@react-native/js-polyfills": "npm:0.79.5" - "@react-native/metro-babel-transformer": "npm:0.79.5" - metro-config: "npm:^0.82.0" - metro-runtime: "npm:^0.82.0" - checksum: 10/30159ee8be9488dad6e83c5b06056e46bbff689bd1374783c95c243ef8acca4718a89515b088ce5f693d0e344b28094faac3a4bb4126973ecd3974a4e5ed9cbb + "@react-native/js-polyfills": "npm:0.81.5" + "@react-native/metro-babel-transformer": "npm:0.81.5" + metro-config: "npm:^0.83.1" + metro-runtime: "npm:^0.83.1" + checksum: 10/13af9cb8f743e8ae51fe0c77db4c61070ef31074b985911ad03b53ec79985f3ba261f1b0026bc62b1b070a3954c8928b73d2d956fc13bad6ece3699b3f5d7254 languageName: node linkType: hard @@ -14002,17 +14078,10 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-colors@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/normalize-colors@npm:0.79.2" - checksum: 10/5c9f5d30fb7a3c92b46c7f440dcfe270290d200708bbf2ba3573d05f342f548e036ee1af0cda6415e3d27af2a657e742506e1cf7948e1cdd2eb84b9c83f238e6 - languageName: node - linkType: hard - -"@react-native/normalize-colors@npm:0.79.6": - version: 0.79.6 - resolution: "@react-native/normalize-colors@npm:0.79.6" - checksum: 10/e8596238ddf6f666cb336cd410616f2222f513022ea37fd908826161cf554d00c5d43eb8b50e8a2f7000b9f73ee99c37e9813261cad4b896f7a74f26aaed0ebe +"@react-native/normalize-colors@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/normalize-colors@npm:0.81.5" + checksum: 10/9a703b228b0e694436385f4438a684599f3b4f1ea16e3eb06f02b3bc2f9e091e3a754b4d25f0ad43ed7169ef5658603b30d0d78ee6bef338939313f16d85f077 languageName: node linkType: hard @@ -14037,27 +14106,27 @@ __metadata: languageName: node linkType: hard -"@react-native/typescript-config@npm:0.80.2": - version: 0.80.2 - resolution: "@react-native/typescript-config@npm:0.80.2" - checksum: 10/5e79f1aa81acbfa15b23ef3221e8f86d04a6eb9827dd092190538b67efda382dffaa065786076b83f765ba7290b21063f731e69c2603c5a3eaf677831f09dca7 +"@react-native/typescript-config@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/typescript-config@npm:0.81.5" + checksum: 10/fbcc83ec60d6820a0d5d86644c33284bba35aa3312fd9b620f50f3de5343ed3aac9808aa6915d2a1726f69bbe877c1b92452954e661a2fee16c60c1be88fc8c5 languageName: node linkType: hard -"@react-native/virtualized-lists@npm:0.79.2": - version: 0.79.2 - resolution: "@react-native/virtualized-lists@npm:0.79.2" +"@react-native/virtualized-lists@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/virtualized-lists@npm:0.81.5" dependencies: invariant: "npm:^2.2.4" nullthrows: "npm:^1.1.1" peerDependencies: - "@types/react": ^19.0.0 + "@types/react": ^19.1.0 react: "*" react-native: "*" peerDependenciesMeta: "@types/react": optional: true - checksum: 10/8743c7fa63414f591a82dc4d7ad14e80c31f1f20283b65c4977619cfadc35e1ca1a10c01f43f2f8108302cc747308f2492072ea5b60602a09b110429806e0b3c + checksum: 10/8d0dd3980e03760dc2d76c5eb853a442ca4044abeec267542fd6e4742f24d55bb3e819fbe58b846c6b3b6a51e2db6407592e6e96ed549d16860a8ff917365b6c languageName: node linkType: hard @@ -15626,6 +15695,17 @@ __metadata: languageName: node linkType: hard +"@ts-morph/common@npm:~0.28.1": + version: 0.28.1 + resolution: "@ts-morph/common@npm:0.28.1" + dependencies: + minimatch: "npm:^10.0.1" + path-browserify: "npm:^1.0.1" + tinyglobby: "npm:^0.2.14" + checksum: 10/d5c6ed11cf046c186c7263c28c7e9b5fbefb61c65b99f66cfe6a3b249f70f3fbf116b5aace2980602a7ceabecdc399065d5a7f14aabe5475eb43fd573a3cc665 + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -16886,12 +16966,21 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:19.0.14": - version: 19.0.14 - resolution: "@types/react@npm:19.0.14" +"@types/react@npm:19.1.10": + version: 19.1.10 + resolution: "@types/react@npm:19.1.10" dependencies: csstype: "npm:^3.0.2" - checksum: 10/caf4572aae4f7efd049138bc4917f465a8e00abb362fcf6e6f82c9ed88fc42555109f0a3be7a738ed5efbdd51b0f0a4256f7d5141545f29fb7dc31b8e872aa4b + checksum: 10/2c2f98e4a36144cddc9300483d0b14a0721dbb3b2fc2242e3841391589570dd344cde0c901eb291dba597a8efdb70543b0dbbae6cc2bef2061eb185c4ca55522 + languageName: node + linkType: hard + +"@types/react@npm:19.2.10": + version: 19.2.10 + resolution: "@types/react@npm:19.2.10" + dependencies: + csstype: "npm:^3.2.2" + checksum: 10/0e34a0e42db02f4b3f4bed446128c555446c2854b833d71d597e6c8b08800dd90519a03a226ad250cccc4a0c9e51bd3f9c54cdcb79ee1219f4d5b318fb3a3813 languageName: node linkType: hard @@ -17590,6 +17679,13 @@ __metadata: languageName: node linkType: hard +"@ungap/structured-clone@npm:^1.3.0": + version: 1.3.0 + resolution: "@ungap/structured-clone@npm:1.3.0" + checksum: 10/80d6910946f2b1552a2406650051c91bbd1f24a6bf854354203d84fe2714b3e8ce4618f49cc3410494173a1c1e8e9777372fe68dce74bd45faf0a7a1a6ccf448 + languageName: node + linkType: hard + "@urql/core@npm:^5.0.6, @urql/core@npm:^5.1.1": version: 5.1.1 resolution: "@urql/core@npm:5.1.1" @@ -20160,17 +20256,19 @@ __metadata: languageName: node linkType: hard -"babel-plugin-react-native-web@npm:0.21.2": - version: 0.21.2 - resolution: "babel-plugin-react-native-web@npm:0.21.2" - checksum: 10/511fe25e4fc76ac68e6edd3177676251c65e96b3e516805c21d4106bf998439dba5a96f80981a3dda39d2c09b95dc9dd62852fc465b433b2831657f8fd376eaf +"babel-plugin-react-compiler@npm:^1.0.0": + version: 1.0.0 + resolution: "babel-plugin-react-compiler@npm:1.0.0" + dependencies: + "@babel/types": "npm:^7.26.0" + checksum: 10/51358f4da7dd338afd93ca647af3b5b95fdedd2ffde78719fbba5c542e3d66d338f020bc61234caf4ddf25cddbf517ae101ff76e362e3244d1047c1e64d90a60 languageName: node linkType: hard -"babel-plugin-react-native-web@npm:~0.19.13": - version: 0.19.13 - resolution: "babel-plugin-react-native-web@npm:0.19.13" - checksum: 10/05ef14f7ffad194a80f27624d52d6f661e5956e606a41aefd34220016357068b6dead23f5c80671345f4e5878dd6ed5cb3a567aef128e38570780458a141d07a +"babel-plugin-react-native-web@npm:0.21.2, babel-plugin-react-native-web@npm:~0.21.0": + version: 0.21.2 + resolution: "babel-plugin-react-native-web@npm:0.21.2" + checksum: 10/511fe25e4fc76ac68e6edd3177676251c65e96b3e516805c21d4106bf998439dba5a96f80981a3dda39d2c09b95dc9dd62852fc465b433b2831657f8fd376eaf languageName: node linkType: hard @@ -20189,21 +20287,12 @@ __metadata: languageName: node linkType: hard -"babel-plugin-syntax-hermes-parser@npm:0.25.1, babel-plugin-syntax-hermes-parser@npm:^0.25.1": - version: 0.25.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.25.1" +"babel-plugin-syntax-hermes-parser@npm:0.29.1, babel-plugin-syntax-hermes-parser@npm:^0.29.1": + version: 0.29.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.29.1" dependencies: - hermes-parser: "npm:0.25.1" - checksum: 10/dc80fafde1aed8e60cf86ecd2e9920e7f35ffe02b33bd4e772daaa786167bcf508aac3fc1aea425ff4c7a0be94d82528f3fe8619b7f41dac853264272d640c04 - languageName: node - linkType: hard - -"babel-plugin-syntax-hermes-parser@npm:0.28.1": - version: 0.28.1 - resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" - dependencies: - hermes-parser: "npm:0.28.1" - checksum: 10/2cbc921e663463480ead9ccc8bb229a5196032367ba2b5ccb18a44faa3afa84b4dc493297749983b9a837a3d76b0b123664aecc06f9122618c3246f03e076a9d + hermes-parser: "npm:0.29.1" + checksum: 10/bbb1eed253b4255f8c572e1cb2664868d9aa2238363e48a2d1e95e952b2c1d59e86a7051f44956407484df2c9bc6623608740eec10e2095946d241b795262cec languageName: node linkType: hard @@ -20252,14 +20341,15 @@ __metadata: languageName: node linkType: hard -"babel-preset-expo@npm:~13.2.4": - version: 13.2.4 - resolution: "babel-preset-expo@npm:13.2.4" +"babel-preset-expo@npm:~54.0.9": + version: 54.0.9 + resolution: "babel-preset-expo@npm:54.0.9" dependencies: "@babel/helper-module-imports": "npm:^7.25.9" "@babel/plugin-proposal-decorators": "npm:^7.12.9" "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" + "@babel/plugin-transform-class-static-block": "npm:^7.27.1" "@babel/plugin-transform-export-namespace-from": "npm:^7.25.9" "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" @@ -20270,19 +20360,23 @@ __metadata: "@babel/plugin-transform-runtime": "npm:^7.24.7" "@babel/preset-react": "npm:^7.22.15" "@babel/preset-typescript": "npm:^7.23.0" - "@react-native/babel-preset": "npm:0.79.6" - babel-plugin-react-native-web: "npm:~0.19.13" - babel-plugin-syntax-hermes-parser: "npm:^0.25.1" + "@react-native/babel-preset": "npm:0.81.5" + babel-plugin-react-compiler: "npm:^1.0.0" + babel-plugin-react-native-web: "npm:~0.21.0" + babel-plugin-syntax-hermes-parser: "npm:^0.29.1" babel-plugin-transform-flow-enums: "npm:^0.0.2" debug: "npm:^4.3.4" - react-refresh: "npm:^0.14.2" resolve-from: "npm:^5.0.0" peerDependencies: - babel-plugin-react-compiler: ^19.0.0-beta-e993439-20250405 + "@babel/runtime": ^7.20.0 + expo: "*" + react-refresh: ">=0.14.0 <1.0.0" peerDependenciesMeta: - babel-plugin-react-compiler: + "@babel/runtime": optional: true - checksum: 10/645501ff71738f9fbf34559a135f36b3ed6539f8ba88f204c5e72948e621f1216c8a4bbd0775137e7763ba93d5ecae9d9031e797f71ee69d88e8ace5c15e47fe + expo: + optional: true + checksum: 10/706742ab8a8459bc5519f5a203a824603afb910c363a830548d8a6254367e9b4fc46537ad2fddb1266dc318a8e239bdfe93550ffe2266d71b3ba3ad36b56b6a1 languageName: node linkType: hard @@ -20366,7 +20460,7 @@ __metadata: languageName: node linkType: hard -"base-64@npm:0.1.0, base-64@npm:^0.1.0": +"base-64@npm:0.1.0": version: 0.1.0 resolution: "base-64@npm:0.1.0" checksum: 10/5a42938f82372ab5392cbacc85a5a78115cbbd9dbef9f7540fa47d78763a3a8bd7d598475f0d92341f66285afd377509851a9bb5c67bbecb89686e9255d5b3eb @@ -20416,6 +20510,15 @@ __metadata: languageName: node linkType: hard +"baseline-browser-mapping@npm:^2.9.0": + version: 2.9.13 + resolution: "baseline-browser-mapping@npm:2.9.13" + bin: + baseline-browser-mapping: dist/cli.js + checksum: 10/304fcd0668941aabf9cf59e7852481767ed9ca9f6e4355afe7e4af2008eab14cd55676bd9078226f24895b5225c28693a91c59c561b36c3baae7262ad0e56f26 + languageName: node + linkType: hard + "basic-auth@npm:^2.0.1": version: 2.0.1 resolution: "basic-auth@npm:2.0.1" @@ -20644,6 +20747,26 @@ __metadata: languageName: node linkType: hard +"body-parser@npm:^1.20.3": + version: 1.20.4 + resolution: "body-parser@npm:1.20.4" + dependencies: + bytes: "npm:~3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:~1.2.0" + http-errors: "npm:~2.0.1" + iconv-lite: "npm:~0.4.24" + on-finished: "npm:~2.4.1" + qs: "npm:~6.14.0" + raw-body: "npm:~2.5.3" + type-is: "npm:~1.6.18" + unpipe: "npm:~1.0.0" + checksum: 10/ff67e28d3f426707be8697a75fdf8d564dc50c341b41f054264d8ab6e2924e519c7ce8acc9d0de05328fdc41e1d9f3f200aec9c1cfb1867d6b676a410d97c689 + languageName: node + linkType: hard + "bonjour-service@npm:^1.0.11": version: 1.1.1 resolution: "bonjour-service@npm:1.1.1" @@ -21124,6 +21247,21 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.25.0": + version: 4.28.1 + resolution: "browserslist@npm:4.28.1" + dependencies: + baseline-browser-mapping: "npm:^2.9.0" + caniuse-lite: "npm:^1.0.30001759" + electron-to-chromium: "npm:^1.5.263" + node-releases: "npm:^2.0.27" + update-browserslist-db: "npm:^1.2.0" + bin: + browserslist: cli.js + checksum: 10/64f2a97de4bce8473c0e5ae0af8d76d1ead07a5b05fc6bc87b848678bb9c3a91ae787b27aa98cdd33fc00779607e6c156000bed58fefb9cf8e4c5a183b994cdb + languageName: node + linkType: hard + "bs-logger@npm:^0.2.6": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" @@ -21328,7 +21466,7 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.1.2": +"bytes@npm:3.1.2, bytes@npm:~3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 @@ -21807,6 +21945,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001759": + version: 1.0.30001763 + resolution: "caniuse-lite@npm:1.0.30001763" + checksum: 10/66efb73a641fe2612f561d0f32e5b55415b742dfa3b585f69891b2306cddd8f79bc1a1b0eaac42512686ba9cff59c049aaf1a50192eb5bd27d6f6890c934a5ae + languageName: node + linkType: hard + "canvas@link:./.yarn/joplin-empty-package/::locator=root%40workspace%3A.": version: 0.0.0-use.local resolution: "canvas@link:./.yarn/joplin-empty-package/::locator=root%40workspace%3A." @@ -21908,6 +22053,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:^5.3.0": + version: 5.6.2 + resolution: "chalk@npm:5.6.2" + checksum: 10/1b2f48f6fba1370670d5610f9cd54c391d6ede28f4b7062dd38244ea5768777af72e5be6b74fb6c6d54cb84c4a2dff3f3afa9b7cb5948f7f022cfd3d087989e0 + languageName: node + linkType: hard + "change-case@npm:^4.1.2": version: 4.1.2 resolution: "change-case@npm:4.1.2" @@ -22443,6 +22595,17 @@ __metadata: languageName: node linkType: hard +"cliui@npm:^9.0.1": + version: 9.0.1 + resolution: "cliui@npm:9.0.1" + dependencies: + string-width: "npm:^7.2.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10/df43d8d1c6e3254cbb64b1905310d5f6672c595496a3cbe76946c6d24777136886470686f2772ac9edfe547a74bb70e8017530b3554715aee119efd7752fc0d9 + languageName: node + linkType: hard + "clone-buffer@npm:^1.0.0": version: 1.0.0 resolution: "clone-buffer@npm:1.0.0" @@ -22529,6 +22692,13 @@ __metadata: languageName: node linkType: hard +"code-block-writer@npm:^13.0.3": + version: 13.0.3 + resolution: "code-block-writer@npm:13.0.3" + checksum: 10/771546224f38610eecee0598e83c9e0f86dcd600ea316dbf27c2cfebaab4fed51b042325aa460b8e0f131fac5c1de208f6610a1ddbffe4b22e76f9b5256707cb + languageName: node + linkType: hard + "code-excerpt@npm:^3.0.0": version: 3.0.0 resolution: "code-excerpt@npm:3.0.0" @@ -24154,6 +24324,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.2.2": + version: 3.2.3 + resolution: "csstype@npm:3.2.3" + checksum: 10/ad41baf7e2ffac65ab544d79107bf7cd1a4bb9bab9ac3302f59ab4ba655d5e30942a8ae46e10ba160c6f4ecea464cc95b975ca2fefbdeeacd6ac63f12f99fe1f + languageName: node + linkType: hard + "currently-unhandled@npm:^0.4.1": version: 0.4.1 resolution: "currently-unhandled@npm:0.4.1" @@ -25428,7 +25605,7 @@ __metadata: languageName: node linkType: hard -"destroy@npm:1.2.0": +"destroy@npm:1.2.0, destroy@npm:~1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 @@ -25481,6 +25658,13 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^2.0.3, detect-libc@npm:^2.1.0": + version: 2.1.2 + resolution: "detect-libc@npm:2.1.2" + checksum: 10/b736c8d97d5d46164c0d1bed53eb4e6a3b1d8530d460211e2d52f1c552875e706c58a5376854e4e54f8b828c9cada58c855288c968522eb93ac7696d65970766 + languageName: node + linkType: hard + "detect-libc@npm:^2.0.4": version: 2.0.4 resolution: "detect-libc@npm:2.0.4" @@ -25488,13 +25672,6 @@ __metadata: languageName: node linkType: hard -"detect-libc@npm:^2.1.0": - version: 2.1.2 - resolution: "detect-libc@npm:2.1.2" - checksum: 10/b736c8d97d5d46164c0d1bed53eb4e6a3b1d8530d460211e2d52f1c552875e706c58a5376854e4e54f8b828c9cada58c855288c968522eb93ac7696d65970766 - languageName: node - linkType: hard - "detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" @@ -26267,6 +26444,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.263": + version: 1.5.267 + resolution: "electron-to-chromium@npm:1.5.267" + checksum: 10/05e55e810cb6a3cda8d29dfdeec7ac0e59727a77a796a157f1a1d65edac16d45eed69ed5c99e354872ab16c48967c2d0a0600653051ae380a3b7a4d6210b1e60 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.5.73": version: 1.5.83 resolution: "electron-to-chromium@npm:1.5.83" @@ -28166,23 +28350,23 @@ __metadata: languageName: node linkType: hard -"expo-asset@npm:~11.1.7": - version: 11.1.7 - resolution: "expo-asset@npm:11.1.7" +"expo-asset@npm:~12.0.12": + version: 12.0.12 + resolution: "expo-asset@npm:12.0.12" dependencies: - "@expo/image-utils": "npm:^0.7.6" - expo-constants: "npm:~17.1.7" + "@expo/image-utils": "npm:^0.8.8" + expo-constants: "npm:~18.0.12" peerDependencies: expo: "*" react: "*" react-native: "*" - checksum: 10/c7851f3cf69ad2d8075908f719baf3a96660f262109374a563418912b7588a126f425225bc2126eca005873aa719c4683b99a467984e244d1931e6f1ba68655a + checksum: 10/7034316d820837c92ac70274be56a8e59181f1513805f8a4c85e16f12e1dd75ac6d6ae0b231bd8a76adbb71be6163c05b31b1d437f15b14745c70cc1f255c8a1 languageName: node linkType: hard -"expo-av@npm:15.1.7": - version: 15.1.7 - resolution: "expo-av@npm:15.1.7" +"expo-av@npm:16.0.8": + version: 16.0.8 + resolution: "expo-av@npm:16.0.8" peerDependencies: expo: "*" react: "*" @@ -28191,13 +28375,13 @@ __metadata: peerDependenciesMeta: react-native-web: optional: true - checksum: 10/8f3055b68cac76b627116cf93a63bebdacb8c0d22f630f9fdae7dc74633a945d9a469421fce0f4c345c730eda0d039d78c88e59c09e2219bfde7e259d42981ba + checksum: 10/c274ae6b98e30b673d2dd03119da703a379c01367466022fa1d2dc1b17ce9475711488132d2c7271a88ecda3800c5d03697371761fa8330e40ca0c02f9b951fa languageName: node linkType: hard -"expo-camera@npm:16.1.11": - version: 16.1.11 - resolution: "expo-camera@npm:16.1.11" +"expo-camera@npm:17.0.10": + version: 17.0.10 + resolution: "expo-camera@npm:17.0.10" dependencies: invariant: "npm:^2.2.4" peerDependencies: @@ -28208,112 +28392,145 @@ __metadata: peerDependenciesMeta: react-native-web: optional: true - checksum: 10/8e44f73a4239b52ba9a5784288d3d2c1d53882b85afad0b75947984929f9a25cea997c99e44e81751122c8b1fd7e65dccd43c3609065c5944067ce6ba50a71f0 + checksum: 10/f46f3ebe48120d4cf4ea77c1de7f553e1fe76c108ad08de85f6e133575a58d57015fdfd2ecb508a0e87af1953f57c2c8a3bb436a633b3f4d974142cb9f030cf2 languageName: node linkType: hard -"expo-constants@npm:~17.1.7": - version: 17.1.7 - resolution: "expo-constants@npm:17.1.7" +"expo-constants@npm:~18.0.12, expo-constants@npm:~18.0.13": + version: 18.0.13 + resolution: "expo-constants@npm:18.0.13" dependencies: - "@expo/config": "npm:~11.0.12" - "@expo/env": "npm:~1.0.7" + "@expo/config": "npm:~12.0.13" + "@expo/env": "npm:~2.0.8" peerDependencies: expo: "*" react-native: "*" - checksum: 10/38ffa613262b03f4757d0cb745de81401d295dc117b62aa6fe966c71e5d8231c3709b9c8751b223b5aa5cd5841ff9aba8d8b8e13969b40673cefa7019ed8382e + checksum: 10/f29c72b6f5798bd37550aafcc89c3f1a630c4910a5b69c1e19d03544f6ebf0cb65adf39db600ccbeb6e60545b2b231d244373ef3139e3c75991b380940065c6b languageName: node linkType: hard -"expo-file-system@npm:~18.1.11": - version: 18.1.11 - resolution: "expo-file-system@npm:18.1.11" +"expo-file-system@npm:~19.0.21": + version: 19.0.21 + resolution: "expo-file-system@npm:19.0.21" peerDependencies: expo: "*" react-native: "*" - checksum: 10/8a2f1d87bb0aec96b4f7f3559e7c5ff7bf6a9df394fae3ddbfa89a40e6e4de5c06b9e6cc1b0065ab886f08665b5ebcad4a0105e5f2b1ef8c1a66b7ce8845cbf7 + checksum: 10/00a2f13f8139724016f8b811303dd4a4070a315f80ee9e1877bcfd00773b38caafe4f1d3d7d4a87777e4ff53ba645aae0b4430e875f9ee5f277b88372b507811 languageName: node linkType: hard -"expo-font@npm:~13.3.2": - version: 13.3.2 - resolution: "expo-font@npm:13.3.2" +"expo-font@npm:~14.0.10": + version: 14.0.10 + resolution: "expo-font@npm:14.0.10" dependencies: fontfaceobserver: "npm:^2.1.0" peerDependencies: expo: "*" react: "*" - checksum: 10/ac3de637e226c5a68049b55e1f90989fae80464f4f5919609a729a9296d79fa294f7b8774fd46b466855882a5133a3badb576957735d4c637f6fffa7720db9ce + react-native: "*" + checksum: 10/3fb7d87c75c818c3c8503d43f9e13b3d237f2e128bcb59e09b8fdad3eaf1aece2ab89030d5cffbeb5b172d7b030df627e4319b0fdd97e6f6d57e27bbdb520f22 languageName: node linkType: hard -"expo-keep-awake@npm:~14.1.4": - version: 14.1.4 - resolution: "expo-keep-awake@npm:14.1.4" +"expo-image-loader@npm:~6.0.0": + version: 6.0.0 + resolution: "expo-image-loader@npm:6.0.0" + peerDependencies: + expo: "*" + checksum: 10/896b4df1208ec071888acac0a8673ee4a67afcc8e06061de26fd189feed3369959ab9254314d51f303bcfc8f6289fd04ca9bec616007333d3dcb2e6d0618a2fe + languageName: node + linkType: hard + +"expo-image-manipulator@npm:14.0.8": + version: 14.0.8 + resolution: "expo-image-manipulator@npm:14.0.8" + dependencies: + expo-image-loader: "npm:~6.0.0" + peerDependencies: + expo: "*" + checksum: 10/655c8d1f8420df0d70357f68a92769eee5c8ee8691fbd3aede0e3f2645fe03b61ed257b0a7944e588f70ebd46582cc134947f74c80af9aed53b15a305957092a + languageName: node + linkType: hard + +"expo-keep-awake@npm:~15.0.8": + version: 15.0.8 + resolution: "expo-keep-awake@npm:15.0.8" peerDependencies: expo: "*" react: "*" - checksum: 10/d90781fa940f2cac235608e87f52ab4922bf3b3be0b827dc17a2e33a93daad5471445abbe338f76e38561cec2841cbf50e5b78183a0c4819d2462e81e40c6f69 + checksum: 10/d15c4ec6f033ed89db55c3c4d338db0e012dba10c471d3cca7978e38036e1c4e44c5a4970fa0d87e64c7f1d78c1320910331485bc5caf53acbbfd6277b414353 languageName: node linkType: hard -"expo-local-authentication@npm:16.0.5": - version: 16.0.5 - resolution: "expo-local-authentication@npm:16.0.5" +"expo-local-authentication@npm:17.0.8": + version: 17.0.8 + resolution: "expo-local-authentication@npm:17.0.8" dependencies: invariant: "npm:^2.2.4" peerDependencies: expo: "*" - checksum: 10/f83d933970bd831aca3e29813c62c4f41bad00588e30440aaf72169d33dca9c7a19989b96eff45ffd574e81ada097103e63b2e3eade32925ddbd525bed5d647d + checksum: 10/6974cb203f4bf8e90dcc8df52d04cf35df0ed9454caa4dfca3df86fb0f2ca932eb90cd576463e6f8e6c4c80543890eb583ae111ece3a1d6be9a09a09dc300aa5 languageName: node linkType: hard -"expo-modules-autolinking@npm:2.1.14": - version: 2.1.14 - resolution: "expo-modules-autolinking@npm:2.1.14" +"expo-modules-autolinking@npm:3.0.24": + version: 3.0.24 + resolution: "expo-modules-autolinking@npm:3.0.24" dependencies: "@expo/spawn-async": "npm:^1.7.2" chalk: "npm:^4.1.0" commander: "npm:^7.2.0" - find-up: "npm:^5.0.0" - glob: "npm:^10.4.2" require-from-string: "npm:^2.0.2" resolve-from: "npm:^5.0.0" bin: expo-modules-autolinking: bin/expo-modules-autolinking.js - checksum: 10/beff9e732d812464732d38cd504a06ae0425785fed00c35d39612560199212af33a7362c5a7c215e2700350f01a8a7712de2d96265c1c813660ebba8f292dce2 + checksum: 10/e3b77d2fa84b77e53dca2ef608b48c4db196957c76ac7cc1aba4eb2cca44b5082a16f7af8a3549a342c7a1362f069a76fb9ebdab4be6b467e3791ad48387e15a languageName: node linkType: hard -"expo-modules-core@npm:2.5.0": - version: 2.5.0 - resolution: "expo-modules-core@npm:2.5.0" +"expo-modules-core@npm:3.0.29": + version: 3.0.29 + resolution: "expo-modules-core@npm:3.0.29" dependencies: invariant: "npm:^2.2.4" - checksum: 10/ad34d71571bcfbff166da47fa3847ab03886b691b80079d9a3d111e5061cccbaa785c55eb48451ce7d300ce725d32f844492b0109d069dc89f70864b9de2c1c6 + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/db23a1c7321db54f40f0bcb9c18e7239d798fb7fb5d8ceedf09879f7ff4d90a85e375851796008006441326ed61c00ba00950b06bc7ea74f6ba648a9dac9d053 languageName: node linkType: hard -"expo@npm:53.0.23": - version: 53.0.23 - resolution: "expo@npm:53.0.23" +"expo-server@npm:^1.0.5": + version: 1.0.5 + resolution: "expo-server@npm:1.0.5" + checksum: 10/42cda83d5b514061d4142118fa8590ff8b55218b91a7e6ac131ed71ca743301f7aae7fe6954d96671b6251959b08fe8119eb2f18500b4b5e07ea0c127d2d72c7 + languageName: node + linkType: hard + +"expo@npm:54.0.31": + version: 54.0.31 + resolution: "expo@npm:54.0.31" dependencies: "@babel/runtime": "npm:^7.20.0" - "@expo/cli": "npm:0.24.22" - "@expo/config": "npm:~11.0.13" - "@expo/config-plugins": "npm:~10.1.2" - "@expo/fingerprint": "npm:0.13.4" - "@expo/metro-config": "npm:0.20.17" - "@expo/vector-icons": "npm:^14.0.0" - babel-preset-expo: "npm:~13.2.4" - expo-asset: "npm:~11.1.7" - expo-constants: "npm:~17.1.7" - expo-file-system: "npm:~18.1.11" - expo-font: "npm:~13.3.2" - expo-keep-awake: "npm:~14.1.4" - expo-modules-autolinking: "npm:2.1.14" - expo-modules-core: "npm:2.5.0" - react-native-edge-to-edge: "npm:1.6.0" + "@expo/cli": "npm:54.0.21" + "@expo/config": "npm:~12.0.13" + "@expo/config-plugins": "npm:~54.0.4" + "@expo/devtools": "npm:0.1.8" + "@expo/fingerprint": "npm:0.15.4" + "@expo/metro": "npm:~54.2.0" + "@expo/metro-config": "npm:54.0.13" + "@expo/vector-icons": "npm:^15.0.3" + "@ungap/structured-clone": "npm:^1.3.0" + babel-preset-expo: "npm:~54.0.9" + expo-asset: "npm:~12.0.12" + expo-constants: "npm:~18.0.13" + expo-file-system: "npm:~19.0.21" + expo-font: "npm:~14.0.10" + expo-keep-awake: "npm:~15.0.8" + expo-modules-autolinking: "npm:3.0.24" + expo-modules-core: "npm:3.0.29" + pretty-format: "npm:^29.7.0" + react-refresh: "npm:^0.14.2" whatwg-url-without-unicode: "npm:8.0.0-3" peerDependencies: "@expo/dom-webview": "*" @@ -28332,7 +28549,7 @@ __metadata: expo: bin/cli expo-modules-autolinking: bin/autolinking fingerprint: bin/fingerprint - checksum: 10/7382f1895119304ce610e8f145adbb4a4b298043dec74308be3af2979d6d08c882185752937c7c3fce19aef982d1a67d3736858c47c977abca90566dabd6d188 + checksum: 10/f7aa03ff726b7eea176212b431fd75e9678be95843111fb416161aa01b0670bc7d9d5ea958877eec675fbf99010b57dbbf50430bec22666aa220013592d5d5ac languageName: node linkType: hard @@ -28797,6 +29014,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10/14ca1c9f0a0e8f4f2e9bf4e8551065a164a09545dae548c12a18d238b72e51e5a7b39bd8e5494b56463a0877672d0a6c1ef62c6fa0677db1b0c847773be939b1 + languageName: node + linkType: hard + "feed@npm:^4.2.2": version: 4.2.2 resolution: "feed@npm:4.2.2" @@ -30451,19 +30680,14 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.10, glob@npm:^10.4.2": - version: 10.4.5 - resolution: "glob@npm:10.4.5" +"glob@npm:^13.0.0": + version: 13.0.0 + resolution: "glob@npm:13.0.0" dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^3.1.2" - minimatch: "npm:^9.0.4" + minimatch: "npm:^10.1.1" minipass: "npm:^7.1.2" - package-json-from-dist: "npm:^1.0.0" - path-scurry: "npm:^1.11.1" - bin: - glob: dist/esm/bin.mjs - checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac + path-scurry: "npm:^2.0.0" + checksum: 10/de390721d29ee1c9ea41e40ec2aa0de2cabafa68022e237dc4297665a5e4d650776f2573191984ea1640aba1bf0ea34eddef2d8cbfbfc2ad24b5fb0af41d8846 languageName: node linkType: hard @@ -31363,17 +31587,17 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.25.1": - version: 0.25.1 - resolution: "hermes-estree@npm:0.25.1" - checksum: 10/7b1eca98b264a25632064cffa5771360d30cf452e77db1e191f9913ee45cf78c292b2dbca707e92fb71b0870abb97e94b506a5ab80abd96ba237fee169b601fe +"hermes-estree@npm:0.29.1": + version: 0.29.1 + resolution: "hermes-estree@npm:0.29.1" + checksum: 10/8989fc224fcd2bb3356d7d330461c9f32303904824891ae4befafc08f13c871013b18d5d4cd4b20bf6f59e9d26afdbb10d33440c6e646de770db4b9543c39db4 languageName: node linkType: hard -"hermes-estree@npm:0.28.1": - version: 0.28.1 - resolution: "hermes-estree@npm:0.28.1" - checksum: 10/3195a1aa7035d96b77839e6bfd6832b51830518aaf8dabfca11248b84d6fb6abd27e21c8caa84229954a76b4f8a1e346b65d421a4daecd3053bd2ea08fe6abc9 +"hermes-estree@npm:0.32.0": + version: 0.32.0 + resolution: "hermes-estree@npm:0.32.0" + checksum: 10/65a30a86a5a560152a2de1842c7bc7ecdadebd62e9cdd7d1809a824de7bc19e8d6a42907d3caff91d9f823862405d4b200447aa0bc25ba16072937e93d0acbd5 languageName: node linkType: hard @@ -31384,21 +31608,21 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.25.1": - version: 0.25.1 - resolution: "hermes-parser@npm:0.25.1" +"hermes-parser@npm:0.29.1, hermes-parser@npm:^0.29.1": + version: 0.29.1 + resolution: "hermes-parser@npm:0.29.1" dependencies: - hermes-estree: "npm:0.25.1" - checksum: 10/805efc05691420f236654349872c70731121791fa54de521c7ee51059eae34f84dd19f22ee846741dcb60372f8fb5335719b96b4ecb010d2aed7d872f2eff9cc + hermes-estree: "npm:0.29.1" + checksum: 10/2d1ada9d48817668bf12b31deef7c5a4a7d88419448c7e07ad67197a7992462dea3f5e536aea2c6f7e2222940f96bb7cd7a7dc5a101c9b4b2d7a84e1a1272670 languageName: node linkType: hard -"hermes-parser@npm:0.28.1": - version: 0.28.1 - resolution: "hermes-parser@npm:0.28.1" +"hermes-parser@npm:0.32.0": + version: 0.32.0 + resolution: "hermes-parser@npm:0.32.0" dependencies: - hermes-estree: "npm:0.28.1" - checksum: 10/cb2aa4d386929825c3bd8184eeb4e3dcf34892c1f850624d09a80aee0674bc2eb135eccaeb7ac33675552130229ee6160025c4e4f351d6a61b503bd8bfdf63f5 + hermes-estree: "npm:0.32.0" + checksum: 10/496210490cb45e97df14796d94aec6c817c4cefa20f1dbe3ba1df323cc58c930033cfec93f3ecfad6b90e09166fc9ffc4f665843d25b4862523aa70dacbae81f languageName: node linkType: hard @@ -31803,6 +32027,19 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:~2.0.1": + version: 2.0.1 + resolution: "http-errors@npm:2.0.1" + dependencies: + depd: "npm:~2.0.0" + inherits: "npm:~2.0.4" + setprototypeof: "npm:~1.2.0" + statuses: "npm:~2.0.2" + toidentifier: "npm:~1.0.1" + checksum: 10/9fe31bc0edf36566c87048aed1d3d0cbe03552564adc3541626a0613f542d753fbcb13bdfcec0a3a530dbe1714bb566c89d46244616b66bddd26ac413b06a207 + languageName: node + linkType: hard + "http-parser-js@npm:>=0.5.1": version: 0.5.8 resolution: "http-parser-js@npm:0.5.8" @@ -31943,6 +32180,13 @@ __metadata: languageName: node linkType: hard +"http-status-codes@npm:^2.3.0": + version: 2.3.0 + resolution: "http-status-codes@npm:2.3.0" + checksum: 10/1b8a01940b5e14d3c5b2f842313f4531469b41ce4fa40ca3aae5c82a3101828db2cc9406bfb2d50a46e6d521d106577b6656c2b065c76125b99ee54b2cbbac09 + languageName: node + linkType: hard + "http2-wrapper@npm:^1.0.0-beta.5.2": version: 1.0.3 resolution: "http2-wrapper@npm:1.0.3" @@ -32073,7 +32317,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24": +"iconv-lite@npm:0.4.24, iconv-lite@npm:^0.4.24, iconv-lite@npm:~0.4.24": version: 0.4.24 resolution: "iconv-lite@npm:0.4.24" dependencies: @@ -34094,19 +34338,6 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^3.1.2": - version: 3.4.0 - resolution: "jackspeak@npm:3.4.0" - dependencies: - "@isaacs/cliui": "npm:^8.0.2" - "@pkgjs/parseargs": "npm:^0.11.0" - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 10/5032c43c0c1fb92e72846ce496df559214253bc6870c90399cbd7858571c53169d9494b7c152df04abcb75f2fb5e9cffe65651c67d573380adf3a482b150d84b - languageName: node - linkType: hard - "jackspeak@npm:^4.0.1, jackspeak@npm:^4.1.1": version: 4.1.1 resolution: "jackspeak@npm:4.1.1" @@ -35742,6 +35973,16 @@ __metadata: languageName: node linkType: hard +"launch-editor@npm:^2.9.1": + version: 2.12.0 + resolution: "launch-editor@npm:2.12.0" + dependencies: + picocolors: "npm:^1.1.1" + shell-quote: "npm:^1.8.3" + checksum: 10/43d2b66c674d129f9a96bbae602808a0afa7e6bb6f38de5518479e33b1a542e9772b262304505c2aa363b0185424580b4011a9198082d306e2b419c6f12da5e2 + languageName: node + linkType: hard + "layout-base@npm:^1.0.0": version: 1.0.2 resolution: "layout-base@npm:1.0.2" @@ -35952,92 +36193,102 @@ __metadata: languageName: node linkType: hard -"lightningcss-darwin-arm64@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-darwin-arm64@npm:1.27.0" +"lightningcss-android-arm64@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-android-arm64@npm:1.30.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-arm64@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-darwin-arm64@npm:1.30.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"lightningcss-darwin-x64@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-darwin-x64@npm:1.27.0" +"lightningcss-darwin-x64@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-darwin-x64@npm:1.30.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"lightningcss-freebsd-x64@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-freebsd-x64@npm:1.27.0" +"lightningcss-freebsd-x64@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-freebsd-x64@npm:1.30.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"lightningcss-linux-arm-gnueabihf@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-linux-arm-gnueabihf@npm:1.27.0" +"lightningcss-linux-arm-gnueabihf@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.30.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"lightningcss-linux-arm64-gnu@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-linux-arm64-gnu@npm:1.27.0" +"lightningcss-linux-arm64-gnu@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-linux-arm64-gnu@npm:1.30.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"lightningcss-linux-arm64-musl@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-linux-arm64-musl@npm:1.27.0" +"lightningcss-linux-arm64-musl@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-linux-arm64-musl@npm:1.30.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"lightningcss-linux-x64-gnu@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-linux-x64-gnu@npm:1.27.0" +"lightningcss-linux-x64-gnu@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-linux-x64-gnu@npm:1.30.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"lightningcss-linux-x64-musl@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-linux-x64-musl@npm:1.27.0" +"lightningcss-linux-x64-musl@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-linux-x64-musl@npm:1.30.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"lightningcss-win32-arm64-msvc@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-win32-arm64-msvc@npm:1.27.0" +"lightningcss-win32-arm64-msvc@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-win32-arm64-msvc@npm:1.30.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"lightningcss-win32-x64-msvc@npm:1.27.0": - version: 1.27.0 - resolution: "lightningcss-win32-x64-msvc@npm:1.27.0" +"lightningcss-win32-x64-msvc@npm:1.30.2": + version: 1.30.2 + resolution: "lightningcss-win32-x64-msvc@npm:1.30.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"lightningcss@npm:~1.27.0": - version: 1.27.0 - resolution: "lightningcss@npm:1.27.0" +"lightningcss@npm:^1.30.1": + version: 1.30.2 + resolution: "lightningcss@npm:1.30.2" dependencies: - detect-libc: "npm:^1.0.3" - lightningcss-darwin-arm64: "npm:1.27.0" - lightningcss-darwin-x64: "npm:1.27.0" - lightningcss-freebsd-x64: "npm:1.27.0" - lightningcss-linux-arm-gnueabihf: "npm:1.27.0" - lightningcss-linux-arm64-gnu: "npm:1.27.0" - lightningcss-linux-arm64-musl: "npm:1.27.0" - lightningcss-linux-x64-gnu: "npm:1.27.0" - lightningcss-linux-x64-musl: "npm:1.27.0" - lightningcss-win32-arm64-msvc: "npm:1.27.0" - lightningcss-win32-x64-msvc: "npm:1.27.0" + detect-libc: "npm:^2.0.3" + lightningcss-android-arm64: "npm:1.30.2" + lightningcss-darwin-arm64: "npm:1.30.2" + lightningcss-darwin-x64: "npm:1.30.2" + lightningcss-freebsd-x64: "npm:1.30.2" + lightningcss-linux-arm-gnueabihf: "npm:1.30.2" + lightningcss-linux-arm64-gnu: "npm:1.30.2" + lightningcss-linux-arm64-musl: "npm:1.30.2" + lightningcss-linux-x64-gnu: "npm:1.30.2" + lightningcss-linux-x64-musl: "npm:1.30.2" + lightningcss-win32-arm64-msvc: "npm:1.30.2" + lightningcss-win32-x64-msvc: "npm:1.30.2" dependenciesMeta: + lightningcss-android-arm64: + optional: true lightningcss-darwin-arm64: optional: true lightningcss-darwin-x64: @@ -36058,7 +36309,7 @@ __metadata: optional: true lightningcss-win32-x64-msvc: optional: true - checksum: 10/275a0103c7dc1dfcf8e456a0523d1719a1caff916c45229ec62cdb28a814dce12b7065b88865fb74fc03a2a658ac3361caff5c348f1646313513c125d4f27954 + checksum: 10/d6cc06d9bac295589a49446e9c45a241dfa16f4f81a7318c26cbc0be3e189003ec0da5d9a0fd9bdffc63a3ce05878cc7329277eaac77a826e8b68c73dc96cfda languageName: node linkType: hard @@ -36612,13 +36863,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.2.0": - version: 10.3.1 - resolution: "lru-cache@npm:10.3.1" - checksum: 10/52938a77f14f874e88fd9bf0fc8a39873e52deff85a4e3bb86d7c3a38b0ef2dcaddf1f7f59b2a131a66f3bdb56e26c1843eddbf7dddc02acc69279f74e4331c9 - languageName: node - linkType: hard - "lru-cache@npm:^11.0.0": version: 11.1.0 resolution: "lru-cache@npm:11.1.0" @@ -37455,15 +37699,15 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.82.4": - version: 0.82.4 - resolution: "metro-babel-transformer@npm:0.82.4" +"metro-babel-transformer@npm:0.83.3": + version: 0.83.3 + resolution: "metro-babel-transformer@npm:0.83.3" dependencies: "@babel/core": "npm:^7.25.2" flow-enums-runtime: "npm:^0.0.6" - hermes-parser: "npm:0.28.1" + hermes-parser: "npm:0.32.0" nullthrows: "npm:^1.1.1" - checksum: 10/97e8e417947afaf1db384bbcff24e099d9555ace0e9dd585933207226b3bdc3bb9d3aaccfc0e185deabb9e1e379b6bacf9a5ec3d9a76168b910542f1d9415978 + checksum: 10/dd178409d1718dae12dfffb6572ebc5bb78f1e0d7e93dce829c945957f8a686cb1b4c466c69585d7b982b3937fbea28d5c53a80691f2fc66717a0bcc800bc5b8 languageName: node linkType: hard @@ -37474,12 +37718,12 @@ __metadata: languageName: node linkType: hard -"metro-cache-key@npm:0.82.4": - version: 0.82.4 - resolution: "metro-cache-key@npm:0.82.4" +"metro-cache-key@npm:0.83.3": + version: 0.83.3 + resolution: "metro-cache-key@npm:0.83.3" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10/a6ab3908295b5ba346d4d991595cc8baf1d22be39fbd4bdf794b617868a003a4f9925d2d01fdbc4c616ff74196783cb4ea5f98dcb6a7c1b510e72e075d9f6b24 + checksum: 10/a6f9d2bf8b810f57d330d6f8f1ebf029e1224f426c5895f73d9bc1007482684048bfc7513a855626ee7f3ae72ca46e1b08cf983aefbfa84321bb7c0cef4ba4ae languageName: node linkType: hard @@ -37493,15 +37737,15 @@ __metadata: languageName: node linkType: hard -"metro-cache@npm:0.82.4": - version: 0.82.4 - resolution: "metro-cache@npm:0.82.4" +"metro-cache@npm:0.83.3": + version: 0.83.3 + resolution: "metro-cache@npm:0.83.3" dependencies: exponential-backoff: "npm:^3.1.1" flow-enums-runtime: "npm:^0.0.6" https-proxy-agent: "npm:^7.0.5" - metro-core: "npm:0.82.4" - checksum: 10/801a6b552266f1d3291555c58c371c34be563effe7d33de6d20ac94b7e6f95893ceda9219f49bf83a1e4b466fdbc588007ec97da7f19b4843e184404e66f0bd6 + metro-core: "npm:0.83.3" + checksum: 10/4bc263ac92f176451710ebd330d156675e40f028be02eb9659a9b024db9897f3ad8510809d699969cb6f06dc0f06d85c38ca7162fb9a70be44510fa03270e089 languageName: node linkType: hard @@ -37519,19 +37763,19 @@ __metadata: languageName: node linkType: hard -"metro-config@npm:0.82.4, metro-config@npm:^0.82.0": - version: 0.82.4 - resolution: "metro-config@npm:0.82.4" +"metro-config@npm:0.83.3, metro-config@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-config@npm:0.83.3" dependencies: connect: "npm:^3.6.5" - cosmiconfig: "npm:^5.0.5" flow-enums-runtime: "npm:^0.0.6" jest-validate: "npm:^29.7.0" - metro: "npm:0.82.4" - metro-cache: "npm:0.82.4" - metro-core: "npm:0.82.4" - metro-runtime: "npm:0.82.4" - checksum: 10/19d82ab5713a512c088ad37ca57b911fdd0e2aebfcfe580ea671ebfc5dc85b1f3056329bbc122548eb043f7a09d16568284c946fef9f1d6e530c6e99db874287 + metro: "npm:0.83.3" + metro-cache: "npm:0.83.3" + metro-core: "npm:0.83.3" + metro-runtime: "npm:0.83.3" + yaml: "npm:^2.6.1" + checksum: 10/e377c375a48afc85a4d742f80a17fc178f9af7f5b007375e65bb49472ad78bc8e1f0ba4399411310ee8b856fb767bd81bd6dae19bec6ef6a44f0ece4d8457b30 languageName: node linkType: hard @@ -37545,14 +37789,14 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.82.4, metro-core@npm:^0.82.0": - version: 0.82.4 - resolution: "metro-core@npm:0.82.4" +"metro-core@npm:0.83.3, metro-core@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-core@npm:0.83.3" dependencies: flow-enums-runtime: "npm:^0.0.6" lodash.throttle: "npm:^4.1.1" - metro-resolver: "npm:0.82.4" - checksum: 10/9cc7539f8d9e33e4b1f6ef93e086ec99559bbaba7319a0f61927532f93cb57c1c0d7ca99dbc01f2cd642be21ba5565a8b9d101db8b6f2b6091cf2e9a2f844cac + metro-resolver: "npm:0.83.3" + checksum: 10/6ef06214faa1d727396d986f989a8150f699d73c5764c66e06e61b08017e462141a7b4c9ca63f67becee58ea1394b41aabfff441e644fc1e945c715e07c60612 languageName: node linkType: hard @@ -37580,9 +37824,9 @@ __metadata: languageName: node linkType: hard -"metro-file-map@npm:0.82.4": - version: 0.82.4 - resolution: "metro-file-map@npm:0.82.4" +"metro-file-map@npm:0.83.3": + version: 0.83.3 + resolution: "metro-file-map@npm:0.83.3" dependencies: debug: "npm:^4.4.0" fb-watchman: "npm:^2.0.0" @@ -37593,7 +37837,7 @@ __metadata: micromatch: "npm:^4.0.4" nullthrows: "npm:^1.1.1" walker: "npm:^1.0.7" - checksum: 10/953f655dafccdefe715cd45a08b29f820a3a733ff143a037c9e44d1f0125b4f90c3d4182bf0e688172fce75d3cb4ef51ab78d9b76c139e64617281e5b5c9805d + checksum: 10/be621b144168b6a35567d4313557596df68ee61c1b9a067fbf8272ec3db7c2d9d76849c9b8d2331716d6839c3f8e243e2b715ca2551d7ffebbd206a34c19591a languageName: node linkType: hard @@ -37618,13 +37862,13 @@ __metadata: languageName: node linkType: hard -"metro-minify-terser@npm:0.82.4": - version: 0.82.4 - resolution: "metro-minify-terser@npm:0.82.4" +"metro-minify-terser@npm:0.83.3": + version: 0.83.3 + resolution: "metro-minify-terser@npm:0.83.3" dependencies: flow-enums-runtime: "npm:^0.0.6" terser: "npm:^5.15.0" - checksum: 10/23170c34f519ebaa57189283f51847108395f53ebfcb798e2907bf28e3fce8649f80ff4d1b3f0ed2e321287b61ea84ff825923d8879d23d36f7a9bcbbb804294 + checksum: 10/1de88b70b7c903147807baa46497491a87600594fd0868b6538bbb9d7785242cabfbe8bccf36cc2285d0e17be72445b512d00c496952a159572545f3e6bcb199 languageName: node linkType: hard @@ -37712,12 +37956,12 @@ __metadata: languageName: node linkType: hard -"metro-resolver@npm:0.82.4": - version: 0.82.4 - resolution: "metro-resolver@npm:0.82.4" +"metro-resolver@npm:0.83.3": + version: 0.83.3 + resolution: "metro-resolver@npm:0.83.3" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10/15b2f1619e3979f9a9f3456ceeb07324354bcb57f22342b6a99e19cdb5d7421d65e03d608f1879231a17fa138cedb2ff10292a3a7f44d3c3bc6be9fd682680c1 + checksum: 10/a425376447505a088a365fc1fbe2753d452c0353a189f2c74833f2b30d6401de7ed90e36a927d355fa454d6c439a156eb66bcfcedfbbe8a78d313cf49acfbb4c languageName: node linkType: hard @@ -37731,13 +37975,13 @@ __metadata: languageName: node linkType: hard -"metro-runtime@npm:0.82.4, metro-runtime@npm:^0.82.0": - version: 0.82.4 - resolution: "metro-runtime@npm:0.82.4" +"metro-runtime@npm:0.83.3, metro-runtime@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-runtime@npm:0.83.3" dependencies: "@babel/runtime": "npm:^7.25.0" flow-enums-runtime: "npm:^0.0.6" - checksum: 10/a5536ce199b1b3a7dacb406c1a8c2df813eabd0fe6361b9b3c00a7d285afa4b355a480ff8af0d73fba7ec38939aa265c10fbbe3ba651bc5b6cae811bf610ea8d + checksum: 10/bf916759a7178e1d12e131c64ac67d6015ba35ead7a178e6efedd23f12ec65de99f450fe7da0ffb6c6edbfeb3cd186d2006b979a1c1c588377ae54f5f5d7921d languageName: node linkType: hard @@ -37757,21 +38001,21 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.82.4, metro-source-map@npm:^0.82.0": - version: 0.82.4 - resolution: "metro-source-map@npm:0.82.4" +"metro-source-map@npm:0.83.3, metro-source-map@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-source-map@npm:0.83.3" dependencies: "@babel/traverse": "npm:^7.25.3" "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" "@babel/types": "npm:^7.25.2" flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-symbolicate: "npm:0.82.4" + metro-symbolicate: "npm:0.83.3" nullthrows: "npm:^1.1.1" - ob1: "npm:0.82.4" + ob1: "npm:0.83.3" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" - checksum: 10/bd3b7bc2ec3474b2315cf14d36b77499aa04d9f8d8b70aff22b755da2cb9ed6850e38bfcea2bfd3ffd0704a17033e93965bb9013eefbb8a94e269e1221519a93 + checksum: 10/1dcfce503628275f97dd85945ca575c71e5654fd8872b7d86449f3352cfc84ea7a59889b2aad012361245b5497e1e097db73390245952dcfb63258ba32fa90bf languageName: node linkType: hard @@ -37791,19 +38035,19 @@ __metadata: languageName: node linkType: hard -"metro-symbolicate@npm:0.82.4": - version: 0.82.4 - resolution: "metro-symbolicate@npm:0.82.4" +"metro-symbolicate@npm:0.83.3": + version: 0.83.3 + resolution: "metro-symbolicate@npm:0.83.3" dependencies: flow-enums-runtime: "npm:^0.0.6" invariant: "npm:^2.2.4" - metro-source-map: "npm:0.82.4" + metro-source-map: "npm:0.83.3" nullthrows: "npm:^1.1.1" source-map: "npm:^0.5.6" vlq: "npm:^1.0.0" bin: metro-symbolicate: src/index.js - checksum: 10/264f84b6062948321c0180d6757bf87eefb517e363e5593a4062ff26172fbce3a6fb789e1907ec2002180fc93edc2ce9911419a8c89065fcdab278d1e5e5c29f + checksum: 10/f3be0740655732044e92728a3bccd5f4a73ab2f9e4423ca05faee02446e9b2efd9400cc7bcd761fad9bc2a1b92855ce5b03bf13e0421a203fe179be40dcc9381 languageName: node linkType: hard @@ -37820,9 +38064,9 @@ __metadata: languageName: node linkType: hard -"metro-transform-plugins@npm:0.82.4": - version: 0.82.4 - resolution: "metro-transform-plugins@npm:0.82.4" +"metro-transform-plugins@npm:0.83.3": + version: 0.83.3 + resolution: "metro-transform-plugins@npm:0.83.3" dependencies: "@babel/core": "npm:^7.25.2" "@babel/generator": "npm:^7.25.0" @@ -37830,7 +38074,7 @@ __metadata: "@babel/traverse": "npm:^7.25.3" flow-enums-runtime: "npm:^0.0.6" nullthrows: "npm:^1.1.1" - checksum: 10/1502fcf756c8676be6a9c955eb1a857b72dcf3478767a45ad0200750c113945a2abbc54fa86d559f0f482dd32163139402dd9ba743681ab6ae641567f2ba29e1 + checksum: 10/fa7efe6ab4f2ce5f66e1cb302f71341cf7fd55319cf360a269b187d2f507cecce8db8069f92585cf43517aee63e18cf6e66dd124db95c293902ab27c68ac43b1 languageName: node linkType: hard @@ -37855,24 +38099,24 @@ __metadata: languageName: node linkType: hard -"metro-transform-worker@npm:0.82.4": - version: 0.82.4 - resolution: "metro-transform-worker@npm:0.82.4" +"metro-transform-worker@npm:0.83.3": + version: 0.83.3 + resolution: "metro-transform-worker@npm:0.83.3" dependencies: "@babel/core": "npm:^7.25.2" "@babel/generator": "npm:^7.25.0" "@babel/parser": "npm:^7.25.3" "@babel/types": "npm:^7.25.2" flow-enums-runtime: "npm:^0.0.6" - metro: "npm:0.82.4" - metro-babel-transformer: "npm:0.82.4" - metro-cache: "npm:0.82.4" - metro-cache-key: "npm:0.82.4" - metro-minify-terser: "npm:0.82.4" - metro-source-map: "npm:0.82.4" - metro-transform-plugins: "npm:0.82.4" + metro: "npm:0.83.3" + metro-babel-transformer: "npm:0.83.3" + metro-cache: "npm:0.83.3" + metro-cache-key: "npm:0.83.3" + metro-minify-terser: "npm:0.83.3" + metro-source-map: "npm:0.83.3" + metro-transform-plugins: "npm:0.83.3" nullthrows: "npm:^1.1.1" - checksum: 10/6776198a92a088c23eb7894ab59069496c8c8678e2b7f2f2c76d8af154390223aa346d5ae39e3eade30ed792bb63cf554d240e69c6d383d8a7e1ec46a4399d04 + checksum: 10/e6db9b54a9b21f4b06fc665321a7aebc6206dbac3976bda74bdf4d101dbd50f91b2e49163581ca1c27b684a4eecc2db988f0fc7aaeb200d2d947cb05d3e89f18 languageName: node linkType: hard @@ -37936,9 +38180,9 @@ __metadata: languageName: node linkType: hard -"metro@npm:0.82.4, metro@npm:^0.82.0": - version: 0.82.4 - resolution: "metro@npm:0.82.4" +"metro@npm:0.83.3, metro@npm:^0.83.1": + version: 0.83.3 + resolution: "metro@npm:0.83.3" dependencies: "@babel/code-frame": "npm:^7.24.7" "@babel/core": "npm:^7.25.2" @@ -37955,24 +38199,24 @@ __metadata: error-stack-parser: "npm:^2.0.6" flow-enums-runtime: "npm:^0.0.6" graceful-fs: "npm:^4.2.4" - hermes-parser: "npm:0.28.1" + hermes-parser: "npm:0.32.0" image-size: "npm:^1.0.2" invariant: "npm:^2.2.4" jest-worker: "npm:^29.7.0" jsc-safe-url: "npm:^0.2.2" lodash.throttle: "npm:^4.1.1" - metro-babel-transformer: "npm:0.82.4" - metro-cache: "npm:0.82.4" - metro-cache-key: "npm:0.82.4" - metro-config: "npm:0.82.4" - metro-core: "npm:0.82.4" - metro-file-map: "npm:0.82.4" - metro-resolver: "npm:0.82.4" - metro-runtime: "npm:0.82.4" - metro-source-map: "npm:0.82.4" - metro-symbolicate: "npm:0.82.4" - metro-transform-plugins: "npm:0.82.4" - metro-transform-worker: "npm:0.82.4" + metro-babel-transformer: "npm:0.83.3" + metro-cache: "npm:0.83.3" + metro-cache-key: "npm:0.83.3" + metro-config: "npm:0.83.3" + metro-core: "npm:0.83.3" + metro-file-map: "npm:0.83.3" + metro-resolver: "npm:0.83.3" + metro-runtime: "npm:0.83.3" + metro-source-map: "npm:0.83.3" + metro-symbolicate: "npm:0.83.3" + metro-transform-plugins: "npm:0.83.3" + metro-transform-worker: "npm:0.83.3" mime-types: "npm:^2.1.27" nullthrows: "npm:^1.1.1" serialize-error: "npm:^2.1.0" @@ -37982,7 +38226,7 @@ __metadata: yargs: "npm:^17.6.2" bin: metro: src/cli.js - checksum: 10/c84af162f38429aa7d1fa41fea7b90e520465f0a63e55161a88192388426bc561b59ca1ddc6c3029543206446f4393d289ffa5559e07859e92bc854a5bb4ba16 + checksum: 10/c989031710f02e51d3030660f1913870885647c5a216068333f7b4c43363f9ede03a9efb3b068b6750c6decab40f541376c3d81b32389d24932a46e10d19ebe1 languageName: node linkType: hard @@ -38241,7 +38485,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.0.0": +"minimatch@npm:^10.0.0, minimatch@npm:^10.0.1, minimatch@npm:^10.1.1": version: 10.1.1 resolution: "minimatch@npm:10.1.1" dependencies: @@ -38547,6 +38791,15 @@ __metadata: languageName: node linkType: hard +"minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10/f47365cc2cb7f078cbe7e046eb52655e2e7e97f8c0a9a674f4da60d94fb0624edfcec9b5db32e8ba5a99a5f036f595680ae6fe02a262beaa73026e505cc52f99 + languageName: node + linkType: hard + "mississippi@npm:^3.0.0": version: 3.0.0 resolution: "mississippi@npm:3.0.0" @@ -39017,6 +39270,21 @@ __metadata: languageName: node linkType: hard +"nitrogen@npm:0.33.2": + version: 0.33.2 + resolution: "nitrogen@npm:0.33.2" + dependencies: + chalk: "npm:^5.3.0" + react-native-nitro-modules: "npm:^0.33.2" + ts-morph: "npm:^27.0.0" + yargs: "npm:^18.0.0" + zod: "npm:^4.0.5" + bin: + nitrogen: lib/index.js + checksum: 10/ace466a34000454a59d9629063903a32040a3fee7bfaf0c40564979ab99cb3cb03b08fa90f80a6c23b8bf1a769147bcf3dc282b36a260bf4738cd24b04920b25 + languageName: node + linkType: hard + "no-case@npm:^2.2.0": version: 2.3.2 resolution: "no-case@npm:2.3.2" @@ -39179,13 +39447,20 @@ __metadata: languageName: node linkType: hard -"node-forge@npm:^1, node-forge@npm:^1.2.1, node-forge@npm:^1.3.0, node-forge@npm:^1.3.1": +"node-forge@npm:^1, node-forge@npm:^1.3.0": version: 1.3.1 resolution: "node-forge@npm:1.3.1" checksum: 10/05bab6868633bf9ad4c3b1dd50ec501c22ffd69f556cdf169a00998ca1d03e8107a6032ba013852f202035372021b845603aeccd7dfcb58cdb7430013b3daa8d languageName: node linkType: hard +"node-forge@npm:^1.3.3": + version: 1.3.3 + resolution: "node-forge@npm:1.3.3" + checksum: 10/f41c31b9296771a4b8c955d58417471712f54f324603a35f8e6cbac19d5e6eaaf5fd5fd14584dfedecbf46a05438ded6eee60a5f2f0822fc5061aaa073cfc75d + languageName: node + linkType: hard + "node-gyp@npm:11.2.0, node-gyp@npm:latest": version: 11.2.0 resolution: "node-gyp@npm:11.2.0" @@ -39372,6 +39647,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.27": + version: 2.0.27 + resolution: "node-releases@npm:2.0.27" + checksum: 10/f6c78ddb392ae500719644afcbe68a9ea533242c02312eb6a34e8478506eb7482a3fb709c70235b01c32fe65625b68dfa9665113f816d87f163bc3819b62b106 + languageName: node + linkType: hard + "node-releases@npm:^2.0.6": version: 2.0.6 resolution: "node-releases@npm:2.0.6" @@ -39937,12 +40219,12 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.82.4": - version: 0.82.4 - resolution: "ob1@npm:0.82.4" +"ob1@npm:0.83.3": + version: 0.83.3 + resolution: "ob1@npm:0.83.3" dependencies: flow-enums-runtime: "npm:^0.0.6" - checksum: 10/8385f5a20195c5c6e61bd18528a10baebe2287dd67fcf5721efeffe89dc61c7ab2b6c56ae9c6649687dda80a20663c33c18e4fc5cc651fd53e6befed3b9d9cf1 + checksum: 10/20dfe91d48d0cadd97159cfd53f5abdca435b55d58b1f562e0687485e8f44f8a95e8ab3c835badd13d0d8c01e3d7b14d639a316aa4bf82841ac78b49611d4e5c languageName: node linkType: hard @@ -40243,7 +40525,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1, on-finished@npm:^2.4.1": +"on-finished@npm:2.4.1, on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -41145,7 +41427,7 @@ __metadata: languageName: node linkType: hard -"path-browserify@npm:1.0.1": +"path-browserify@npm:1.0.1, path-browserify@npm:^1.0.1": version: 1.0.1 resolution: "path-browserify@npm:1.0.1" checksum: 10/7e7368a5207e7c6b9051ef045711d0dc3c2b6203e96057e408e6e74d09f383061010d2be95cb8593fe6258a767c3e9fc6b2bfc7ce8d48ae8c3d9f6994cca9ad8 @@ -41298,16 +41580,6 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.11.1": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: "npm:^10.2.0" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434 - languageName: node - linkType: hard - "path-scurry@npm:^2.0.0": version: 2.0.0 resolution: "path-scurry@npm:2.0.0" @@ -41629,6 +41901,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.3": + version: 4.0.3 + resolution: "picomatch@npm:4.0.3" + checksum: 10/57b99055f40b16798f2802916d9c17e9744e620a0db136554af01d19598b96e45e2f00014c91d1b8b13874b80caa8c295b3d589a3f72373ec4aaf54baa5962d5 + languageName: node + linkType: hard + "pidtree@npm:^0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -43241,6 +43520,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:~6.14.0": + version: 6.14.1 + resolution: "qs@npm:6.14.1" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10/34b5ab00a910df432d55180ef39c1d1375e550f098b5ec153b41787f1a6a6d7e5f9495593c3b112b77dbc6709d0ae18e55b82847a4c2bbbb0de1e8ccbb1794c5 + languageName: node + linkType: hard + "qs@npm:~6.5.2": version: 6.5.2 resolution: "qs@npm:6.5.2" @@ -43443,6 +43731,18 @@ __metadata: languageName: node linkType: hard +"raw-body@npm:~2.5.3": + version: 2.5.3 + resolution: "raw-body@npm:2.5.3" + dependencies: + bytes: "npm:~3.1.2" + http-errors: "npm:~2.0.1" + iconv-lite: "npm:~0.4.24" + unpipe: "npm:~1.0.0" + checksum: 10/f35759fe5a6548e7c529121ead1de4dd163f899749a5896c42e278479df2d9d7f98b5bb17312737c03617765e5a1433e586f717616e5cfbebc13b4738b820601 + languageName: node + linkType: hard + "rc@npm:1.2.8, rc@npm:^1.2.7, rc@npm:^1.2.8, rc@npm:~1.2.7": version: 1.2.8 resolution: "rc@npm:1.2.8" @@ -43540,13 +43840,13 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^6.1.1": - version: 6.1.2 - resolution: "react-devtools-core@npm:6.1.2" +"react-devtools-core@npm:^6.1.5": + version: 6.1.5 + resolution: "react-devtools-core@npm:6.1.5" dependencies: shell-quote: "npm:^1.6.1" ws: "npm:^7" - checksum: 10/439c86343f0cff52512c11ecb4a52522cf92bbd4e5cf18a2a08ce0592aa6e8ae2f0f16058b0b9fb741ab67a5caa24a86ac240291d5042756bbd4f6e2c03cb8c6 + checksum: 10/0323f1d006979374b79ac83fced5bb10c04f2817d7bd4338074ead815ff441b943290d563d7796233767dd973787116a4b3c62040de4d770e0ae5b207fc8d480 languageName: node linkType: hard @@ -43562,14 +43862,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:19.0.0": - version: 19.0.0 - resolution: "react-dom@npm:19.0.0" +"react-dom@npm:19.1.0": + version: 19.1.0 + resolution: "react-dom@npm:19.1.0" dependencies: - scheduler: "npm:^0.25.0" + scheduler: "npm:^0.26.0" peerDependencies: - react: ^19.0.0 - checksum: 10/aa64a2f1991042f516260e8b0eca0ae777b6c8f1aa2b5ae096e80bbb6ac9b005aef2bca697969841d34f7e1819556263476bdfea36c35092e8d9aefde3de2d9a + react: ^19.1.0 + checksum: 10/c5b58605862c7b0bb044416b01c73647bb8e89717fb5d7a2c279b11815fb7b49b619fe685c404e59f55eb52c66831236cc565c25ee1c2d042739f4a2cc538aa2 languageName: node linkType: hard @@ -43655,10 +43955,10 @@ __metadata: languageName: node linkType: hard -"react-is@npm:^19.0.0": - version: 19.1.0 - resolution: "react-is@npm:19.1.0" - checksum: 10/4aceca94492032a19411138bf68c6ca7dce4abee7ae6c7f23db9291d2dff14d6a643717b176ef9a151e8cdf6a2b71fdbc59fd998328e086a6f752512304a252b +"react-is@npm:^19.1.0": + version: 19.2.3 + resolution: "react-is@npm:19.2.3" + checksum: 10/547ac397308204742447b5e4cf556cf09aa97f4cc1c95c4a28e4b2e73a7efab03e59d7b89b4a01f67bf9bf0ca87348a7f0e88bc87c0af6be458aaac1dec5e132 languageName: node linkType: hard @@ -43737,23 +44037,6 @@ __metadata: languageName: node linkType: hard -"react-native-edge-to-edge@npm:1.6.0": - version: 1.6.0 - resolution: "react-native-edge-to-edge@npm:1.6.0" - peerDependencies: - react: "*" - react-native: "*" - checksum: 10/9476f00c4cb60861799a4b306aa8e26275a503468f2b37e53af9c66a4eb2660b56b58f7bc4a77ee4c7ad7105cd489e186a08cda63a568c41217517b8f940be8a - languageName: node - linkType: hard - -"react-native-exit-app@npm:2.0.0": - version: 2.0.0 - resolution: "react-native-exit-app@npm:2.0.0" - checksum: 10/387d9cb02036a6f91bff3d47e13950afb28258718745eed7917c2c416e213f44d2e20735083ce6235757caf2a58a1d08bc486c5130d9232b02583d343751d4d0 - languageName: node - linkType: hard - "react-native-file-viewer@npm:2.1.5": version: 2.1.5 resolution: "react-native-file-viewer@npm:2.1.5" @@ -43763,22 +44046,6 @@ __metadata: languageName: node linkType: hard -"react-native-fs@npm:2.20.0": - version: 2.20.0 - resolution: "react-native-fs@npm:2.20.0" - dependencies: - base-64: "npm:^0.1.0" - utf8: "npm:^3.0.0" - peerDependencies: - react-native: "*" - react-native-windows: "*" - peerDependenciesMeta: - react-native-windows: - optional: true - checksum: 10/372e59f55d5e544e87093d832896fa3d56ba9802ca140c17b4b8903afe047714e022d3b1a2ddf18d744cb7f4f973593c8083641db9ae0768688b1390078d67a2 - languageName: node - linkType: hard - "react-native-get-random-values@npm:1.11.0": version: 1.11.0 resolution: "react-native-get-random-values@npm:1.11.0" @@ -43836,6 +44103,16 @@ __metadata: languageName: node linkType: hard +"react-native-nitro-modules@npm:0.33.2, react-native-nitro-modules@npm:^0.33.2": + version: 0.33.2 + resolution: "react-native-nitro-modules@npm:0.33.2" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10/fece339c9f69b256d4e18e6fbf29bc52a16e2e8ea7e70551d8265dbaf455402a67fd8ca9f4e8abe5b6e6d3e33bf6c598d4e980dbbed00a3b791f6fa49c98be17 + languageName: node + linkType: hard + "react-native-paper@npm:5.14.5": version: 5.14.5 resolution: "react-native-paper@npm:5.14.5" @@ -43872,15 +44149,13 @@ __metadata: languageName: node linkType: hard -"react-native-quick-base64@npm:^2.0.5": - version: 2.1.2 - resolution: "react-native-quick-base64@npm:2.1.2" - dependencies: - base64-js: "npm:^1.5.1" +"react-native-quick-base64@npm:2.2.2, react-native-quick-base64@npm:^2.2.2": + version: 2.2.2 + resolution: "react-native-quick-base64@npm:2.2.2" peerDependencies: react: "*" react-native: "*" - checksum: 10/20b205612417a6c39452ad3ebd205d74fcfaa244832ec9e717b87ee075bf28076bf2445e8f690aad8cf0be6f3da89b4148eb8379d0b71d1c953bd06f66cc7c56 + checksum: 10/aeebf6f520830dc042201e2a72a381fb29d1376fe0acdf9e266c8a7e3499f45534b11b27b2241bf6cf007ff82874b6def9fa52d62f0027953fc2e6f8d0009266 languageName: node linkType: hard @@ -43950,9 +44225,9 @@ __metadata: languageName: node linkType: hard -"react-native-svg@npm:15.13.0": - version: 15.13.0 - resolution: "react-native-svg@npm:15.13.0" +"react-native-svg@npm:15.12.1": + version: 15.12.1 + resolution: "react-native-svg@npm:15.12.1" dependencies: css-select: "npm:^5.1.0" css-tree: "npm:^1.1.3" @@ -43960,7 +44235,7 @@ __metadata: peerDependencies: react: "*" react-native: "*" - checksum: 10/03db4516aec2dfcdf406283bf6b0e18ea3f56cdf228c97f92d282128b1e39c3336424d46a1afec894ebc1c3681b16d2c35c03b08a8a5ee2314c124bdea7ae6e3 + checksum: 10/aa7b3a54cf2eb52aeb1322ba4a3f63176d4da0725ea4b9ec0051a59df0a511dc189fd101abf7993e94676c1cdea736e4abb207a0aea6f3083b5982c48e4648ac languageName: node linkType: hard @@ -44003,16 +44278,16 @@ __metadata: languageName: node linkType: hard -"react-native-webview@npm:13.16.0": - version: 13.16.0 - resolution: "react-native-webview@npm:13.16.0" +"react-native-webview@npm:13.15.0": + version: 13.15.0 + resolution: "react-native-webview@npm:13.15.0" dependencies: escape-string-regexp: "npm:^4.0.0" invariant: "npm:2.2.4" peerDependencies: react: "*" react-native: "*" - checksum: 10/dc3d84c4785676bac3f316ec2119d3239f64fd8b18400dcc1cf8fa4f05b9bf677cf167aa4e7da72c9f60760eb6303c99da22324e15ff5fb380a3b1b31f531132 + checksum: 10/7d4b23cb0536199ab2339644d8b6ce720e794ac9a8200f23746032a768a61af8727d2401fc000be09b4fb478dce6f795d7d400945a17ab013a3bbc92a5077e4e languageName: node linkType: hard @@ -44070,107 +44345,53 @@ __metadata: languageName: node linkType: hard -"react-native@npm:0.79.2": - version: 0.79.2 - resolution: "react-native@npm:0.79.2" +"react-native@npm:0.81.5": + version: 0.81.5 + resolution: "react-native@npm:0.81.5" dependencies: "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.79.2" - "@react-native/codegen": "npm:0.79.2" - "@react-native/community-cli-plugin": "npm:0.79.2" - "@react-native/gradle-plugin": "npm:0.79.2" - "@react-native/js-polyfills": "npm:0.79.2" - "@react-native/normalize-colors": "npm:0.79.2" - "@react-native/virtualized-lists": "npm:0.79.2" + "@react-native/assets-registry": "npm:0.81.5" + "@react-native/codegen": "npm:0.81.5" + "@react-native/community-cli-plugin": "npm:0.81.5" + "@react-native/gradle-plugin": "npm:0.81.5" + "@react-native/js-polyfills": "npm:0.81.5" + "@react-native/normalize-colors": "npm:0.81.5" + "@react-native/virtualized-lists": "npm:0.81.5" abort-controller: "npm:^3.0.0" anser: "npm:^1.4.9" ansi-regex: "npm:^5.0.0" babel-jest: "npm:^29.7.0" - babel-plugin-syntax-hermes-parser: "npm:0.25.1" + babel-plugin-syntax-hermes-parser: "npm:0.29.1" base64-js: "npm:^1.5.1" - chalk: "npm:^4.0.0" commander: "npm:^12.0.0" - event-target-shim: "npm:^5.0.1" flow-enums-runtime: "npm:^0.0.6" glob: "npm:^7.1.1" invariant: "npm:^2.2.4" jest-environment-node: "npm:^29.7.0" memoize-one: "npm:^5.0.0" - metro-runtime: "npm:^0.82.0" - metro-source-map: "npm:^0.82.0" + metro-runtime: "npm:^0.83.1" + metro-source-map: "npm:^0.83.1" nullthrows: "npm:^1.1.1" pretty-format: "npm:^29.7.0" promise: "npm:^8.3.0" - react-devtools-core: "npm:^6.1.1" + react-devtools-core: "npm:^6.1.5" react-refresh: "npm:^0.14.0" regenerator-runtime: "npm:^0.13.2" - scheduler: "npm:0.25.0" + scheduler: "npm:0.26.0" semver: "npm:^7.1.3" stacktrace-parser: "npm:^0.1.10" whatwg-fetch: "npm:^3.0.0" ws: "npm:^6.2.3" yargs: "npm:^17.6.2" peerDependencies: - "@types/react": ^19.0.0 - react: ^19.0.0 + "@types/react": ^19.1.0 + react: ^19.1.0 peerDependenciesMeta: "@types/react": optional: true bin: react-native: cli.js - checksum: 10/a3acaf322d32b1ee2400b18f71a0e4331249c562096b807f03b1a988f858610a8f758cf1ee515724e9f7a10e064d5fa0c8e1c1a258616f74296b229ba99bfb3d - languageName: node - linkType: hard - -"react-native@patch:react-native@npm%3A0.79.2#./.yarn/patches/react-native-npm-0.79.2-9db13eddfe.patch::locator=root%40workspace%3A.": - version: 0.79.2 - resolution: "react-native@patch:react-native@npm%3A0.79.2#./.yarn/patches/react-native-npm-0.79.2-9db13eddfe.patch::version=0.79.2&hash=3aa006&locator=root%40workspace%3A." - dependencies: - "@jest/create-cache-key-function": "npm:^29.7.0" - "@react-native/assets-registry": "npm:0.79.2" - "@react-native/codegen": "npm:0.79.2" - "@react-native/community-cli-plugin": "npm:0.79.2" - "@react-native/gradle-plugin": "npm:0.79.2" - "@react-native/js-polyfills": "npm:0.79.2" - "@react-native/normalize-colors": "npm:0.79.2" - "@react-native/virtualized-lists": "npm:0.79.2" - abort-controller: "npm:^3.0.0" - anser: "npm:^1.4.9" - ansi-regex: "npm:^5.0.0" - babel-jest: "npm:^29.7.0" - babel-plugin-syntax-hermes-parser: "npm:0.25.1" - base64-js: "npm:^1.5.1" - chalk: "npm:^4.0.0" - commander: "npm:^12.0.0" - event-target-shim: "npm:^5.0.1" - flow-enums-runtime: "npm:^0.0.6" - glob: "npm:^7.1.1" - invariant: "npm:^2.2.4" - jest-environment-node: "npm:^29.7.0" - memoize-one: "npm:^5.0.0" - metro-runtime: "npm:^0.82.0" - metro-source-map: "npm:^0.82.0" - nullthrows: "npm:^1.1.1" - pretty-format: "npm:^29.7.0" - promise: "npm:^8.3.0" - react-devtools-core: "npm:^6.1.1" - react-refresh: "npm:^0.14.0" - regenerator-runtime: "npm:^0.13.2" - scheduler: "npm:0.25.0" - semver: "npm:^7.1.3" - stacktrace-parser: "npm:^0.1.10" - whatwg-fetch: "npm:^3.0.0" - ws: "npm:^6.2.3" - yargs: "npm:^17.6.2" - peerDependencies: - "@types/react": ^19.0.0 - react: ^19.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - bin: - react-native: cli.js - checksum: 10/52c8c3ff0dc82773c445533442d8652f37ecf697ed46927baf5cf891780c4da30ae5d247799a0e68a574f2b2b400da3423fd5d56f1cbd454e420cdca68a8233e + checksum: 10/ee472f6cb3a86d9e154e3ac43830424403c8b5d23c6f613f0ac39953b7123352bdb6056270078d98ebbf77ac26fb00d86e50a9c4521a2db93072281937a8d9b0 languageName: node linkType: hard @@ -44340,15 +44561,15 @@ __metadata: languageName: node linkType: hard -"react-test-renderer@npm:19.0.0": - version: 19.0.0 - resolution: "react-test-renderer@npm:19.0.0" +"react-test-renderer@npm:19.1.0": + version: 19.1.0 + resolution: "react-test-renderer@npm:19.1.0" dependencies: - react-is: "npm:^19.0.0" - scheduler: "npm:^0.25.0" + react-is: "npm:^19.1.0" + scheduler: "npm:^0.26.0" peerDependencies: - react: ^19.0.0 - checksum: 10/b95a90331e1dedeff2bbdcdc57b9cd1cd8d7cd620f9b29a4efd31a961c8e5b660fe55129ffc72f2bbf0c21fec34e6a498b9f07b6c65c22bf10ae87b68e124f91 + react: ^19.1.0 + checksum: 10/73ae0ea779bacd0ff084dd3644b763a4431d68adf9c6acffdaa3d0810aab5322f24c95c60259c23b77f38b5f36d9d614ffaa46d91a33840536f2d4b7188dcc89 languageName: node linkType: hard @@ -44414,10 +44635,10 @@ __metadata: languageName: node linkType: hard -"react@npm:19.0.0": - version: 19.0.0 - resolution: "react@npm:19.0.0" - checksum: 10/2490969c503f644703c88990d20e4011fa6119ddeca451e9de48f6d7ab058d670d2852a5fcd3aa3cd90a923ab2815d532637bd4a814add402ae5c0d4f129ee71 +"react@npm:19.1.0": + version: 19.1.0 + resolution: "react@npm:19.1.0" + checksum: 10/d0180689826fd9de87e839c365f6f361c561daea397d61d724687cae88f432a307d1c0f53a0ee95ddbe3352c10dac41d7ff1ad85530fb24951b27a39e5398db4 languageName: node linkType: hard @@ -44676,15 +44897,15 @@ __metadata: linkType: hard "readable-stream@npm:^4.5.2": - version: 4.5.2 - resolution: "readable-stream@npm:4.5.2" + version: 4.7.0 + resolution: "readable-stream@npm:4.7.0" dependencies: abort-controller: "npm:^3.0.0" buffer: "npm:^6.0.3" events: "npm:^3.3.0" process: "npm:^0.11.10" string_decoder: "npm:^1.3.0" - checksum: 10/01b128a559c5fd76a898495f858cf0a8839f135e6a69e3409f986e88460134791657eb46a2ff16826f331682a3c4d0c5a75cef5e52ef259711021ba52b1c2e82 + checksum: 10/bdf096c8ff59452ce5d08f13da9597f9fcfe400b4facfaa88e74ec057e5ad1fdfa140ffe28e5ed806cf4d2055f0b812806e962bca91dce31bc4cef08e53be3a4 languageName: node linkType: hard @@ -46281,10 +46502,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:0.25.0, scheduler@npm:^0.25.0": - version: 0.25.0 - resolution: "scheduler@npm:0.25.0" - checksum: 10/e661e38503ab29a153429a99203fefa764f28b35c079719eb5efdd2c1c1086522f6653d8ffce388209682c23891a6d1d32fa6badf53c35fb5b9cd0c55ace42de +"scheduler@npm:0.26.0, scheduler@npm:^0.26.0": + version: 0.26.0 + resolution: "scheduler@npm:0.26.0" + checksum: 10/1ecf2e5d7de1a7a132796834afe14a2d589ba7e437615bd8c06f3e0786a3ac3434655e67aac8755d9b14e05754c177e49c064261de2673aaa3c926bc98caa002 languageName: node linkType: hard @@ -46897,7 +47118,7 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.2.0": +"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e @@ -47178,6 +47399,13 @@ __metadata: languageName: node linkType: hard +"shell-quote@npm:^1.8.3": + version: 1.8.3 + resolution: "shell-quote@npm:1.8.3" + checksum: 10/5473e354637c2bd698911224129c9a8961697486cff1fb221f234d71c153fc377674029b0223d1d3c953a68d451d79366abfe53d1a0b46ee1f28eb9ade928f4c + languageName: node + linkType: hard + "shelljs@npm:^0.8.4, shelljs@npm:^0.8.5": version: 0.8.5 resolution: "shelljs@npm:0.8.5" @@ -48194,6 +48422,13 @@ __metadata: languageName: node linkType: hard +"statuses@npm:~2.0.2": + version: 2.0.2 + resolution: "statuses@npm:2.0.2" + checksum: 10/6927feb50c2a75b2a4caab2c565491f7a93ad3d8dbad7b1398d52359e9243a20e2ebe35e33726dee945125ef7a515e9097d8a1b910ba2bbd818265a2f6c39879 + languageName: node + linkType: hard + "std-env@npm:^3.0.1": version: 3.4.3 resolution: "std-env@npm:3.4.3" @@ -48456,6 +48691,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.2.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10/42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 + languageName: node + linkType: hard + "string-width@npm:^8.0.0": version: 8.1.0 resolution: "string-width@npm:8.1.0" @@ -49061,21 +49307,21 @@ __metadata: languageName: node linkType: hard -"sucrase@npm:3.35.0": - version: 3.35.0 - resolution: "sucrase@npm:3.35.0" +"sucrase@npm:~3.35.1": + version: 3.35.1 + resolution: "sucrase@npm:3.35.1" dependencies: "@jridgewell/gen-mapping": "npm:^0.3.2" commander: "npm:^4.0.0" - glob: "npm:^10.3.10" lines-and-columns: "npm:^1.1.6" mz: "npm:^2.7.0" pirates: "npm:^4.0.1" + tinyglobby: "npm:^0.2.11" ts-interface-checker: "npm:^0.1.9" bin: sucrase: bin/sucrase sucrase-node: bin/sucrase-node - checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe + checksum: 10/539f5c6ebc1ff8d449a89eb52b8c8944a730b9840ddadbd299a7d89ebcf16c3f4bc9aa59e1f2e112a502e5cf1508f7e02065f0e97c0435eb9a7058e997dfff5a languageName: node linkType: hard @@ -49509,6 +49755,19 @@ __metadata: languageName: node linkType: hard +"tar@npm:^7.5.2": + version: 7.5.2 + resolution: "tar@npm:7.5.2" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10/dbad9c9a07863cd1bdf8801d563b3280aa7dd0f4a6cead779ff7516d148dc80b4c04639ba732d47f91f04002f57e8c3c6573a717d649daecaac74ce71daa7ad3 + languageName: node + linkType: hard + "tarn@npm:^3.0.2": version: 3.0.2 resolution: "tarn@npm:3.0.2" @@ -50004,6 +50263,16 @@ __metadata: languageName: node linkType: hard +"tinyglobby@npm:^0.2.11, tinyglobby@npm:^0.2.14": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: 10/d72bd826a8b0fa5fa3929e7fe5ba48fceb2ae495df3a231b6c5408cd7d8c00b58ab5a9c2a76ba56a62ee9b5e083626f1f33599734bed1ffc4b792406408f0ca2 + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.12": version: 0.2.14 resolution: "tinyglobby@npm:0.2.14" @@ -50192,7 +50461,7 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.1": +"toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 @@ -50536,6 +50805,16 @@ __metadata: languageName: node linkType: hard +"ts-morph@npm:^27.0.0": + version: 27.0.2 + resolution: "ts-morph@npm:27.0.2" + dependencies: + "@ts-morph/common": "npm:~0.28.1" + code-block-writer: "npm:^13.0.3" + checksum: 10/b9bd8ed86d4b76ca23446d3f808787cfe95a3bcb2316769a2f3fa262ea9ab4043bb76bf8aef677f9be0d758576f074df2926e701a535f84fd21946fdbf465148 + languageName: node + linkType: hard + "ts-node@npm:10.9.2": version: 10.9.2 resolution: "ts-node@npm:10.9.2" @@ -51797,6 +52076,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.2.0": + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10/059f774300efb4b084a49293143c511f3ae946d40397b5c30914e900cd5691a12b8e61b41dd54ed73d3b56c8204165a0333107dd784ccf8f8c81790bcc423175 + languageName: node + linkType: hard + "update-notifier@npm:^5.1.0": version: 5.1.0 resolution: "update-notifier@npm:5.1.0" @@ -52021,13 +52314,6 @@ __metadata: languageName: node linkType: hard -"utf8@npm:^3.0.0": - version: 3.0.0 - resolution: "utf8@npm:3.0.0" - checksum: 10/31d19c4faacbb65b09ebc1c21c32b20bdb0919c6f6773cee5001b99bb83f8e503e7233c08fc71ebb34f7cfebd95cec3243b81d90176097aa2f286cccb4ce866e - languageName: node - linkType: hard - "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -53902,7 +54188,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.8.1": +"yaml@npm:^2.6.1, yaml@npm:^2.8.1": version: 2.8.2 resolution: "yaml@npm:2.8.2" bin: @@ -53952,6 +54238,13 @@ __metadata: languageName: node linkType: hard +"yargs-parser@npm:^22.0.0": + version: 22.0.0 + resolution: "yargs-parser@npm:22.0.0" + checksum: 10/f13c42bad6ebed1a587a72f2db5694f5fa772bcaf409a701691d13cf74eb5adfcf61a2611de08807e319b829d3e5e6e1578b16ebe174cae8e8be3bf7b8e7a19e + languageName: node + linkType: hard + "yargs-parser@npm:^5.0.1": version: 5.0.1 resolution: "yargs-parser@npm:5.0.1" @@ -54054,6 +54347,20 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^18.0.0": + version: 18.0.0 + resolution: "yargs@npm:18.0.0" + dependencies: + cliui: "npm:^9.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + string-width: "npm:^7.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^22.0.0" + checksum: 10/5af36234871390386b31cac99f00e79fcbc2ead858a61b30a8ca381c5fde5df8af0b407c36b000d3f774bcbe4aec5833f2f1c915f6ddc49ce97b78176b651801 + languageName: node + linkType: hard + "yargs@npm:^7.1.0": version: 7.1.2 resolution: "yargs@npm:7.1.2" @@ -54193,6 +54500,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:^4.0.5": + version: 4.3.6 + resolution: "zod@npm:4.3.6" + checksum: 10/25fc0f62e01b557b4644bf0b393bbaf47542ab30877c37837ea8caf314a8713d220c7d7fe51f68ffa72f0e1018ddfa34d96f1973d23033f5a2a5a9b6b9d9da01 + languageName: node + linkType: hard + "zwitch@npm:^1.0.0": version: 1.0.5 resolution: "zwitch@npm:1.0.5"