@capgo/capacitor-data-storage-sqlite 6.0.59 → 7.1.0

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 (52) hide show
  1. package/CapgoCapacitorDataStorageSqlite.podspec +2 -2
  2. package/Package.swift +30 -0
  3. package/README.md +724 -0
  4. package/android/build.gradle +11 -11
  5. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/CapgoCapacitorDataStorageSqlite.java +290 -320
  6. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/CapgoCapacitorDataStorageSqlitePlugin.java +373 -388
  7. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/RetHandler.java +97 -97
  8. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/Data.java +3 -3
  9. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/Global.java +2 -2
  10. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonStore.java +108 -110
  11. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonTable.java +78 -80
  12. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonValue.java +62 -64
  13. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/StorageDatabaseHelper.java +557 -624
  14. package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/UtilsSQLCipher.java +103 -144
  15. package/dist/docs.json +0 -64
  16. package/dist/esm/definitions.d.ts +0 -19
  17. package/dist/esm/definitions.js.map +1 -1
  18. package/dist/esm/index.d.ts +2 -2
  19. package/dist/esm/index.js +5 -6
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/web-utils/StorageDatabaseHelper.d.ts +2 -2
  22. package/dist/esm/web-utils/StorageDatabaseHelper.js +8 -8
  23. package/dist/esm/web-utils/StorageDatabaseHelper.js.map +1 -1
  24. package/dist/esm/web-utils/json-utils.js +15 -18
  25. package/dist/esm/web-utils/json-utils.js.map +1 -1
  26. package/dist/esm/web.d.ts +2 -3
  27. package/dist/esm/web.js +37 -44
  28. package/dist/esm/web.js.map +1 -1
  29. package/dist/plugin.cjs.js +56 -67
  30. package/dist/plugin.cjs.js.map +1 -1
  31. package/dist/plugin.js +56 -67
  32. package/dist/plugin.js.map +1 -1
  33. package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/CapgoCapacitorDataStorageSqlitePlugin.swift +27 -10
  34. package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/StorageDatabaseHelper.swift +1 -1
  35. package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsFile.swift +1 -1
  36. package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsSQLCipher.swift +3 -3
  37. package/ios/Tests/CapgoCapacitorDataStorageSqlitePluginTests/CapacitorDataStorageSqlitePluginTests.swift +13 -0
  38. package/package.json +34 -38
  39. package/electron/dist/plugin.js +0 -1044
  40. package/electron/dist/plugin.js.map +0 -1
  41. package/ios/Plugin/CapgoCapacitorDataStorageSqlitePlugin.h +0 -10
  42. package/ios/Plugin/CapgoCapacitorDataStorageSqlitePlugin.m +0 -29
  43. package/ios/Plugin/Info.plist +0 -24
  44. package/readme.md +0 -210
  45. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/CapgoCapacitorDataStorageSqlite.swift +0 -0
  46. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Data.swift +0 -0
  47. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Global.swift +0 -0
  48. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/ImportExportJson/JsonStore.swift +0 -0
  49. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/ReturnHandler.swift +0 -0
  50. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/Blob.swift +0 -0
  51. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsBinding.swift +0 -0
  52. /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsEncryption.swift +0 -0
package/dist/plugin.js CHANGED
@@ -1,10 +1,9 @@
1
1
  var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localForage) {
2
2
  'use strict';
3
3
 
4
- const CapgoCapacitorDataStorageSqlite = core.registerPlugin("CapgoCapacitorDataStorageSqlite", {
4
+ const CapgoCapacitorDataStorageSqlite = core.registerPlugin('CapgoCapacitorDataStorageSqlite', {
5
5
  web: () => Promise.resolve().then(function () { return web; }).then((m) => new m.CapgoCapacitorDataStorageSqliteWeb()),
6
- electron: () => window.CapacitorCustomPlatform.plugins
7
- .CapacitorDataStorageSqlite,
6
+ electron: () => window.CapacitorCustomPlatform.plugins.CapacitorDataStorageSqlite,
8
7
  });
9
8
 
10
9
  class Data {
@@ -22,9 +21,9 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
22
21
  this._tableName = tableName;
23
22
  }
24
23
  else {
25
- this._dbName = "";
26
- this._tableName = "";
27
- throw new Error("openStore return false");
24
+ this._dbName = '';
25
+ this._tableName = '';
26
+ throw new Error('openStore return false');
28
27
  }
29
28
  }
30
29
  openStore(dbName, tableName) {
@@ -52,7 +51,7 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
52
51
  return Promise.resolve();
53
52
  }
54
53
  else {
55
- return Promise.reject(new Error("openStore return false"));
54
+ return Promise.reject(new Error('openStore return false'));
56
55
  }
57
56
  }
58
57
  async isTable(table) {
@@ -84,7 +83,7 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
84
83
  const retList = db.objectStoreNames;
85
84
  const values = Object.values(retList);
86
85
  for (const val of values) {
87
- if (val.substring(0, 12) != "local-forage") {
86
+ if (val.substring(0, 12) != 'local-forage') {
88
87
  result = [...result, val];
89
88
  }
90
89
  }
@@ -227,7 +226,7 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
227
226
  retTable.values = [...retTable.values, retData];
228
227
  }
229
228
  else {
230
- return Promise.reject("Data.name is undefined");
229
+ return Promise.reject('Data.name is undefined');
231
230
  }
232
231
  }
233
232
  retJson.tables = [...retJson.tables, retTable];
@@ -260,20 +259,19 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
260
259
  * @param obj
261
260
  */
262
261
  const isJsonStore = (obj) => {
263
- const keyFirstLevel = ["database", "encrypted", "tables"];
264
- if (obj == null ||
265
- (Object.keys(obj).length === 0 && obj.constructor === Object))
262
+ const keyFirstLevel = ['database', 'encrypted', 'tables'];
263
+ if (obj == null || (Object.keys(obj).length === 0 && obj.constructor === Object))
266
264
  return false;
267
265
  for (const key of Object.keys(obj)) {
268
266
  if (keyFirstLevel.indexOf(key) === -1)
269
267
  return false;
270
- if (key === "database" && typeof obj[key] != "string")
268
+ if (key === 'database' && typeof obj[key] != 'string')
271
269
  return false;
272
- if (key === "encrypted" && typeof obj[key] != "boolean")
270
+ if (key === 'encrypted' && typeof obj[key] != 'boolean')
273
271
  return false;
274
- if (key === "tables" && typeof obj[key] != "object")
272
+ if (key === 'tables' && typeof obj[key] != 'object')
275
273
  return false;
276
- if (key === "tables") {
274
+ if (key === 'tables') {
277
275
  for (const oKey of obj[key]) {
278
276
  const retTable = isTable(oKey);
279
277
  if (!retTable)
@@ -288,19 +286,18 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
288
286
  * @param obj
289
287
  */
290
288
  const isTable = (obj) => {
291
- const keyTableLevel = ["name", "values"];
292
- if (obj == null ||
293
- (Object.keys(obj).length === 0 && obj.constructor === Object)) {
289
+ const keyTableLevel = ['name', 'values'];
290
+ if (obj == null || (Object.keys(obj).length === 0 && obj.constructor === Object)) {
294
291
  return false;
295
292
  }
296
293
  for (const key of Object.keys(obj)) {
297
294
  if (keyTableLevel.indexOf(key) === -1)
298
295
  return false;
299
- if (key === "name" && typeof obj[key] != "string")
296
+ if (key === 'name' && typeof obj[key] != 'string')
300
297
  return false;
301
- if (key === "values" && typeof obj[key] != "object")
298
+ if (key === 'values' && typeof obj[key] != 'object')
302
299
  return false;
303
- if (key === "values") {
300
+ if (key === 'values') {
304
301
  for (const oKey of obj[key]) {
305
302
  const retValue = isValue(oKey);
306
303
  if (!retValue)
@@ -315,31 +312,25 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
315
312
  * @param obj
316
313
  */
317
314
  const isValue = (obj) => {
318
- const keyTableLevel = ["key", "value"];
319
- if (obj == null ||
320
- (Object.keys(obj).length === 0 && obj.constructor === Object)) {
315
+ const keyTableLevel = ['key', 'value'];
316
+ if (obj == null || (Object.keys(obj).length === 0 && obj.constructor === Object)) {
321
317
  return false;
322
318
  }
323
319
  for (const key of Object.keys(obj)) {
324
320
  if (keyTableLevel.indexOf(key) === -1)
325
321
  return false;
326
- if (key === "key" && typeof obj[key] != "string")
322
+ if (key === 'key' && typeof obj[key] != 'string')
327
323
  return false;
328
- if (key === "value" && typeof obj[key] != "string")
324
+ if (key === 'value' && typeof obj[key] != 'string')
329
325
  return false;
330
326
  }
331
327
  return true;
332
328
  };
333
329
 
334
330
  class CapgoCapacitorDataStorageSqliteWeb extends core.WebPlugin {
335
- async echo(options) {
336
- const ret = {};
337
- ret.value = options.value ? options.value : "";
338
- return ret;
339
- }
340
331
  async openStore(options) {
341
- const dbName = options.database ? `${options.database}IDB` : "storageIDB";
342
- const tableName = options.table ? options.table : "storage_store";
332
+ const dbName = options.database ? `${options.database}IDB` : 'storageIDB';
333
+ const tableName = options.table ? options.table : 'storage_store';
343
334
  try {
344
335
  this.mDb = new StorageDatabaseHelper(dbName, tableName);
345
336
  return Promise.resolve();
@@ -360,7 +351,7 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
360
351
  async setTable(options) {
361
352
  const tableName = options.table;
362
353
  if (tableName == null) {
363
- return Promise.reject("SetTable: Must provide a table name");
354
+ return Promise.reject('SetTable: Must provide a table name');
364
355
  }
365
356
  if (this.mDb) {
366
357
  try {
@@ -372,17 +363,17 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
372
363
  }
373
364
  }
374
365
  else {
375
- return Promise.reject("SetTable: Must open a store first");
366
+ return Promise.reject('SetTable: Must open a store first');
376
367
  }
377
368
  }
378
369
  async set(options) {
379
370
  const key = options.key;
380
- if (key == null || typeof key != "string") {
381
- return Promise.reject("Set: Must provide key as string");
371
+ if (key == null || typeof key != 'string') {
372
+ return Promise.reject('Set: Must provide key as string');
382
373
  }
383
374
  const value = options.value ? options.value : null;
384
- if (value == null || typeof value != "string") {
385
- return Promise.reject("Set: Must provide value as string");
375
+ if (value == null || typeof value != 'string') {
376
+ return Promise.reject('Set: Must provide value as string');
386
377
  }
387
378
  const data = new Data();
388
379
  data.name = key;
@@ -397,8 +388,8 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
397
388
  }
398
389
  async get(options) {
399
390
  const key = options.key;
400
- if (key == null || typeof key != "string") {
401
- return Promise.reject("Get: Must provide key as string");
391
+ if (key == null || typeof key != 'string') {
392
+ return Promise.reject('Get: Must provide key as string');
402
393
  }
403
394
  try {
404
395
  const data = await this.mDb.get(key);
@@ -406,7 +397,7 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
406
397
  return Promise.resolve({ value: data.value });
407
398
  }
408
399
  else {
409
- return Promise.resolve({ value: "" });
400
+ return Promise.resolve({ value: '' });
410
401
  }
411
402
  }
412
403
  catch (err) {
@@ -415,8 +406,8 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
415
406
  }
416
407
  async remove(options) {
417
408
  const key = options.key;
418
- if (key == null || typeof key != "string") {
419
- return Promise.reject("Remove: Must provide key as string");
409
+ if (key == null || typeof key != 'string') {
410
+ return Promise.reject('Remove: Must provide key as string');
420
411
  }
421
412
  try {
422
413
  await this.mDb.remove(key);
@@ -437,8 +428,8 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
437
428
  }
438
429
  async iskey(options) {
439
430
  const key = options.key;
440
- if (key == null || typeof key != "string") {
441
- return Promise.reject("Iskey: Must provide key as string");
431
+ if (key == null || typeof key != 'string') {
432
+ return Promise.reject('Iskey: Must provide key as string');
442
433
  }
443
434
  try {
444
435
  const ret = await this.mDb.iskey(key);
@@ -468,18 +459,18 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
468
459
  }
469
460
  async filtervalues(options) {
470
461
  const filter = options.filter;
471
- if (filter == null || typeof filter != "string") {
472
- return Promise.reject("Filtervalues: Must provide filter as string");
462
+ if (filter == null || typeof filter != 'string') {
463
+ return Promise.reject('Filtervalues: Must provide filter as string');
473
464
  }
474
465
  let regFilter;
475
- if (filter.startsWith("%")) {
476
- regFilter = new RegExp("^" + filter.substring(1), "i");
466
+ if (filter.startsWith('%')) {
467
+ regFilter = new RegExp('^' + filter.substring(1), 'i');
477
468
  }
478
- else if (filter.endsWith("%")) {
479
- regFilter = new RegExp(filter.slice(0, -1) + "$", "i");
469
+ else if (filter.endsWith('%')) {
470
+ regFilter = new RegExp(filter.slice(0, -1) + '$', 'i');
480
471
  }
481
472
  else {
482
- regFilter = new RegExp(filter, "i");
473
+ regFilter = new RegExp(filter, 'i');
483
474
  }
484
475
  try {
485
476
  const ret = [];
@@ -525,7 +516,7 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
525
516
  async isTable(options) {
526
517
  const table = options.table;
527
518
  if (table == null) {
528
- return Promise.reject("Must provide a Table Name");
519
+ return Promise.reject('Must provide a Table Name');
529
520
  }
530
521
  try {
531
522
  const ret = await this.mDb.isTable(table);
@@ -549,8 +540,8 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
549
540
  }
550
541
  async importFromJson(options) {
551
542
  const keys = Object.keys(options);
552
- if (!keys.includes("jsonstring")) {
553
- return Promise.reject("Must provide a json object");
543
+ if (!keys.includes('jsonstring')) {
544
+ return Promise.reject('Must provide a json object');
554
545
  }
555
546
  let totalChanges = 0;
556
547
  if (options === null || options === void 0 ? void 0 : options.jsonstring) {
@@ -558,14 +549,12 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
558
549
  const jsonObj = JSON.parse(jsonStrObj);
559
550
  const isValid = isJsonStore(jsonObj);
560
551
  if (!isValid) {
561
- return Promise.reject("Must provide a valid JsonSQLite Object");
552
+ return Promise.reject('Must provide a valid JsonSQLite Object');
562
553
  }
563
554
  const vJsonObj = jsonObj;
564
- const dbName = vJsonObj.database
565
- ? `${vJsonObj.database}IDB`
566
- : "storageIDB";
555
+ const dbName = vJsonObj.database ? `${vJsonObj.database}IDB` : 'storageIDB';
567
556
  for (const table of vJsonObj.tables) {
568
- const tableName = table.name ? table.name : "storage_store";
557
+ const tableName = table.name ? table.name : 'storage_store';
569
558
  try {
570
559
  this.mDb = new StorageDatabaseHelper(dbName, tableName);
571
560
  // Open the database
@@ -588,27 +577,27 @@ var capacitorCapgoCapacitorDataStorageSqlite = (function (exports, core, localFo
588
577
  return Promise.resolve({ changes: totalChanges });
589
578
  }
590
579
  else {
591
- return Promise.reject("Must provide a json object");
580
+ return Promise.reject('Must provide a json object');
592
581
  }
593
582
  }
594
583
  async isJsonValid(options) {
595
584
  const keys = Object.keys(options);
596
- if (!keys.includes("jsonstring")) {
597
- return Promise.reject("Must provide a json object");
585
+ if (!keys.includes('jsonstring')) {
586
+ return Promise.reject('Must provide a json object');
598
587
  }
599
588
  if (options === null || options === void 0 ? void 0 : options.jsonstring) {
600
589
  const jsonStrObj = options.jsonstring;
601
590
  const jsonObj = JSON.parse(jsonStrObj);
602
591
  const isValid = isJsonStore(jsonObj);
603
592
  if (!isValid) {
604
- return Promise.reject("Stringify Json Object not Valid");
593
+ return Promise.reject('Stringify Json Object not Valid');
605
594
  }
606
595
  else {
607
596
  return Promise.resolve({ result: true });
608
597
  }
609
598
  }
610
599
  else {
611
- return Promise.reject("Must provide in options a stringify Json Object");
600
+ return Promise.reject('Must provide in options a stringify Json Object');
612
601
  }
613
602
  }
614
603
  async exportToJson() {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web-utils/Data.js","esm/web-utils/StorageDatabaseHelper.js","esm/web-utils/json-utils.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst CapgoCapacitorDataStorageSqlite = registerPlugin(\"CapgoCapacitorDataStorageSqlite\", {\n web: () => import(\"./web\").then((m) => new m.CapgoCapacitorDataStorageSqliteWeb()),\n electron: () => window.CapacitorCustomPlatform.plugins\n .CapacitorDataStorageSqlite,\n});\nexport * from \"./definitions\";\nexport { CapgoCapacitorDataStorageSqlite };\n//# sourceMappingURL=index.js.map","export class Data {\n}\n//# sourceMappingURL=Data.js.map","//import LocalForage from 'jeep-localforage';\nimport localForage from \"localforage\";\nimport { Data } from \"./Data\";\n//const DATABASE: string = \"storageIDB\";\n//const STORAGESTORE: string = \"storage_store\";\nexport class StorageDatabaseHelper {\n constructor(dbName, tableName) {\n this._db = null;\n const res = this.openStore(dbName, tableName);\n if (res) {\n this._dbName = dbName;\n this._tableName = tableName;\n }\n else {\n this._dbName = \"\";\n this._tableName = \"\";\n throw new Error(\"openStore return false\");\n }\n }\n openStore(dbName, tableName) {\n let ret = false;\n const config = this.setConfig(dbName, tableName);\n this._db = localForage.createInstance(config);\n if (this._db != null) {\n this._dbName = dbName;\n ret = true;\n }\n return ret;\n }\n setConfig(dbName, tableName) {\n const config = {\n name: dbName,\n storeName: tableName,\n driver: [localForage.INDEXEDDB, localForage.WEBSQL],\n version: 1,\n };\n return config;\n }\n async setTable(tableName) {\n const res = this.openStore(this._dbName, tableName);\n if (res) {\n return Promise.resolve();\n }\n else {\n return Promise.reject(new Error(\"openStore return false\"));\n }\n }\n async isTable(table) {\n if (this._db == null) {\n return Promise.reject(`isTable: this.db is null`);\n }\n try {\n let ret = false;\n const tables = await this.tables();\n if (tables.includes(table))\n ret = true;\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async tables() {\n return new Promise((resolve, reject) => {\n // Let us open our database\n const DBOpenRequest = window.indexedDB.open(this._dbName);\n // these two event handlers act on the database being opened successfully, or not\n DBOpenRequest.onerror = () => {\n return reject(`Error loading database ${this._dbName}`);\n };\n DBOpenRequest.onsuccess = () => {\n let result = [];\n const db = DBOpenRequest.result;\n const retList = db.objectStoreNames;\n const values = Object.values(retList);\n for (const val of values) {\n if (val.substring(0, 12) != \"local-forage\") {\n result = [...result, val];\n }\n }\n return resolve(result);\n };\n });\n }\n async set(data) {\n try {\n await this._db.setItem(data.name, data.value);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async get(name) {\n try {\n const value = await this._db.getItem(name);\n const data = new Data();\n data.name = name;\n data.value = value;\n return Promise.resolve(data);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async remove(name) {\n return this._db\n .removeItem(name)\n .then(() => {\n return Promise.resolve();\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async clear() {\n return this._db\n .clear()\n .then(() => {\n return Promise.resolve();\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async keys() {\n return this._db\n .keys()\n .then((keys) => {\n return Promise.resolve(keys);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async values() {\n const values = [];\n return this._db\n .iterate((value) => {\n values.push(value);\n })\n .then(() => {\n return Promise.resolve(values);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async keysvalues() {\n const keysvalues = [];\n return this._db\n .iterate((value, key) => {\n const data = new Data();\n data.name = key;\n data.value = value;\n keysvalues.push(data);\n })\n .then(() => {\n return Promise.resolve(keysvalues);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async iskey(name) {\n return this.get(name)\n .then((data) => {\n if (data.value != null) {\n return Promise.resolve(true);\n }\n else {\n return Promise.resolve(false);\n }\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async importJson(values) {\n let changes = 0;\n for (const val of values) {\n try {\n const data = new Data();\n data.name = val.key;\n data.value = val.value;\n await this.set(data);\n changes += 1;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n return Promise.resolve(changes);\n }\n async exportJson() {\n const retJson = {};\n const prevTableName = this._tableName;\n try {\n retJson.database = this._dbName.slice(0, -3);\n retJson.encrypted = false;\n retJson.tables = [];\n // get the table list\n const tables = await this.tables();\n for (const table of tables) {\n this._tableName = table;\n const retTable = {};\n retTable.name = table;\n retTable.values = [];\n const res = this.openStore(this._dbName, this._tableName);\n if (res) {\n const dataTable = await this.keysvalues();\n for (const tdata of dataTable) {\n const retData = {};\n if (tdata.name != null) {\n retData.key = tdata.name;\n retData.value = tdata.value;\n retTable.values = [...retTable.values, retData];\n }\n else {\n return Promise.reject(\"Data.name is undefined\");\n }\n }\n retJson.tables = [...retJson.tables, retTable];\n }\n else {\n const msg = `Could not open ${this._dbName} ${this._tableName} `;\n this._tableName = prevTableName;\n return Promise.reject(msg);\n }\n }\n this._tableName = prevTableName;\n const res = this.openStore(this._dbName, this._tableName);\n if (res) {\n return Promise.resolve(retJson);\n }\n else {\n const msg = `Could not open ${this._dbName} ${this._tableName} `;\n return Promise.reject(msg);\n }\n }\n catch (err) {\n this._tableName = prevTableName;\n return Promise.reject(err);\n }\n }\n}\n//# sourceMappingURL=StorageDatabaseHelper.js.map","/**\n * IsJsonSQLite\n * @param obj\n */\nexport const isJsonStore = (obj) => {\n const keyFirstLevel = [\"database\", \"encrypted\", \"tables\"];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keyFirstLevel.indexOf(key) === -1)\n return false;\n if (key === \"database\" && typeof obj[key] != \"string\")\n return false;\n if (key === \"encrypted\" && typeof obj[key] != \"boolean\")\n return false;\n if (key === \"tables\" && typeof obj[key] != \"object\")\n return false;\n if (key === \"tables\") {\n for (const oKey of obj[key]) {\n const retTable = isTable(oKey);\n if (!retTable)\n return false;\n }\n }\n }\n return true;\n};\n/**\n * IsTable\n * @param obj\n */\nexport const isTable = (obj) => {\n const keyTableLevel = [\"name\", \"values\"];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object)) {\n return false;\n }\n for (const key of Object.keys(obj)) {\n if (keyTableLevel.indexOf(key) === -1)\n return false;\n if (key === \"name\" && typeof obj[key] != \"string\")\n return false;\n if (key === \"values\" && typeof obj[key] != \"object\")\n return false;\n if (key === \"values\") {\n for (const oKey of obj[key]) {\n const retValue = isValue(oKey);\n if (!retValue)\n return false;\n }\n }\n }\n return true;\n};\n/**\n * IsValue\n * @param obj\n */\nexport const isValue = (obj) => {\n const keyTableLevel = [\"key\", \"value\"];\n if (obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object)) {\n return false;\n }\n for (const key of Object.keys(obj)) {\n if (keyTableLevel.indexOf(key) === -1)\n return false;\n if (key === \"key\" && typeof obj[key] != \"string\")\n return false;\n if (key === \"value\" && typeof obj[key] != \"string\")\n return false;\n }\n return true;\n};\n//# sourceMappingURL=json-utils.js.map","import { WebPlugin } from \"@capacitor/core\";\nimport { Data } from \"./web-utils/Data\";\nimport { StorageDatabaseHelper } from \"./web-utils/StorageDatabaseHelper\";\nimport { isJsonStore } from \"./web-utils/json-utils\";\nexport class CapgoCapacitorDataStorageSqliteWeb extends WebPlugin {\n async echo(options) {\n const ret = {};\n ret.value = options.value ? options.value : \"\";\n return ret;\n }\n async openStore(options) {\n const dbName = options.database ? `${options.database}IDB` : \"storageIDB\";\n const tableName = options.table ? options.table : \"storage_store\";\n try {\n this.mDb = new StorageDatabaseHelper(dbName, tableName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`OpenStore: ${err.message}`);\n }\n }\n async closeStore(options) {\n throw new Error(`Method closeStore not implemented. ${options}`);\n }\n async isStoreOpen(options) {\n throw new Error(`Method isStoreOpen not implemented. ${options}`);\n }\n async isStoreExists(options) {\n throw new Error(`Method isStoreExists not implemented. ${options}`);\n }\n async setTable(options) {\n const tableName = options.table;\n if (tableName == null) {\n return Promise.reject(\"SetTable: Must provide a table name\");\n }\n if (this.mDb) {\n try {\n await this.mDb.setTable(tableName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`SetTable: ${err.message}`);\n }\n }\n else {\n return Promise.reject(\"SetTable: Must open a store first\");\n }\n }\n async set(options) {\n const key = options.key;\n if (key == null || typeof key != \"string\") {\n return Promise.reject(\"Set: Must provide key as string\");\n }\n const value = options.value ? options.value : null;\n if (value == null || typeof value != \"string\") {\n return Promise.reject(\"Set: Must provide value as string\");\n }\n const data = new Data();\n data.name = key;\n data.value = value;\n try {\n await this.mDb.set(data);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Set: ${err.message}`);\n }\n }\n async get(options) {\n const key = options.key;\n if (key == null || typeof key != \"string\") {\n return Promise.reject(\"Get: Must provide key as string\");\n }\n try {\n const data = await this.mDb.get(key);\n if ((data === null || data === void 0 ? void 0 : data.value) != null) {\n return Promise.resolve({ value: data.value });\n }\n else {\n return Promise.resolve({ value: \"\" });\n }\n }\n catch (err) {\n return Promise.reject(`Get: ${err.message}`);\n }\n }\n async remove(options) {\n const key = options.key;\n if (key == null || typeof key != \"string\") {\n return Promise.reject(\"Remove: Must provide key as string\");\n }\n try {\n await this.mDb.remove(key);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Remove: ${err.message}`);\n }\n }\n async clear() {\n try {\n await this.mDb.clear();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Clear: ${err.message}`);\n }\n }\n async iskey(options) {\n const key = options.key;\n if (key == null || typeof key != \"string\") {\n return Promise.reject(\"Iskey: Must provide key as string\");\n }\n try {\n const ret = await this.mDb.iskey(key);\n return Promise.resolve({ result: ret });\n }\n catch (err) {\n return Promise.reject(`Iskey: ${err.message}`);\n }\n }\n async keys() {\n try {\n const ret = await this.mDb.keys();\n return Promise.resolve({ keys: ret });\n }\n catch (err) {\n return Promise.reject(`Keys: ${err.message}`);\n }\n }\n async values() {\n try {\n const ret = await this.mDb.values();\n return Promise.resolve({ values: ret });\n }\n catch (err) {\n return Promise.reject(`Values: ${err.message}`);\n }\n }\n async filtervalues(options) {\n const filter = options.filter;\n if (filter == null || typeof filter != \"string\") {\n return Promise.reject(\"Filtervalues: Must provide filter as string\");\n }\n let regFilter;\n if (filter.startsWith(\"%\")) {\n regFilter = new RegExp(\"^\" + filter.substring(1), \"i\");\n }\n else if (filter.endsWith(\"%\")) {\n regFilter = new RegExp(filter.slice(0, -1) + \"$\", \"i\");\n }\n else {\n regFilter = new RegExp(filter, \"i\");\n }\n try {\n const ret = [];\n const results = await this.mDb.keysvalues();\n for (const result of results) {\n if (result.name != null && regFilter.test(result.name)) {\n if (result.value != null) {\n ret.push(result.value);\n }\n else {\n return Promise.reject(`Filtervalues: result.value is null`);\n }\n }\n }\n return Promise.resolve({ values: ret });\n }\n catch (err) {\n return Promise.reject(`Filtervalues: ${err.message}`);\n }\n }\n async keysvalues() {\n try {\n const ret = [];\n const results = await this.mDb.keysvalues();\n for (const result of results) {\n if (result.name != null && result.value != null) {\n const res = { key: result.name, value: result.value };\n ret.push(res);\n }\n else {\n return Promise.reject(`Keysvalues: result.name/value are null`);\n }\n }\n return Promise.resolve({ keysvalues: ret });\n }\n catch (err) {\n return Promise.reject(`Keysvalues: ${err.message}`);\n }\n }\n async deleteStore(options) {\n throw new Error(`Method deleteStore not implemented. ${options}`);\n }\n async isTable(options) {\n const table = options.table;\n if (table == null) {\n return Promise.reject(\"Must provide a Table Name\");\n }\n try {\n const ret = await this.mDb.isTable(table);\n return Promise.resolve({ result: ret });\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async tables() {\n try {\n const ret = await this.mDb.tables();\n return Promise.resolve({ tables: ret });\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteTable(options) {\n throw new Error(`Method deleteTable not implemented. ${options}`);\n }\n async importFromJson(options) {\n const keys = Object.keys(options);\n if (!keys.includes(\"jsonstring\")) {\n return Promise.reject(\"Must provide a json object\");\n }\n let totalChanges = 0;\n if (options === null || options === void 0 ? void 0 : options.jsonstring) {\n const jsonStrObj = options.jsonstring;\n const jsonObj = JSON.parse(jsonStrObj);\n const isValid = isJsonStore(jsonObj);\n if (!isValid) {\n return Promise.reject(\"Must provide a valid JsonSQLite Object\");\n }\n const vJsonObj = jsonObj;\n const dbName = vJsonObj.database\n ? `${vJsonObj.database}IDB`\n : \"storageIDB\";\n for (const table of vJsonObj.tables) {\n const tableName = table.name ? table.name : \"storage_store\";\n try {\n this.mDb = new StorageDatabaseHelper(dbName, tableName);\n // Open the database\n const bRet = this.mDb.openStore(dbName, tableName);\n if (bRet) {\n // Import the JsonSQLite Object\n if (table === null || table === void 0 ? void 0 : table.values) {\n const changes = await this.mDb.importJson(table.values);\n totalChanges += changes;\n }\n }\n else {\n return Promise.reject(`Open store: ${dbName} : table: ${tableName} failed`);\n }\n }\n catch (err) {\n return Promise.reject(`ImportFromJson: ${err.message}`);\n }\n }\n return Promise.resolve({ changes: totalChanges });\n }\n else {\n return Promise.reject(\"Must provide a json object\");\n }\n }\n async isJsonValid(options) {\n const keys = Object.keys(options);\n if (!keys.includes(\"jsonstring\")) {\n return Promise.reject(\"Must provide a json object\");\n }\n if (options === null || options === void 0 ? void 0 : options.jsonstring) {\n const jsonStrObj = options.jsonstring;\n const jsonObj = JSON.parse(jsonStrObj);\n const isValid = isJsonStore(jsonObj);\n if (!isValid) {\n return Promise.reject(\"Stringify Json Object not Valid\");\n }\n else {\n return Promise.resolve({ result: true });\n }\n }\n else {\n return Promise.reject(\"Must provide in options a stringify Json Object\");\n }\n }\n async exportToJson() {\n try {\n const ret = await this.mDb.exportJson();\n return Promise.resolve({ export: ret });\n }\n catch (err) {\n return Promise.reject(`exportToJson: ${err}`);\n }\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web-utils/Data.js","esm/web-utils/StorageDatabaseHelper.js","esm/web-utils/json-utils.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from '@capacitor/core';\nconst CapgoCapacitorDataStorageSqlite = registerPlugin('CapgoCapacitorDataStorageSqlite', {\n web: () => import('./web').then((m) => new m.CapgoCapacitorDataStorageSqliteWeb()),\n electron: () => window.CapacitorCustomPlatform.plugins.CapacitorDataStorageSqlite,\n});\nexport * from './definitions';\nexport { CapgoCapacitorDataStorageSqlite };\n//# sourceMappingURL=index.js.map","export class Data {\n}\n//# sourceMappingURL=Data.js.map","//import LocalForage from 'jeep-localforage';\nimport localForage from 'localforage';\nimport { Data } from './Data';\n//const DATABASE: string = \"storageIDB\";\n//const STORAGESTORE: string = \"storage_store\";\nexport class StorageDatabaseHelper {\n constructor(dbName, tableName) {\n this._db = null;\n const res = this.openStore(dbName, tableName);\n if (res) {\n this._dbName = dbName;\n this._tableName = tableName;\n }\n else {\n this._dbName = '';\n this._tableName = '';\n throw new Error('openStore return false');\n }\n }\n openStore(dbName, tableName) {\n let ret = false;\n const config = this.setConfig(dbName, tableName);\n this._db = localForage.createInstance(config);\n if (this._db != null) {\n this._dbName = dbName;\n ret = true;\n }\n return ret;\n }\n setConfig(dbName, tableName) {\n const config = {\n name: dbName,\n storeName: tableName,\n driver: [localForage.INDEXEDDB, localForage.WEBSQL],\n version: 1,\n };\n return config;\n }\n async setTable(tableName) {\n const res = this.openStore(this._dbName, tableName);\n if (res) {\n return Promise.resolve();\n }\n else {\n return Promise.reject(new Error('openStore return false'));\n }\n }\n async isTable(table) {\n if (this._db == null) {\n return Promise.reject(`isTable: this.db is null`);\n }\n try {\n let ret = false;\n const tables = await this.tables();\n if (tables.includes(table))\n ret = true;\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async tables() {\n return new Promise((resolve, reject) => {\n // Let us open our database\n const DBOpenRequest = window.indexedDB.open(this._dbName);\n // these two event handlers act on the database being opened successfully, or not\n DBOpenRequest.onerror = () => {\n return reject(`Error loading database ${this._dbName}`);\n };\n DBOpenRequest.onsuccess = () => {\n let result = [];\n const db = DBOpenRequest.result;\n const retList = db.objectStoreNames;\n const values = Object.values(retList);\n for (const val of values) {\n if (val.substring(0, 12) != 'local-forage') {\n result = [...result, val];\n }\n }\n return resolve(result);\n };\n });\n }\n async set(data) {\n try {\n await this._db.setItem(data.name, data.value);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async get(name) {\n try {\n const value = await this._db.getItem(name);\n const data = new Data();\n data.name = name;\n data.value = value;\n return Promise.resolve(data);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async remove(name) {\n return this._db\n .removeItem(name)\n .then(() => {\n return Promise.resolve();\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async clear() {\n return this._db\n .clear()\n .then(() => {\n return Promise.resolve();\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async keys() {\n return this._db\n .keys()\n .then((keys) => {\n return Promise.resolve(keys);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async values() {\n const values = [];\n return this._db\n .iterate((value) => {\n values.push(value);\n })\n .then(() => {\n return Promise.resolve(values);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async keysvalues() {\n const keysvalues = [];\n return this._db\n .iterate((value, key) => {\n const data = new Data();\n data.name = key;\n data.value = value;\n keysvalues.push(data);\n })\n .then(() => {\n return Promise.resolve(keysvalues);\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async iskey(name) {\n return this.get(name)\n .then((data) => {\n if (data.value != null) {\n return Promise.resolve(true);\n }\n else {\n return Promise.resolve(false);\n }\n })\n .catch((error) => {\n return Promise.reject(error);\n });\n }\n async importJson(values) {\n let changes = 0;\n for (const val of values) {\n try {\n const data = new Data();\n data.name = val.key;\n data.value = val.value;\n await this.set(data);\n changes += 1;\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n return Promise.resolve(changes);\n }\n async exportJson() {\n const retJson = {};\n const prevTableName = this._tableName;\n try {\n retJson.database = this._dbName.slice(0, -3);\n retJson.encrypted = false;\n retJson.tables = [];\n // get the table list\n const tables = await this.tables();\n for (const table of tables) {\n this._tableName = table;\n const retTable = {};\n retTable.name = table;\n retTable.values = [];\n const res = this.openStore(this._dbName, this._tableName);\n if (res) {\n const dataTable = await this.keysvalues();\n for (const tdata of dataTable) {\n const retData = {};\n if (tdata.name != null) {\n retData.key = tdata.name;\n retData.value = tdata.value;\n retTable.values = [...retTable.values, retData];\n }\n else {\n return Promise.reject('Data.name is undefined');\n }\n }\n retJson.tables = [...retJson.tables, retTable];\n }\n else {\n const msg = `Could not open ${this._dbName} ${this._tableName} `;\n this._tableName = prevTableName;\n return Promise.reject(msg);\n }\n }\n this._tableName = prevTableName;\n const res = this.openStore(this._dbName, this._tableName);\n if (res) {\n return Promise.resolve(retJson);\n }\n else {\n const msg = `Could not open ${this._dbName} ${this._tableName} `;\n return Promise.reject(msg);\n }\n }\n catch (err) {\n this._tableName = prevTableName;\n return Promise.reject(err);\n }\n }\n}\n//# sourceMappingURL=StorageDatabaseHelper.js.map","/**\n * IsJsonSQLite\n * @param obj\n */\nexport const isJsonStore = (obj) => {\n const keyFirstLevel = ['database', 'encrypted', 'tables'];\n if (obj == null || (Object.keys(obj).length === 0 && obj.constructor === Object))\n return false;\n for (const key of Object.keys(obj)) {\n if (keyFirstLevel.indexOf(key) === -1)\n return false;\n if (key === 'database' && typeof obj[key] != 'string')\n return false;\n if (key === 'encrypted' && typeof obj[key] != 'boolean')\n return false;\n if (key === 'tables' && typeof obj[key] != 'object')\n return false;\n if (key === 'tables') {\n for (const oKey of obj[key]) {\n const retTable = isTable(oKey);\n if (!retTable)\n return false;\n }\n }\n }\n return true;\n};\n/**\n * IsTable\n * @param obj\n */\nexport const isTable = (obj) => {\n const keyTableLevel = ['name', 'values'];\n if (obj == null || (Object.keys(obj).length === 0 && obj.constructor === Object)) {\n return false;\n }\n for (const key of Object.keys(obj)) {\n if (keyTableLevel.indexOf(key) === -1)\n return false;\n if (key === 'name' && typeof obj[key] != 'string')\n return false;\n if (key === 'values' && typeof obj[key] != 'object')\n return false;\n if (key === 'values') {\n for (const oKey of obj[key]) {\n const retValue = isValue(oKey);\n if (!retValue)\n return false;\n }\n }\n }\n return true;\n};\n/**\n * IsValue\n * @param obj\n */\nexport const isValue = (obj) => {\n const keyTableLevel = ['key', 'value'];\n if (obj == null || (Object.keys(obj).length === 0 && obj.constructor === Object)) {\n return false;\n }\n for (const key of Object.keys(obj)) {\n if (keyTableLevel.indexOf(key) === -1)\n return false;\n if (key === 'key' && typeof obj[key] != 'string')\n return false;\n if (key === 'value' && typeof obj[key] != 'string')\n return false;\n }\n return true;\n};\n//# sourceMappingURL=json-utils.js.map","import { WebPlugin } from '@capacitor/core';\nimport { Data } from './web-utils/Data';\nimport { StorageDatabaseHelper } from './web-utils/StorageDatabaseHelper';\nimport { isJsonStore } from './web-utils/json-utils';\nexport class CapgoCapacitorDataStorageSqliteWeb extends WebPlugin {\n async openStore(options) {\n const dbName = options.database ? `${options.database}IDB` : 'storageIDB';\n const tableName = options.table ? options.table : 'storage_store';\n try {\n this.mDb = new StorageDatabaseHelper(dbName, tableName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`OpenStore: ${err.message}`);\n }\n }\n async closeStore(options) {\n throw new Error(`Method closeStore not implemented. ${options}`);\n }\n async isStoreOpen(options) {\n throw new Error(`Method isStoreOpen not implemented. ${options}`);\n }\n async isStoreExists(options) {\n throw new Error(`Method isStoreExists not implemented. ${options}`);\n }\n async setTable(options) {\n const tableName = options.table;\n if (tableName == null) {\n return Promise.reject('SetTable: Must provide a table name');\n }\n if (this.mDb) {\n try {\n await this.mDb.setTable(tableName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`SetTable: ${err.message}`);\n }\n }\n else {\n return Promise.reject('SetTable: Must open a store first');\n }\n }\n async set(options) {\n const key = options.key;\n if (key == null || typeof key != 'string') {\n return Promise.reject('Set: Must provide key as string');\n }\n const value = options.value ? options.value : null;\n if (value == null || typeof value != 'string') {\n return Promise.reject('Set: Must provide value as string');\n }\n const data = new Data();\n data.name = key;\n data.value = value;\n try {\n await this.mDb.set(data);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Set: ${err.message}`);\n }\n }\n async get(options) {\n const key = options.key;\n if (key == null || typeof key != 'string') {\n return Promise.reject('Get: Must provide key as string');\n }\n try {\n const data = await this.mDb.get(key);\n if ((data === null || data === void 0 ? void 0 : data.value) != null) {\n return Promise.resolve({ value: data.value });\n }\n else {\n return Promise.resolve({ value: '' });\n }\n }\n catch (err) {\n return Promise.reject(`Get: ${err.message}`);\n }\n }\n async remove(options) {\n const key = options.key;\n if (key == null || typeof key != 'string') {\n return Promise.reject('Remove: Must provide key as string');\n }\n try {\n await this.mDb.remove(key);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Remove: ${err.message}`);\n }\n }\n async clear() {\n try {\n await this.mDb.clear();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(`Clear: ${err.message}`);\n }\n }\n async iskey(options) {\n const key = options.key;\n if (key == null || typeof key != 'string') {\n return Promise.reject('Iskey: Must provide key as string');\n }\n try {\n const ret = await this.mDb.iskey(key);\n return Promise.resolve({ result: ret });\n }\n catch (err) {\n return Promise.reject(`Iskey: ${err.message}`);\n }\n }\n async keys() {\n try {\n const ret = await this.mDb.keys();\n return Promise.resolve({ keys: ret });\n }\n catch (err) {\n return Promise.reject(`Keys: ${err.message}`);\n }\n }\n async values() {\n try {\n const ret = await this.mDb.values();\n return Promise.resolve({ values: ret });\n }\n catch (err) {\n return Promise.reject(`Values: ${err.message}`);\n }\n }\n async filtervalues(options) {\n const filter = options.filter;\n if (filter == null || typeof filter != 'string') {\n return Promise.reject('Filtervalues: Must provide filter as string');\n }\n let regFilter;\n if (filter.startsWith('%')) {\n regFilter = new RegExp('^' + filter.substring(1), 'i');\n }\n else if (filter.endsWith('%')) {\n regFilter = new RegExp(filter.slice(0, -1) + '$', 'i');\n }\n else {\n regFilter = new RegExp(filter, 'i');\n }\n try {\n const ret = [];\n const results = await this.mDb.keysvalues();\n for (const result of results) {\n if (result.name != null && regFilter.test(result.name)) {\n if (result.value != null) {\n ret.push(result.value);\n }\n else {\n return Promise.reject(`Filtervalues: result.value is null`);\n }\n }\n }\n return Promise.resolve({ values: ret });\n }\n catch (err) {\n return Promise.reject(`Filtervalues: ${err.message}`);\n }\n }\n async keysvalues() {\n try {\n const ret = [];\n const results = await this.mDb.keysvalues();\n for (const result of results) {\n if (result.name != null && result.value != null) {\n const res = { key: result.name, value: result.value };\n ret.push(res);\n }\n else {\n return Promise.reject(`Keysvalues: result.name/value are null`);\n }\n }\n return Promise.resolve({ keysvalues: ret });\n }\n catch (err) {\n return Promise.reject(`Keysvalues: ${err.message}`);\n }\n }\n async deleteStore(options) {\n throw new Error(`Method deleteStore not implemented. ${options}`);\n }\n async isTable(options) {\n const table = options.table;\n if (table == null) {\n return Promise.reject('Must provide a Table Name');\n }\n try {\n const ret = await this.mDb.isTable(table);\n return Promise.resolve({ result: ret });\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async tables() {\n try {\n const ret = await this.mDb.tables();\n return Promise.resolve({ tables: ret });\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteTable(options) {\n throw new Error(`Method deleteTable not implemented. ${options}`);\n }\n async importFromJson(options) {\n const keys = Object.keys(options);\n if (!keys.includes('jsonstring')) {\n return Promise.reject('Must provide a json object');\n }\n let totalChanges = 0;\n if (options === null || options === void 0 ? void 0 : options.jsonstring) {\n const jsonStrObj = options.jsonstring;\n const jsonObj = JSON.parse(jsonStrObj);\n const isValid = isJsonStore(jsonObj);\n if (!isValid) {\n return Promise.reject('Must provide a valid JsonSQLite Object');\n }\n const vJsonObj = jsonObj;\n const dbName = vJsonObj.database ? `${vJsonObj.database}IDB` : 'storageIDB';\n for (const table of vJsonObj.tables) {\n const tableName = table.name ? table.name : 'storage_store';\n try {\n this.mDb = new StorageDatabaseHelper(dbName, tableName);\n // Open the database\n const bRet = this.mDb.openStore(dbName, tableName);\n if (bRet) {\n // Import the JsonSQLite Object\n if (table === null || table === void 0 ? void 0 : table.values) {\n const changes = await this.mDb.importJson(table.values);\n totalChanges += changes;\n }\n }\n else {\n return Promise.reject(`Open store: ${dbName} : table: ${tableName} failed`);\n }\n }\n catch (err) {\n return Promise.reject(`ImportFromJson: ${err.message}`);\n }\n }\n return Promise.resolve({ changes: totalChanges });\n }\n else {\n return Promise.reject('Must provide a json object');\n }\n }\n async isJsonValid(options) {\n const keys = Object.keys(options);\n if (!keys.includes('jsonstring')) {\n return Promise.reject('Must provide a json object');\n }\n if (options === null || options === void 0 ? void 0 : options.jsonstring) {\n const jsonStrObj = options.jsonstring;\n const jsonObj = JSON.parse(jsonStrObj);\n const isValid = isJsonStore(jsonObj);\n if (!isValid) {\n return Promise.reject('Stringify Json Object not Valid');\n }\n else {\n return Promise.resolve({ result: true });\n }\n }\n else {\n return Promise.reject('Must provide in options a stringify Json Object');\n }\n }\n async exportToJson() {\n try {\n const ret = await this.mDb.exportJson();\n return Promise.resolve({ export: ret });\n }\n catch (err) {\n return Promise.reject(`exportToJson: ${err}`);\n }\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
@@ -4,19 +4,36 @@ import Capacitor
4
4
  // swiftlint:disable file_length
5
5
  // swiftlint:disable type_body_length
6
6
  @objc(CapgoCapacitorDataStorageSqlitePlugin)
7
- public class CapgoCapacitorDataStorageSqlitePlugin: CAPPlugin {
7
+ public class CapgoCapacitorDataStorageSqlitePlugin: CAPPlugin, CAPBridgedPlugin {
8
+ public let identifier = "CapgoCapacitorDataStorageSqlitePlugin"
9
+ public let jsName = "CapgoCapacitorDataStorageSqlite"
10
+ public let pluginMethods: [CAPPluginMethod] = [
11
+ CAPPluginMethod(name: "openStore", returnType: CAPPluginReturnPromise),
12
+ CAPPluginMethod(name: "closeStore", returnType: CAPPluginReturnPromise),
13
+ CAPPluginMethod(name: "isStoreOpen", returnType: CAPPluginReturnPromise),
14
+ CAPPluginMethod(name: "isStoreExists", returnType: CAPPluginReturnPromise),
15
+ CAPPluginMethod(name: "setTable", returnType: CAPPluginReturnPromise),
16
+ CAPPluginMethod(name: "set", returnType: CAPPluginReturnPromise),
17
+ CAPPluginMethod(name: "get", returnType: CAPPluginReturnPromise),
18
+ CAPPluginMethod(name: "remove", returnType: CAPPluginReturnPromise),
19
+ CAPPluginMethod(name: "clear", returnType: CAPPluginReturnPromise),
20
+ CAPPluginMethod(name: "keys", returnType: CAPPluginReturnPromise),
21
+ CAPPluginMethod(name: "values", returnType: CAPPluginReturnPromise),
22
+ CAPPluginMethod(name: "filtervalues", returnType: CAPPluginReturnPromise),
23
+ CAPPluginMethod(name: "keysvalues", returnType: CAPPluginReturnPromise),
24
+ CAPPluginMethod(name: "iskey", returnType: CAPPluginReturnPromise),
25
+ CAPPluginMethod(name: "deleteStore", returnType: CAPPluginReturnPromise),
26
+ CAPPluginMethod(name: "isTable", returnType: CAPPluginReturnPromise),
27
+ CAPPluginMethod(name: "tables", returnType: CAPPluginReturnPromise),
28
+ CAPPluginMethod(name: "deleteTable", returnType: CAPPluginReturnPromise),
29
+ CAPPluginMethod(name: "isJsonValid", returnType: CAPPluginReturnPromise),
30
+ CAPPluginMethod(name: "importFromJson", returnType: CAPPluginReturnPromise),
31
+ CAPPluginMethod(name: "exportToJson", returnType: CAPPluginReturnPromise)
32
+
33
+ ]
8
34
  private let implementation = CapgoCapacitorDataStorageSqlite()
9
35
  private let retHandler: ReturnHandler = ReturnHandler()
10
36
 
11
- // MARK: - Echo
12
-
13
- @objc func echo(_ call: CAPPluginCall) {
14
- let value = call.getString("value") ?? ""
15
- call.resolve([
16
- "value": implementation.echo(value)
17
- ])
18
- }
19
-
20
37
  // MARK: - OpenStore
21
38
 
22
39
  @objc func openStore(_ call: CAPPluginCall) {
@@ -86,7 +86,7 @@ class StorageDatabaseHelper {
86
86
  // MARK: - Open
87
87
 
88
88
  // swiftlint:disable function_body_length
89
- func open () throws {
89
+ func open() throws {
90
90
  var password: String = ""
91
91
  if encrypted && (mode == "secret" || mode == "newsecret"
92
92
  || mode == "encryption") {
@@ -222,7 +222,7 @@ class UtilsFile {
222
222
 
223
223
  // MARK: - RenameFile
224
224
 
225
- class func renameFile (filePath: String, toFilePath: String)
225
+ class func renameFile(filePath: String, toFilePath: String)
226
226
  throws {
227
227
  let fileManager = FileManager.default
228
228
  do {
@@ -451,8 +451,8 @@ class UtilsSQLCipher {
451
451
 
452
452
  // MARK: - CreateTable
453
453
 
454
- class func createTable (mDB: StorageDatabaseHelper, tableName: String,
455
- ifNotExists: Bool) throws {
454
+ class func createTable(mDB: StorageDatabaseHelper, tableName: String,
455
+ ifNotExists: Bool) throws {
456
456
  let exist: String = ifNotExists ? "IF NOT EXISTS" : ""
457
457
  let crTable: String = "CREATE TABLE \(exist) \(tableName) (" +
458
458
  "\(COLID) INTEGER PRIMARY KEY AUTOINCREMENT," +
@@ -557,7 +557,7 @@ class UtilsSQLCipher {
557
557
 
558
558
  // MARK: - DropTable
559
559
 
560
- class func dropTable (mDB: StorageDatabaseHelper, tableName: String) throws {
560
+ class func dropTable(mDB: StorageDatabaseHelper, tableName: String) throws {
561
561
  let dropStatement: String = "DROP TABLE IF EXISTS \(tableName)"
562
562
  do {
563
563
  try UtilsSQLCipher.execute(mDB: mDB, sql: dropStatement)
@@ -0,0 +1,13 @@
1
+ import XCTest
2
+ @testable import CapgoCapacitorDataStorageSqlitePlugin
3
+
4
+ final class CapgoCapacitorDataStorageSqliteTests: XCTestCase {
5
+ func testEcho() {
6
+ // Ensure the basic iOS helper reflects the provided value.
7
+ let implementation = CapgoCapacitorDataStorageSqlite()
8
+ let value = "Hello, World!"
9
+ let result = implementation.echo(value)
10
+
11
+ XCTAssertEqual(value, result)
12
+ }
13
+ }