@op-engineering/op-sqlite 15.0.0 → 15.0.2

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.
@@ -361,7 +361,7 @@ void DBHostObject::create_jsi_functions() {
361
361
 
362
362
  return create_js_rows(rt, status);
363
363
  });
364
-
364
+
365
365
  function_map["executeRawSync"] = HOSTFN("executeRawSync") {
366
366
  const std::string query = args[0].asString(rt).utf8(rt);
367
367
  std::vector<JSVariant> params = count == 2 && args[1].isObject()
package/cpp/bridge.cpp CHANGED
@@ -855,15 +855,12 @@ opsqlite_execute_batch(sqlite3 *db,
855
855
  const auto &command = commands->at(i);
856
856
  // We do not provide a datastructure to receive query data because we
857
857
  // don't need/want to handle this results in a batch execution
858
- try {
859
- auto result = opsqlite_execute(db, command.sql, &command.params);
860
- affectedRows += result.affectedRows;
861
- } catch (std::exception &exc) {
862
- opsqlite_execute(db, "ROLLBACK", nullptr);
863
- throw exc;
864
- }
858
+ // There is also no need to commit/catch this transaction, this is done
859
+ // in the JS code
860
+ auto result = opsqlite_execute(db, command.sql, &command.params);
861
+ affectedRows += result.affectedRows;
865
862
  }
866
- // opsqlite_execute(db, "COMMIT", nullptr);
863
+
867
864
  return BatchResult{
868
865
  .affectedRows = affectedRows,
869
866
  .commands = static_cast<int>(commandCount),
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { open } from "./index.js";
3
+ import { open } from "./functions.js";
4
4
  /**
5
5
  * Creates a new async-storage api compatible instance.
6
6
  * The encryption key is only used when compiled against the SQLCipher version of op-sqlite.
@@ -1 +1 @@
1
- {"version":3,"names":["open","Storage","constructor","options","db","name","executeSync","getItem","key","result","execute","value","rows","Error","getItemSync","setItem","toString","setItemSync","removeItem","removeItemSync","clear","clearSync","getAllKeys","map","row","delete"],"sourceRoot":"../../src","sources":["Storage.ts"],"mappings":";;AAAA,SAASA,IAAI,QAAiB,YAAS;AAOvC;AACA;AACA;AACA;AACA,OAAO,MAAMC,OAAO,CAAC;EAGnBC,WAAWA,CAACC,OAAuB,EAAE;IACnC,IAAI,CAACC,EAAE,GAAGJ,IAAI,CAAC;MAAE,GAAGG,OAAO;MAAEE,IAAI,EAAE;IAA4B,CAAC,CAAC;IACjE,IAAI,CAACD,EAAE,CAACE,WAAW,CAAC,4BAA4B,CAAC;IACjD,IAAI,CAACF,EAAE,CAACE,WAAW,CACjB,qFACF,CAAC;EACH;EAEA,MAAMC,OAAOA,CAACC,GAAW,EAA+B;IACtD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,EAAE,CAACM,OAAO,CAClC,yCAAyC,EACzC,CAACF,GAAG,CACN,CAAC;IAED,IAAIG,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC,EAAED,KAAK;IACjC,IAAI,OAAOA,KAAK,KAAK,WAAW,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7D,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC;IACxD;IACA,OAAOF,KAAK;EACd;EAEAG,WAAWA,CAACN,GAAW,EAAsB;IAC3C,MAAMC,MAAM,GAAG,IAAI,CAACL,EAAE,CAACE,WAAW,CAChC,yCAAyC,EACzC,CAACE,GAAG,CACN,CAAC;IAED,IAAIG,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC,EAAED,KAAK;IACjC,IAAI,OAAOA,KAAK,KAAK,WAAW,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7D,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC;IACxD;IAEA,OAAOF,KAAK;EACd;EAEA,MAAMI,OAAOA,CAACP,GAAW,EAAEG,KAAa,EAAE;IACxC,MAAM,IAAI,CAACP,EAAE,CAACM,OAAO,CACnB,2DAA2D,EAC3D,CAACF,GAAG,EAAEG,KAAK,CAACK,QAAQ,CAAC,CAAC,CACxB,CAAC;EACH;EAEAC,WAAWA,CAACT,GAAW,EAAEG,KAAa,EAAE;IACtC,IAAI,CAACP,EAAE,CAACE,WAAW,CACjB,2DAA2D,EAC3D,CAACE,GAAG,EAAEG,KAAK,CAACK,QAAQ,CAAC,CAAC,CACxB,CAAC;EACH;EAEA,MAAME,UAAUA,CAACV,GAAW,EAAE;IAC5B,MAAM,IAAI,CAACJ,EAAE,CAACM,OAAO,CAAC,mCAAmC,EAAE,CAACF,GAAG,CAAC,CAAC;EACnE;EAEAW,cAAcA,CAACX,GAAW,EAAE;IAC1B,IAAI,CAACJ,EAAE,CAACE,WAAW,CAAC,mCAAmC,EAAE,CAACE,GAAG,CAAC,CAAC;EACjE;EAEA,MAAMY,KAAKA,CAAA,EAAG;IACZ,MAAM,IAAI,CAAChB,EAAE,CAACM,OAAO,CAAC,qBAAqB,CAAC;EAC9C;EAEAW,SAASA,CAAA,EAAG;IACV,IAAI,CAACjB,EAAE,CAACE,WAAW,CAAC,qBAAqB,CAAC;EAC5C;EAEAgB,UAAUA,CAAA,EAAG;IACX,OAAO,IAAI,CAAClB,EAAE,CACXE,WAAW,CAAC,yBAAyB,CAAC,CACtCM,IAAI,CAACW,GAAG,CAAEC,GAAQ,IAAKA,GAAG,CAAChB,GAAG,CAAC;EACpC;;EAEA;AACF;AACA;EACEiB,MAAMA,CAAA,EAAG;IACP,IAAI,CAACrB,EAAE,CAACqB,MAAM,CAAC,CAAC;EAClB;AACF","ignoreList":[]}
1
+ {"version":3,"names":["open","Storage","constructor","options","db","name","executeSync","getItem","key","result","execute","value","rows","Error","getItemSync","setItem","toString","setItemSync","removeItem","removeItemSync","clear","clearSync","getAllKeys","map","row","delete"],"sourceRoot":"../../src","sources":["Storage.ts"],"mappings":";;AACA,SAASA,IAAI,QAAQ,gBAAa;AAOlC;AACA;AACA;AACA;AACA,OAAO,MAAMC,OAAO,CAAC;EAGnBC,WAAWA,CAACC,OAAuB,EAAE;IACnC,IAAI,CAACC,EAAE,GAAGJ,IAAI,CAAC;MAAE,GAAGG,OAAO;MAAEE,IAAI,EAAE;IAA4B,CAAC,CAAC;IACjE,IAAI,CAACD,EAAE,CAACE,WAAW,CAAC,4BAA4B,CAAC;IACjD,IAAI,CAACF,EAAE,CAACE,WAAW,CACjB,qFACF,CAAC;EACH;EAEA,MAAMC,OAAOA,CAACC,GAAW,EAA+B;IACtD,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACL,EAAE,CAACM,OAAO,CAClC,yCAAyC,EACzC,CAACF,GAAG,CACN,CAAC;IAED,IAAIG,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC,EAAED,KAAK;IACjC,IAAI,OAAOA,KAAK,KAAK,WAAW,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7D,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC;IACxD;IACA,OAAOF,KAAK;EACd;EAEAG,WAAWA,CAACN,GAAW,EAAsB;IAC3C,MAAMC,MAAM,GAAG,IAAI,CAACL,EAAE,CAACE,WAAW,CAChC,yCAAyC,EACzC,CAACE,GAAG,CACN,CAAC;IAED,IAAIG,KAAK,GAAGF,MAAM,CAACG,IAAI,CAAC,CAAC,CAAC,EAAED,KAAK;IACjC,IAAI,OAAOA,KAAK,KAAK,WAAW,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7D,MAAM,IAAIE,KAAK,CAAC,qCAAqC,CAAC;IACxD;IAEA,OAAOF,KAAK;EACd;EAEA,MAAMI,OAAOA,CAACP,GAAW,EAAEG,KAAa,EAAE;IACxC,MAAM,IAAI,CAACP,EAAE,CAACM,OAAO,CACnB,2DAA2D,EAC3D,CAACF,GAAG,EAAEG,KAAK,CAACK,QAAQ,CAAC,CAAC,CACxB,CAAC;EACH;EAEAC,WAAWA,CAACT,GAAW,EAAEG,KAAa,EAAE;IACtC,IAAI,CAACP,EAAE,CAACE,WAAW,CACjB,2DAA2D,EAC3D,CAACE,GAAG,EAAEG,KAAK,CAACK,QAAQ,CAAC,CAAC,CACxB,CAAC;EACH;EAEA,MAAME,UAAUA,CAACV,GAAW,EAAE;IAC5B,MAAM,IAAI,CAACJ,EAAE,CAACM,OAAO,CAAC,mCAAmC,EAAE,CAACF,GAAG,CAAC,CAAC;EACnE;EAEAW,cAAcA,CAACX,GAAW,EAAE;IAC1B,IAAI,CAACJ,EAAE,CAACE,WAAW,CAAC,mCAAmC,EAAE,CAACE,GAAG,CAAC,CAAC;EACjE;EAEA,MAAMY,KAAKA,CAAA,EAAG;IACZ,MAAM,IAAI,CAAChB,EAAE,CAACM,OAAO,CAAC,qBAAqB,CAAC;EAC9C;EAEAW,SAASA,CAAA,EAAG;IACV,IAAI,CAACjB,EAAE,CAACE,WAAW,CAAC,qBAAqB,CAAC;EAC5C;EAEAgB,UAAUA,CAAA,EAAG;IACX,OAAO,IAAI,CAAClB,EAAE,CACXE,WAAW,CAAC,yBAAyB,CAAC,CACtCM,IAAI,CAACW,GAAG,CAAEC,GAAQ,IAAKA,GAAG,CAAChB,GAAG,CAAC;EACpC;;EAEA;AACF;AACA;EACEiB,MAAMA,CAAA,EAAG;IACP,IAAI,CAACrB,EAAE,CAACqB,MAAM,CAAC,CAAC;EAClB;AACF","ignoreList":[]}
@@ -0,0 +1,327 @@
1
+ "use strict";
2
+
3
+ import { NativeModules, Platform } from 'react-native';
4
+ if (global.__OPSQLiteProxy == null) {
5
+ if (NativeModules.OPSQLite == null) {
6
+ throw new Error('Base module not found. Did you do a pod install/clear the gradle cache?');
7
+ }
8
+
9
+ // Call the synchronous blocking install() function
10
+ const installed = NativeModules.OPSQLite.install();
11
+ if (!installed) {
12
+ throw new Error(`Failed to install op-sqlite: The native OPSQLite Module could not be installed! Looks like something went wrong when installing JSI bindings, check the native logs for more info`);
13
+ }
14
+
15
+ // Check again if the constructor now exists. If not, throw an error.
16
+ if (global.__OPSQLiteProxy == null) {
17
+ throw new Error('OPSqlite native object is not available. Something is wrong. Check the native logs for more information.');
18
+ }
19
+ }
20
+ const proxy = global.__OPSQLiteProxy;
21
+ export const OPSQLite = proxy;
22
+ function enhanceDB(db, options) {
23
+ const lock = {
24
+ queue: [],
25
+ inProgress: false
26
+ };
27
+ const startNextTransaction = () => {
28
+ if (lock.inProgress) {
29
+ // Transaction is already in process bail out
30
+ return;
31
+ }
32
+ if (lock.queue.length) {
33
+ lock.inProgress = true;
34
+ const tx = lock.queue.shift();
35
+ if (!tx) {
36
+ throw new Error('Could not get a operation on database');
37
+ }
38
+ setImmediate(() => {
39
+ tx.start();
40
+ });
41
+ }
42
+ };
43
+ function sanitizeArrayBuffersInArray(params) {
44
+ if (!params) {
45
+ return params;
46
+ }
47
+ return params.map(p => {
48
+ if (Array.isArray(p)) {
49
+ return sanitizeArrayBuffersInArray(p);
50
+ }
51
+ if (ArrayBuffer.isView(p)) {
52
+ return p.buffer;
53
+ }
54
+ return p;
55
+ });
56
+ }
57
+
58
+ // spreading the object does not work with HostObjects (db)
59
+ // We need to manually assign the fields
60
+ let enhancedDb = {
61
+ delete: db.delete,
62
+ attach: db.attach,
63
+ detach: db.detach,
64
+ executeBatch: async commands => {
65
+ // Do normal for loop and replace in place for performance
66
+ for (let i = 0; i < commands.length; i++) {
67
+ // [1] is the params arg
68
+ if (commands[i][1]) {
69
+ commands[i][1] = sanitizeArrayBuffersInArray(commands[i][1]);
70
+ }
71
+ }
72
+ async function run() {
73
+ try {
74
+ enhancedDb.executeSync('BEGIN TRANSACTION;');
75
+ let res = await db.executeBatch(commands);
76
+ enhancedDb.executeSync('COMMIT;');
77
+ await db.flushPendingReactiveQueries();
78
+ return res;
79
+ } catch (executionError) {
80
+ try {
81
+ enhancedDb.executeSync('ROLLBACK;');
82
+ } catch (rollbackError) {
83
+ throw rollbackError;
84
+ }
85
+ throw executionError;
86
+ } finally {
87
+ lock.inProgress = false;
88
+ startNextTransaction();
89
+ }
90
+ }
91
+ return await new Promise((resolve, reject) => {
92
+ const tx = {
93
+ start: () => {
94
+ run().then(resolve).catch(reject);
95
+ }
96
+ };
97
+ lock.queue.push(tx);
98
+ startNextTransaction();
99
+ });
100
+ },
101
+ loadFile: db.loadFile,
102
+ updateHook: db.updateHook,
103
+ commitHook: db.commitHook,
104
+ rollbackHook: db.rollbackHook,
105
+ loadExtension: db.loadExtension,
106
+ getDbPath: db.getDbPath,
107
+ reactiveExecute: db.reactiveExecute,
108
+ sync: db.sync,
109
+ close: db.close,
110
+ executeWithHostObjects: async (query, params) => {
111
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
112
+ return sanitizedParams ? await db.executeWithHostObjects(query, sanitizedParams) : await db.executeWithHostObjects(query);
113
+ },
114
+ executeRaw: async (query, params) => {
115
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
116
+ return db.executeRaw(query, sanitizedParams);
117
+ },
118
+ executeRawSync: (query, params) => {
119
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
120
+ return db.executeRawSync(query, sanitizedParams);
121
+ },
122
+ // Wrapper for executeRaw, drizzleORM uses this function
123
+ // at some point I changed the API but they did not pin their dependency to a specific version
124
+ // so re-inserting this so it starts working again
125
+ executeRawAsync: async (query, params) => {
126
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
127
+ return db.executeRaw(query, sanitizedParams);
128
+ },
129
+ executeSync: (query, params) => {
130
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
131
+ let intermediateResult = sanitizedParams ? db.executeSync(query, sanitizedParams) : db.executeSync(query);
132
+ let rows = [];
133
+ for (let i = 0; i < (intermediateResult.rawRows?.length ?? 0); i++) {
134
+ let row = {};
135
+ let rawRow = intermediateResult.rawRows[i];
136
+ for (let j = 0; j < intermediateResult.columnNames.length; j++) {
137
+ let columnName = intermediateResult.columnNames[j];
138
+ let value = rawRow[j];
139
+ row[columnName] = value;
140
+ }
141
+ rows.push(row);
142
+ }
143
+ let res = {
144
+ ...intermediateResult,
145
+ rows
146
+ };
147
+ delete res.rawRows;
148
+ return res;
149
+ },
150
+ executeAsync: async (query, params) => {
151
+ return db.execute(query, params);
152
+ },
153
+ execute: async (query, params) => {
154
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
155
+ let intermediateResult = await db.execute(query, sanitizedParams);
156
+ let rows = [];
157
+ for (let i = 0; i < (intermediateResult.rawRows?.length ?? 0); i++) {
158
+ let row = {};
159
+ let rawRow = intermediateResult.rawRows[i];
160
+ for (let j = 0; j < intermediateResult.columnNames.length; j++) {
161
+ let columnName = intermediateResult.columnNames[j];
162
+ let value = rawRow[j];
163
+ row[columnName] = value;
164
+ }
165
+ rows.push(row);
166
+ }
167
+ let res = {
168
+ ...intermediateResult,
169
+ rows
170
+ };
171
+ delete res.rawRows;
172
+ return res;
173
+ },
174
+ prepareStatement: query => {
175
+ const stmt = db.prepareStatement(query);
176
+ return {
177
+ bindSync: params => {
178
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
179
+ stmt.bindSync(sanitizedParams);
180
+ },
181
+ bind: async params => {
182
+ const sanitizedParams = sanitizeArrayBuffersInArray(params);
183
+ await stmt.bind(sanitizedParams);
184
+ },
185
+ execute: stmt.execute
186
+ };
187
+ },
188
+ transaction: async fn => {
189
+ let isFinalized = false;
190
+ const execute = async (query, params) => {
191
+ if (isFinalized) {
192
+ throw Error(`OP-Sqlite Error: Database: ${options.name || options.url}. Cannot execute query on finalized transaction`);
193
+ }
194
+ return await enhancedDb.execute(query, params);
195
+ };
196
+ const commit = async () => {
197
+ if (isFinalized) {
198
+ throw Error(`OP-Sqlite Error: Database: ${options.name || options.url}. Cannot execute query on finalized transaction`);
199
+ }
200
+ const result = enhancedDb.executeSync('COMMIT;');
201
+ await db.flushPendingReactiveQueries();
202
+ isFinalized = true;
203
+ return result;
204
+ };
205
+ const rollback = () => {
206
+ if (isFinalized) {
207
+ throw Error(`OP-Sqlite Error: Database: ${options.name || options.url}. Cannot execute query on finalized transaction`);
208
+ }
209
+ const result = enhancedDb.executeSync('ROLLBACK;');
210
+ isFinalized = true;
211
+ return result;
212
+ };
213
+ async function run() {
214
+ try {
215
+ enhancedDb.executeSync('BEGIN TRANSACTION;');
216
+ await fn({
217
+ commit,
218
+ execute,
219
+ rollback
220
+ });
221
+ if (!isFinalized) {
222
+ commit();
223
+ }
224
+ } catch (executionError) {
225
+ if (!isFinalized) {
226
+ try {
227
+ rollback();
228
+ } catch (rollbackError) {
229
+ throw rollbackError;
230
+ }
231
+ }
232
+ throw executionError;
233
+ } finally {
234
+ lock.inProgress = false;
235
+ isFinalized = false;
236
+ startNextTransaction();
237
+ }
238
+ }
239
+ return await new Promise((resolve, reject) => {
240
+ const tx = {
241
+ start: () => {
242
+ run().then(resolve).catch(reject);
243
+ }
244
+ };
245
+ lock.queue.push(tx);
246
+ startNextTransaction();
247
+ });
248
+ }
249
+ };
250
+ return enhancedDb;
251
+ }
252
+
253
+ /**
254
+ * Open a replicating connection via libsql to a turso db
255
+ * libsql needs to be enabled on your package.json
256
+ */
257
+ export const openSync = params => {
258
+ if (!isLibsql()) {
259
+ throw new Error('This function is only available for libsql');
260
+ }
261
+ const db = OPSQLite.openSync(params);
262
+ const enhancedDb = enhanceDB(db, params);
263
+ return enhancedDb;
264
+ };
265
+
266
+ /**
267
+ * Open a remote connection via libsql to a turso db
268
+ * libsql needs to be enabled on your package.json
269
+ */
270
+ export const openRemote = params => {
271
+ if (!isLibsql()) {
272
+ throw new Error('This function is only available for libsql');
273
+ }
274
+ const db = OPSQLite.openRemote(params);
275
+ const enhancedDb = enhanceDB(db, params);
276
+ return enhancedDb;
277
+ };
278
+
279
+ /**
280
+ * Open a connection to a local sqlite or sqlcipher database
281
+ * If you want libsql remote or sync connections, use openSync or openRemote
282
+ */
283
+ export const open = params => {
284
+ if (params.location?.startsWith('file://')) {
285
+ console.warn("[op-sqlite] You are passing a path with 'file://' prefix, it's automatically removed");
286
+ params.location = params.location.substring(7);
287
+ }
288
+ const db = OPSQLite.open(params);
289
+ const enhancedDb = enhanceDB(db, params);
290
+ return enhancedDb;
291
+ };
292
+
293
+ /**
294
+ * Moves the database from the assets folder to the default path (check the docs) or to a custom path
295
+ * It DOES NOT OVERWRITE the database if it already exists in the destination path
296
+ * if you want to overwrite the database, you need to pass the overwrite flag as true
297
+ * @param args object with the parameters for the operaiton
298
+ * @returns promise, rejects if failed to move the database, resolves if the operation was successful
299
+ */
300
+ export const moveAssetsDatabase = async args => {
301
+ return NativeModules.OPSQLite.moveAssetsDatabase(args);
302
+ };
303
+
304
+ /**
305
+ * Used to load a dylib file that contains a sqlite 3 extension/plugin
306
+ * It returns the raw path to the actual file which then needs to be passed to the loadExtension function
307
+ * Check the docs for more information
308
+ * @param bundle the iOS bundle identifier of the .framework
309
+ * @param name the file name of the dylib file
310
+ * @returns
311
+ */
312
+ export const getDylibPath = (bundle, name) => {
313
+ return NativeModules.OPSQLite.getDylibPath(bundle, name);
314
+ };
315
+ export const isSQLCipher = () => {
316
+ return OPSQLite.isSQLCipher();
317
+ };
318
+ export const isLibsql = () => {
319
+ return OPSQLite.isLibsql();
320
+ };
321
+ export const isIOSEmbeeded = () => {
322
+ if (Platform.OS !== 'ios') {
323
+ return false;
324
+ }
325
+ return OPSQLite.isIOSEmbedded();
326
+ };
327
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","Platform","global","__OPSQLiteProxy","OPSQLite","Error","installed","install","proxy","enhanceDB","db","options","lock","queue","inProgress","startNextTransaction","length","tx","shift","setImmediate","start","sanitizeArrayBuffersInArray","params","map","p","Array","isArray","ArrayBuffer","isView","buffer","enhancedDb","delete","attach","detach","executeBatch","commands","i","run","executeSync","res","flushPendingReactiveQueries","executionError","rollbackError","Promise","resolve","reject","then","catch","push","loadFile","updateHook","commitHook","rollbackHook","loadExtension","getDbPath","reactiveExecute","sync","close","executeWithHostObjects","query","sanitizedParams","executeRaw","executeRawSync","executeRawAsync","intermediateResult","rows","rawRows","row","rawRow","j","columnNames","columnName","value","executeAsync","execute","prepareStatement","stmt","bindSync","bind","transaction","fn","isFinalized","name","url","commit","result","rollback","openSync","isLibsql","openRemote","open","location","startsWith","console","warn","substring","moveAssetsDatabase","args","getDylibPath","bundle","isSQLCipher","isIOSEmbeeded","OS","isIOSEmbedded"],"sourceRoot":"../../src","sources":["functions.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAkBtD,IAAIC,MAAM,CAACC,eAAe,IAAI,IAAI,EAAE;EAClC,IAAIH,aAAa,CAACI,QAAQ,IAAI,IAAI,EAAE;IAClC,MAAM,IAAIC,KAAK,CACb,yEACF,CAAC;EACH;;EAEA;EACA,MAAMC,SAAS,GAAGN,aAAa,CAACI,QAAQ,CAACG,OAAO,CAAC,CAAC;EAClD,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAID,KAAK,CACb,mLACF,CAAC;EACH;;EAEA;EACA,IAAIH,MAAM,CAACC,eAAe,IAAI,IAAI,EAAE;IAClC,MAAM,IAAIE,KAAK,CACb,0GACF,CAAC;EACH;AACF;AAEA,MAAMG,KAAK,GAAGN,MAAM,CAACC,eAAe;AACpC,OAAO,MAAMC,QAAQ,GAAGI,KAAsB;AAE9C,SAASC,SAASA,CAACC,EAAe,EAAEC,OAAiB,EAAM;EACzD,MAAMC,IAAI,GAAG;IACXC,KAAK,EAAE,EAA2B;IAClCC,UAAU,EAAE;EACd,CAAC;EAED,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;IACjC,IAAIH,IAAI,CAACE,UAAU,EAAE;MACnB;MACA;IACF;IAEA,IAAIF,IAAI,CAACC,KAAK,CAACG,MAAM,EAAE;MACrBJ,IAAI,CAACE,UAAU,GAAG,IAAI;MACtB,MAAMG,EAAE,GAAGL,IAAI,CAACC,KAAK,CAACK,KAAK,CAAC,CAAC;MAE7B,IAAI,CAACD,EAAE,EAAE;QACP,MAAM,IAAIZ,KAAK,CAAC,uCAAuC,CAAC;MAC1D;MAEAc,YAAY,CAAC,MAAM;QACjBF,EAAE,CAACG,KAAK,CAAC,CAAC;MACZ,CAAC,CAAC;IACJ;EACF,CAAC;EAED,SAASC,2BAA2BA,CAClCC,MAAwB,EACL;IACnB,IAAI,CAACA,MAAM,EAAE;MACX,OAAOA,MAAM;IACf;IAEA,OAAOA,MAAM,CAACC,GAAG,CAAEC,CAAC,IAAK;MACvB,IAAIC,KAAK,CAACC,OAAO,CAACF,CAAC,CAAC,EAAE;QACpB,OAAOH,2BAA2B,CAACG,CAAC,CAAC;MACvC;MAEA,IAAIG,WAAW,CAACC,MAAM,CAACJ,CAAC,CAAC,EAAE;QACzB,OAAOA,CAAC,CAACK,MAAM;MACjB;MAEA,OAAOL,CAAC;IACV,CAAC,CAAC;EACJ;;EAEA;EACA;EACA,IAAIM,UAAU,GAAG;IACfC,MAAM,EAAErB,EAAE,CAACqB,MAAM;IACjBC,MAAM,EAAEtB,EAAE,CAACsB,MAAM;IACjBC,MAAM,EAAEvB,EAAE,CAACuB,MAAM;IACjBC,YAAY,EAAE,MACZC,QAAyB,IACK;MAC9B;MACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,QAAQ,CAACnB,MAAM,EAAEoB,CAAC,EAAE,EAAE;QACxC;QACA,IAAID,QAAQ,CAACC,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE;UACnBD,QAAQ,CAACC,CAAC,CAAC,CAAE,CAAC,CAAC,GAAGf,2BAA2B,CAACc,QAAQ,CAACC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAQ;QACvE;MACF;MAEA,eAAeC,GAAGA,CAAA,EAAG;QACnB,IAAI;UACFP,UAAU,CAACQ,WAAW,CAAC,oBAAoB,CAAC;UAE5C,IAAIC,GAAG,GAAG,MAAM7B,EAAE,CAACwB,YAAY,CAACC,QAAiB,CAAC;UAElDL,UAAU,CAACQ,WAAW,CAAC,SAAS,CAAC;UAEjC,MAAM5B,EAAE,CAAC8B,2BAA2B,CAAC,CAAC;UAEtC,OAAOD,GAAG;QACZ,CAAC,CAAC,OAAOE,cAAc,EAAE;UACvB,IAAI;YACFX,UAAU,CAACQ,WAAW,CAAC,WAAW,CAAC;UACrC,CAAC,CAAC,OAAOI,aAAa,EAAE;YACtB,MAAMA,aAAa;UACrB;UAEA,MAAMD,cAAc;QACtB,CAAC,SAAS;UACR7B,IAAI,CAACE,UAAU,GAAG,KAAK;UACvBC,oBAAoB,CAAC,CAAC;QACxB;MACF;MAEA,OAAO,MAAM,IAAI4B,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;QAC5C,MAAM5B,EAAuB,GAAG;UAC9BG,KAAK,EAAEA,CAAA,KAAM;YACXiB,GAAG,CAAC,CAAC,CAACS,IAAI,CAACF,OAAO,CAAC,CAACG,KAAK,CAACF,MAAM,CAAC;UACnC;QACF,CAAC;QAEDjC,IAAI,CAACC,KAAK,CAACmC,IAAI,CAAC/B,EAAE,CAAC;QACnBF,oBAAoB,CAAC,CAAC;MACxB,CAAC,CAAC;IACJ,CAAC;IACDkC,QAAQ,EAAEvC,EAAE,CAACuC,QAAQ;IACrBC,UAAU,EAAExC,EAAE,CAACwC,UAAU;IACzBC,UAAU,EAAEzC,EAAE,CAACyC,UAAU;IACzBC,YAAY,EAAE1C,EAAE,CAAC0C,YAAY;IAC7BC,aAAa,EAAE3C,EAAE,CAAC2C,aAAa;IAC/BC,SAAS,EAAE5C,EAAE,CAAC4C,SAAS;IACvBC,eAAe,EAAE7C,EAAE,CAAC6C,eAAe;IACnCC,IAAI,EAAE9C,EAAE,CAAC8C,IAAI;IACbC,KAAK,EAAE/C,EAAE,CAAC+C,KAAK;IACfC,sBAAsB,EAAE,MAAAA,CACtBC,KAAa,EACbrC,MAAiB,KACQ;MACzB,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;MAE3D,OAAOsC,eAAe,GAClB,MAAMlD,EAAE,CAACgD,sBAAsB,CAACC,KAAK,EAAEC,eAA2B,CAAC,GACnE,MAAMlD,EAAE,CAACgD,sBAAsB,CAACC,KAAK,CAAC;IAC5C,CAAC;IACDE,UAAU,EAAE,MAAAA,CAAOF,KAAa,EAAErC,MAAiB,KAAK;MACtD,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;MAE3D,OAAOZ,EAAE,CAACmD,UAAU,CAACF,KAAK,EAAEC,eAA2B,CAAC;IAC1D,CAAC;IACDE,cAAc,EAAEA,CAACH,KAAa,EAAErC,MAAiB,KAAK;MACpD,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;MAC3D,OAAOZ,EAAE,CAACoD,cAAc,CAACH,KAAK,EAAEC,eAA2B,CAAC;IAC9D,CAAC;IACD;IACA;IACA;IACAG,eAAe,EAAE,MAAAA,CAAOJ,KAAa,EAAErC,MAAiB,KAAK;MAC3D,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;MAE3D,OAAOZ,EAAE,CAACmD,UAAU,CAACF,KAAK,EAAEC,eAA2B,CAAC;IAC1D,CAAC;IACDtB,WAAW,EAAEA,CAACqB,KAAa,EAAErC,MAAiB,KAAkB;MAC9D,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;MAE3D,IAAI0C,kBAAkB,GAAGJ,eAAe,GACpClD,EAAE,CAAC4B,WAAW,CAACqB,KAAK,EAAEC,eAA2B,CAAC,GAClDlD,EAAE,CAAC4B,WAAW,CAACqB,KAAK,CAAC;MAEzB,IAAIM,IAA8B,GAAG,EAAE;MACvC,KAAK,IAAI7B,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI4B,kBAAkB,CAACE,OAAO,EAAElD,MAAM,IAAI,CAAC,CAAC,EAAEoB,CAAC,EAAE,EAAE;QAClE,IAAI+B,GAA2B,GAAG,CAAC,CAAC;QACpC,IAAIC,MAAM,GAAGJ,kBAAkB,CAACE,OAAO,CAAE9B,CAAC,CAAE;QAC5C,KAAK,IAAIiC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,kBAAkB,CAACM,WAAW,CAAEtD,MAAM,EAAEqD,CAAC,EAAE,EAAE;UAC/D,IAAIE,UAAU,GAAGP,kBAAkB,CAACM,WAAW,CAAED,CAAC,CAAE;UACpD,IAAIG,KAAK,GAAGJ,MAAM,CAACC,CAAC,CAAE;UAEtBF,GAAG,CAACI,UAAU,CAAC,GAAGC,KAAK;QACzB;QACAP,IAAI,CAACjB,IAAI,CAACmB,GAAG,CAAC;MAChB;MAEA,IAAI5B,GAAG,GAAG;QACR,GAAGyB,kBAAkB;QACrBC;MACF,CAAC;MAED,OAAO1B,GAAG,CAAC2B,OAAO;MAElB,OAAO3B,GAAG;IACZ,CAAC;IACDkC,YAAY,EAAE,MAAAA,CACZd,KAAa,EACbrC,MAA6B,KACJ;MACzB,OAAOZ,EAAE,CAACgE,OAAO,CAACf,KAAK,EAAErC,MAAM,CAAC;IAClC,CAAC;IACDoD,OAAO,EAAE,MAAAA,CACPf,KAAa,EACbrC,MAA6B,KACJ;MACzB,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;MAE3D,IAAI0C,kBAAkB,GAAG,MAAMtD,EAAE,CAACgE,OAAO,CACvCf,KAAK,EACLC,eACF,CAAC;MAED,IAAIK,IAA8B,GAAG,EAAE;MACvC,KAAK,IAAI7B,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI4B,kBAAkB,CAACE,OAAO,EAAElD,MAAM,IAAI,CAAC,CAAC,EAAEoB,CAAC,EAAE,EAAE;QAClE,IAAI+B,GAA2B,GAAG,CAAC,CAAC;QACpC,IAAIC,MAAM,GAAGJ,kBAAkB,CAACE,OAAO,CAAE9B,CAAC,CAAE;QAC5C,KAAK,IAAIiC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,kBAAkB,CAACM,WAAW,CAAEtD,MAAM,EAAEqD,CAAC,EAAE,EAAE;UAC/D,IAAIE,UAAU,GAAGP,kBAAkB,CAACM,WAAW,CAAED,CAAC,CAAE;UACpD,IAAIG,KAAK,GAAGJ,MAAM,CAACC,CAAC,CAAE;UAEtBF,GAAG,CAACI,UAAU,CAAC,GAAGC,KAAK;QACzB;QACAP,IAAI,CAACjB,IAAI,CAACmB,GAAG,CAAC;MAChB;MAEA,IAAI5B,GAAG,GAAG;QACR,GAAGyB,kBAAkB;QACrBC;MACF,CAAC;MAED,OAAO1B,GAAG,CAAC2B,OAAO;MAElB,OAAO3B,GAAG;IACZ,CAAC;IACDoC,gBAAgB,EAAGhB,KAAa,IAAK;MACnC,MAAMiB,IAAI,GAAGlE,EAAE,CAACiE,gBAAgB,CAAChB,KAAK,CAAC;MAEvC,OAAO;QACLkB,QAAQ,EAAGvD,MAAgB,IAAK;UAC9B,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;UAE3DsD,IAAI,CAACC,QAAQ,CAACjB,eAAgB,CAAC;QACjC,CAAC;QACDkB,IAAI,EAAE,MAAOxD,MAAgB,IAAK;UAChC,MAAMsC,eAAe,GAAGvC,2BAA2B,CAACC,MAAM,CAAC;UAE3D,MAAMsD,IAAI,CAACE,IAAI,CAAClB,eAAgB,CAAC;QACnC,CAAC;QACDc,OAAO,EAAEE,IAAI,CAACF;MAChB,CAAC;IACH,CAAC;IACDK,WAAW,EAAE,MACXC,EAAsC,IACpB;MAClB,IAAIC,WAAW,GAAG,KAAK;MAEvB,MAAMP,OAAO,GAAG,MAAAA,CAAOf,KAAa,EAAErC,MAAiB,KAAK;QAC1D,IAAI2D,WAAW,EAAE;UACf,MAAM5E,KAAK,CACT,8BACEM,OAAO,CAACuE,IAAI,IAAIvE,OAAO,CAACwE,GAAG,iDAE/B,CAAC;QACH;QACA,OAAO,MAAMrD,UAAU,CAAC4C,OAAO,CAACf,KAAK,EAAErC,MAAM,CAAC;MAChD,CAAC;MAED,MAAM8D,MAAM,GAAG,MAAAA,CAAA,KAAkC;QAC/C,IAAIH,WAAW,EAAE;UACf,MAAM5E,KAAK,CACT,8BACEM,OAAO,CAACuE,IAAI,IAAIvE,OAAO,CAACwE,GAAG,iDAE/B,CAAC;QACH;QACA,MAAME,MAAM,GAAGvD,UAAU,CAACQ,WAAW,CAAC,SAAS,CAAC;QAEhD,MAAM5B,EAAE,CAAC8B,2BAA2B,CAAC,CAAC;QAEtCyC,WAAW,GAAG,IAAI;QAClB,OAAOI,MAAM;MACf,CAAC;MAED,MAAMC,QAAQ,GAAGA,CAAA,KAAmB;QAClC,IAAIL,WAAW,EAAE;UACf,MAAM5E,KAAK,CACT,8BACEM,OAAO,CAACuE,IAAI,IAAIvE,OAAO,CAACwE,GAAG,iDAE/B,CAAC;QACH;QACA,MAAME,MAAM,GAAGvD,UAAU,CAACQ,WAAW,CAAC,WAAW,CAAC;QAClD2C,WAAW,GAAG,IAAI;QAClB,OAAOI,MAAM;MACf,CAAC;MAED,eAAehD,GAAGA,CAAA,EAAG;QACnB,IAAI;UACFP,UAAU,CAACQ,WAAW,CAAC,oBAAoB,CAAC;UAE5C,MAAM0C,EAAE,CAAC;YACPI,MAAM;YACNV,OAAO;YACPY;UACF,CAAC,CAAC;UAEF,IAAI,CAACL,WAAW,EAAE;YAChBG,MAAM,CAAC,CAAC;UACV;QACF,CAAC,CAAC,OAAO3C,cAAc,EAAE;UACvB,IAAI,CAACwC,WAAW,EAAE;YAChB,IAAI;cACFK,QAAQ,CAAC,CAAC;YACZ,CAAC,CAAC,OAAO5C,aAAa,EAAE;cACtB,MAAMA,aAAa;YACrB;UACF;UAEA,MAAMD,cAAc;QACtB,CAAC,SAAS;UACR7B,IAAI,CAACE,UAAU,GAAG,KAAK;UACvBmE,WAAW,GAAG,KAAK;UACnBlE,oBAAoB,CAAC,CAAC;QACxB;MACF;MAEA,OAAO,MAAM,IAAI4B,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;QAC5C,MAAM5B,EAAuB,GAAG;UAC9BG,KAAK,EAAEA,CAAA,KAAM;YACXiB,GAAG,CAAC,CAAC,CAACS,IAAI,CAACF,OAAO,CAAC,CAACG,KAAK,CAACF,MAAM,CAAC;UACnC;QACF,CAAC;QAEDjC,IAAI,CAACC,KAAK,CAACmC,IAAI,CAAC/B,EAAE,CAAC;QACnBF,oBAAoB,CAAC,CAAC;MACxB,CAAC,CAAC;IACJ;EACF,CAAC;EAED,OAAOe,UAAU;AACnB;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMyD,QAAQ,GAAIjE,MASxB,IAAS;EACR,IAAI,CAACkE,QAAQ,CAAC,CAAC,EAAE;IACf,MAAM,IAAInF,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,MAAMK,EAAE,GAAGN,QAAQ,CAACmF,QAAQ,CAACjE,MAAM,CAAC;EACpC,MAAMQ,UAAU,GAAGrB,SAAS,CAACC,EAAE,EAAEY,MAAM,CAAC;EAExC,OAAOQ,UAAU;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAM2D,UAAU,GAAInE,MAA0C,IAAS;EAC5E,IAAI,CAACkE,QAAQ,CAAC,CAAC,EAAE;IACf,MAAM,IAAInF,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,MAAMK,EAAE,GAAGN,QAAQ,CAACqF,UAAU,CAACnE,MAAM,CAAC;EACtC,MAAMQ,UAAU,GAAGrB,SAAS,CAACC,EAAE,EAAEY,MAAM,CAAC;EAExC,OAAOQ,UAAU;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAM4D,IAAI,GAAIpE,MAIpB,IAAS;EACR,IAAIA,MAAM,CAACqE,QAAQ,EAAEC,UAAU,CAAC,SAAS,CAAC,EAAE;IAC1CC,OAAO,CAACC,IAAI,CACV,sFACF,CAAC;IACDxE,MAAM,CAACqE,QAAQ,GAAGrE,MAAM,CAACqE,QAAQ,CAACI,SAAS,CAAC,CAAC,CAAC;EAChD;EAEA,MAAMrF,EAAE,GAAGN,QAAQ,CAACsF,IAAI,CAACpE,MAAM,CAAC;EAChC,MAAMQ,UAAU,GAAGrB,SAAS,CAACC,EAAE,EAAEY,MAAM,CAAC;EAExC,OAAOQ,UAAU;AACnB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMkE,kBAAkB,GAAG,MAAOC,IAIxC,IAAuB;EACtB,OAAOjG,aAAa,CAACI,QAAQ,CAAC4F,kBAAkB,CAACC,IAAI,CAAC;AACxD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAACC,MAAc,EAAEjB,IAAY,KAAa;EACpE,OAAOlF,aAAa,CAACI,QAAQ,CAAC8F,YAAY,CAACC,MAAM,EAAEjB,IAAI,CAAC;AAC1D,CAAC;AAED,OAAO,MAAMkB,WAAW,GAAGA,CAAA,KAAe;EACxC,OAAOhG,QAAQ,CAACgG,WAAW,CAAC,CAAC;AAC/B,CAAC;AAED,OAAO,MAAMZ,QAAQ,GAAGA,CAAA,KAAe;EACrC,OAAOpF,QAAQ,CAACoF,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,OAAO,MAAMa,aAAa,GAAGA,CAAA,KAAe;EAC1C,IAAIpG,QAAQ,CAACqG,EAAE,KAAK,KAAK,EAAE;IACzB,OAAO,KAAK;EACd;EAEA,OAAOlG,QAAQ,CAACmG,aAAa,CAAC,CAAC;AACjC,CAAC","ignoreList":[]}