expo-sqlite 58.0.15 → 58.0.16

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 (51) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/android/build.gradle +2 -2
  3. package/build/hooks.js +22 -7
  4. package/build/hooks.js.map +1 -1
  5. package/dev-plugin-dist/+not-found.html +2 -2
  6. package/dev-plugin-dist/_expo/static/js/web/{__common-6733f4ee4e23ce5a7ba5e6796ae5614d.js → __common-a91396a33c562b43d2b77a6ffc575fb7.js} +49 -49
  7. package/dev-plugin-dist/_expo/static/js/web/{_layout-5200f4e84fc03b29bbb20d34ba8d7af2.js → _layout-acb144d1f99a64d1785af7527d659b2a.js} +24 -24
  8. package/dev-plugin-dist/_expo/static/js/web/{entry-18a29c742435a2074dd9b61e19740e04.js → entry-e3975197f566bcbd43c64e4d22104a7f.js} +772 -769
  9. package/dev-plugin-dist/_expo/static/js/web/{index-5e02eb7e4ad474fb18a1e55732957463.js → index-aa7dfdd0fcc30054b3c079a77a18453e.js} +1740 -1740
  10. package/dev-plugin-dist/_expo/static/js/web/{worker-5cb95aace694a129b742d45a71b9c588.js → worker-7964ea010c5e0bbcae7a3c69aa585a51.js} +17 -17
  11. package/dev-plugin-dist/_sitemap.html +2 -2
  12. package/dev-plugin-dist/index.html +2 -2
  13. package/ios/Benchmarks/Benchmarks.swift +5 -5
  14. package/ios/Benchmarks/JavaScriptBenchmarks.swift +59 -64
  15. package/ios/Benchmarks/StatementBenchmarks.swift +14 -21
  16. package/ios/ExpoSQLite.podspec +1 -0
  17. package/ios/Tests/OpenDatabaseOptionsTests.swift +22 -13
  18. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15.aar → 58.0.16/expo.modules.sqlite-58.0.16.aar} +0 -0
  19. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.aar.md5 +1 -0
  20. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.aar.sha1 +1 -0
  21. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.aar.sha256 +1 -0
  22. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.aar.sha512 +1 -0
  23. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15.module → 58.0.16/expo.modules.sqlite-58.0.16.module} +17 -17
  24. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.module.md5 +1 -0
  25. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.module.sha1 +1 -0
  26. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.module.sha256 +1 -0
  27. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.module.sha512 +1 -0
  28. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15.pom → 58.0.16/expo.modules.sqlite-58.0.16.pom} +1 -1
  29. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.pom.md5 +1 -0
  30. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.pom.sha1 +1 -0
  31. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.pom.sha256 +1 -0
  32. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.16/expo.modules.sqlite-58.0.16.pom.sha512 +1 -0
  33. package/package.json +5 -4
  34. package/src/hooks.tsx +31 -7
  35. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.md5 +0 -1
  36. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.sha1 +0 -1
  37. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.sha256 +0 -1
  38. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.aar.sha512 +0 -1
  39. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.md5 +0 -1
  40. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.sha1 +0 -1
  41. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.sha256 +0 -1
  42. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.module.sha512 +0 -1
  43. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.md5 +0 -1
  44. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.sha1 +0 -1
  45. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.sha256 +0 -1
  46. package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/58.0.15/expo.modules.sqlite-58.0.15.pom.sha512 +0 -1
  47. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15-sources.jar → 58.0.16/expo.modules.sqlite-58.0.16-sources.jar} +0 -0
  48. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15-sources.jar.md5 → 58.0.16/expo.modules.sqlite-58.0.16-sources.jar.md5} +0 -0
  49. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15-sources.jar.sha1 → 58.0.16/expo.modules.sqlite-58.0.16-sources.jar.sha1} +0 -0
  50. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15-sources.jar.sha256 → 58.0.16/expo.modules.sqlite-58.0.16-sources.jar.sha256} +0 -0
  51. /package/local-maven-repo/host/exp/exponent/expo.modules.sqlite/{58.0.15/expo.modules.sqlite-58.0.15-sources.jar.sha512 → 58.0.16/expo.modules.sqlite-58.0.16-sources.jar.sha512} +0 -0
@@ -0,0 +1 @@
1
+ 3ff849bc4de90c44317217dfc9412e5710802636fa77a0d81bf53363b1453997
@@ -0,0 +1 @@
1
+ 1e6efe25ea831f434605584a52fad15c8eed46b0161e07becc55cf716887e42548351095d93757ab66b655c7aa74d4fe97496f3a22ff3efe3b7c3d5892126e9f
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-sqlite",
3
- "version": "58.0.15",
3
+ "version": "58.0.16",
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.24",
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
- 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