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.
Files changed (375) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  3. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  4. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  5. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/cache-v2-9594dd53e9b9bd1c31d4.json +1455 -0
  6. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-2db5a9f07e8966437862.json +194 -0
  7. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-03c56ba9db51f27a9903.json +60 -0
  8. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  9. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/index-2026-09-22T11-33-36-0818.json +92 -0
  10. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.cmake/api/v1/reply/target-expo-sqlite-Debug-c772ae8b3b89e3b342ea.json +310 -0
  11. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.ninja_deps +0 -0
  12. package/android/.cxx/Debug/611h1z2v/arm64-v8a/.ninja_log +13 -0
  13. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeCache.txt +431 -0
  14. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  15. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  16. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  17. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  18. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  19. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  20. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  21. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  22. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  23. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/CMakeOutput.log +264 -0
  24. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/TargetDirectories.txt +3 -0
  25. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  26. 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
  27. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  28. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  29. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  30. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  31. package/android/.cxx/Debug/611h1z2v/arm64-v8a/CMakeFiles/rules.ninja +74 -0
  32. package/android/.cxx/Debug/611h1z2v/arm64-v8a/additional_project_files.txt +0 -0
  33. package/android/.cxx/Debug/611h1z2v/arm64-v8a/android_gradle_build.json +44 -0
  34. package/android/.cxx/Debug/611h1z2v/arm64-v8a/android_gradle_build_mini.json +31 -0
  35. package/android/.cxx/Debug/611h1z2v/arm64-v8a/build.ninja +185 -0
  36. package/android/.cxx/Debug/611h1z2v/arm64-v8a/build_file_index.txt +3 -0
  37. package/android/.cxx/Debug/611h1z2v/arm64-v8a/cmake_install.cmake +54 -0
  38. package/android/.cxx/Debug/611h1z2v/arm64-v8a/compile_commands.json +27 -0
  39. package/android/.cxx/Debug/611h1z2v/arm64-v8a/compile_commands.json.bin +0 -0
  40. package/android/.cxx/Debug/611h1z2v/arm64-v8a/configure_fingerprint.bin +32 -0
  41. package/android/.cxx/Debug/611h1z2v/arm64-v8a/metadata_generation_command.txt +25 -0
  42. package/android/.cxx/Debug/611h1z2v/arm64-v8a/prefab_config.json +8 -0
  43. package/android/.cxx/Debug/611h1z2v/arm64-v8a/symbol_folder_index.txt +1 -0
  44. package/android/.cxx/Debug/611h1z2v/hash_key.txt +32 -0
  45. package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  46. package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  47. package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
  48. package/android/.cxx/Debug/611h1z2v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
  49. package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  50. package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  51. package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
  52. package/android/.cxx/Debug/611h1z2v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
  53. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  54. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  55. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  56. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/cache-v2-d1b849159435ca2b67e4.json +1455 -0
  57. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/cmakeFiles-v1-388a979374686240c8ac.json +194 -0
  58. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/codemodel-v2-f1348e51cdfbc75a2d03.json +60 -0
  59. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  60. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/index-2026-09-22T12-20-49-0455.json +92 -0
  61. package/android/.cxx/Debug/611h1z2v/x86/.cmake/api/v1/reply/target-expo-sqlite-Debug-fd3cc878da09f49b20b0.json +310 -0
  62. package/android/.cxx/Debug/611h1z2v/x86/CMakeCache.txt +431 -0
  63. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  64. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  65. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  66. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  67. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  68. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  69. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  70. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  71. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  72. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/CMakeOutput.log +256 -0
  73. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/TargetDirectories.txt +3 -0
  74. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/cmake.check_cache +1 -0
  75. package/android/.cxx/Debug/611h1z2v/x86/CMakeFiles/rules.ninja +74 -0
  76. package/android/.cxx/Debug/611h1z2v/x86/additional_project_files.txt +0 -0
  77. package/android/.cxx/Debug/611h1z2v/x86/android_gradle_build.json +44 -0
  78. package/android/.cxx/Debug/611h1z2v/x86/android_gradle_build_mini.json +31 -0
  79. package/android/.cxx/Debug/611h1z2v/x86/build.ninja +185 -0
  80. package/android/.cxx/Debug/611h1z2v/x86/build_file_index.txt +3 -0
  81. package/android/.cxx/Debug/611h1z2v/x86/cmake_install.cmake +54 -0
  82. package/android/.cxx/Debug/611h1z2v/x86/compile_commands.json +27 -0
  83. package/android/.cxx/Debug/611h1z2v/x86/compile_commands.json.bin +0 -0
  84. package/android/.cxx/Debug/611h1z2v/x86/configure_fingerprint.bin +33 -0
  85. package/android/.cxx/Debug/611h1z2v/x86/metadata_generation_command.txt +25 -0
  86. package/android/.cxx/Debug/611h1z2v/x86/prefab_config.json +8 -0
  87. package/android/.cxx/Debug/611h1z2v/x86/symbol_folder_index.txt +1 -0
  88. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  89. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  90. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  91. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/cache-v2-78bbb67ef2e5303a90f2.json +1487 -0
  92. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-36ba212a0f357943e830.json +809 -0
  93. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-116f50c3201537e03e27.json +60 -0
  94. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
  95. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/index-2026-09-23T15-39-54-0780.json +92 -0
  96. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-90901361ee8d4c0f0611.json +310 -0
  97. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.ninja_deps +0 -0
  98. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/.ninja_log +7 -0
  99. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeCache.txt +431 -0
  100. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  101. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  102. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  103. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  104. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  105. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  106. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  107. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  108. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  109. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/CMakeOutput.log +264 -0
  110. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/TargetDirectories.txt +3 -0
  111. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  112. 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
  113. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  114. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  115. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  116. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  117. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/CMakeFiles/rules.ninja +74 -0
  118. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/additional_project_files.txt +0 -0
  119. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/android_gradle_build.json +44 -0
  120. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/android_gradle_build_mini.json +31 -0
  121. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/build.ninja +196 -0
  122. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/build_file_index.txt +3 -0
  123. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/cmake_install.cmake +54 -0
  124. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/compile_commands.json +27 -0
  125. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/compile_commands.json.bin +0 -0
  126. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/configure_fingerprint.bin +28 -0
  127. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/metadata_generation_command.txt +25 -0
  128. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/prefab_config.json +8 -0
  129. package/android/.cxx/RelWithDebInfo/5g1u4l1v/arm64-v8a/symbol_folder_index.txt +1 -0
  130. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  131. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  132. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  133. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/cache-v2-243a4f0bf11e91cdc4d8.json +1487 -0
  134. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-74456d66c64ab5130b71.json +809 -0
  135. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-c0e5c09f8d4af05e23da.json +60 -0
  136. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
  137. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/index-2026-09-23T15-40-10-0509.json +92 -0
  138. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-4ba3a43729b4fa322330.json +310 -0
  139. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.ninja_deps +0 -0
  140. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/.ninja_log +7 -0
  141. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeCache.txt +431 -0
  142. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  143. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  144. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  145. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  146. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  147. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  148. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  149. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  150. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  151. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/CMakeOutput.log +266 -0
  152. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/TargetDirectories.txt +3 -0
  153. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  154. 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
  155. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  156. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  157. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  158. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  159. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/CMakeFiles/rules.ninja +74 -0
  160. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/additional_project_files.txt +0 -0
  161. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/android_gradle_build.json +44 -0
  162. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/android_gradle_build_mini.json +31 -0
  163. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/build.ninja +196 -0
  164. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/build_file_index.txt +3 -0
  165. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/cmake_install.cmake +54 -0
  166. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/compile_commands.json +27 -0
  167. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/compile_commands.json.bin +0 -0
  168. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/configure_fingerprint.bin +28 -0
  169. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/metadata_generation_command.txt +25 -0
  170. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/prefab_config.json +8 -0
  171. package/android/.cxx/RelWithDebInfo/5g1u4l1v/armeabi-v7a/symbol_folder_index.txt +1 -0
  172. package/android/.cxx/RelWithDebInfo/5g1u4l1v/hash_key.txt +32 -0
  173. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  174. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  175. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
  176. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/arm64-v8a/prefab/lib/aarch64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
  177. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfig.cmake +9 -0
  178. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  179. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
  180. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/armeabi-v7a/prefab/lib/arm-linux-androideabi/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
  181. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  182. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  183. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
  184. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86/prefab/lib/i686-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
  185. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfig.cmake +9 -0
  186. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/fbjni/fbjniConfigVersion.cmake +9 -0
  187. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/kolibri-android/kolibri-androidConfig.cmake +9 -0
  188. package/android/.cxx/RelWithDebInfo/5g1u4l1v/prefab/x86_64/prefab/lib/x86_64-linux-android/cmake/kolibri-android/kolibri-androidConfigVersion.cmake +9 -0
  189. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  190. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  191. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  192. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/cache-v2-336121a96d78e6796dce.json +1487 -0
  193. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/cmakeFiles-v1-985fbc81afea194fb834.json +809 -0
  194. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/codemodel-v2-7f2c86bf1ed6bb14f83e.json +60 -0
  195. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
  196. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/index-2026-09-23T15-40-25-0497.json +92 -0
  197. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-8831e9862f5bc79725de.json +310 -0
  198. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.ninja_deps +0 -0
  199. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/.ninja_log +7 -0
  200. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeCache.txt +431 -0
  201. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  202. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  203. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  204. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  205. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  206. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  207. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  208. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  209. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  210. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/CMakeOutput.log +256 -0
  211. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/TargetDirectories.txt +3 -0
  212. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/cmake.check_cache +1 -0
  213. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/Users/alanhughes/Work/expo/packages/expo-sqlite/vendor/sqlite3/sqlite3.c.o +0 -0
  214. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  215. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  216. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  217. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  218. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/CMakeFiles/rules.ninja +74 -0
  219. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/additional_project_files.txt +0 -0
  220. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/android_gradle_build.json +44 -0
  221. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/android_gradle_build_mini.json +31 -0
  222. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/build.ninja +196 -0
  223. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/build_file_index.txt +3 -0
  224. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/cmake_install.cmake +54 -0
  225. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/compile_commands.json +27 -0
  226. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/compile_commands.json.bin +0 -0
  227. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/configure_fingerprint.bin +28 -0
  228. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/metadata_generation_command.txt +25 -0
  229. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/prefab_config.json +8 -0
  230. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86/symbol_folder_index.txt +1 -0
  231. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  232. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  233. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  234. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/cache-v2-7680fd2ea5093a2a48e5.json +1487 -0
  235. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-f4180429c22746cfd636.json +809 -0
  236. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/codemodel-v2-60fec8725e2bb1fa02e5.json +60 -0
  237. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/directory-.-RelWithDebInfo-f5ebdc15457944623624.json +14 -0
  238. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/index-2026-09-23T15-40-37-0921.json +92 -0
  239. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.cmake/api/v1/reply/target-expo-sqlite-RelWithDebInfo-baac7cda33db6bea8600.json +310 -0
  240. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.ninja_deps +0 -0
  241. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/.ninja_log +7 -0
  242. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeCache.txt +431 -0
  243. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  244. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  245. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  246. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  247. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  248. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  249. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  250. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  251. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  252. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/CMakeOutput.log +258 -0
  253. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/TargetDirectories.txt +3 -0
  254. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/cmake.check_cache +1 -0
  255. 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
  256. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeDatabaseBinding.cpp.o +0 -0
  257. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeSessionBinding.cpp.o +0 -0
  258. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/NativeStatementBinding.cpp.o +0 -0
  259. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/expo-sqlite.dir/src/main/cpp/SQLite3Main.cpp.o +0 -0
  260. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/CMakeFiles/rules.ninja +74 -0
  261. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/additional_project_files.txt +0 -0
  262. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/android_gradle_build.json +44 -0
  263. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/android_gradle_build_mini.json +31 -0
  264. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/build.ninja +196 -0
  265. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/build_file_index.txt +3 -0
  266. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/cmake_install.cmake +54 -0
  267. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/compile_commands.json +27 -0
  268. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/compile_commands.json.bin +0 -0
  269. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/configure_fingerprint.bin +28 -0
  270. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/metadata_generation_command.txt +25 -0
  271. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/prefab_config.json +8 -0
  272. package/android/.cxx/RelWithDebInfo/5g1u4l1v/x86_64/symbol_folder_index.txt +1 -0
  273. package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +27 -0
  274. package/android/.cxx/tools/debug/x86/compile_commands.json +27 -0
  275. package/android/.cxx/tools/release/arm64-v8a/compile_commands.json +27 -0
  276. package/android/.cxx/tools/release/armeabi-v7a/compile_commands.json +27 -0
  277. package/android/.cxx/tools/release/x86/compile_commands.json +27 -0
  278. package/android/.cxx/tools/release/x86_64/compile_commands.json +27 -0
  279. package/android/build.gradle +2 -2
  280. package/android/src/main/cpp/NativeDatabaseBinding.cpp +3 -0
  281. package/android/src/main/cpp/NativeDatabaseBinding.h +1 -0
  282. package/android/src/main/java/expo/modules/sqlite/NativeDatabase.kt +2 -0
  283. package/android/src/main/java/expo/modules/sqlite/NativeDatabaseBinding.kt +1 -0
  284. package/android/src/main/java/expo/modules/sqlite/SQLExceptions.kt +3 -0
  285. package/android/src/main/java/expo/modules/sqlite/SQLiteModule.kt +24 -5
  286. package/build/NativeDatabase.d.ts +1 -0
  287. package/build/NativeDatabase.js.map +1 -1
  288. package/build/SQLiteDatabase.d.ts +19 -0
  289. package/build/SQLiteDatabase.js +36 -3
  290. package/build/SQLiteDatabase.js.map +1 -1
  291. package/build/hooks.d.ts +1 -1
  292. package/dev-plugin-dist/+not-found.html +1 -1
  293. package/dev-plugin-dist/_expo/static/js/web/__common-b5c30377ac28ec1a3c7472c7feddcab4.js +48 -0
  294. package/dev-plugin-dist/_expo/static/js/web/__expo-metro-runtime-8c088df87a31e4e6accd81c554ec290d.js +5 -0
  295. package/dev-plugin-dist/_expo/static/js/web/_layout-d4a58f50ebdda8715adad68e1571bc0e.js +24 -0
  296. package/dev-plugin-dist/_expo/static/js/web/entry-9124ce1ac56db7583dd09a0f5dab7f3c.js +836 -0
  297. package/dev-plugin-dist/_expo/static/js/web/{entry-cd0faf04fd80434b56cfdcef6d043e6f.js → index-5d44464b52f351ee1a8d579d6ec31de6.js} +1740 -2649
  298. package/dev-plugin-dist/_expo/static/js/web/{worker-8ce5600e5e057a5d4ef584466dc6a249.js → worker-634941622d077e92764ccbb4960edffc.js} +14 -14
  299. package/dev-plugin-dist/_sitemap.html +1 -1
  300. package/dev-plugin-dist/index.html +1 -1
  301. package/expo-module.config.json +1 -1
  302. package/ios/DatabaseChangeEvent.swift +15 -0
  303. package/ios/Exceptions.swift +6 -0
  304. package/ios/NativeDatabase.swift +147 -4
  305. package/ios/NativeSession.swift +164 -2
  306. package/ios/NativeStatement.swift +90 -3
  307. package/ios/SQLiteModule.swift +191 -452
  308. package/ios/SQLiteOptions.swift +2 -14
  309. package/ios/Tests/NativeDatabaseTests.swift +105 -0
  310. package/ios/Tests/NativeSessionTests.swift +102 -0
  311. package/ios/Tests/NativeStatementTests.swift +90 -0
  312. package/ios/Tests/OpenDatabaseOptionsTests.swift +44 -0
  313. package/ios/Tests/SQLiteModuleTests.swift +116 -0
  314. package/ios/Tests/StatementLockTests.swift +12 -16
  315. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar +0 -0
  316. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.md5 +1 -0
  317. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha1 +1 -0
  318. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha256 +1 -0
  319. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5-sources.jar.sha512 +1 -0
  320. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar +0 -0
  321. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.md5 +1 -0
  322. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha1 +1 -0
  323. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha256 +1 -0
  324. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.aar.sha512 +1 -0
  325. 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
  326. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.md5 +1 -0
  327. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha1 +1 -0
  328. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha256 +1 -0
  329. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.module.sha512 +1 -0
  330. 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
  331. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.md5 +1 -0
  332. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha1 +1 -0
  333. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha256 +1 -0
  334. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.5/expo.modules.sqlite-58.0.5.pom.sha512 +1 -0
  335. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml +4 -4
  336. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.md5 +1 -1
  337. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha1 +1 -1
  338. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha256 +1 -1
  339. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/maven-metadata.xml.sha512 +1 -1
  340. package/package.json +4 -4
  341. package/src/NativeDatabase.ts +1 -0
  342. package/src/SQLiteDatabase.ts +38 -3
  343. package/web/SQLiteModule.node.ts +2 -0
  344. package/web/SQLiteModule.ts +5 -1
  345. package/.babelrc +0 -3
  346. package/.gitignore +0 -8
  347. package/.npmignore +0 -32
  348. package/.prettierignore +0 -2
  349. package/.tsbuildinfo +0 -1
  350. package/android/.gitignore +0 -263
  351. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar +0 -0
  352. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.md5 +0 -1
  353. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.sha1 +0 -1
  354. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.sha256 +0 -1
  355. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3-sources.jar.sha512 +0 -1
  356. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar +0 -0
  357. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.md5 +0 -1
  358. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.sha1 +0 -1
  359. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.sha256 +0 -1
  360. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.aar.sha512 +0 -1
  361. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.md5 +0 -1
  362. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.sha1 +0 -1
  363. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.sha256 +0 -1
  364. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.module.sha512 +0 -1
  365. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.md5 +0 -1
  366. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.sha1 +0 -1
  367. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.sha256 +0 -1
  368. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.3/expo.modules.sqlite-58.0.3.pom.sha512 +0 -1
  369. package/plugin/.tsbuildinfo +0 -1
  370. package/plugin/tsconfig.json +0 -10
  371. package/plugin/tsconfig.tsbuildinfo +0 -1
  372. package/tsconfig.all.json +0 -11
  373. package/tsconfig.json +0 -10
  374. package/turbo.json +0 -14
  375. package/web/wa-sqlite/types/tsconfig.json +0 -7
@@ -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
- public final class SQLiteModule: Module {
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
- public func definition() -> ModuleDefinition {
22
- Name("ExpoSQLite")
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
- Events("onDatabaseChange")
48
+ public override func didStartListening(event: String) {
49
+ hasListeners = true
50
+ }
44
51
 
45
- OnStartObserving {
46
- hasListeners = true
47
- }
52
+ public override func didStopListening(event: String) {
53
+ hasListeners = false
54
+ }
48
55
 
49
- OnStopObserving {
50
- hasListeners = false
56
+ public override func willDestroy() {
57
+ removeAllCachedDatabases().forEach {
58
+ do {
59
+ try closeDatabase($0)
60
+ } catch {}
51
61
  }
62
+ }
52
63
 
53
- OnDestroy {
54
- removeAllCachedDatabases().forEach {
55
- do {
56
- try closeDatabase($0)
57
- } catch {}
58
- }
59
- }
64
+ // MARK: - Module functions
60
65
 
61
- AsyncFunction("deleteDatabaseAsync") { (databasePath: String) in
62
- try deleteDatabase(databasePath: databasePath)
63
- }.runOnQueue(moduleQueue)
64
- Function("deleteDatabaseSync") { (databasePath: String) in
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
- AsyncFunction("importAssetDatabaseAsync") { (databasePath: String, assetDatabasePath: String, forceOverwrite: Bool) in
69
- let path = try ensureDatabasePathExists(path: databasePath)
70
- let fileManager = FileManager.default
71
- if fileManager.fileExists(atPath: path.toFilePath()) && !forceOverwrite {
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
- AsyncFunction("ensureDatabasePathExistsAsync") { (databasePath: String) in
83
- try ensureDatabasePathExists(path: databasePath)
84
- }.runOnQueue(moduleQueue)
85
- Function("ensureDatabasePathExistsSync") { (databasePath: String) in
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
- // swiftlint:disable:next line_length
90
- AsyncFunction("backupDatabaseAsync") { (destDatabase: NativeDatabase, destDatabaseName: String, sourceDatabase: NativeDatabase, sourceDatabaseName: String) in
91
- try backupDatabase(destDatabase: destDatabase, destDatabaseName: destDatabaseName, sourceDatabase: sourceDatabase, sourceDatabaseName: sourceDatabaseName)
92
- }.runOnQueue(moduleQueue)
93
- Function("backupDatabaseSync") { (destDatabase: NativeDatabase, destDatabaseName: String, sourceDatabase: NativeDatabase, sourceDatabaseName: String) in
94
- try backupDatabase(destDatabase: destDatabase, destDatabaseName: destDatabaseName, sourceDatabase: sourceDatabase, sourceDatabaseName: sourceDatabaseName)
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
- // swiftlint:disable:next closure_body_length
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(convertSqlLiteErrorToString(db))
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.wait()
395
- defer {
396
- statement.lock.signal()
397
- }
398
-
399
- exsqlite3_reset(statement.pointer)
400
- exsqlite3_clear_bindings(statement.pointer)
401
- for (key, param) in bindParams {
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
- for (key, param) in bindBlobParams {
408
- let index = try getBindParamIndex(statement: statement, key: key, shouldPassAsArray: shouldPassAsArray)
409
- if index > 0 {
410
- try bindStatementParam(statement: statement, with: param, at: index)
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
- let ret = exsqlite3_step(statement.pointer)
415
- if ret != SQLITE_ROW && ret != SQLITE_DONE {
416
- throw SQLiteErrorException(convertSqlLiteErrorToString(database))
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.wait()
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
- columnValuesList.append(try getColumnValues(statement: statement))
463
- continue
311
+ return try getColumnValues(statement: statement)
464
312
  }
465
- if ret == SQLITE_DONE {
466
- break
313
+ if ret != SQLITE_DONE {
314
+ throw SQLiteErrorException(convertSqlLiteErrorToString(database))
467
315
  }
468
- throw SQLiteErrorException(convertSqlLiteErrorToString(database))
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 finalize(statement: NativeStatement, database: NativeDatabase) throws {
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.wait()
494
- defer {
495
- statement.lock.signal()
496
- }
497
-
498
- if exsqlite3_finalize(statement.pointer) != SQLITE_OK {
499
- throw SQLiteErrorException(convertSqlLiteErrorToString(database))
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 convertSqlLiteErrorToString(db.pointer)
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
- if let index = contextPairs.firstIndex(where: {
521
- guard let pair = $0.takeUnretainedValue() as? (SQLiteModule, NativeDatabase) else {
522
- return false
523
- }
524
- if pair.1.sharedObjectId != db.sharedObjectId {
525
- return false
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
- contextPairs.append(contextPair)
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.sendEvent("onDatabaseChange", [
577
- "databaseName": String(cString: UnsafePointer(databaseName)),
578
- "databaseFilePath": String(cString: UnsafePointer(databaseFilePath)),
579
- "tableName": String(cString: UnsafePointer(tableName)),
580
- "rowId": rowId,
581
- "typeId": SQLAction.fromCode(value: action)
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
- if database.isClosed {
674
- throw AccessClosedResourceException()
675
- }
504
+ try database.ensureOpen()
676
505
  }
677
506
 
678
507
  private func maybeThrowForFinalizedStatement(_ statement: NativeStatement) throws {
679
- if statement.isFinalized {
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
  }