@capacitor-community/sqlite 5.0.5-2 → 5.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 (35) hide show
  1. package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLite.java +109 -156
  2. package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLitePlugin.java +81 -249
  3. package/android/src/main/java/com/getcapacitor/community/database/sqlite/NotificationCenter.java +1 -1
  4. package/android/src/main/java/com/getcapacitor/community/database/sqlite/RetHandler.java +0 -12
  5. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/Database.java +175 -40
  6. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/ImportExportJson/ExportToJson.java +141 -135
  7. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/ImportExportJson/ImportFromJson.java +2 -1
  8. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsBiometric.java +0 -4
  9. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsFile.java +30 -18
  10. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsMigrate.java +12 -4
  11. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsNCDatabase.java +4 -1
  12. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsSQLCipher.java +8 -6
  13. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsSQLite.java +14 -28
  14. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsSecret.java +0 -1
  15. package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsUpgrade.java +0 -1
  16. package/dist/esm/definitions.d.ts +25 -4
  17. package/dist/esm/definitions.js +42 -19
  18. package/dist/esm/definitions.js.map +1 -1
  19. package/dist/plugin.cjs.js +42 -19
  20. package/dist/plugin.cjs.js.map +1 -1
  21. package/dist/plugin.js +42 -19
  22. package/dist/plugin.js.map +1 -1
  23. package/electron/dist/plugin.js +195 -96
  24. package/electron/dist/plugin.js.map +1 -1
  25. package/ios/Plugin/CapacitorSQLite.swift +8 -4
  26. package/ios/Plugin/CapacitorSQLitePlugin.swift +6 -3
  27. package/ios/Plugin/Database.swift +28 -14
  28. package/ios/Plugin/ImportExportJson/ExportToJson.swift +10 -5
  29. package/ios/Plugin/ImportExportJson/ImportFromJson.swift +4 -2
  30. package/ios/Plugin/Utils/UtilsDownloadFromHTTP.swift +61 -61
  31. package/ios/Plugin/Utils/UtilsDrop.swift +2 -1
  32. package/ios/Plugin/Utils/UtilsSQLCipher.swift +255 -23
  33. package/ios/Plugin/Utils/UtilsUpgrade.swift +0 -1
  34. package/package.json +2 -2
  35. package/src/definitions.ts +67 -18
@@ -1,7 +1,6 @@
1
1
  package com.getcapacitor.community.database.sqlite.SQLite;
2
2
 
3
3
  import android.content.Context;
4
- import android.content.SharedPreferences;
5
4
  import android.util.Log;
6
5
  import android.widget.Toast;
7
6
  import androidx.annotation.NonNull;
@@ -9,9 +8,6 @@ import androidx.biometric.BiometricManager;
9
8
  import androidx.biometric.BiometricPrompt;
10
9
  import androidx.core.content.ContextCompat;
11
10
  import androidx.fragment.app.FragmentActivity;
12
- import androidx.security.crypto.MasterKey;
13
- import java.io.IOException;
14
- import java.security.GeneralSecurityException;
15
11
  import java.util.concurrent.Executor;
16
12
 
17
13
  public class UtilsBiometric {
@@ -2,9 +2,7 @@ package com.getcapacitor.community.database.sqlite.SQLite;
2
2
 
3
3
  import android.content.Context;
4
4
  import android.content.res.AssetManager;
5
- import android.os.Build;
6
5
  import android.util.Log;
7
- import androidx.annotation.RequiresApi;
8
6
  import java.io.File;
9
7
  import java.io.FileInputStream;
10
8
  import java.io.FileOutputStream;
@@ -12,16 +10,8 @@ import java.io.IOException;
12
10
  import java.io.InputStream;
13
11
  import java.io.OutputStream;
14
12
  import java.nio.channels.FileChannel;
15
- import java.nio.file.DirectoryStream;
16
- import java.nio.file.Files;
17
- import java.nio.file.Path;
18
- import java.nio.file.Paths;
19
13
  import java.util.ArrayList;
20
- import java.util.HashSet;
21
14
  import java.util.List;
22
- import java.util.Set;
23
- import java.util.stream.Collectors;
24
- import java.util.stream.Stream;
25
15
  import java.util.zip.ZipEntry;
26
16
  import java.util.zip.ZipInputStream;
27
17
 
@@ -90,7 +80,10 @@ public class UtilsFile {
90
80
  String pathDB = new File(context.getFilesDir().getParentFile(), "databases").getAbsolutePath();
91
81
  File dirDB = new File(pathDB);
92
82
  if (!dirDB.isDirectory()) {
93
- dirDB.mkdir();
83
+ boolean nDir = dirDB.mkdir();
84
+ if (!nDir) {
85
+ throw new Exception("Cannot create dir" + pathDB);
86
+ }
94
87
  }
95
88
 
96
89
  // look into the public/assets/databases to get databases to copy
@@ -228,7 +221,10 @@ public class UtilsFile {
228
221
 
229
222
  try {
230
223
  if (!toFile.exists()) {
231
- toFile.createNewFile();
224
+ boolean cFile = toFile.createNewFile();
225
+ if (!cFile) {
226
+ throw new Exception("Cannot create file" + dbName);
227
+ }
232
228
  }
233
229
  copyFileFromFile(file, toFile);
234
230
  return true;
@@ -240,13 +236,19 @@ public class UtilsFile {
240
236
 
241
237
  public Boolean copyFromNames(Context context, String fromPath, String fromName, String toPath, String toName) {
242
238
  File fromFile = new File(fromPath, fromName);
243
- fromFile.setReadable(true, false);
239
+ boolean fFile = fromFile.setReadable(true, false);
240
+ if (!fFile) {
241
+ Log.e(TAG, "Error: in fromFile " + fromName);
242
+ return false;
243
+ }
244
244
  File toFile = context.getDatabasePath(toName);
245
245
  try {
246
246
  if (!toFile.exists()) {
247
- toFile.createNewFile();
248
- // toFile.setReadable(true, false);
249
-
247
+ boolean cFile = toFile.createNewFile();
248
+ if (!cFile) {
249
+ Log.e(TAG, "Error: in toFile " + toName);
250
+ return false;
251
+ }
250
252
  }
251
253
  copyFileFromFile(fromFile, toFile);
252
254
  return true;
@@ -372,10 +374,20 @@ public class UtilsFile {
372
374
  }
373
375
 
374
376
  private static void copyFileFromFile(File sourceFile, File destFile) throws IOException {
375
- if (!destFile.getParentFile().exists()) destFile.getParentFile().mkdirs();
377
+ if (!destFile.getParentFile().exists()) {
378
+ boolean mDir = destFile.getParentFile().mkdirs();
379
+ if (!mDir) {
380
+ String message = "failed in creating directory";
381
+ throw new IOException(message);
382
+ }
383
+ }
376
384
 
377
385
  if (!destFile.exists()) {
378
- destFile.createNewFile();
386
+ boolean cFile = destFile.createNewFile();
387
+ if (!cFile) {
388
+ String message = "failed in creating new file";
389
+ throw new IOException(message);
390
+ }
379
391
  }
380
392
 
381
393
  FileChannel source = null;
@@ -1,7 +1,6 @@
1
1
  package com.getcapacitor.community.database.sqlite.SQLite;
2
2
 
3
3
  import android.content.Context;
4
- import com.getcapacitor.community.database.sqlite.SQLite.UtilsFile;
5
4
  import java.io.File;
6
5
  import java.util.ArrayList;
7
6
 
@@ -14,7 +13,10 @@ public class UtilsMigrate {
14
13
  String pathDB = new File(context.getFilesDir().getParentFile(), "databases").getAbsolutePath();
15
14
  File dirDB = new File(pathDB);
16
15
  if (!dirDB.isDirectory()) {
17
- dirDB.mkdir();
16
+ boolean nDir = dirDB.mkdir();
17
+ if (!nDir) {
18
+ throw new Exception("Cannot create dir" + pathDB);
19
+ }
18
20
  }
19
21
  String pathFiles = this.getFolder(context, folderPath);
20
22
  // check if the path exists
@@ -30,7 +32,10 @@ public class UtilsMigrate {
30
32
  String pathDB = new File(context.getFilesDir().getParentFile(), "databases").getAbsolutePath();
31
33
  File dirDB = new File(pathDB);
32
34
  if (!dirDB.isDirectory()) {
33
- dirDB.mkdir();
35
+ boolean nDir = dirDB.mkdir();
36
+ if (!nDir) {
37
+ throw new Exception("Cannot create dir" + pathDB);
38
+ }
34
39
  }
35
40
  String pathFiles = this.getFolder(context, folderPath);
36
41
  // check if the path exists
@@ -129,7 +134,10 @@ public class UtilsMigrate {
129
134
  String pathDB = new File(context.getFilesDir().getParentFile(), "databases").getAbsolutePath();
130
135
  File dirDB = new File(pathDB);
131
136
  if (!dirDB.isDirectory()) {
132
- dirDB.mkdir();
137
+ boolean nDir = dirDB.mkdir();
138
+ if (!nDir) {
139
+ throw new Exception("Cannot create dir" + pathDB);
140
+ }
133
141
  }
134
142
  String pathFiles = this.getFolder(context, folderPath);
135
143
  // check if the path exists
@@ -12,7 +12,10 @@ public class UtilsNCDatabase {
12
12
  String pathDB = new File(context.getFilesDir().getParentFile(), "databases").getAbsolutePath();
13
13
  File dirDB = new File(pathDB);
14
14
  if (!dirDB.isDirectory()) {
15
- dirDB.mkdir();
15
+ boolean nDir = dirDB.mkdir();
16
+ if (!nDir) {
17
+ throw new Exception("Cannot create dir" + pathDB);
18
+ }
16
19
  }
17
20
  String pathFiles = uMigrate.getFolder(context, folderPath);
18
21
  // check if the path exists
@@ -2,13 +2,9 @@ package com.getcapacitor.community.database.sqlite.SQLite;
2
2
 
3
3
  import android.content.Context;
4
4
  import android.content.SharedPreferences;
5
- import android.text.Editable;
6
- import android.util.Log;
7
- import androidx.sqlite.db.SupportSQLiteDatabase;
8
5
  import java.io.File;
9
6
  import java.io.FileNotFoundException;
10
7
  import java.io.IOException;
11
- import java.util.Arrays;
12
8
  import net.sqlcipher.database.SQLiteDatabase;
13
9
  import net.sqlcipher.database.SQLiteException;
14
10
  import net.sqlcipher.database.SQLiteStatement;
@@ -125,8 +121,14 @@ public class UtilsSQLCipher {
125
121
  st.close();
126
122
  db.close();
127
123
 
128
- originalFile.delete();
129
- newFile.renameTo(originalFile);
124
+ boolean delFile = originalFile.delete();
125
+ if (!delFile) {
126
+ throw new FileNotFoundException(originalFile.getAbsolutePath() + " not deleted");
127
+ }
128
+ boolean renFile = newFile.renameTo(originalFile);
129
+ if (!renFile) {
130
+ throw new FileNotFoundException(originalFile.getAbsolutePath() + " not renamed");
131
+ }
130
132
  } else {
131
133
  throw new FileNotFoundException(originalFile.getAbsolutePath() + " not found");
132
134
  }
@@ -3,8 +3,6 @@ package com.getcapacitor.community.database.sqlite.SQLite;
3
3
  import android.util.Log;
4
4
  import androidx.sqlite.db.SupportSQLiteDatabase;
5
5
  import com.getcapacitor.JSArray;
6
- import java.nio.ByteBuffer;
7
- import java.nio.charset.StandardCharsets;
8
6
  import java.util.ArrayList;
9
7
  import java.util.Arrays;
10
8
  import java.util.List;
@@ -21,44 +19,32 @@ public class UtilsSQLite {
21
19
  String SELECT_CHANGE = "SELECT total_changes()";
22
20
  Boolean success = true;
23
21
  int ret = Integer.valueOf(-1);
24
- try {
25
- Cursor cursor = (Cursor) db.query(SELECT_CHANGE, null);
26
- if (cursor != null) {
27
- if (cursor.moveToFirst()) {
28
- ret = Integer.parseInt(cursor.getString(0));
29
- }
22
+ Cursor cursor = (Cursor) db.query(SELECT_CHANGE, null);
23
+ if (cursor != null) {
24
+ if (cursor.moveToFirst()) {
25
+ ret = Integer.parseInt(cursor.getString(0));
30
26
  }
31
- cursor.close();
32
- } catch (Exception e) {
33
- Log.d(TAG, "Error: dbChanges failed: ", e);
34
- } finally {
35
- return ret;
36
27
  }
28
+ cursor.close();
29
+ return ret;
37
30
  }
38
31
 
39
32
  public long dbLastId(SupportSQLiteDatabase db) {
40
33
  String SELECT_CHANGE = "SELECT last_insert_rowid()";
41
34
  Boolean success = true;
42
- long ret = Long.valueOf(-1);
43
- try {
44
- Cursor cursor = (Cursor) db.query(SELECT_CHANGE, null);
45
- if (cursor != null) {
46
- if (cursor.moveToFirst()) {
47
- ret = Long.parseLong(cursor.getString(0));
48
- }
49
- }
50
- cursor.close();
51
- } catch (Exception e) {
52
- Log.d(TAG, "Error: dbLastId failed: ", e);
53
- } finally {
54
- return ret;
35
+ long ret = (long) -1;
36
+ Cursor cursor = (Cursor) db.query(SELECT_CHANGE, null);
37
+ if (cursor.moveToFirst()) {
38
+ ret = Long.parseLong(cursor.getString(0));
55
39
  }
40
+ cursor.close();
41
+ return ret;
56
42
  }
57
43
 
58
44
  public String[] getStatementsArray(String statements) {
59
- statements.replace("end;", "END;");
45
+ String stmts = statements.replace("end;", "END;");
60
46
  // split for each statement
61
- String[] sqlCmdArray = statements.split(";\n");
47
+ String[] sqlCmdArray = stmts.split(";\n");
62
48
  // deal with trigger if any
63
49
  sqlCmdArray = dealWithTriggers(sqlCmdArray);
64
50
  // split for a single statement on multilines
@@ -9,7 +9,6 @@ import android.content.Context;
9
9
  import android.content.SharedPreferences;
10
10
  import android.text.TextUtils;
11
11
  import java.io.File;
12
- import net.sqlcipher.database.SQLiteDatabase;
13
12
 
14
13
  public class UtilsSecret {
15
14
 
@@ -1,7 +1,6 @@
1
1
  package com.getcapacitor.community.database.sqlite.SQLite;
2
2
 
3
3
  import android.util.Log;
4
- import com.getcapacitor.JSObject;
5
4
  import java.util.ArrayList;
6
5
  import java.util.Collections;
7
6
  import java.util.Dictionary;
@@ -492,6 +492,14 @@ export interface capSQLiteSetOptions {
492
492
  * @since 4.1.0-7
493
493
  */
494
494
  readonly?: boolean;
495
+ /**
496
+ * return mode
497
+ * default 'no'
498
+ * value 'all'
499
+ * value 'one' for Electron platform
500
+ * @since 5.0.5-3
501
+ */
502
+ returnMode?: string;
495
503
  }
496
504
  export interface capSQLiteRunOptions {
497
505
  /**
@@ -518,6 +526,14 @@ export interface capSQLiteRunOptions {
518
526
  * @since 4.1.0-7
519
527
  */
520
528
  readonly?: boolean;
529
+ /**
530
+ * return mode
531
+ * default 'no'
532
+ * value 'all'
533
+ * value 'one' for Electron platform
534
+ * @since 5.0.5-3
535
+ */
536
+ returnMode?: string;
521
537
  }
522
538
  export interface capSQLiteQueryOptions {
523
539
  /**
@@ -706,6 +722,10 @@ export interface Changes {
706
722
  * the lastId created from a run command
707
723
  */
708
724
  lastId?: number;
725
+ /**
726
+ * values when RETURNING
727
+ */
728
+ values?: any[];
709
729
  }
710
730
  export interface capSQLiteValues {
711
731
  /**
@@ -1265,14 +1285,14 @@ export interface ISQLiteDBConnection {
1265
1285
  * @returns Promise<capSQLiteChanges>
1266
1286
  * @since 2.9.0 refactor
1267
1287
  */
1268
- run(statement: string, values?: any[], transaction?: boolean): Promise<capSQLiteChanges>;
1288
+ run(statement: string, values?: any[], transaction?: boolean, returnMode?: string): Promise<capSQLiteChanges>;
1269
1289
  /**
1270
1290
  * Execute SQLite DB Connection Set
1271
1291
  * @param set
1272
1292
  * @returns Promise<capSQLiteChanges>
1273
1293
  * @since 2.9.0 refactor
1274
1294
  */
1275
- executeSet(set: capSQLiteSet[], transaction?: boolean): Promise<capSQLiteChanges>;
1295
+ executeSet(set: capSQLiteSet[], transaction?: boolean, returnMode?: string): Promise<capSQLiteChanges>;
1276
1296
  /**
1277
1297
  * Check if a SQLite DB Connection exists
1278
1298
  * @returns Promise<capSQLiteResult>
@@ -1362,8 +1382,8 @@ export declare class SQLiteDBConnection implements ISQLiteDBConnection {
1362
1382
  getTableList(): Promise<DBSQLiteValues>;
1363
1383
  execute(statements: string, transaction?: boolean): Promise<capSQLiteChanges>;
1364
1384
  query(statement: string, values?: any[]): Promise<DBSQLiteValues>;
1365
- run(statement: string, values?: any[], transaction?: boolean): Promise<capSQLiteChanges>;
1366
- executeSet(set: capSQLiteSet[], transaction?: boolean): Promise<capSQLiteChanges>;
1385
+ run(statement: string, values?: any[], transaction?: boolean, returnMode?: string): Promise<capSQLiteChanges>;
1386
+ executeSet(set: capSQLiteSet[], transaction?: boolean, returnMode?: string): Promise<capSQLiteChanges>;
1367
1387
  isExists(): Promise<capSQLiteResult>;
1368
1388
  isTable(table: string): Promise<capSQLiteResult>;
1369
1389
  isDBOpen(): Promise<capSQLiteResult>;
@@ -1377,4 +1397,5 @@ export declare class SQLiteDBConnection implements ISQLiteDBConnection {
1377
1397
  statement: string;
1378
1398
  values?: any[];
1379
1399
  }[]): Promise<void>;
1400
+ private reorderRows;
1380
1401
  }
@@ -542,51 +542,47 @@ export class SQLiteDBConnection {
542
542
  readonly: this.readonly,
543
543
  });
544
544
  }
545
- if (res && typeof res.values[0] === 'object') {
546
- if (Object.keys(res.values[0]).includes('ios_columns')) {
547
- const columnList = res.values[0]['ios_columns'];
548
- const iosRes = [];
549
- for (let i = 1; i < res.values.length; i++) {
550
- const rowJson = res.values[i];
551
- const resRowJson = {};
552
- for (const item of columnList) {
553
- resRowJson[item] = rowJson[item];
554
- }
555
- iosRes.push(resRowJson);
556
- }
557
- res = {};
558
- res['values'] = iosRes;
559
- }
560
- }
545
+ // reorder rows for ios
546
+ res = await this.reorderRows(res);
561
547
  return Promise.resolve(res);
562
548
  }
563
549
  catch (err) {
564
550
  return Promise.reject(err);
565
551
  }
566
552
  }
567
- async run(statement, values, transaction = true) {
553
+ async run(statement, values, transaction = true, returnMode = 'no') {
568
554
  let res;
569
555
  try {
570
556
  if (!this.readonly) {
571
557
  if (values && values.length > 0) {
558
+ const mRetMode = statement.toUpperCase().includes('RETURNING')
559
+ ? returnMode
560
+ : 'no';
572
561
  res = await this.sqlite.run({
573
562
  database: this.dbName,
574
563
  statement: statement,
575
564
  values: values,
576
565
  transaction: transaction,
577
566
  readonly: false,
567
+ returnMode: mRetMode,
578
568
  });
579
569
  // }
580
570
  }
581
571
  else {
572
+ const mRetMode = statement.toUpperCase().includes('RETURNING')
573
+ ? returnMode
574
+ : 'no';
582
575
  res = await this.sqlite.run({
583
576
  database: this.dbName,
584
577
  statement: statement,
585
578
  values: [],
586
579
  transaction: transaction,
587
580
  readonly: false,
581
+ returnMode: mRetMode,
588
582
  });
589
583
  }
584
+ // reorder rows for ios
585
+ res.changes = await this.reorderRows(res.changes);
590
586
  return Promise.resolve(res);
591
587
  }
592
588
  else {
@@ -597,16 +593,20 @@ export class SQLiteDBConnection {
597
593
  return Promise.reject(err);
598
594
  }
599
595
  }
600
- async executeSet(set, transaction = true) {
596
+ async executeSet(set, transaction = true, returnMode = 'no') {
597
+ let res;
601
598
  try {
602
599
  if (!this.readonly) {
603
- const res = await this.sqlite.executeSet({
600
+ res = await this.sqlite.executeSet({
604
601
  database: this.dbName,
605
602
  set: set,
606
603
  transaction: transaction,
607
604
  readonly: false,
605
+ returnMode: returnMode,
608
606
  });
609
607
  // }
608
+ // reorder rows for ios
609
+ res.changes = await this.reorderRows(res.changes);
610
610
  return Promise.resolve(res);
611
611
  }
612
612
  else {
@@ -764,12 +764,16 @@ export class SQLiteDBConnection {
764
764
  }
765
765
  for (const task of txn) {
766
766
  if (task.values && task.values.length > 0) {
767
+ const retMode = task.statement.toUpperCase().includes('RETURNING')
768
+ ? 'all'
769
+ : 'no';
767
770
  const ret = await this.sqlite.run({
768
771
  database: this.dbName,
769
772
  statement: task.statement,
770
773
  values: task.values,
771
774
  transaction: false,
772
775
  readonly: false,
776
+ returnMode: retMode,
773
777
  });
774
778
  if (ret.changes.lastId === -1) {
775
779
  await this.execute('ROLLBACK;', false);
@@ -816,5 +820,24 @@ export class SQLiteDBConnection {
816
820
  return Promise.reject(err);
817
821
  }
818
822
  }
823
+ async reorderRows(res) {
824
+ const retRes = res;
825
+ if (res?.values && typeof res.values[0] === 'object') {
826
+ if (Object.keys(res.values[0]).includes('ios_columns')) {
827
+ const columnList = res.values[0]['ios_columns'];
828
+ const iosRes = [];
829
+ for (let i = 1; i < res.values.length; i++) {
830
+ const rowJson = res.values[i];
831
+ const resRowJson = {};
832
+ for (const item of columnList) {
833
+ resRowJson[item] = rowJson[item];
834
+ }
835
+ iosRes.push(resRowJson);
836
+ }
837
+ retRes['values'] = iosRes;
838
+ }
839
+ }
840
+ return Promise.resolve(retRes);
841
+ }
819
842
  }
820
843
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}