@capgo/capacitor-data-storage-sqlite 6.0.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 (59) hide show
  1. package/CapacitorDataStorageSqlite.podspec +18 -0
  2. package/LICENSE +21 -0
  3. package/android/build.gradle +63 -0
  4. package/android/src/main/AndroidManifest.xml +3 -0
  5. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/CapacitorDataStorageSqlite.java +387 -0
  6. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/CapacitorDataStorageSqlitePlugin.java +447 -0
  7. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/RetHandler.java +117 -0
  8. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/cdssUtils/Data.java +8 -0
  9. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/cdssUtils/Global.java +7 -0
  10. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonStore.java +131 -0
  11. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonTable.java +110 -0
  12. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/cdssUtils/ImportExportJson/JsonValue.java +89 -0
  13. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/cdssUtils/StorageDatabaseHelper.java +691 -0
  14. package/android/src/main/java/com/jeep/plugin/capacitor/capacitordatastoragesqlite/cdssUtils/UtilsSQLCipher.java +162 -0
  15. package/android/src/main/res/.gitkeep +0 -0
  16. package/dist/docs.json +995 -0
  17. package/dist/esm/definitions.d.ts +296 -0
  18. package/dist/esm/definitions.js +2 -0
  19. package/dist/esm/definitions.js.map +1 -0
  20. package/dist/esm/index.d.ts +4 -0
  21. package/dist/esm/index.js +9 -0
  22. package/dist/esm/index.js.map +1 -0
  23. package/dist/esm/web-utils/Data.d.ts +5 -0
  24. package/dist/esm/web-utils/Data.js +3 -0
  25. package/dist/esm/web-utils/Data.js.map +1 -0
  26. package/dist/esm/web-utils/StorageDatabaseHelper.d.ts +23 -0
  27. package/dist/esm/web-utils/StorageDatabaseHelper.js +247 -0
  28. package/dist/esm/web-utils/StorageDatabaseHelper.js.map +1 -0
  29. package/dist/esm/web-utils/json-utils.d.ts +15 -0
  30. package/dist/esm/web-utils/json-utils.js +76 -0
  31. package/dist/esm/web-utils/json-utils.js.map +1 -0
  32. package/dist/esm/web.d.ts +27 -0
  33. package/dist/esm/web.js +295 -0
  34. package/dist/esm/web.js.map +1 -0
  35. package/dist/plugin.cjs.js +633 -0
  36. package/dist/plugin.cjs.js.map +1 -0
  37. package/dist/plugin.js +635 -0
  38. package/dist/plugin.js.map +1 -0
  39. package/electron/dist/plugin.js +1044 -0
  40. package/electron/dist/plugin.js.map +1 -0
  41. package/electron/rollup.config.mjs +17 -0
  42. package/electron/tsconfig.json +19 -0
  43. package/ios/Plugin/CapacitorDataStorageSqlite.swift +550 -0
  44. package/ios/Plugin/CapacitorDataStorageSqlitePlugin.h +10 -0
  45. package/ios/Plugin/CapacitorDataStorageSqlitePlugin.m +29 -0
  46. package/ios/Plugin/CapacitorDataStorageSqlitePlugin.swift +550 -0
  47. package/ios/Plugin/Data.swift +16 -0
  48. package/ios/Plugin/Global.swift +13 -0
  49. package/ios/Plugin/ImportExportJson/JsonStore.swift +47 -0
  50. package/ios/Plugin/Info.plist +24 -0
  51. package/ios/Plugin/ReturnHandler.swift +85 -0
  52. package/ios/Plugin/StorageDatabaseHelper.swift +603 -0
  53. package/ios/Plugin/Utils/Blob.swift +41 -0
  54. package/ios/Plugin/Utils/UtilsBinding.swift +73 -0
  55. package/ios/Plugin/Utils/UtilsEncryption.swift +79 -0
  56. package/ios/Plugin/Utils/UtilsFile.swift +244 -0
  57. package/ios/Plugin/Utils/UtilsSQLCipher.swift +605 -0
  58. package/package.json +96 -0
  59. package/readme.md +203 -0
@@ -0,0 +1,76 @@
1
+ /**
2
+ * IsJsonSQLite
3
+ * @param obj
4
+ */
5
+ export const isJsonStore = (obj) => {
6
+ const keyFirstLevel = ["database", "encrypted", "tables"];
7
+ if (obj == null ||
8
+ (Object.keys(obj).length === 0 && obj.constructor === Object))
9
+ return false;
10
+ for (const key of Object.keys(obj)) {
11
+ if (keyFirstLevel.indexOf(key) === -1)
12
+ return false;
13
+ if (key === "database" && typeof obj[key] != "string")
14
+ return false;
15
+ if (key === "encrypted" && typeof obj[key] != "boolean")
16
+ return false;
17
+ if (key === "tables" && typeof obj[key] != "object")
18
+ return false;
19
+ if (key === "tables") {
20
+ for (const oKey of obj[key]) {
21
+ const retTable = isTable(oKey);
22
+ if (!retTable)
23
+ return false;
24
+ }
25
+ }
26
+ }
27
+ return true;
28
+ };
29
+ /**
30
+ * IsTable
31
+ * @param obj
32
+ */
33
+ export const isTable = (obj) => {
34
+ const keyTableLevel = ["name", "values"];
35
+ if (obj == null ||
36
+ (Object.keys(obj).length === 0 && obj.constructor === Object)) {
37
+ return false;
38
+ }
39
+ for (const key of Object.keys(obj)) {
40
+ if (keyTableLevel.indexOf(key) === -1)
41
+ return false;
42
+ if (key === "name" && typeof obj[key] != "string")
43
+ return false;
44
+ if (key === "values" && typeof obj[key] != "object")
45
+ return false;
46
+ if (key === "values") {
47
+ for (const oKey of obj[key]) {
48
+ const retValue = isValue(oKey);
49
+ if (!retValue)
50
+ return false;
51
+ }
52
+ }
53
+ }
54
+ return true;
55
+ };
56
+ /**
57
+ * IsValue
58
+ * @param obj
59
+ */
60
+ export const isValue = (obj) => {
61
+ const keyTableLevel = ["key", "value"];
62
+ if (obj == null ||
63
+ (Object.keys(obj).length === 0 && obj.constructor === Object)) {
64
+ return false;
65
+ }
66
+ for (const key of Object.keys(obj)) {
67
+ if (keyTableLevel.indexOf(key) === -1)
68
+ return false;
69
+ if (key === "key" && typeof obj[key] != "string")
70
+ return false;
71
+ if (key === "value" && typeof obj[key] != "string")
72
+ return false;
73
+ }
74
+ return true;
75
+ };
76
+ //# sourceMappingURL=json-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-utils.js","sourceRoot":"","sources":["../../../src/web-utils/json-utils.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * IsJsonSQLite\n * @param obj\n */\nexport const isJsonStore = (obj: any): boolean => {\n const keyFirstLevel: string[] = [\"database\", \"encrypted\", \"tables\"];\n if (\n obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object)\n )\n return false;\n for (const key of Object.keys(obj)) {\n if (keyFirstLevel.indexOf(key) === -1) return false;\n if (key === \"database\" && typeof obj[key] != \"string\") return false;\n if (key === \"encrypted\" && typeof obj[key] != \"boolean\") return false;\n if (key === \"tables\" && typeof obj[key] != \"object\") return false;\n if (key === \"tables\") {\n for (const oKey of obj[key]) {\n const retTable: boolean = isTable(oKey);\n if (!retTable) return false;\n }\n }\n }\n return true;\n};\n/**\n * IsTable\n * @param obj\n */\nexport const isTable = (obj: any): boolean => {\n const keyTableLevel: string[] = [\"name\", \"values\"];\n if (\n obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object)\n ) {\n return false;\n }\n for (const key of Object.keys(obj)) {\n if (keyTableLevel.indexOf(key) === -1) return false;\n if (key === \"name\" && typeof obj[key] != \"string\") return false;\n if (key === \"values\" && typeof obj[key] != \"object\") return false;\n if (key === \"values\") {\n for (const oKey of obj[key]) {\n const retValue: boolean = isValue(oKey);\n if (!retValue) return false;\n }\n }\n }\n return true;\n};\n/**\n * IsValue\n * @param obj\n */\nexport const isValue = (obj: any): boolean => {\n const keyTableLevel: string[] = [\"key\", \"value\"];\n if (\n obj == null ||\n (Object.keys(obj).length === 0 && obj.constructor === Object)\n ) {\n return false;\n }\n for (const key of Object.keys(obj)) {\n if (keyTableLevel.indexOf(key) === -1) return false;\n if (key === \"key\" && typeof obj[key] != \"string\") return false;\n if (key === \"value\" && typeof obj[key] != \"string\") return false;\n }\n return true;\n};\n"]}
@@ -0,0 +1,27 @@
1
+ import { WebPlugin } from "@capacitor/core";
2
+ import type { CapacitorDataStorageSqlitePlugin, capEchoOptions, capEchoResult, capDataStorageOptions, capDataStorageResult, capFilterStorageOptions, capKeysResult, capKeysValuesResult, capTablesResult, capOpenStorageOptions, capTableStorageOptions, capValueResult, capValuesResult, capStorageOptions, capStoreJson, capDataStorageChanges, capStoreImportOptions } from "./definitions";
3
+ export declare class CapacitorDataStorageSqliteWeb extends WebPlugin implements CapacitorDataStorageSqlitePlugin {
4
+ private mDb;
5
+ echo(options: capEchoOptions): Promise<capEchoResult>;
6
+ openStore(options: capOpenStorageOptions): Promise<void>;
7
+ closeStore(options: capStorageOptions): Promise<void>;
8
+ isStoreOpen(options: capStorageOptions): Promise<capDataStorageResult>;
9
+ isStoreExists(options: capStorageOptions): Promise<capDataStorageResult>;
10
+ setTable(options: capTableStorageOptions): Promise<void>;
11
+ set(options: capDataStorageOptions): Promise<void>;
12
+ get(options: capDataStorageOptions): Promise<capValueResult>;
13
+ remove(options: capDataStorageOptions): Promise<void>;
14
+ clear(): Promise<void>;
15
+ iskey(options: capDataStorageOptions): Promise<capDataStorageResult>;
16
+ keys(): Promise<capKeysResult>;
17
+ values(): Promise<capValuesResult>;
18
+ filtervalues(options: capFilterStorageOptions): Promise<capValuesResult>;
19
+ keysvalues(): Promise<capKeysValuesResult>;
20
+ deleteStore(options: capOpenStorageOptions): Promise<void>;
21
+ isTable(options: capTableStorageOptions): Promise<capDataStorageResult>;
22
+ tables(): Promise<capTablesResult>;
23
+ deleteTable(options: capTableStorageOptions): Promise<void>;
24
+ importFromJson(options: capStoreImportOptions): Promise<capDataStorageChanges>;
25
+ isJsonValid(options: capStoreImportOptions): Promise<capDataStorageResult>;
26
+ exportToJson(): Promise<capStoreJson>;
27
+ }
@@ -0,0 +1,295 @@
1
+ import { WebPlugin } from "@capacitor/core";
2
+ import { Data } from "./web-utils/Data";
3
+ import { StorageDatabaseHelper } from "./web-utils/StorageDatabaseHelper";
4
+ import { isJsonStore } from "./web-utils/json-utils";
5
+ export class CapacitorDataStorageSqliteWeb extends WebPlugin {
6
+ async echo(options) {
7
+ const ret = {};
8
+ ret.value = options.value ? options.value : "";
9
+ return ret;
10
+ }
11
+ async openStore(options) {
12
+ const dbName = options.database ? `${options.database}IDB` : "storageIDB";
13
+ const tableName = options.table ? options.table : "storage_store";
14
+ try {
15
+ this.mDb = new StorageDatabaseHelper(dbName, tableName);
16
+ return Promise.resolve();
17
+ }
18
+ catch (err) {
19
+ return Promise.reject(`OpenStore: ${err.message}`);
20
+ }
21
+ }
22
+ async closeStore(options) {
23
+ throw new Error(`Method closeStore not implemented. ${options}`);
24
+ }
25
+ async isStoreOpen(options) {
26
+ throw new Error(`Method isStoreOpen not implemented. ${options}`);
27
+ }
28
+ async isStoreExists(options) {
29
+ throw new Error(`Method isStoreExists not implemented. ${options}`);
30
+ }
31
+ async setTable(options) {
32
+ const tableName = options.table;
33
+ if (tableName == null) {
34
+ return Promise.reject("SetTable: Must provide a table name");
35
+ }
36
+ if (this.mDb) {
37
+ try {
38
+ await this.mDb.setTable(tableName);
39
+ return Promise.resolve();
40
+ }
41
+ catch (err) {
42
+ return Promise.reject(`SetTable: ${err.message}`);
43
+ }
44
+ }
45
+ else {
46
+ return Promise.reject("SetTable: Must open a store first");
47
+ }
48
+ }
49
+ async set(options) {
50
+ const key = options.key;
51
+ if (key == null || typeof key != "string") {
52
+ return Promise.reject("Set: Must provide key as string");
53
+ }
54
+ const value = options.value ? options.value : null;
55
+ if (value == null || typeof value != "string") {
56
+ return Promise.reject("Set: Must provide value as string");
57
+ }
58
+ const data = new Data();
59
+ data.name = key;
60
+ data.value = value;
61
+ try {
62
+ await this.mDb.set(data);
63
+ return Promise.resolve();
64
+ }
65
+ catch (err) {
66
+ return Promise.reject(`Set: ${err.message}`);
67
+ }
68
+ }
69
+ async get(options) {
70
+ const key = options.key;
71
+ if (key == null || typeof key != "string") {
72
+ return Promise.reject("Get: Must provide key as string");
73
+ }
74
+ try {
75
+ const data = await this.mDb.get(key);
76
+ if ((data === null || data === void 0 ? void 0 : data.value) != null) {
77
+ return Promise.resolve({ value: data.value });
78
+ }
79
+ else {
80
+ return Promise.resolve({ value: "" });
81
+ }
82
+ }
83
+ catch (err) {
84
+ return Promise.reject(`Get: ${err.message}`);
85
+ }
86
+ }
87
+ async remove(options) {
88
+ const key = options.key;
89
+ if (key == null || typeof key != "string") {
90
+ return Promise.reject("Remove: Must provide key as string");
91
+ }
92
+ try {
93
+ await this.mDb.remove(key);
94
+ return Promise.resolve();
95
+ }
96
+ catch (err) {
97
+ return Promise.reject(`Remove: ${err.message}`);
98
+ }
99
+ }
100
+ async clear() {
101
+ try {
102
+ await this.mDb.clear();
103
+ return Promise.resolve();
104
+ }
105
+ catch (err) {
106
+ return Promise.reject(`Clear: ${err.message}`);
107
+ }
108
+ }
109
+ async iskey(options) {
110
+ const key = options.key;
111
+ if (key == null || typeof key != "string") {
112
+ return Promise.reject("Iskey: Must provide key as string");
113
+ }
114
+ try {
115
+ const ret = await this.mDb.iskey(key);
116
+ return Promise.resolve({ result: ret });
117
+ }
118
+ catch (err) {
119
+ return Promise.reject(`Iskey: ${err.message}`);
120
+ }
121
+ }
122
+ async keys() {
123
+ try {
124
+ const ret = await this.mDb.keys();
125
+ return Promise.resolve({ keys: ret });
126
+ }
127
+ catch (err) {
128
+ return Promise.reject(`Keys: ${err.message}`);
129
+ }
130
+ }
131
+ async values() {
132
+ try {
133
+ const ret = await this.mDb.values();
134
+ return Promise.resolve({ values: ret });
135
+ }
136
+ catch (err) {
137
+ return Promise.reject(`Values: ${err.message}`);
138
+ }
139
+ }
140
+ async filtervalues(options) {
141
+ const filter = options.filter;
142
+ if (filter == null || typeof filter != "string") {
143
+ return Promise.reject("Filtervalues: Must provide filter as string");
144
+ }
145
+ let regFilter;
146
+ if (filter.startsWith("%")) {
147
+ regFilter = new RegExp("^" + filter.substring(1), "i");
148
+ }
149
+ else if (filter.endsWith("%")) {
150
+ regFilter = new RegExp(filter.slice(0, -1) + "$", "i");
151
+ }
152
+ else {
153
+ regFilter = new RegExp(filter, "i");
154
+ }
155
+ try {
156
+ const ret = [];
157
+ const results = await this.mDb.keysvalues();
158
+ for (const result of results) {
159
+ if (result.name != null && regFilter.test(result.name)) {
160
+ if (result.value != null) {
161
+ ret.push(result.value);
162
+ }
163
+ else {
164
+ return Promise.reject(`Filtervalues: result.value is null`);
165
+ }
166
+ }
167
+ }
168
+ return Promise.resolve({ values: ret });
169
+ }
170
+ catch (err) {
171
+ return Promise.reject(`Filtervalues: ${err.message}`);
172
+ }
173
+ }
174
+ async keysvalues() {
175
+ try {
176
+ const ret = [];
177
+ const results = await this.mDb.keysvalues();
178
+ for (const result of results) {
179
+ if (result.name != null && result.value != null) {
180
+ const res = { key: result.name, value: result.value };
181
+ ret.push(res);
182
+ }
183
+ else {
184
+ return Promise.reject(`Keysvalues: result.name/value are null`);
185
+ }
186
+ }
187
+ return Promise.resolve({ keysvalues: ret });
188
+ }
189
+ catch (err) {
190
+ return Promise.reject(`Keysvalues: ${err.message}`);
191
+ }
192
+ }
193
+ async deleteStore(options) {
194
+ throw new Error(`Method deleteStore not implemented. ${options}`);
195
+ }
196
+ async isTable(options) {
197
+ const table = options.table;
198
+ if (table == null) {
199
+ return Promise.reject("Must provide a Table Name");
200
+ }
201
+ try {
202
+ const ret = await this.mDb.isTable(table);
203
+ return Promise.resolve({ result: ret });
204
+ }
205
+ catch (err) {
206
+ return Promise.reject(err);
207
+ }
208
+ }
209
+ async tables() {
210
+ try {
211
+ const ret = await this.mDb.tables();
212
+ return Promise.resolve({ tables: ret });
213
+ }
214
+ catch (err) {
215
+ return Promise.reject(err);
216
+ }
217
+ }
218
+ async deleteTable(options) {
219
+ throw new Error(`Method deleteTable not implemented. ${options}`);
220
+ }
221
+ async importFromJson(options) {
222
+ const keys = Object.keys(options);
223
+ if (!keys.includes("jsonstring")) {
224
+ return Promise.reject("Must provide a json object");
225
+ }
226
+ let totalChanges = 0;
227
+ if (options === null || options === void 0 ? void 0 : options.jsonstring) {
228
+ const jsonStrObj = options.jsonstring;
229
+ const jsonObj = JSON.parse(jsonStrObj);
230
+ const isValid = isJsonStore(jsonObj);
231
+ if (!isValid) {
232
+ return Promise.reject("Must provide a valid JsonSQLite Object");
233
+ }
234
+ const vJsonObj = jsonObj;
235
+ const dbName = vJsonObj.database
236
+ ? `${vJsonObj.database}IDB`
237
+ : "storageIDB";
238
+ for (const table of vJsonObj.tables) {
239
+ const tableName = table.name ? table.name : "storage_store";
240
+ try {
241
+ this.mDb = new StorageDatabaseHelper(dbName, tableName);
242
+ // Open the database
243
+ const bRet = this.mDb.openStore(dbName, tableName);
244
+ if (bRet) {
245
+ // Import the JsonSQLite Object
246
+ if (table === null || table === void 0 ? void 0 : table.values) {
247
+ const changes = await this.mDb.importJson(table.values);
248
+ totalChanges += changes;
249
+ }
250
+ }
251
+ else {
252
+ return Promise.reject(`Open store: ${dbName} : table: ${tableName} failed`);
253
+ }
254
+ }
255
+ catch (err) {
256
+ return Promise.reject(`ImportFromJson: ${err.message}`);
257
+ }
258
+ }
259
+ return Promise.resolve({ changes: totalChanges });
260
+ }
261
+ else {
262
+ return Promise.reject("Must provide a json object");
263
+ }
264
+ }
265
+ async isJsonValid(options) {
266
+ const keys = Object.keys(options);
267
+ if (!keys.includes("jsonstring")) {
268
+ return Promise.reject("Must provide a json object");
269
+ }
270
+ if (options === null || options === void 0 ? void 0 : options.jsonstring) {
271
+ const jsonStrObj = options.jsonstring;
272
+ const jsonObj = JSON.parse(jsonStrObj);
273
+ const isValid = isJsonStore(jsonObj);
274
+ if (!isValid) {
275
+ return Promise.reject("Stringify Json Object not Valid");
276
+ }
277
+ else {
278
+ return Promise.resolve({ result: true });
279
+ }
280
+ }
281
+ else {
282
+ return Promise.reject("Must provide in options a stringify Json Object");
283
+ }
284
+ }
285
+ async exportToJson() {
286
+ try {
287
+ const ret = await this.mDb.exportJson();
288
+ return Promise.resolve({ export: ret });
289
+ }
290
+ catch (err) {
291
+ return Promise.reject(`exportToJson: ${err}`);
292
+ }
293
+ }
294
+ }
295
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from \"@capacitor/core\";\n\nimport type {\n CapacitorDataStorageSqlitePlugin,\n capEchoOptions,\n capEchoResult,\n capDataStorageOptions,\n capDataStorageResult,\n capFilterStorageOptions,\n capKeysResult,\n capKeysValuesResult,\n capTablesResult,\n capOpenStorageOptions,\n capTableStorageOptions,\n capValueResult,\n capValuesResult,\n capStorageOptions,\n JsonStore,\n capStoreJson,\n capDataStorageChanges,\n capStoreImportOptions,\n} from \"./definitions\";\nimport { Data } from \"./web-utils/Data\";\nimport { StorageDatabaseHelper } from \"./web-utils/StorageDatabaseHelper\";\nimport { isJsonStore } from \"./web-utils/json-utils\";\n\nexport class CapacitorDataStorageSqliteWeb\n extends WebPlugin\n implements CapacitorDataStorageSqlitePlugin\n{\n private mDb!: StorageDatabaseHelper;\n\n async echo(options: capEchoOptions): Promise<capEchoResult> {\n const ret: capEchoResult = {} as capEchoResult;\n ret.value = options.value ? options.value : \"\";\n return ret;\n }\n\n async openStore(options: capOpenStorageOptions): Promise<void> {\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 } catch (err: any) {\n return Promise.reject(`OpenStore: ${err.message}`);\n }\n }\n async closeStore(options: capStorageOptions): Promise<void> {\n throw new Error(`Method closeStore not implemented. ${options}`);\n }\n async isStoreOpen(options: capStorageOptions): Promise<capDataStorageResult> {\n throw new Error(`Method isStoreOpen not implemented. ${options}`);\n }\n async isStoreExists(\n options: capStorageOptions,\n ): Promise<capDataStorageResult> {\n throw new Error(`Method isStoreExists not implemented. ${options}`);\n }\n async setTable(options: capTableStorageOptions): Promise<void> {\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 } catch (err: any) {\n return Promise.reject(`SetTable: ${err.message}`);\n }\n } else {\n return Promise.reject(\"SetTable: Must open a store first\");\n }\n }\n async set(options: capDataStorageOptions): Promise<void> {\n const key: string = options.key;\n if (key == null || typeof key != \"string\") {\n return Promise.reject(\"Set: Must provide key as string\");\n }\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: Data = new Data();\n data.name = key;\n data.value = value;\n try {\n await this.mDb.set(data);\n return Promise.resolve();\n } catch (err: any) {\n return Promise.reject(`Set: ${err.message}`);\n }\n }\n async get(options: capDataStorageOptions): Promise<capValueResult> {\n const key: string = 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: Data = await this.mDb.get(key);\n if (data?.value != null) {\n return Promise.resolve({ value: data.value });\n } else {\n return Promise.resolve({ value: \"\" });\n }\n } catch (err: any) {\n return Promise.reject(`Get: ${err.message}`);\n }\n }\n async remove(options: capDataStorageOptions): Promise<void> {\n const key: string = 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 } catch (err: any) {\n return Promise.reject(`Remove: ${err.message}`);\n }\n }\n async clear(): Promise<void> {\n try {\n await this.mDb.clear();\n return Promise.resolve();\n } catch (err: any) {\n return Promise.reject(`Clear: ${err.message}`);\n }\n }\n async iskey(options: capDataStorageOptions): Promise<capDataStorageResult> {\n const key: string = 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: boolean = await this.mDb.iskey(key);\n return Promise.resolve({ result: ret });\n } catch (err: any) {\n return Promise.reject(`Iskey: ${err.message}`);\n }\n }\n async keys(): Promise<capKeysResult> {\n try {\n const ret: string[] = await this.mDb.keys();\n return Promise.resolve({ keys: ret });\n } catch (err: any) {\n return Promise.reject(`Keys: ${err.message}`);\n }\n }\n async values(): Promise<capValuesResult> {\n try {\n const ret: string[] = await this.mDb.values();\n return Promise.resolve({ values: ret });\n } catch (err: any) {\n return Promise.reject(`Values: ${err.message}`);\n }\n }\n async filtervalues(\n options: capFilterStorageOptions,\n ): Promise<capValuesResult> {\n const filter: string = options.filter;\n if (filter == null || typeof filter != \"string\") {\n return Promise.reject(\"Filtervalues: Must provide filter as string\");\n }\n let regFilter: RegExp;\n if (filter.startsWith(\"%\")) {\n regFilter = new RegExp(\"^\" + filter.substring(1), \"i\");\n } else if (filter.endsWith(\"%\")) {\n regFilter = new RegExp(filter.slice(0, -1) + \"$\", \"i\");\n } else {\n regFilter = new RegExp(filter, \"i\");\n }\n try {\n const ret: string[] = [];\n\n const results: Data[] = 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 } else {\n return Promise.reject(`Filtervalues: result.value is null`);\n }\n }\n }\n return Promise.resolve({ values: ret });\n } catch (err: any) {\n return Promise.reject(`Filtervalues: ${err.message}`);\n }\n }\n async keysvalues(): Promise<capKeysValuesResult> {\n try {\n const ret: any[] = [];\n const results: Data[] = await this.mDb.keysvalues();\n for (const result of results) {\n if (result.name != null && result.value != null) {\n const res: any = { key: result.name, value: result.value };\n ret.push(res);\n } else {\n return Promise.reject(`Keysvalues: result.name/value are null`);\n }\n }\n return Promise.resolve({ keysvalues: ret });\n } catch (err: any) {\n return Promise.reject(`Keysvalues: ${err.message}`);\n }\n }\n async deleteStore(options: capOpenStorageOptions): Promise<void> {\n throw new Error(`Method deleteStore not implemented. ${options}`);\n }\n async isTable(\n options: capTableStorageOptions,\n ): Promise<capDataStorageResult> {\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 } catch (err) {\n return Promise.reject(err);\n }\n }\n async tables(): Promise<capTablesResult> {\n try {\n const ret = await this.mDb.tables();\n return Promise.resolve({ tables: ret });\n } catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteTable(options: capTableStorageOptions): Promise<void> {\n throw new Error(`Method deleteTable not implemented. ${options}`);\n }\n async importFromJson(\n options: capStoreImportOptions,\n ): Promise<capDataStorageChanges> {\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\n if (options?.jsonstring) {\n const jsonStrObj: string = 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: JsonStore = 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: boolean = this.mDb.openStore(dbName, tableName);\n if (bRet) {\n // Import the JsonSQLite Object\n if (table?.values) {\n const changes = await this.mDb.importJson(table.values);\n totalChanges += changes;\n }\n } else {\n return Promise.reject(\n `Open store: ${dbName} : table: ${tableName} failed`,\n );\n }\n } catch (err: any) {\n return Promise.reject(`ImportFromJson: ${err.message}`);\n }\n }\n return Promise.resolve({ changes: totalChanges });\n } else {\n return Promise.reject(\"Must provide a json object\");\n }\n }\n async isJsonValid(\n options: capStoreImportOptions,\n ): Promise<capDataStorageResult> {\n const keys = Object.keys(options);\n if (!keys.includes(\"jsonstring\")) {\n return Promise.reject(\"Must provide a json object\");\n }\n if (options?.jsonstring) {\n const jsonStrObj: string = 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 } else {\n return Promise.resolve({ result: true });\n }\n } else {\n return Promise.reject(\"Must provide in options a stringify Json Object\");\n }\n }\n async exportToJson(): Promise<capStoreJson> {\n try {\n const ret: JsonStore = await this.mDb.exportJson();\n return Promise.resolve({ export: ret });\n } catch (err) {\n return Promise.reject(`exportToJson: ${err}`);\n }\n }\n}\n"]}