@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.
- package/CapgoCapacitorDataStorageSqlite.podspec +2 -2
- package/Package.swift +30 -0
- package/README.md +724 -0
- package/android/build.gradle +11 -11
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/CapgoCapacitorDataStorageSqlite.java +290 -320
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/CapgoCapacitorDataStorageSqlitePlugin.java +373 -388
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/RetHandler.java +97 -97
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/Data.java +3 -3
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/Global.java +2 -2
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonStore.java +108 -110
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonTable.java +78 -80
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonValue.java +62 -64
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/StorageDatabaseHelper.java +557 -624
- package/android/src/main/java/com/jeep/plugin/capacitor/capgocapacitordatastoragesqlite/cdssUtils/UtilsSQLCipher.java +103 -144
- package/dist/docs.json +0 -64
- package/dist/esm/definitions.d.ts +0 -19
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +5 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/web-utils/StorageDatabaseHelper.d.ts +2 -2
- package/dist/esm/web-utils/StorageDatabaseHelper.js +8 -8
- package/dist/esm/web-utils/StorageDatabaseHelper.js.map +1 -1
- package/dist/esm/web-utils/json-utils.js +15 -18
- package/dist/esm/web-utils/json-utils.js.map +1 -1
- package/dist/esm/web.d.ts +2 -3
- package/dist/esm/web.js +37 -44
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +56 -67
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +56 -67
- package/dist/plugin.js.map +1 -1
- package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/CapgoCapacitorDataStorageSqlitePlugin.swift +27 -10
- package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/StorageDatabaseHelper.swift +1 -1
- package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsFile.swift +1 -1
- package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsSQLCipher.swift +3 -3
- package/ios/Tests/CapgoCapacitorDataStorageSqlitePluginTests/CapacitorDataStorageSqlitePluginTests.swift +13 -0
- package/package.json +34 -38
- package/electron/dist/plugin.js +0 -1044
- package/electron/dist/plugin.js.map +0 -1
- package/ios/Plugin/CapgoCapacitorDataStorageSqlitePlugin.h +0 -10
- package/ios/Plugin/CapgoCapacitorDataStorageSqlitePlugin.m +0 -29
- package/ios/Plugin/Info.plist +0 -24
- package/readme.md +0 -210
- /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/CapgoCapacitorDataStorageSqlite.swift +0 -0
- /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Data.swift +0 -0
- /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Global.swift +0 -0
- /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/ImportExportJson/JsonStore.swift +0 -0
- /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/ReturnHandler.swift +0 -0
- /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/Blob.swift +0 -0
- /package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsBinding.swift +0 -0
- /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(
|
|
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(
|
|
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(
|
|
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) !=
|
|
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(
|
|
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 = [
|
|
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 ===
|
|
268
|
+
if (key === 'database' && typeof obj[key] != 'string')
|
|
271
269
|
return false;
|
|
272
|
-
if (key ===
|
|
270
|
+
if (key === 'encrypted' && typeof obj[key] != 'boolean')
|
|
273
271
|
return false;
|
|
274
|
-
if (key ===
|
|
272
|
+
if (key === 'tables' && typeof obj[key] != 'object')
|
|
275
273
|
return false;
|
|
276
|
-
if (key ===
|
|
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 = [
|
|
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 ===
|
|
296
|
+
if (key === 'name' && typeof obj[key] != 'string')
|
|
300
297
|
return false;
|
|
301
|
-
if (key ===
|
|
298
|
+
if (key === 'values' && typeof obj[key] != 'object')
|
|
302
299
|
return false;
|
|
303
|
-
if (key ===
|
|
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 = [
|
|
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 ===
|
|
322
|
+
if (key === 'key' && typeof obj[key] != 'string')
|
|
327
323
|
return false;
|
|
328
|
-
if (key ===
|
|
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` :
|
|
342
|
-
const tableName = options.table ? options.table :
|
|
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(
|
|
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(
|
|
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 !=
|
|
381
|
-
return Promise.reject(
|
|
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 !=
|
|
385
|
-
return Promise.reject(
|
|
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 !=
|
|
401
|
-
return Promise.reject(
|
|
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 !=
|
|
419
|
-
return Promise.reject(
|
|
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 !=
|
|
441
|
-
return Promise.reject(
|
|
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 !=
|
|
472
|
-
return Promise.reject(
|
|
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(
|
|
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) +
|
|
469
|
+
else if (filter.endsWith('%')) {
|
|
470
|
+
regFilter = new RegExp(filter.slice(0, -1) + '$', 'i');
|
|
480
471
|
}
|
|
481
472
|
else {
|
|
482
|
-
regFilter = new RegExp(filter,
|
|
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(
|
|
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(
|
|
553
|
-
return Promise.reject(
|
|
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(
|
|
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 :
|
|
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(
|
|
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(
|
|
597
|
-
return Promise.reject(
|
|
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(
|
|
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(
|
|
600
|
+
return Promise.reject('Must provide in options a stringify Json Object');
|
|
612
601
|
}
|
|
613
602
|
}
|
|
614
603
|
async exportToJson() {
|
package/dist/plugin.js.map
CHANGED
|
@@ -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) {
|
package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/StorageDatabaseHelper.swift
RENAMED
|
@@ -86,7 +86,7 @@ class StorageDatabaseHelper {
|
|
|
86
86
|
// MARK: - Open
|
|
87
87
|
|
|
88
88
|
// swiftlint:disable function_body_length
|
|
89
|
-
func open
|
|
89
|
+
func open() throws {
|
|
90
90
|
var password: String = ""
|
|
91
91
|
if encrypted && (mode == "secret" || mode == "newsecret"
|
|
92
92
|
|| mode == "encryption") {
|
package/ios/{Plugin → Sources/CapgoCapacitorDataStorageSqlitePlugin}/Utils/UtilsSQLCipher.swift
RENAMED
|
@@ -451,8 +451,8 @@ class UtilsSQLCipher {
|
|
|
451
451
|
|
|
452
452
|
// MARK: - CreateTable
|
|
453
453
|
|
|
454
|
-
class func createTable
|
|
455
|
-
|
|
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
|
|
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
|
+
}
|