expo-sqlite 58.0.15 → 58.0.17

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 (59) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/expo/modules/sqlite/NativeDatabaseBinding.kt +1 -0
  4. package/android/src/main/java/expo/modules/sqlite/NativeStatement.kt +9 -1
  5. package/build/hooks.js +22 -7
  6. package/build/hooks.js.map +1 -1
  7. package/dev-plugin-dist/+not-found.html +2 -2
  8. package/dev-plugin-dist/_expo/static/js/web/{__common-6733f4ee4e23ce5a7ba5e6796ae5614d.js → __common-bb2542041f1b094a8c75f25287f1eab8.js} +49 -49
  9. package/dev-plugin-dist/_expo/static/js/web/{_layout-5200f4e84fc03b29bbb20d34ba8d7af2.js → _layout-87e9b74b8486b174fe5b606bf7605e65.js} +22 -22
  10. package/dev-plugin-dist/_expo/static/js/web/{entry-18a29c742435a2074dd9b61e19740e04.js → entry-cb0627e9624da3ffdb031f02342db7b2.js} +432 -429
  11. package/dev-plugin-dist/_expo/static/js/web/{index-5e02eb7e4ad474fb18a1e55732957463.js → index-a0d288042349b07e39078522c3543c6d.js} +1733 -1733
  12. package/dev-plugin-dist/_expo/static/js/web/{worker-5cb95aace694a129b742d45a71b9c588.js → worker-3dada1e55f01b3914c71823471616780.js} +17 -17
  13. package/dev-plugin-dist/_sitemap.html +2 -2
  14. package/dev-plugin-dist/index.html +2 -2
  15. package/ios/Benchmarks/Benchmarks.swift +5 -5
  16. package/ios/Benchmarks/JavaScriptBenchmarks.swift +59 -64
  17. package/ios/Benchmarks/StatementBenchmarks.swift +14 -21
  18. package/ios/ExpoSQLite.podspec +1 -0
  19. package/ios/NativeStatement.swift +6 -0
  20. package/ios/Tests/OpenDatabaseOptionsTests.swift +22 -13
  21. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15-sources.jar → 58.0.17/expo.modules.sqlite-58.0.17-sources.jar} +0 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17-sources.jar.md5 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17-sources.jar.sha1 +1 -0
  24. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17-sources.jar.sha256 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17-sources.jar.sha512 +1 -0
  26. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.aar +0 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.aar.md5 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.aar.sha1 +1 -0
  29. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.aar.sha256 +1 -0
  30. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.aar.sha512 +1 -0
  31. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15.module → 58.0.17/expo.modules.sqlite-58.0.17.module} +22 -22
  32. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.module.md5 +1 -0
  33. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.module.sha1 +1 -0
  34. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.module.sha256 +1 -0
  35. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.module.sha512 +1 -0
  36. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15.pom → 58.0.17/expo.modules.sqlite-58.0.17.pom} +1 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.pom.md5 +1 -0
  38. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.pom.sha1 +1 -0
  39. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.pom.sha256 +1 -0
  40. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.17/expo.modules.sqlite-58.0.17.pom.sha512 +1 -0
  41. package/package.json +5 -4
  42. package/src/hooks.tsx +31 -7
  43. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15-sources.jar.md5 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15-sources.jar.sha1 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15-sources.jar.sha256 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15-sources.jar.sha512 +0 -1
  47. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar +0 -0
  48. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.md5 +0 -1
  49. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.sha1 +0 -1
  50. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.sha256 +0 -1
  51. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.sha512 +0 -1
  52. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.md5 +0 -1
  53. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.sha1 +0 -1
  54. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.sha256 +0 -1
  55. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.sha512 +0 -1
  56. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.md5 +0 -1
  57. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.sha1 +0 -1
  58. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.sha256 +0 -1
  59. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.sha512 +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 58.0.17
4
+
5
+ ### Patch Changes
6
+
7
+ - [iOS][Android] Fix every later transaction on a connection failing with `cannot commit transaction - SQL statements in progress` after a statement fails with `database is locked`, by resetting the statement when its run fails. ([#51413](https://github.com/expo/expo/pull/51413) by [@expo-bot](https://github.com/expo-bot))
8
+ - [iOS][Android] Fix `finalizeAsync()` and `finalizeSync()` not reporting the earlier error of a failed `run()`, by resetting the statement only when the run fails with `database is locked`. ([#53339](https://github.com/expo/expo/pull/53339) by [@expo-tuft](https://github.com/apps/expo-tuft))
9
+
10
+ ## 58.0.16
11
+
12
+ ### Patch Changes
13
+
14
+ - Fix `SQLiteProvider` skipping re-renders when only `children` change. Re-import the database when `assetSource` changes, and keep it open when a new object has the same contents. ([#45099](https://github.com/expo/expo/pull/45099) by [@vladlenskiy](https://github.com/vladlenskiy))
15
+
3
16
  ## 58.0.15
4
17
 
5
18
  ### Patch Changes
@@ -47,7 +47,7 @@ def reactNativeArchitectures() {
47
47
  }
48
48
 
49
49
  group = 'host.exp.exponent'
50
- version = '58.0.15'
50
+ version = '58.0.17'
51
51
 
52
52
  expoModule {
53
53
  v2 true
@@ -57,7 +57,7 @@ android {
57
57
  namespace "expo.modules.sqlite"
58
58
  defaultConfig {
59
59
  versionCode 18
60
- versionName "58.0.15"
60
+ versionName "58.0.17"
61
61
  buildConfigField "boolean", "WITH_SQLITE_VEC", project.ext.WITH_SQLITE_VEC.toString()
62
62
 
63
63
  externalNativeBuild {
@@ -89,6 +89,7 @@ internal class NativeDatabaseBinding : Closeable {
89
89
 
90
90
  // These error code should be synced with sqlite3.h
91
91
  const val SQLITE_OK = 0
92
+ const val SQLITE_BUSY = 5
92
93
 
93
94
  const val SQLITE_ROW = 100
94
95
  const val SQLITE_DONE = 101
@@ -113,7 +113,15 @@ internal class NativeStatement @JS constructor() : SharedRef<NativeStatementBind
113
113
 
114
114
  val ret = ref.sqlite3_step()
115
115
  if (ret != NativeDatabaseBinding.SQLITE_ROW && ret != NativeDatabaseBinding.SQLITE_DONE) {
116
- throw SQLiteErrorException(ref.getLastErrorMessage())
116
+ // A step that fails with SQLITE_BUSY leaves the statement running, so every later COMMIT
117
+ // on the connection fails until the statement is reset.
118
+ // Reset only for SQLITE_BUSY. A reset also clears other errors, which finalize() must still report.
119
+ // Read the message first. sqlite3_reset() replaces lastErrorMessage.
120
+ val message = ref.getLastErrorMessage()
121
+ if ((ret and 0xff) == NativeDatabaseBinding.SQLITE_BUSY) {
122
+ ref.sqlite3_reset()
123
+ }
124
+ throw SQLiteErrorException(message)
117
125
  }
118
126
  val firstRowValues: List<Any?> =
119
127
  if (ret == NativeDatabaseBinding.SQLITE_ROW) {
package/build/hooks.js CHANGED
@@ -25,7 +25,7 @@ import { createDatabasePath } from './pathUtils';
25
25
  onError: onError,
26
26
  children: children
27
27
  });
28
- }, (prevProps, nextProps)=>prevProps.databaseName === nextProps.databaseName && deepEqual(prevProps.options, nextProps.options) && deepEqual(prevProps.assetSource, nextProps.assetSource) && prevProps.directory === nextProps.directory && prevProps.onInit === nextProps.onInit && prevProps.onError === nextProps.onError && prevProps.useSuspense === nextProps.useSuspense);
28
+ }, (prevProps, nextProps)=>prevProps.databaseName === nextProps.databaseName && deepEqual(prevProps.options, nextProps.options) && deepEqual(prevProps.assetSource, nextProps.assetSource) && prevProps.directory === nextProps.directory && prevProps.onInit === nextProps.onInit && prevProps.onError === nextProps.onError && prevProps.useSuspense === nextProps.useSuspense && prevProps.children === nextProps.children);
29
29
  /**
30
30
  * A global hook for accessing the SQLite database across components.
31
31
  * This hook should only be used within a [`<SQLiteProvider>`](#sqlitesqliteprovider) component.
@@ -55,11 +55,13 @@ import { createDatabasePath } from './pathUtils';
55
55
  }
56
56
  let databaseInstance = null;
57
57
  function SQLiteProviderSuspense({ databaseName, directory, options, assetSource, children, onInit }) {
58
+ const stableOptions = useDeepStableValue(options);
59
+ const stableAssetSource = useDeepStableValue(assetSource);
58
60
  const databasePromise = getDatabaseAsync({
59
61
  databaseName,
60
62
  directory,
61
- options,
62
- assetSource,
63
+ options: stableOptions,
64
+ assetSource: stableAssetSource,
63
65
  onInit
64
66
  });
65
67
  const database = use(databasePromise);
@@ -72,14 +74,16 @@ function SQLiteProviderNonSuspense({ databaseName, directory, options, assetSour
72
74
  const databaseRef = useRef(null);
73
75
  const [loading, setLoading] = useState(true);
74
76
  const [error, setError] = useState(null);
77
+ const stableOptions = useDeepStableValue(options);
78
+ const stableAssetSource = useDeepStableValue(assetSource);
75
79
  useEffect(()=>{
76
80
  async function setup() {
77
81
  try {
78
82
  const db = await openDatabaseWithInitAsync({
79
83
  databaseName,
80
84
  directory,
81
- options,
82
- assetSource,
85
+ options: stableOptions,
86
+ assetSource: stableAssetSource,
83
87
  onInit
84
88
  });
85
89
  databaseRef.current = db;
@@ -105,7 +109,8 @@ function SQLiteProviderNonSuspense({ databaseName, directory, options, assetSour
105
109
  }, [
106
110
  databaseName,
107
111
  directory,
108
- options,
112
+ stableOptions,
113
+ stableAssetSource,
109
114
  onInit
110
115
  ]);
111
116
  if (error != null) {
@@ -123,7 +128,7 @@ function SQLiteProviderNonSuspense({ databaseName, directory, options, assetSour
123
128
  });
124
129
  }
125
130
  function getDatabaseAsync({ databaseName, directory, options, assetSource, onInit }) {
126
- if (databaseInstance?.promise != null && databaseInstance?.databaseName === databaseName && databaseInstance?.directory === directory && databaseInstance?.options === options && databaseInstance?.onInit === onInit) {
131
+ if (databaseInstance?.promise != null && databaseInstance?.databaseName === databaseName && databaseInstance?.directory === directory && databaseInstance?.options === options && databaseInstance?.assetSource === assetSource && databaseInstance?.onInit === onInit) {
127
132
  return databaseInstance.promise;
128
133
  }
129
134
  let promise;
@@ -152,6 +157,7 @@ function getDatabaseAsync({ databaseName, directory, options, assetSource, onIni
152
157
  databaseName,
153
158
  directory,
154
159
  options,
160
+ assetSource,
155
161
  onInit,
156
162
  promise
157
163
  };
@@ -180,6 +186,15 @@ async function openDatabaseWithInitAsync({ databaseName, directory, options, ass
180
186
  const path = createDatabasePath(databaseName, directory);
181
187
  await ExpoSQLite.importAssetDatabaseAsync(path, asset.localUri, assetSource.forceOverwrite ?? false);
182
188
  }
189
+ /**
190
+ * Returns the previous reference while `value` remains deeply equal.
191
+ */ function useDeepStableValue(value) {
192
+ const ref = useRef(value);
193
+ if (!deepEqual(ref.current, value)) {
194
+ ref.current = value;
195
+ }
196
+ return ref.current;
197
+ }
183
198
  /**
184
199
  * Compares two objects deeply for equality.
185
200
  */ export function deepEqual(a, b) {
@@ -1 +1 @@
1
- {"version":3,"sources":["hooks.tsx"],"sourcesContent":[null],"names":["Asset","React","createContext","memo","useContext","useEffect","useRef","useState","ExpoSQLite","openDatabaseAsync","createDatabasePath","SQLiteContext","SQLiteProvider","children","onError","useSuspense","props","Error","SQLiteProviderSuspense","SQLiteProviderNonSuspense","prevProps","nextProps","databaseName","deepEqual","options","assetSource","directory","onInit","useSQLiteContext","context","databaseInstance","databasePromise","getDatabaseAsync","database","use","Provider","value","databaseRef","loading","setLoading","error","setError","setup","db","openDatabaseWithInitAsync","current","e","teardown","closeAsync","handler","promise","then","importDatabaseFromAssetAsync","asset","fromModule","assetId","downloadAsync","localUri","path","importAssetDatabaseAsync","forceOverwrite","a","b","Object","keys","length","every","key","isReactUsePromise","status","undefined","reason","suspensePromise","result"],"mappings":"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"}
1
+ {"version":3,"sources":["hooks.tsx"],"sourcesContent":[null],"names":["Asset","React","createContext","memo","useContext","useEffect","useRef","useState","ExpoSQLite","openDatabaseAsync","createDatabasePath","SQLiteContext","SQLiteProvider","children","onError","useSuspense","props","Error","SQLiteProviderSuspense","SQLiteProviderNonSuspense","prevProps","nextProps","databaseName","deepEqual","options","assetSource","directory","onInit","useSQLiteContext","context","databaseInstance","stableOptions","useDeepStableValue","stableAssetSource","databasePromise","getDatabaseAsync","database","use","Provider","value","databaseRef","loading","setLoading","error","setError","setup","db","openDatabaseWithInitAsync","current","e","teardown","closeAsync","handler","promise","then","importDatabaseFromAssetAsync","asset","fromModule","assetId","downloadAsync","localUri","path","importAssetDatabaseAsync","forceOverwrite","ref","a","b","Object","keys","length","every","key","isReactUsePromise","status","undefined","reason","suspensePromise","result"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/css/global-b1bdf830cdbd0ec4238cc5f230f99460.css" as="style"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/__expo-metro-runtime-8c088df87a31e4e6accd81c554ec290d.js" as="script"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/_layout-5200f4e84fc03b29bbb20d34ba8d7af2.js" as="script"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/__common-6733f4ee4e23ce5a7ba5e6796ae5614d.js" as="script"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/entry-18a29c742435a2074dd9b61e19740e04.js" as="script"/><style id="expo-reset">#root,body,html{height:100%}body{overflow:hidden}#root{display:flex}</style><style id="react-native-stylesheet">[stylesheet-group="0"]{}
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/css/global-b1bdf830cdbd0ec4238cc5f230f99460.css" as="style"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/__expo-metro-runtime-8c088df87a31e4e6accd81c554ec290d.js" as="script"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/_layout-87e9b74b8486b174fe5b606bf7605e65.js" as="script"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/__common-bb2542041f1b094a8c75f25287f1eab8.js" as="script"/><link rel="preload" href="/_expo/plugins/expo-sqlite/_expo/static/js/web/entry-cb0627e9624da3ffdb031f02342db7b2.js" as="script"/><style id="expo-reset">#root,body,html{height:100%}body{overflow:hidden}#root{display:flex}</style><style id="react-native-stylesheet">[stylesheet-group="0"]{}
2
2
  body{margin:0;}
3
3
  button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
4
4
  html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}
@@ -313,4 +313,4 @@ input::-webkit-search-cancel-button,input::-webkit-search-decoration,input::-web
313
313
  @keyframes r-1pzkwqh{0%{transform:translateY(100%);}100%{transform:translateY(0%);}}
314
314
  @keyframes r-imtty0{0%{opacity:0;}100%{opacity:1;}}
315
315
  @keyframes r-q67da2{0%{transform:translateX(-100%);}100%{transform:translateX(400%);}}
316
- @keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><link rel="stylesheet" href="/_expo/plugins/expo-sqlite/_expo/static/css/global-b1bdf830cdbd0ec4238cc5f230f99460.css"/></head><body><div id="root"><!--$--><div class="css-g5y9jx r-13awgt0"></div><!--/$--></div><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/__expo-metro-runtime-8c088df87a31e4e6accd81c554ec290d.js"></script><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/_layout-5200f4e84fc03b29bbb20d34ba8d7af2.js"></script><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/__common-6733f4ee4e23ce5a7ba5e6796ae5614d.js"></script><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/entry-18a29c742435a2074dd9b61e19740e04.js"></script><script id="_R_">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script></body></html>
316
+ @keyframes r-t2lo5v{0%{opacity:1;}100%{opacity:0;}}</style><link rel="stylesheet" href="/_expo/plugins/expo-sqlite/_expo/static/css/global-b1bdf830cdbd0ec4238cc5f230f99460.css"/></head><body><div id="root"><!--$--><div class="css-g5y9jx r-13awgt0"></div><!--/$--></div><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/__expo-metro-runtime-8c088df87a31e4e6accd81c554ec290d.js"></script><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/_layout-87e9b74b8486b174fe5b606bf7605e65.js"></script><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/__common-bb2542041f1b094a8c75f25287f1eab8.js"></script><script defer="" src="/_expo/plugins/expo-sqlite/_expo/static/js/web/entry-cb0627e9624da3ffdb031f02342db7b2.js"></script><script id="_R_">globalThis.__EXPO_ROUTER_HYDRATE__=true;</script></body></html>