expo-sqlite 58.0.3 → 58.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/cache-v2-9594dd53e9b9bd1c31d4.json +1455 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-2db5a9f07e8966437862.json +194 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-03c56ba9db51f27a9903.json +60 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/index-2026-09-22T11-33-36-0818.json +92 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/target-expo-sqlite-Debug-c772ae8b3b89e3b342ea.json +310 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.ninja_deps +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/.ninja_log +13 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeCache.txt +431 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/CMakeOutput.log +264 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/Users/alanhughes/Work/expo/packages/expo-sqlite/vendor/sqlite3/sqlite3.c.o +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/rules.ninja +74 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/additional_project_files.txt +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/android_gradle_build.json +44 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/android_gradle_build_mini.json +31 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/build.ninja +185 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/build_file_index.txt +3 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/cmake_install.cmake +54 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/compile_commands.json +27 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/compile_commands.json.bin +0 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/configure_fingerprint.bin +32 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/metadata_generation_command.txt +25 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/prefab_config.json +8 -0
- package/android/.cxx/Debug/611h1z2v/arm64-v8a/symbol_folder_index.txt +1 -0
- package/android/.cxx/Debug/611h1z2v/hash_key.txt +32 -0
- package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/cache-v2-d1b849159435ca2b67e4.json +1455 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/cmakeFiles-v1-388a979374686240c8ac.json +194 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/codemodel-v2-f1348e51cdfbc75a2d03.json +60 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/index-2026-09-22T12-20-49-0455.json +92 -0
- package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/target-expo-sqlite-Debug-fd3cc878da09f49b20b0.json +310 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeCache.txt +431 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/CMakeOutput.log +256 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/rules.ninja +74 -0
- package/android/.cxx/Debug/611h1z2v/x86/additional_project_files.txt +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/android_gradle_build.json +44 -0
- package/android/.cxx/Debug/611h1z2v/x86/android_gradle_build_mini.json +31 -0
- package/android/.cxx/Debug/611h1z2v/x86/build.ninja +185 -0
- package/android/.cxx/Debug/611h1z2v/x86/build_file_index.txt +3 -0
- package/android/.cxx/Debug/611h1z2v/x86/cmake_install.cmake +54 -0
- package/android/.cxx/Debug/611h1z2v/x86/compile_commands.json +27 -0
- package/android/.cxx/Debug/611h1z2v/x86/compile_commands.json.bin +0 -0
- package/android/.cxx/Debug/611h1z2v/x86/configure_fingerprint.bin +33 -0
- package/android/.cxx/Debug/611h1z2v/x86/metadata_generation_command.txt +25 -0
- package/android/.cxx/Debug/611h1z2v/x86/prefab_config.json +8 -0
- package/android/.cxx/Debug/611h1z2v/x86/symbol_folder_index.txt +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/cache-v2-78bbb67ef2e5303a90f2.json +1487 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-36ba212a0f357943e830.json +809 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-116f50c3201537e03e27.json +60 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/index-2026-09-23T15-39-54-0780.json +92 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-90901361ee8d4c0f0611.json +310 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.ninja_deps +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.ninja_log +7 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeCache.txt +431 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/CMakeOutput.log +264 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/Users/alanhughes/Work/expo/packages/expo-sqlite/vendor/sqlite3/sqlite3.c.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/rules.ninja +74 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/additional_project_files.txt +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/android_gradle_build.json +44 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/android_gradle_build_mini.json +31 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/build.ninja +196 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/build_file_index.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/cmake_install.cmake +54 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/compile_commands.json +27 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/compile_commands.json.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/configure_fingerprint.bin +28 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/metadata_generation_command.txt +25 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/prefab_config.json +8 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/symbol_folder_index.txt +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/cache-v2-243a4f0bf11e91cdc4d8.json +1487 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-74456d66c64ab5130b71.json +809 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-c0e5c09f8d4af05e23da.json +60 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/index-2026-09-23T15-40-10-0509.json +92 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-4ba3a43729b4fa322330.json +310 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.ninja_deps +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.ninja_log +7 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeCache.txt +431 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/CMakeOutput.log +266 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/Users/alanhughes/Work/expo/packages/expo-sqlite/vendor/sqlite3/sqlite3.c.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/rules.ninja +74 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/additional_project_files.txt +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/android_gradle_build.json +44 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/android_gradle_build_mini.json +31 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/build.ninja +196 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/build_file_index.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/cmake_install.cmake +54 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/compile_commands.json +27 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/compile_commands.json.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/configure_fingerprint.bin +28 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/metadata_generation_command.txt +25 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/prefab_config.json +8 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/symbol_folder_index.txt +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/hash_key.txt +32 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/cache-v2-336121a96d78e6796dce.json +1487 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/cmakeFiles-v1-985fbc81afea194fb834.json +809 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/codemodel-v2-7f2c86bf1ed6bb14f83e.json +60 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/index-2026-09-23T15-40-25-0497.json +92 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-8831e9862f5bc79725de.json +310 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.ninja_deps +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.ninja_log +7 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeCache.txt +431 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/CMakeOutput.log +256 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/Users/alanhughes/Work/expo/packages/expo-sqlite/vendor/sqlite3/sqlite3.c.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/rules.ninja +74 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/additional_project_files.txt +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/android_gradle_build.json +44 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/android_gradle_build_mini.json +31 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/build.ninja +196 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/build_file_index.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/cmake_install.cmake +54 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/compile_commands.json +27 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/compile_commands.json.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/configure_fingerprint.bin +28 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/metadata_generation_command.txt +25 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/prefab_config.json +8 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/symbol_folder_index.txt +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/cache-v2-7680fd2ea5093a2a48e5.json +1487 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-f4180429c22746cfd636.json +809 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/codemodel-v2-60fec8725e2bb1fa02e5.json +60 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/index-2026-09-23T15-40-37-0921.json +92 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-baac7cda33db6bea8600.json +310 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.ninja_deps +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.ninja_log +7 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeCache.txt +431 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/CMakeOutput.log +258 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/TargetDirectories.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/cmake.check_cache +1 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/Users/alanhughes/Work/expo/packages/expo-sqlite/vendor/sqlite3/sqlite3.c.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/rules.ninja +74 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/additional_project_files.txt +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/android_gradle_build.json +44 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/android_gradle_build_mini.json +31 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/build.ninja +196 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/build_file_index.txt +3 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/cmake_install.cmake +54 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/compile_commands.json +27 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/compile_commands.json.bin +0 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/configure_fingerprint.bin +28 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/metadata_generation_command.txt +25 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/prefab_config.json +8 -0
- package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/symbol_folder_index.txt +1 -0
- package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +27 -0
- package/android/.cxx/tools/debug/x86/compile_commands.json +27 -0
- package/android/.cxx/tools/release/arm64-v8a/compile_commands.json +27 -0
- package/android/.cxx/tools/release/armeabi-v7a/compile_commands.json +27 -0
- package/android/.cxx/tools/release/x86/compile_commands.json +27 -0
- package/android/.cxx/tools/release/x86_64/compile_commands.json +27 -0
- package/android/build.gradle +2 -2
- package/android/src/main/cpp/NativeDatabaseBinding.cpp +3 -0
- package/android/src/main/cpp/NativeDatabaseBinding.h +1 -0
- package/android/src/main/java/expo/modules/sqlite/NativeDatabase.kt +2 -0
- package/android/src/main/java/expo/modules/sqlite/NativeDatabaseBinding.kt +1 -0
- package/android/src/main/java/expo/modules/sqlite/SQLExceptions.kt +3 -0
- package/android/src/main/java/expo/modules/sqlite/SQLiteModule.kt +24 -5
- package/build/NativeDatabase.d.ts +1 -0
- package/build/NativeDatabase.js.map +1 -1
- package/build/SQLiteDatabase.d.ts +19 -0
- package/build/SQLiteDatabase.js +36 -3
- package/build/SQLiteDatabase.js.map +1 -1
- package/build/hooks.d.ts +1 -1
- package/dev-plugin-dist/+not-found.html +1 -1
- package/dev-plugin-dist/_expo/static/js/web/__common-b5c30377ac28ec1a3c7472c7feddcab4.js +48 -0
- package/dev-plugin-dist/_expo/static/js/web/__expo-metro-runtime-8c088df87a31e4e6accd81c554ec290d.js +5 -0
- package/dev-plugin-dist/_expo/static/js/web/_layout-d4a58f50ebdda8715adad68e1571bc0e.js +24 -0
- package/dev-plugin-dist/_expo/static/js/web/entry-9124ce1ac56db7583dd09a0f5dab7f3c.js +836 -0
- package/dev-plugin-dist/_expo/static/js/web/{entry-cd0faf04fd80434b56cfdcef6d043e6f.js → index-5d44464b52f351ee1a8d579d6ec31de6.js} +1740 -2649
- package/dev-plugin-dist/_expo/static/js/web/{worker-8ce5600e5e057a5d4ef584466dc6a249.js → worker-634941622d077e92764ccbb4960edffc.js} +14 -14
- package/dev-plugin-dist/_sitemap.html +1 -1
- package/dev-plugin-dist/index.html +1 -1
- package/expo-module.config.json +1 -1
- package/ios/DatabaseChangeEvent.swift +15 -0
- package/ios/Exceptions.swift +6 -0
- package/ios/NativeDatabase.swift +147 -4
- package/ios/NativeSession.swift +164 -2
- package/ios/NativeStatement.swift +90 -3
- package/ios/SQLiteModule.swift +191 -452
- package/ios/SQLiteOptions.swift +2 -14
- package/ios/Tests/NativeDatabaseTests.swift +105 -0
- package/ios/Tests/NativeSessionTests.swift +102 -0
- package/ios/Tests/NativeStatementTests.swift +90 -0
- package/ios/Tests/OpenDatabaseOptionsTests.swift +44 -0
- package/ios/Tests/SQLiteModuleTests.swift +116 -0
- package/ios/Tests/StatementLockTests.swift +12 -16
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.3/expo.modules.sqlite-58.0.3.module → 58.0.5/expo.modules.sqlite-58.0.5.module} +22 -22
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.3/expo.modules.sqlite-58.0.3.pom → 58.0.5/expo.modules.sqlite-58.0.5.pom} +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.md5 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha1 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha256 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha512 +1 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml +4 -4
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.md5 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha1 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha256 +1 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha512 +1 -1
- package/package.json +4 -4
- package/src/NativeDatabase.ts +1 -0
- package/src/SQLiteDatabase.ts +38 -3
- package/web/SQLiteModule.node.ts +2 -0
- package/web/SQLiteModule.ts +5 -1
- package/.babelrc +0 -3
- package/.gitignore +0 -8
- package/.npmignore +0 -32
- package/.prettierignore +0 -2
- package/.tsbuildinfo +0 -1
- package/android/.gitignore +0 -263
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar +0 -0
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.sha512 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.md5 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.sha1 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.sha256 +0 -1
- package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.sha512 +0 -1
- package/plugin/.tsbuildinfo +0 -1
- package/plugin/tsconfig.json +0 -10
- package/plugin/tsconfig.tsbuildinfo +0 -1
- package/tsconfig.all.json +0 -11
- package/tsconfig.json +0 -10
- package/turbo.json +0 -14
- package/web/wa-sqlite/types/tsconfig.json +0 -7
package/ios/SQLiteModule.swift
CHANGED
|
@@ -2,98 +2,123 @@
|
|
|
2
2
|
|
|
3
3
|
import ExpoModulesCore
|
|
4
4
|
|
|
5
|
-
private typealias SQLiteColumnNames = [String]
|
|
6
5
|
private typealias SQLiteColumnValues = [Any]
|
|
7
6
|
private let SQLITE_TRANSIENT = unsafeBitCast(OpaquePointer(bitPattern: -1), to: sqlite3_destructor_type.self)
|
|
8
7
|
private let MEMORY_DB_NAME = ":memory:"
|
|
9
8
|
|
|
10
9
|
private let moduleQueue = DispatchQueue(label: "expo.module.sqlite.AsyncQueue", qos: .userInitiated, attributes: .concurrent)
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
// `@unchecked Sendable`: the `@JS(.concurrent)` members send the module off the JavaScript thread, which
|
|
12
|
+
// Swift 6 mode allows only for a `Sendable` module. The mutable state is either guarded by `lockQueue` or
|
|
13
|
+
// only read off the JavaScript thread (`hasListeners`).
|
|
14
|
+
@ExpoModule("ExpoSQLite")
|
|
15
|
+
public final class SQLiteModule: Module, @unchecked Sendable {
|
|
13
16
|
// Store unmanaged (SQLiteModule, Database) pairs for sqlite callbacks,
|
|
14
17
|
// will release the pair when `closeDatabase` is called.
|
|
15
18
|
private var contextPairs = [Unmanaged<AnyObject>]()
|
|
16
19
|
|
|
17
20
|
private static let lockQueue = DispatchQueue(label: "expo.modules.sqlite.lockQueue")
|
|
18
21
|
private var cachedDatabases = [NativeDatabase]()
|
|
19
|
-
private var hasListeners = false
|
|
22
|
+
private(set) var hasListeners = false
|
|
23
|
+
|
|
24
|
+
@JS
|
|
25
|
+
var defaultDatabaseDirectory: String? {
|
|
26
|
+
#if os(tvOS)
|
|
27
|
+
return appContext?.config.cacheDirectory?.appendingPathComponent("SQLite").standardized.path
|
|
28
|
+
#else
|
|
29
|
+
return appContext?.config.documentDirectory?.appendingPathComponent("SQLite").standardized.path
|
|
30
|
+
#endif
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@JS
|
|
34
|
+
var bundledExtensions: [String: [String: String?]] {
|
|
35
|
+
var bundledExtensions: [String: [String: String?]] = [:]
|
|
36
|
+
#if WITH_SQLITE_VEC
|
|
37
|
+
bundledExtensions["sqlite-vec"] = [
|
|
38
|
+
"libPath": Bundle(identifier: "sqlite-vec")?.path(forResource: "vec", ofType: ""),
|
|
39
|
+
"entryPoint": "sqlite3_vec_init"
|
|
40
|
+
]
|
|
41
|
+
#endif
|
|
42
|
+
return bundledExtensions
|
|
43
|
+
}
|
|
20
44
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Constant("defaultDatabaseDirectory") {
|
|
25
|
-
#if os(tvOS)
|
|
26
|
-
return appContext?.config.cacheDirectory?.appendingPathComponent("SQLite").standardized.path
|
|
27
|
-
#else
|
|
28
|
-
return appContext?.config.documentDirectory?.appendingPathComponent("SQLite").standardized.path
|
|
29
|
-
#endif
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
Constant("bundledExtensions") {
|
|
33
|
-
var bundledExtensions: [String: [String: String?]] = [:]
|
|
34
|
-
#if WITH_SQLITE_VEC
|
|
35
|
-
bundledExtensions["sqlite-vec"] = [
|
|
36
|
-
"libPath": Bundle(identifier: "sqlite-vec")?.path(forResource: "vec", ofType: ""),
|
|
37
|
-
"entryPoint": "sqlite3_vec_init"
|
|
38
|
-
]
|
|
39
|
-
#endif
|
|
40
|
-
return bundledExtensions
|
|
41
|
-
}
|
|
45
|
+
@Event("onDatabaseChange")
|
|
46
|
+
var onDatabaseChange: (DatabaseChangeEvent) -> Void
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
public override func didStartListening(event: String) {
|
|
49
|
+
hasListeners = true
|
|
50
|
+
}
|
|
44
51
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
public override func didStopListening(event: String) {
|
|
53
|
+
hasListeners = false
|
|
54
|
+
}
|
|
48
55
|
|
|
49
|
-
|
|
50
|
-
|
|
56
|
+
public override func willDestroy() {
|
|
57
|
+
removeAllCachedDatabases().forEach {
|
|
58
|
+
do {
|
|
59
|
+
try closeDatabase($0)
|
|
60
|
+
} catch {}
|
|
51
61
|
}
|
|
62
|
+
}
|
|
52
63
|
|
|
53
|
-
|
|
54
|
-
removeAllCachedDatabases().forEach {
|
|
55
|
-
do {
|
|
56
|
-
try closeDatabase($0)
|
|
57
|
-
} catch {}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
64
|
+
// MARK: - Module functions
|
|
60
65
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
try deleteDatabase(databasePath: databasePath)
|
|
66
|
-
}
|
|
66
|
+
@JS(.concurrent)
|
|
67
|
+
func deleteDatabaseAsync(databasePath: String) async throws {
|
|
68
|
+
try deleteDatabase(databasePath: databasePath)
|
|
69
|
+
}
|
|
67
70
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return
|
|
73
|
-
}
|
|
74
|
-
guard let assetPath = Utilities.urlFrom(string: assetDatabasePath)?.path,
|
|
75
|
-
fileManager.fileExists(atPath: assetPath) else {
|
|
76
|
-
throw DatabaseNotFoundException(assetDatabasePath)
|
|
77
|
-
}
|
|
78
|
-
try? fileManager.removeItem(atPath: path.absoluteString)
|
|
79
|
-
try fileManager.copyItem(atPath: assetPath, toPath: path.toFilePath())
|
|
80
|
-
}.runOnQueue(moduleQueue)
|
|
71
|
+
@JS
|
|
72
|
+
func deleteDatabaseSync(databasePath: String) throws {
|
|
73
|
+
try deleteDatabase(databasePath: databasePath)
|
|
74
|
+
}
|
|
81
75
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
try ensureDatabasePathExists(path: databasePath)
|
|
87
|
-
}
|
|
76
|
+
@JS(.concurrent)
|
|
77
|
+
func importAssetDatabaseAsync(databasePath: String, assetDatabasePath: String, forceOverwrite: Bool) async throws {
|
|
78
|
+
try importAssetDatabase(databasePath: databasePath, assetDatabasePath: assetDatabasePath, forceOverwrite: forceOverwrite)
|
|
79
|
+
}
|
|
88
80
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
81
|
+
@JS(.concurrent)
|
|
82
|
+
func ensureDatabasePathExistsAsync(databasePath: String) async throws {
|
|
83
|
+
_ = try ensureDatabasePathExists(path: databasePath)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@JS
|
|
87
|
+
func ensureDatabasePathExistsSync(databasePath: String) throws {
|
|
88
|
+
_ = try ensureDatabasePathExists(path: databasePath)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@JS(.concurrent)
|
|
92
|
+
func backupDatabaseAsync(
|
|
93
|
+
destDatabase: NativeDatabase,
|
|
94
|
+
destDatabaseName: String,
|
|
95
|
+
sourceDatabase: NativeDatabase,
|
|
96
|
+
sourceDatabaseName: String
|
|
97
|
+
) async throws {
|
|
98
|
+
try backupDatabase(
|
|
99
|
+
destDatabase: destDatabase,
|
|
100
|
+
destDatabaseName: destDatabaseName,
|
|
101
|
+
sourceDatabase: sourceDatabase,
|
|
102
|
+
sourceDatabaseName: sourceDatabaseName
|
|
103
|
+
)
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@JS
|
|
107
|
+
func backupDatabaseSync(
|
|
108
|
+
destDatabase: NativeDatabase,
|
|
109
|
+
destDatabaseName: String,
|
|
110
|
+
sourceDatabase: NativeDatabase,
|
|
111
|
+
sourceDatabaseName: String
|
|
112
|
+
) throws {
|
|
113
|
+
try backupDatabase(
|
|
114
|
+
destDatabase: destDatabase,
|
|
115
|
+
destDatabaseName: destDatabaseName,
|
|
116
|
+
sourceDatabase: sourceDatabase,
|
|
117
|
+
sourceDatabaseName: sourceDatabaseName
|
|
118
|
+
)
|
|
119
|
+
}
|
|
96
120
|
|
|
121
|
+
public func definition() -> ModuleDefinition {
|
|
97
122
|
// MARK: - NativeDatabase
|
|
98
123
|
|
|
99
124
|
// swiftlint:disable:next closure_body_length
|
|
@@ -128,72 +153,33 @@ public final class SQLiteModule: Module {
|
|
|
128
153
|
try initDb(database: database)
|
|
129
154
|
}
|
|
130
155
|
|
|
131
|
-
AsyncFunction("isInTransactionAsync") { (database: NativeDatabase) -> Bool in
|
|
132
|
-
try maybeThrowForClosedDatabase(database)
|
|
133
|
-
return exsqlite3_get_autocommit(database.pointer) == 0
|
|
134
|
-
}.runOnQueue(moduleQueue)
|
|
135
|
-
Function("isInTransactionSync") { (database: NativeDatabase) -> Bool in
|
|
136
|
-
try maybeThrowForClosedDatabase(database)
|
|
137
|
-
return exsqlite3_get_autocommit(database.pointer) == 0
|
|
138
|
-
}
|
|
139
|
-
|
|
140
156
|
AsyncFunction("closeAsync") { (database: NativeDatabase) in
|
|
141
157
|
try maybeThrowForClosedDatabase(database)
|
|
142
158
|
if let db = removeCachedDatabase(of: database) {
|
|
143
159
|
try closeDatabase(db)
|
|
144
160
|
}
|
|
145
161
|
}.runOnQueue(moduleQueue)
|
|
162
|
+
// Interrupt must reach SQLite immediately, without waiting for the running query's queue.
|
|
163
|
+
Function("interruptSync") { (database: NativeDatabase) in
|
|
164
|
+
// Do not block the JS thread or touch a connection being closed on another thread.
|
|
165
|
+
guard database.closeLock.try() else {
|
|
166
|
+
throw DatabaseClosingException()
|
|
167
|
+
}
|
|
168
|
+
defer { database.closeLock.unlock() }
|
|
169
|
+
try maybeThrowForClosedDatabase(database)
|
|
170
|
+
exsqlite3_interrupt(database.pointer)
|
|
171
|
+
}
|
|
146
172
|
Function("closeSync") { (database: NativeDatabase) in
|
|
147
173
|
try maybeThrowForClosedDatabase(database)
|
|
148
174
|
if let db = removeCachedDatabase(of: database) {
|
|
149
175
|
try closeDatabase(db)
|
|
150
176
|
}
|
|
151
177
|
}
|
|
152
|
-
|
|
153
|
-
AsyncFunction("execAsync") { (database: NativeDatabase, source: String) in
|
|
154
|
-
try exec(database: database, source: source)
|
|
155
|
-
}.runOnQueue(moduleQueue)
|
|
156
|
-
Function("execSync") { (database: NativeDatabase, source: String) in
|
|
157
|
-
try exec(database: database, source: source)
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
AsyncFunction("serializeAsync") { (database: NativeDatabase, databaseName: String) in
|
|
161
|
-
try serialize(database: database, databaseName: databaseName)
|
|
162
|
-
}.runOnQueue(moduleQueue)
|
|
163
|
-
Function("serializeSync") { (database: NativeDatabase, databaseName: String) in
|
|
164
|
-
try serialize(database: database, databaseName: databaseName)
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
AsyncFunction("prepareAsync") { (database: NativeDatabase, statement: NativeStatement, source: String) in
|
|
168
|
-
try prepareStatement(database: database, statement: statement, source: source)
|
|
169
|
-
}.runOnQueue(moduleQueue)
|
|
170
|
-
Function("prepareSync") { (database: NativeDatabase, statement: NativeStatement, source: String) in
|
|
171
|
-
try prepareStatement(database: database, statement: statement, source: source)
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
AsyncFunction("createSessionAsync") { (database: NativeDatabase, session: NativeSession, dbName: String) in
|
|
175
|
-
try sessionCreate(database: database, session: session, dbName: dbName)
|
|
176
|
-
}.runOnQueue(moduleQueue)
|
|
177
|
-
Function("createSessionSync") { (database: NativeDatabase, session: NativeSession, dbName: String) in
|
|
178
|
-
try sessionCreate(database: database, session: session, dbName: dbName)
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
AsyncFunction("loadExtensionAsync") { (database: NativeDatabase, libPath: String, entryPoint: String?) in
|
|
182
|
-
try loadExtension(database: database, libPath: libPath, entryPoint: entryPoint)
|
|
183
|
-
}.runOnQueue(moduleQueue)
|
|
184
|
-
Function("loadExtensionSync") { (database: NativeDatabase, libPath: String, entryPoint: String?) in
|
|
185
|
-
try loadExtension(database: database, libPath: libPath, entryPoint: entryPoint)
|
|
186
|
-
}
|
|
187
178
|
}
|
|
188
179
|
|
|
189
180
|
// MARK: - NativeStatement
|
|
190
181
|
|
|
191
|
-
// swiftlint:disable:next closure_body_length
|
|
192
182
|
Class(NativeStatement.self) {
|
|
193
|
-
Constructor {
|
|
194
|
-
return NativeStatement()
|
|
195
|
-
}
|
|
196
|
-
|
|
197
183
|
// swiftlint:disable line_length
|
|
198
184
|
|
|
199
185
|
AsyncFunction("runAsync") { (statement: NativeStatement, database: NativeDatabase, bindParams: [String: Any], bindBlobParams: [String: ArrayBuffer], shouldPassAsArray: Bool) -> [String: Any] in
|
|
@@ -218,86 +204,11 @@ public final class SQLiteModule: Module {
|
|
|
218
204
|
Function("getAllSync") { (statement: NativeStatement, database: NativeDatabase) -> [SQLiteColumnValues] in
|
|
219
205
|
return try getAll(statement: statement, database: database)
|
|
220
206
|
}
|
|
221
|
-
|
|
222
|
-
AsyncFunction("resetAsync") { (statement: NativeStatement, database: NativeDatabase) in
|
|
223
|
-
try reset(statement: statement, database: database)
|
|
224
|
-
}.runOnQueue(moduleQueue)
|
|
225
|
-
Function("resetSync") { (statement: NativeStatement, database: NativeDatabase) in
|
|
226
|
-
try reset(statement: statement, database: database)
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
AsyncFunction("getColumnNamesAsync") { (statement: NativeStatement) -> SQLiteColumnNames in
|
|
230
|
-
return try getColumnNames(statement: statement)
|
|
231
|
-
}.runOnQueue(moduleQueue)
|
|
232
|
-
Function("getColumnNamesSync") { (statement: NativeStatement) -> SQLiteColumnNames in
|
|
233
|
-
return try getColumnNames(statement: statement)
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
AsyncFunction("finalizeAsync") { (statement: NativeStatement, database: NativeDatabase) in
|
|
237
|
-
try finalize(statement: statement, database: database)
|
|
238
|
-
}.runOnQueue(moduleQueue)
|
|
239
|
-
Function("finalizeSync") { (statement: NativeStatement, database: NativeDatabase) in
|
|
240
|
-
try finalize(statement: statement, database: database)
|
|
241
|
-
}
|
|
242
207
|
}
|
|
243
208
|
|
|
244
209
|
// MARK: - NativeSession
|
|
245
210
|
|
|
246
|
-
|
|
247
|
-
Class(NativeSession.self) {
|
|
248
|
-
Constructor {
|
|
249
|
-
return NativeSession()
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
AsyncFunction("attachAsync") { (session: NativeSession, database: NativeDatabase, table: String?) in
|
|
253
|
-
try sessionAttach(database: database, session: session, table: table)
|
|
254
|
-
}.runOnQueue(moduleQueue)
|
|
255
|
-
Function("attachSync") { (session: NativeSession, database: NativeDatabase, table: String?) in
|
|
256
|
-
try sessionAttach(database: database, session: session, table: table)
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
AsyncFunction("enableAsync") { (session: NativeSession, database: NativeDatabase, enabled: Bool) in
|
|
260
|
-
try sessionEnable(database: database, session: session, enabled: enabled)
|
|
261
|
-
}.runOnQueue(moduleQueue)
|
|
262
|
-
Function("enableSync") { (session: NativeSession, database: NativeDatabase, enabled: Bool) in
|
|
263
|
-
try sessionEnable(database: database, session: session, enabled: enabled)
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
AsyncFunction("closeAsync") { (session: NativeSession, database: NativeDatabase) in
|
|
267
|
-
try sessionClose(database: database, session: session)
|
|
268
|
-
}.runOnQueue(moduleQueue)
|
|
269
|
-
Function("closeSync") { (session: NativeSession, database: NativeDatabase) in
|
|
270
|
-
try sessionClose(database: database, session: session)
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
AsyncFunction("createChangesetAsync") { (session: NativeSession, database: NativeDatabase) -> ArrayBuffer in
|
|
274
|
-
return try sessionCreateChangeset(database: database, session: session)
|
|
275
|
-
}.runOnQueue(moduleQueue)
|
|
276
|
-
Function("createChangesetSync") { (session: NativeSession, database: NativeDatabase) -> ArrayBuffer in
|
|
277
|
-
return try sessionCreateChangeset(database: database, session: session)
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
AsyncFunction("createInvertedChangesetAsync") { (session: NativeSession, database: NativeDatabase) -> ArrayBuffer in
|
|
281
|
-
return try sessionCreateInvertedChangeset(database: database, session: session)
|
|
282
|
-
}.runOnQueue(moduleQueue)
|
|
283
|
-
Function("createInvertedChangesetSync") { (session: NativeSession, database: NativeDatabase) -> ArrayBuffer in
|
|
284
|
-
return try sessionCreateInvertedChangeset(database: database, session: session)
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
AsyncFunction("applyChangesetAsync") { (session: NativeSession, database: NativeDatabase, changeset: ArrayBuffer) in
|
|
288
|
-
try sessionApplyChangeset(database: database, session: session, changeset: changeset)
|
|
289
|
-
}.runOnQueue(moduleQueue)
|
|
290
|
-
Function("applyChangesetSync") { (session: NativeSession, database: NativeDatabase, changeset: ArrayBuffer) in
|
|
291
|
-
try sessionApplyChangeset(database: database, session: session, changeset: changeset)
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
AsyncFunction("invertChangesetAsync") { (session: NativeSession, database: NativeDatabase, changeset: ArrayBuffer) -> ArrayBuffer in
|
|
295
|
-
return try sessionInvertChangeset(database: database, session: session, changeset: changeset)
|
|
296
|
-
}.runOnQueue(moduleQueue)
|
|
297
|
-
Function("invertChangesetSync") { (session: NativeSession, database: NativeDatabase, changeset: ArrayBuffer) -> ArrayBuffer in
|
|
298
|
-
return try sessionInvertChangeset(database: database, session: session, changeset: changeset)
|
|
299
|
-
}
|
|
300
|
-
}
|
|
211
|
+
NativeSession._synthesizedClassDefinition()
|
|
301
212
|
}
|
|
302
213
|
|
|
303
214
|
private func ensureDatabasePathExists(path: String) throws -> URL {
|
|
@@ -338,7 +249,7 @@ public final class SQLiteModule: Module {
|
|
|
338
249
|
let flags = UInt32(SQLITE_DESERIALIZE_RESIZEABLE | SQLITE_DESERIALIZE_FREEONCLOSE)
|
|
339
250
|
let ret = exsqlite3_deserialize(db, "main", buffer.assumingMemoryBound(to: UInt8.self), size, size, flags)
|
|
340
251
|
if ret != SQLITE_OK {
|
|
341
|
-
throw SQLiteErrorException(
|
|
252
|
+
throw SQLiteErrorException(sqliteErrorMessage(for: db))
|
|
342
253
|
}
|
|
343
254
|
return db
|
|
344
255
|
}
|
|
@@ -350,39 +261,6 @@ public final class SQLiteModule: Module {
|
|
|
350
261
|
}
|
|
351
262
|
}
|
|
352
263
|
|
|
353
|
-
private func exec(database: NativeDatabase, source: String) throws {
|
|
354
|
-
try maybeThrowForClosedDatabase(database)
|
|
355
|
-
var error: UnsafeMutablePointer<CChar>?
|
|
356
|
-
let ret = exsqlite3_exec(database.pointer, source, nil, nil, &error)
|
|
357
|
-
if ret != SQLITE_OK, let error = error {
|
|
358
|
-
let errorString = String(cString: error)
|
|
359
|
-
exsqlite3_free(error)
|
|
360
|
-
throw SQLiteErrorException(errorString)
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
private func serialize(database: NativeDatabase, databaseName: String) throws -> Data {
|
|
365
|
-
try maybeThrowForClosedDatabase(database)
|
|
366
|
-
|
|
367
|
-
var size: sqlite3_int64 = 0
|
|
368
|
-
guard let bytes = exsqlite3_serialize(database.pointer, databaseName, &size, 0) else {
|
|
369
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
let serializedData = Data(bytes: bytes, count: Int(size))
|
|
373
|
-
exsqlite3_free(bytes)
|
|
374
|
-
return serializedData
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
private func prepareStatement(database: NativeDatabase, statement: NativeStatement, source: String) throws {
|
|
378
|
-
try maybeThrowForClosedDatabase(database)
|
|
379
|
-
try maybeThrowForFinalizedStatement(statement)
|
|
380
|
-
let sourceString = source.cString(using: .utf8)
|
|
381
|
-
if exsqlite3_prepare_v2(database.pointer, sourceString, -1, &statement.pointer, nil) != SQLITE_OK {
|
|
382
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
383
|
-
}
|
|
384
|
-
}
|
|
385
|
-
|
|
386
264
|
// swiftlint:disable line_length
|
|
387
265
|
|
|
388
266
|
private func run(statement: NativeStatement, database: NativeDatabase, bindParams: [String: Any], bindBlobParams: [String: any AnyArrayBuffer], shouldPassAsArray: Bool) throws -> [String: Any] {
|
|
@@ -391,36 +269,33 @@ public final class SQLiteModule: Module {
|
|
|
391
269
|
|
|
392
270
|
// The statement with parameter bindings is stateful,
|
|
393
271
|
// we have to guard with a critical section for thread safety.
|
|
394
|
-
statement.lock.
|
|
395
|
-
|
|
396
|
-
statement.
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
let index = try getBindParamIndex(statement: statement, key: key, shouldPassAsArray: shouldPassAsArray)
|
|
403
|
-
if index > 0 {
|
|
404
|
-
try bindStatementParam(statement: statement, with: param, at: index)
|
|
272
|
+
return try statement.lock.withLock { _ -> [String: Any] in
|
|
273
|
+
exsqlite3_reset(statement.pointer)
|
|
274
|
+
exsqlite3_clear_bindings(statement.pointer)
|
|
275
|
+
for (key, param) in bindParams {
|
|
276
|
+
let index = try getBindParamIndex(statement: statement, key: key, shouldPassAsArray: shouldPassAsArray)
|
|
277
|
+
if index > 0 {
|
|
278
|
+
try bindStatementParam(statement: statement, with: param, at: index)
|
|
279
|
+
}
|
|
405
280
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
281
|
+
for (key, param) in bindBlobParams {
|
|
282
|
+
let index = try getBindParamIndex(statement: statement, key: key, shouldPassAsArray: shouldPassAsArray)
|
|
283
|
+
if index > 0 {
|
|
284
|
+
try bindStatementParam(statement: statement, with: param, at: index)
|
|
285
|
+
}
|
|
411
286
|
}
|
|
412
|
-
}
|
|
413
287
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
288
|
+
let ret = exsqlite3_step(statement.pointer)
|
|
289
|
+
if ret != SQLITE_ROW && ret != SQLITE_DONE {
|
|
290
|
+
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
291
|
+
}
|
|
292
|
+
let firstRowValues: SQLiteColumnValues = (ret == SQLITE_ROW) ? try getColumnValues(statement: statement) : []
|
|
293
|
+
return [
|
|
294
|
+
"lastInsertRowId": Int(exsqlite3_last_insert_rowid(database.pointer)),
|
|
295
|
+
"changes": Int(exsqlite3_changes(database.pointer)),
|
|
296
|
+
"firstRowValues": firstRowValues
|
|
297
|
+
]
|
|
417
298
|
}
|
|
418
|
-
let firstRowValues: SQLiteColumnValues = (ret == SQLITE_ROW) ? try getColumnValues(statement: statement) : []
|
|
419
|
-
return [
|
|
420
|
-
"lastInsertRowId": Int(exsqlite3_last_insert_rowid(database.pointer)),
|
|
421
|
-
"changes": Int(exsqlite3_changes(database.pointer)),
|
|
422
|
-
"firstRowValues": firstRowValues
|
|
423
|
-
]
|
|
424
299
|
}
|
|
425
300
|
|
|
426
301
|
// swiftlint:enable line_length
|
|
@@ -430,104 +305,66 @@ public final class SQLiteModule: Module {
|
|
|
430
305
|
try maybeThrowForFinalizedStatement(statement)
|
|
431
306
|
|
|
432
307
|
// Guard the stateful statement, see `run` above.
|
|
433
|
-
statement.lock.
|
|
434
|
-
defer {
|
|
435
|
-
statement.lock.signal()
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
let ret = exsqlite3_step(statement.pointer)
|
|
439
|
-
if ret == SQLITE_ROW {
|
|
440
|
-
return try getColumnValues(statement: statement)
|
|
441
|
-
}
|
|
442
|
-
if ret != SQLITE_DONE {
|
|
443
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
444
|
-
}
|
|
445
|
-
return nil
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
private func getAll(statement: NativeStatement, database: NativeDatabase) throws -> [SQLiteColumnValues] {
|
|
449
|
-
try maybeThrowForClosedDatabase(database)
|
|
450
|
-
try maybeThrowForFinalizedStatement(statement)
|
|
451
|
-
|
|
452
|
-
// Guard the stateful statement, see `run` above.
|
|
453
|
-
statement.lock.wait()
|
|
454
|
-
defer {
|
|
455
|
-
statement.lock.signal()
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
var columnValuesList: [SQLiteColumnValues] = []
|
|
459
|
-
while true {
|
|
308
|
+
return try statement.lock.withLock { _ -> SQLiteColumnValues? in
|
|
460
309
|
let ret = exsqlite3_step(statement.pointer)
|
|
461
310
|
if ret == SQLITE_ROW {
|
|
462
|
-
|
|
463
|
-
continue
|
|
311
|
+
return try getColumnValues(statement: statement)
|
|
464
312
|
}
|
|
465
|
-
if ret
|
|
466
|
-
|
|
313
|
+
if ret != SQLITE_DONE {
|
|
314
|
+
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
467
315
|
}
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
return columnValuesList
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
private func reset(statement: NativeStatement, database: NativeDatabase) throws {
|
|
474
|
-
try maybeThrowForClosedDatabase(database)
|
|
475
|
-
try maybeThrowForFinalizedStatement(statement)
|
|
476
|
-
|
|
477
|
-
// Guard the stateful statement, see `run` above.
|
|
478
|
-
statement.lock.wait()
|
|
479
|
-
defer {
|
|
480
|
-
statement.lock.signal()
|
|
481
|
-
}
|
|
482
|
-
|
|
483
|
-
if exsqlite3_reset(statement.pointer) != SQLITE_OK {
|
|
484
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
316
|
+
return nil
|
|
485
317
|
}
|
|
486
318
|
}
|
|
487
319
|
|
|
488
|
-
private func
|
|
320
|
+
private func getAll(statement: NativeStatement, database: NativeDatabase) throws -> [SQLiteColumnValues] {
|
|
489
321
|
try maybeThrowForClosedDatabase(database)
|
|
490
322
|
try maybeThrowForFinalizedStatement(statement)
|
|
491
323
|
|
|
492
324
|
// Guard the stateful statement, see `run` above.
|
|
493
|
-
statement.lock.
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
325
|
+
return try statement.lock.withLock { _ -> [SQLiteColumnValues] in
|
|
326
|
+
var columnValuesList: [SQLiteColumnValues] = []
|
|
327
|
+
while true {
|
|
328
|
+
let ret = exsqlite3_step(statement.pointer)
|
|
329
|
+
if ret == SQLITE_ROW {
|
|
330
|
+
columnValuesList.append(try getColumnValues(statement: statement))
|
|
331
|
+
continue
|
|
332
|
+
}
|
|
333
|
+
if ret == SQLITE_DONE {
|
|
334
|
+
break
|
|
335
|
+
}
|
|
336
|
+
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
337
|
+
}
|
|
338
|
+
return columnValuesList
|
|
500
339
|
}
|
|
501
|
-
statement.isFinalized = true
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
private func convertSqlLiteErrorToString(_ db: OpaquePointer?) -> String {
|
|
505
|
-
let code = exsqlite3_errcode(db)
|
|
506
|
-
let message = String(cString: exsqlite3_errmsg(db), encoding: .utf8) ?? ""
|
|
507
|
-
return "Error code \(code): \(message)"
|
|
508
340
|
}
|
|
509
341
|
|
|
510
342
|
private func convertSqlLiteErrorToString(_ db: NativeDatabase) -> String {
|
|
511
|
-
return
|
|
343
|
+
return db.lastErrorMessage()
|
|
512
344
|
}
|
|
513
345
|
|
|
514
346
|
private func closeDatabase(_ db: NativeDatabase) throws {
|
|
347
|
+
db.closeLock.lock()
|
|
348
|
+
defer { db.closeLock.unlock() }
|
|
349
|
+
try maybeThrowForClosedDatabase(db)
|
|
515
350
|
try maybeFinalizeAllStatements(db)
|
|
516
351
|
|
|
517
352
|
let ret = exsqlite3_close(db.pointer)
|
|
518
353
|
db.isClosed = true
|
|
519
354
|
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
355
|
+
Self.lockQueue.sync {
|
|
356
|
+
if let index = contextPairs.firstIndex(where: {
|
|
357
|
+
guard let pair = $0.takeUnretainedValue() as? (SQLiteModule, NativeDatabase) else {
|
|
358
|
+
return false
|
|
359
|
+
}
|
|
360
|
+
if pair.1.sharedObjectId != db.sharedObjectId {
|
|
361
|
+
return false
|
|
362
|
+
}
|
|
363
|
+
$0.release()
|
|
364
|
+
return true
|
|
365
|
+
}) {
|
|
366
|
+
contextPairs.remove(at: index)
|
|
526
367
|
}
|
|
527
|
-
$0.release()
|
|
528
|
-
return true
|
|
529
|
-
}) {
|
|
530
|
-
contextPairs.remove(at: index)
|
|
531
368
|
}
|
|
532
369
|
|
|
533
370
|
if ret != SQLITE_OK {
|
|
@@ -547,6 +384,20 @@ public final class SQLiteModule: Module {
|
|
|
547
384
|
try DatabaseFileUtils.deleteDatabaseFiles(atPath: path)
|
|
548
385
|
}
|
|
549
386
|
|
|
387
|
+
private func importAssetDatabase(databasePath: String, assetDatabasePath: String, forceOverwrite: Bool) throws {
|
|
388
|
+
let path = try ensureDatabasePathExists(path: databasePath)
|
|
389
|
+
let fileManager = FileManager.default
|
|
390
|
+
if fileManager.fileExists(atPath: path.toFilePath()) && !forceOverwrite {
|
|
391
|
+
return
|
|
392
|
+
}
|
|
393
|
+
guard let assetPath = Utilities.urlFrom(string: assetDatabasePath)?.path,
|
|
394
|
+
fileManager.fileExists(atPath: assetPath) else {
|
|
395
|
+
throw DatabaseNotFoundException(assetDatabasePath)
|
|
396
|
+
}
|
|
397
|
+
try? fileManager.removeItem(atPath: path.absoluteString)
|
|
398
|
+
try fileManager.copyItem(atPath: assetPath, toPath: path.toFilePath())
|
|
399
|
+
}
|
|
400
|
+
|
|
550
401
|
private func backupDatabase(destDatabase: NativeDatabase, destDatabaseName: String, sourceDatabase: NativeDatabase, sourceDatabaseName: String) throws {
|
|
551
402
|
try maybeThrowForClosedDatabase(destDatabase)
|
|
552
403
|
try maybeThrowForClosedDatabase(sourceDatabase)
|
|
@@ -561,7 +412,9 @@ public final class SQLiteModule: Module {
|
|
|
561
412
|
|
|
562
413
|
private func addUpdateHook(_ database: NativeDatabase) {
|
|
563
414
|
let contextPair = Unmanaged.passRetained(((self, database) as AnyObject))
|
|
564
|
-
|
|
415
|
+
Self.lockQueue.sync {
|
|
416
|
+
contextPairs.append(contextPair)
|
|
417
|
+
}
|
|
565
418
|
// swiftlint:disable:next multiline_arguments
|
|
566
419
|
exsqlite3_update_hook(database.pointer, { obj, action, databaseName, tableName, rowId in
|
|
567
420
|
guard let obj,
|
|
@@ -573,40 +426,18 @@ public final class SQLiteModule: Module {
|
|
|
573
426
|
let database = pair.1
|
|
574
427
|
let databaseFilePath = exsqlite3_db_filename(database.pointer, databaseName)
|
|
575
428
|
if selfInstance.hasListeners, let databaseName, let databaseFilePath {
|
|
576
|
-
selfInstance.
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
429
|
+
selfInstance.onDatabaseChange(DatabaseChangeEvent(
|
|
430
|
+
databaseName: String(cString: UnsafePointer(databaseName)),
|
|
431
|
+
databaseFilePath: String(cString: UnsafePointer(databaseFilePath)),
|
|
432
|
+
tableName: String(cString: UnsafePointer(tableName)),
|
|
433
|
+
rowId: Int(rowId),
|
|
434
|
+
typeId: SQLAction.fromCode(value: action)
|
|
435
|
+
))
|
|
583
436
|
}
|
|
584
437
|
},
|
|
585
438
|
contextPair.toOpaque())
|
|
586
439
|
}
|
|
587
440
|
|
|
588
|
-
private func loadExtension(database: NativeDatabase, libPath: String, entryPoint: String?) throws {
|
|
589
|
-
try maybeThrowForClosedDatabase(database)
|
|
590
|
-
exsqlite3_enable_load_extension(database.pointer, 1)
|
|
591
|
-
var error: UnsafeMutablePointer<CChar>?
|
|
592
|
-
let ret = exsqlite3_load_extension(database.pointer, libPath.cString(using: .utf8), entryPoint, &error)
|
|
593
|
-
if ret != SQLITE_OK, let error = error {
|
|
594
|
-
let errorString = String(cString: error)
|
|
595
|
-
exsqlite3_free(error)
|
|
596
|
-
throw SQLiteErrorException(errorString)
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
|
|
600
|
-
private func getColumnNames(statement: NativeStatement) throws -> SQLiteColumnNames {
|
|
601
|
-
try maybeThrowForFinalizedStatement(statement)
|
|
602
|
-
let columnCount = Int(exsqlite3_column_count(statement.pointer))
|
|
603
|
-
var columnNames: SQLiteColumnNames = Array(repeating: "", count: columnCount)
|
|
604
|
-
for i in 0..<columnCount {
|
|
605
|
-
columnNames[i] = String(cString: exsqlite3_column_name(statement.pointer, Int32(i)))
|
|
606
|
-
}
|
|
607
|
-
return columnNames
|
|
608
|
-
}
|
|
609
|
-
|
|
610
441
|
private func getColumnValues(statement: NativeStatement) throws -> SQLiteColumnValues {
|
|
611
442
|
try maybeThrowForFinalizedStatement(statement)
|
|
612
443
|
let columnCount = Int(exsqlite3_column_count(statement.pointer))
|
|
@@ -670,15 +501,11 @@ public final class SQLiteModule: Module {
|
|
|
670
501
|
}
|
|
671
502
|
|
|
672
503
|
private func maybeThrowForClosedDatabase(_ database: NativeDatabase) throws {
|
|
673
|
-
|
|
674
|
-
throw AccessClosedResourceException()
|
|
675
|
-
}
|
|
504
|
+
try database.ensureOpen()
|
|
676
505
|
}
|
|
677
506
|
|
|
678
507
|
private func maybeThrowForFinalizedStatement(_ statement: NativeStatement) throws {
|
|
679
|
-
|
|
680
|
-
throw AccessClosedResourceException()
|
|
681
|
-
}
|
|
508
|
+
try statement.ensureNotFinalized()
|
|
682
509
|
}
|
|
683
510
|
|
|
684
511
|
@inline(__always)
|
|
@@ -752,92 +579,4 @@ public final class SQLiteModule: Module {
|
|
|
752
579
|
stmt = nextStmt
|
|
753
580
|
}
|
|
754
581
|
}
|
|
755
|
-
|
|
756
|
-
// MARK: - Session Extension
|
|
757
|
-
|
|
758
|
-
private func sessionCreate(database: NativeDatabase, session: NativeSession, dbName: String) throws {
|
|
759
|
-
try maybeThrowForClosedDatabase(database)
|
|
760
|
-
let db = dbName.cString(using: .utf8)
|
|
761
|
-
if exsqlite3session_create(database.pointer, db, &session.pointer) != SQLITE_OK {
|
|
762
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
|
|
766
|
-
private func sessionAttach(database: NativeDatabase, session: NativeSession, table: String?) throws {
|
|
767
|
-
try maybeThrowForClosedDatabase(database)
|
|
768
|
-
let tableName = table?.cString(using: .utf8)
|
|
769
|
-
if exsqlite3session_attach(session.pointer, tableName) != SQLITE_OK {
|
|
770
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
private func sessionEnable(database: NativeDatabase, session: NativeSession, enabled: Bool) throws {
|
|
775
|
-
try maybeThrowForClosedDatabase(database)
|
|
776
|
-
exsqlite3session_enable(session.pointer, enabled ? 1 : 0)
|
|
777
|
-
}
|
|
778
|
-
|
|
779
|
-
private func sessionClose(database: NativeDatabase, session: NativeSession) throws {
|
|
780
|
-
try maybeThrowForClosedDatabase(database)
|
|
781
|
-
exsqlite3session_delete(session.pointer)
|
|
782
|
-
}
|
|
783
|
-
|
|
784
|
-
private func sessionCreateChangeset(database: NativeDatabase, session: NativeSession) throws -> ArrayBuffer {
|
|
785
|
-
try maybeThrowForClosedDatabase(database)
|
|
786
|
-
var size: Int32 = 0
|
|
787
|
-
var buffer: UnsafeMutableRawPointer?
|
|
788
|
-
if exsqlite3session_changeset(session.pointer, &size, &buffer) != SQLITE_OK {
|
|
789
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
790
|
-
}
|
|
791
|
-
guard let buffer else {
|
|
792
|
-
return ArrayBuffer(size: 0)
|
|
793
|
-
}
|
|
794
|
-
defer { exsqlite3_free(buffer) }
|
|
795
|
-
return ArrayBuffer.copy(of: buffer, count: Int(size))
|
|
796
|
-
}
|
|
797
|
-
|
|
798
|
-
private func sessionCreateInvertedChangeset(database: NativeDatabase, session: NativeSession) throws -> ArrayBuffer {
|
|
799
|
-
do {
|
|
800
|
-
let changeset = try sessionCreateChangeset(database: database, session: session)
|
|
801
|
-
return try sessionInvertChangeset(database: database, session: session, changeset: changeset)
|
|
802
|
-
} catch {
|
|
803
|
-
throw error
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
|
-
|
|
807
|
-
private func sessionApplyChangeset(database: NativeDatabase, session: NativeSession, changeset: some AnyArrayBuffer) throws {
|
|
808
|
-
try maybeThrowForClosedDatabase(database)
|
|
809
|
-
try changeset.withUnsafeBytes {
|
|
810
|
-
let buffer = UnsafeMutableRawPointer(mutating: $0.baseAddress)
|
|
811
|
-
if exsqlite3changeset_apply(
|
|
812
|
-
database.pointer,
|
|
813
|
-
Int32(changeset.byteLength),
|
|
814
|
-
buffer,
|
|
815
|
-
nil,
|
|
816
|
-
{ _, _, _ -> Int32 in
|
|
817
|
-
return SQLITE_CHANGESET_REPLACE
|
|
818
|
-
},
|
|
819
|
-
nil
|
|
820
|
-
) != SQLITE_OK {
|
|
821
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
822
|
-
}
|
|
823
|
-
}
|
|
824
|
-
}
|
|
825
|
-
|
|
826
|
-
private func sessionInvertChangeset(database: NativeDatabase, session: NativeSession, changeset: some AnyArrayBuffer) throws -> ArrayBuffer {
|
|
827
|
-
try maybeThrowForClosedDatabase(database)
|
|
828
|
-
return try changeset.withUnsafeBytes {
|
|
829
|
-
let inBuffer = UnsafeMutableRawPointer(mutating: $0.baseAddress)
|
|
830
|
-
var outSize: Int32 = 0
|
|
831
|
-
var outBuffer: UnsafeMutableRawPointer?
|
|
832
|
-
|
|
833
|
-
if exsqlite3changeset_invert(Int32(changeset.byteLength), inBuffer, &outSize, &outBuffer) != SQLITE_OK {
|
|
834
|
-
throw SQLiteErrorException(convertSqlLiteErrorToString(database))
|
|
835
|
-
}
|
|
836
|
-
guard let outBuffer else {
|
|
837
|
-
return ArrayBuffer(size: 0)
|
|
838
|
-
}
|
|
839
|
-
defer { exsqlite3_free(outBuffer) }
|
|
840
|
-
return ArrayBuffer.copy(of: outBuffer, count: Int(outSize))
|
|
841
|
-
}
|
|
842
|
-
}
|
|
843
582
|
}
|