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
@@ -3,7 +3,7 @@
3
3
  "component": {
4
4
  "group": "host.exp.exponent",
5
5
  "module": "expo.modules.sqlite",
6
- "version": "58.0.15",
6
+ "version": "58.0.17",
7
7
  "attributes": {
8
8
  "org.gradle.status": "release"
9
9
  }
@@ -24,13 +24,13 @@
24
24
  },
25
25
  "files": [
26
26
  {
27
- "name": "expo.modules.sqlite-58.0.15.aar",
28
- "url": "expo.modules.sqlite-58.0.15.aar",
29
- "size": 3678100,
30
- "sha512": "20ee4d163c789971f459002545f1dffd0b0c61b0b7b417f310dba61d18274736ce4ddc719fcef41d4be830a3a45ed1dbf01c6006ea061882f0be9ebbb3025620",
31
- "sha256": "07fd702db446c37af350500fbb2bba0c344b9c219c407cd4676417b5c04269b0",
32
- "sha1": "1fea9b46021910145ad444cfaebbd870f192c4f3",
33
- "md5": "1400edef6c9cb97b71a23472e7ebde56"
27
+ "name": "expo.modules.sqlite-58.0.17.aar",
28
+ "url": "expo.modules.sqlite-58.0.17.aar",
29
+ "size": 3678166,
30
+ "sha512": "048aa8b736a81fd3a491f9dbf77dadb92ffa8526310884452d1e9df765a1d474d09dee2537c006444c20b52e1856696bd3f52e278754a8c79cbc29ec1d90948e",
31
+ "sha256": "a25a49b2eb0151f943009851cae862e77e91b5713803179321ca7ef257e85ac8",
32
+ "sha1": "729e68d05d5e3a15ee4946466a71f3fa2cafc459",
33
+ "md5": "fbca0971f4df30b4e47fe00d21680409"
34
34
  }
35
35
  ]
36
36
  },
@@ -67,13 +67,13 @@
67
67
  ],
68
68
  "files": [
69
69
  {
70
- "name": "expo.modules.sqlite-58.0.15.aar",
71
- "url": "expo.modules.sqlite-58.0.15.aar",
72
- "size": 3678100,
73
- "sha512": "20ee4d163c789971f459002545f1dffd0b0c61b0b7b417f310dba61d18274736ce4ddc719fcef41d4be830a3a45ed1dbf01c6006ea061882f0be9ebbb3025620",
74
- "sha256": "07fd702db446c37af350500fbb2bba0c344b9c219c407cd4676417b5c04269b0",
75
- "sha1": "1fea9b46021910145ad444cfaebbd870f192c4f3",
76
- "md5": "1400edef6c9cb97b71a23472e7ebde56"
70
+ "name": "expo.modules.sqlite-58.0.17.aar",
71
+ "url": "expo.modules.sqlite-58.0.17.aar",
72
+ "size": 3678166,
73
+ "sha512": "048aa8b736a81fd3a491f9dbf77dadb92ffa8526310884452d1e9df765a1d474d09dee2537c006444c20b52e1856696bd3f52e278754a8c79cbc29ec1d90948e",
74
+ "sha256": "a25a49b2eb0151f943009851cae862e77e91b5713803179321ca7ef257e85ac8",
75
+ "sha1": "729e68d05d5e3a15ee4946466a71f3fa2cafc459",
76
+ "md5": "fbca0971f4df30b4e47fe00d21680409"
77
77
  }
78
78
  ]
79
79
  },
@@ -87,13 +87,13 @@
87
87
  },
88
88
  "files": [
89
89
  {
90
- "name": "expo.modules.sqlite-58.0.15-sources.jar",
91
- "url": "expo.modules.sqlite-58.0.15-sources.jar",
92
- "size": 14875,
93
- "sha512": "93ce18d06cc3125618ca50503fd5b7f6d7407b05e931ddf6381fa7e70d8b41c6719c65a433fafa28626a12335b6e9f9a5e4cd05036f715e7a5b01c94047fddf7",
94
- "sha256": "e4feeb357b13c3da0d6690deff9aab2186a7874185369a06c55fa6da992fdc9c",
95
- "sha1": "257a7ae7ca2f46a064622513d9ce08b515877773",
96
- "md5": "5f6d9bf8e746dacc0378eead6be4ea33"
90
+ "name": "expo.modules.sqlite-58.0.17-sources.jar",
91
+ "url": "expo.modules.sqlite-58.0.17-sources.jar",
92
+ "size": 15066,
93
+ "sha512": "d2da8ad3aa0c4d12f2ea558d0ca641d3489ad95a6a0ab619ca180b1f86e52b1c1f0a914ee4a77b83c0c0354cb75cc92d3d07f5add40847957811a60eba42b026",
94
+ "sha256": "be55662afec0e75da1cdb2c9e5bad751244e78f2963fbdf4bf0cad338681e23b",
95
+ "sha1": "5be72af0d0a4b7408f1fccc2e1162a9d19ce5c4f",
96
+ "md5": "7980915a3bef977ce8dd1a7c15b27f0f"
97
97
  }
98
98
  ]
99
99
  }
@@ -0,0 +1 @@
1
+ 7015b39aacff082b456af37d9be2b4ae987951d0413b297905c03df0392d7c8f
@@ -0,0 +1 @@
1
+ 0505cbb75dba5ab039928924a51a3c03b1ee1c325855f9da13eee9517a8ca541b73c2a251bb2b27c38c1f8d8446e21d6215eab5180fd97793d82b1afe416975b
@@ -9,7 +9,7 @@
9
9
  <modelVersion>4.0.0</modelVersion>
10
10
  <groupId>host.exp.exponent</groupId>
11
11
  <artifactId>expo.modules.sqlite</artifactId>
12
- <version>58.0.15</version>
12
+ <version>58.0.17</version>
13
13
  <packaging>aar</packaging>
14
14
  <name>expo.modules.sqlite</name>
15
15
  <url>https://github.com/expo/expo</url>
@@ -0,0 +1 @@
1
+ 95cfb2a220909017e0a752a7bc3486349478b4ede5a748c16abfcbf54d0fdca8
@@ -0,0 +1 @@
1
+ 512e5fb51ed420fad0ef2dac670c7e9e03c8e33a8b5093483ce46baaf050373cd5992a0af1be8319cf7b502d9c0d9192d49b921e44ca653d75794178317d8b33
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-sqlite",
3
- "version": "58.0.15",
3
+ "version": "58.0.17",
4
4
  "description": "Provides access to a database using SQLite (https://www.sqlite.org/). The database is persisted across restarts of your app.",
5
5
  "keywords": [
6
6
  "async-storage",
@@ -50,13 +50,13 @@
50
50
  "await-lock": "^2.2.2"
51
51
  },
52
52
  "devDependencies": {
53
- "@expo/internal-scripts": "58.0.5",
53
+ "@expo/internal-scripts": "58.0.6",
54
54
  "@expo/spawn-async": "^1.8.0",
55
55
  "@testing-library/react-native": "^14.0.1",
56
56
  "@types/jest": "^30.0.0",
57
57
  "@types/node": "^22.14.0",
58
58
  "@types/react": "~19.3.0",
59
- "expo": "58.0.22",
59
+ "expo": "58.0.25",
60
60
  "react-error-boundary": "^4.0.11",
61
61
  "tar": "^7.5.22"
62
62
  },
@@ -79,6 +79,7 @@
79
79
  "format": "expo-module format",
80
80
  "test": "jest",
81
81
  "depscheck": "expo-module depscheck",
82
- "typecheck": "tsc -b tsconfig.all.json"
82
+ "typecheck": "tsc -b tsconfig.all.json",
83
+ "typegen": "expo-modules typegen"
83
84
  }
84
85
  }
package/src/hooks.tsx CHANGED
@@ -118,7 +118,8 @@ export const SQLiteProvider = memo(
118
118
  prevProps.directory === nextProps.directory &&
119
119
  prevProps.onInit === nextProps.onInit &&
120
120
  prevProps.onError === nextProps.onError &&
121
- prevProps.useSuspense === nextProps.useSuspense
121
+ prevProps.useSuspense === nextProps.useSuspense &&
122
+ prevProps.children === nextProps.children
122
123
  );
123
124
 
124
125
  /**
@@ -154,7 +155,7 @@ export function useSQLiteContext(): SQLiteDatabase {
154
155
 
155
156
  type DatabaseInstanceType = Pick<
156
157
  SQLiteProviderProps,
157
- 'databaseName' | 'directory' | 'options' | 'onInit'
158
+ 'databaseName' | 'directory' | 'options' | 'assetSource' | 'onInit'
158
159
  > & {
159
160
  promise: Promise<SQLiteDatabase> | null;
160
161
  };
@@ -169,11 +170,13 @@ function SQLiteProviderSuspense({
169
170
  children,
170
171
  onInit,
171
172
  }: Omit<SQLiteProviderProps, 'onError' | 'useSuspense'>) {
173
+ const stableOptions = useDeepStableValue(options);
174
+ const stableAssetSource = useDeepStableValue(assetSource);
172
175
  const databasePromise = getDatabaseAsync({
173
176
  databaseName,
174
177
  directory,
175
- options,
176
- assetSource,
178
+ options: stableOptions,
179
+ assetSource: stableAssetSource,
177
180
  onInit,
178
181
  });
179
182
  const database = use(databasePromise);
@@ -193,14 +196,17 @@ function SQLiteProviderNonSuspense({
193
196
  const [loading, setLoading] = useState(true);
194
197
  const [error, setError] = useState<Error | null>(null);
195
198
 
199
+ const stableOptions = useDeepStableValue(options);
200
+ const stableAssetSource = useDeepStableValue(assetSource);
201
+
196
202
  useEffect(() => {
197
203
  async function setup() {
198
204
  try {
199
205
  const db = await openDatabaseWithInitAsync({
200
206
  databaseName,
201
207
  directory,
202
- options,
203
- assetSource,
208
+ options: stableOptions,
209
+ assetSource: stableAssetSource,
204
210
  onInit,
205
211
  });
206
212
  databaseRef.current = db;
@@ -226,7 +232,7 @@ function SQLiteProviderNonSuspense({
226
232
  databaseRef.current = null;
227
233
  setLoading(true);
228
234
  };
229
- }, [databaseName, directory, options, onInit]);
235
+ }, [databaseName, directory, stableOptions, stableAssetSource, onInit]);
230
236
 
231
237
  if (error != null) {
232
238
  const handler =
@@ -257,6 +263,7 @@ function getDatabaseAsync({
257
263
  databaseInstance?.databaseName === databaseName &&
258
264
  databaseInstance?.directory === directory &&
259
265
  databaseInstance?.options === options &&
266
+ databaseInstance?.assetSource === assetSource &&
260
267
  databaseInstance?.onInit === onInit
261
268
  ) {
262
269
  return databaseInstance.promise;
@@ -284,6 +291,7 @@ function getDatabaseAsync({
284
291
  databaseName,
285
292
  directory,
286
293
  options,
294
+ assetSource,
287
295
  onInit,
288
296
  promise,
289
297
  };
@@ -333,6 +341,22 @@ export async function importDatabaseFromAssetAsync(
333
341
  );
334
342
  }
335
343
 
344
+ /**
345
+ * Returns the previous reference while `value` remains deeply equal.
346
+ */
347
+ function useDeepStableValue<T>(value: T): T {
348
+ const ref = useRef(value);
349
+ if (
350
+ !deepEqual(
351
+ ref.current as { [key: string]: any } | undefined,
352
+ value as { [key: string]: any } | undefined
353
+ )
354
+ ) {
355
+ ref.current = value;
356
+ }
357
+ return ref.current;
358
+ }
359
+
336
360
  /**
337
361
  * Compares two objects deeply for equality.
338
362
  */
@@ -1 +0,0 @@
1
- e4feeb357b13c3da0d6690deff9aab2186a7874185369a06c55fa6da992fdc9c
@@ -1 +0,0 @@
1
- 93ce18d06cc3125618ca50503fd5b7f6d7407b05e931ddf6381fa7e70d8b41c6719c65a433fafa28626a12335b6e9f9a5e4cd05036f715e7a5b01c94047fddf7
@@ -1 +0,0 @@
1
- 07fd702db446c37af350500fbb2bba0c344b9c219c407cd4676417b5c04269b0
@@ -1 +0,0 @@
1
- 20ee4d163c789971f459002545f1dffd0b0c61b0b7b417f310dba61d18274736ce4ddc719fcef41d4be830a3a45ed1dbf01c6006ea061882f0be9ebbb3025620
@@ -1 +0,0 @@
1
- aa42cce68db9bac664f073750219b1780d351837b68c9034cc1ba4aeb1391256
@@ -1 +0,0 @@
1
- 5e1d7621a29819cee2de1c79751831f717a10bf6f44a190e8a4b84f487f5fbcb218497193c9f37ae1038a61e2ca804b292bcfad34a0c632c36c61963c9a23f7f
@@ -1 +0,0 @@
1
- 3f28d3df510f9affe2e24b27029fabef1a44de73f74da871abca1b295656af64
@@ -1 +0,0 @@
1
- 5290ca5ffebb7e3221a2ccfeffecc058655ee0c50234f049dec583b0db434ce1a1a3519f2901bb08cdc41edfd5a4139011637a2b80bcb0efc9ab618cfd949595