@capacitor-community/sqlite 4.1.0-4 → 4.1.0-7

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.
@@ -73,12 +73,10 @@ export class SQLiteConnection {
73
73
  return Promise.reject(err);
74
74
  }
75
75
  }
76
- async addUpgradeStatement(database, fromVersion, toVersion, statement, set) {
76
+ async addUpgradeStatement(database, toVersion, statements) {
77
77
  const upgrade = {
78
- fromVersion,
79
78
  toVersion,
80
- statement,
81
- set: set ? set : [],
79
+ statements,
82
80
  };
83
81
  try {
84
82
  if (database.endsWith('.db'))
@@ -93,7 +91,7 @@ export class SQLiteConnection {
93
91
  return Promise.reject(err);
94
92
  }
95
93
  }
96
- async createConnection(database, encrypted, mode, version) {
94
+ async createConnection(database, encrypted, mode, version, readonly) {
97
95
  try {
98
96
  if (database.endsWith('.db'))
99
97
  database = database.slice(0, -3);
@@ -102,39 +100,44 @@ export class SQLiteConnection {
102
100
  encrypted,
103
101
  mode,
104
102
  version,
103
+ readonly,
105
104
  });
106
- const conn = new SQLiteDBConnection(database, this.sqlite);
107
- this._connectionDict.set(database, conn);
105
+ const conn = new SQLiteDBConnection(database, readonly, this.sqlite);
106
+ const connName = readonly ? `RO_${database}` : `RW_${database}`;
107
+ this._connectionDict.set(connName, conn);
108
108
  return Promise.resolve(conn);
109
109
  }
110
110
  catch (err) {
111
111
  return Promise.reject(err);
112
112
  }
113
113
  }
114
- async closeConnection(database) {
114
+ async closeConnection(database, readonly) {
115
115
  try {
116
116
  if (database.endsWith('.db'))
117
117
  database = database.slice(0, -3);
118
- await this.sqlite.closeConnection({ database });
119
- this._connectionDict.delete(database);
118
+ await this.sqlite.closeConnection({ database, readonly });
119
+ const connName = readonly ? `RO_${database}` : `RW_${database}`;
120
+ this._connectionDict.delete(connName);
120
121
  return Promise.resolve();
121
122
  }
122
123
  catch (err) {
123
124
  return Promise.reject(err);
124
125
  }
125
126
  }
126
- async isConnection(database) {
127
+ async isConnection(database, readonly) {
127
128
  const res = {};
128
129
  if (database.endsWith('.db'))
129
130
  database = database.slice(0, -3);
130
- res.result = this._connectionDict.has(database);
131
+ const connName = readonly ? `RO_${database}` : `RW_${database}`;
132
+ res.result = this._connectionDict.has(connName);
131
133
  return Promise.resolve(res);
132
134
  }
133
- async retrieveConnection(database) {
135
+ async retrieveConnection(database, readonly) {
134
136
  if (database.endsWith('.db'))
135
137
  database = database.slice(0, -3);
136
- if (this._connectionDict.has(database)) {
137
- const conn = this._connectionDict.get(database);
138
+ const connName = readonly ? `RO_${database}` : `RW_${database}`;
139
+ if (this._connectionDict.has(connName)) {
140
+ const conn = this._connectionDict.get(connName);
138
141
  if (typeof conn != 'undefined')
139
142
  return Promise.resolve(conn);
140
143
  else {
@@ -163,8 +166,9 @@ export class SQLiteConnection {
163
166
  databasePath,
164
167
  version,
165
168
  });
166
- const conn = new SQLiteDBConnection(databasePath, this.sqlite);
167
- this._connectionDict.set(databasePath, conn);
169
+ const conn = new SQLiteDBConnection(databasePath, true, this.sqlite);
170
+ const connName = `RO_${databasePath})`;
171
+ this._connectionDict.set(connName, conn);
168
172
  return Promise.resolve(conn);
169
173
  }
170
174
  catch (err) {
@@ -174,7 +178,8 @@ export class SQLiteConnection {
174
178
  async closeNCConnection(databasePath) {
175
179
  try {
176
180
  await this.sqlite.closeNCConnection({ databasePath });
177
- this._connectionDict.delete(databasePath);
181
+ const connName = `RO_${databasePath})`;
182
+ this._connectionDict.delete(connName);
178
183
  return Promise.resolve();
179
184
  }
180
185
  catch (err) {
@@ -183,12 +188,14 @@ export class SQLiteConnection {
183
188
  }
184
189
  async isNCConnection(databasePath) {
185
190
  const res = {};
186
- res.result = this._connectionDict.has(databasePath);
191
+ const connName = `RO_${databasePath})`;
192
+ res.result = this._connectionDict.has(connName);
187
193
  return Promise.resolve(res);
188
194
  }
189
195
  async retrieveNCConnection(databasePath) {
190
196
  if (this._connectionDict.has(databasePath)) {
191
- const conn = this._connectionDict.get(databasePath);
197
+ const connName = `RO_${databasePath})`;
198
+ const conn = this._connectionDict.get(connName);
192
199
  if (typeof conn != 'undefined')
193
200
  return Promise.resolve(conn);
194
201
  else {
@@ -214,12 +221,14 @@ export class SQLiteConnection {
214
221
  async closeAllConnections() {
215
222
  const delDict = new Map();
216
223
  try {
217
- for (const database of this._connectionDict.keys()) {
218
- await this.sqlite.closeConnection({ database });
219
- delDict.set(database, null);
224
+ for (const key of this._connectionDict.keys()) {
225
+ const database = key.substring(3);
226
+ const readonly = key.substring(0, 3) === ("RO_") ? true : false;
227
+ await this.sqlite.closeConnection({ database, readonly });
228
+ delDict.set(key, null);
220
229
  }
221
- for (const database of delDict.keys()) {
222
- this._connectionDict.delete(database);
230
+ for (const key of delDict.keys()) {
231
+ this._connectionDict.delete(key);
223
232
  }
224
233
  return Promise.resolve();
225
234
  }
@@ -343,16 +352,23 @@ export class SQLiteConnection {
343
352
  * SQLiteDBConnection Class
344
353
  */
345
354
  export class SQLiteDBConnection {
346
- constructor(dbName, sqlite) {
355
+ constructor(dbName, readonly, sqlite) {
347
356
  this.dbName = dbName;
357
+ this.readonly = readonly;
348
358
  this.sqlite = sqlite;
349
359
  }
350
360
  getConnectionDBName() {
351
361
  return this.dbName;
352
362
  }
363
+ getConnectionReadOnly() {
364
+ return this.readonly;
365
+ }
353
366
  async open() {
354
367
  try {
355
- await this.sqlite.open({ database: this.dbName });
368
+ await this.sqlite.open({
369
+ database: this.dbName,
370
+ readonly: this.readonly,
371
+ });
356
372
  return Promise.resolve();
357
373
  }
358
374
  catch (err) {
@@ -361,7 +377,10 @@ export class SQLiteDBConnection {
361
377
  }
362
378
  async close() {
363
379
  try {
364
- await this.sqlite.close({ database: this.dbName });
380
+ await this.sqlite.close({
381
+ database: this.dbName,
382
+ readonly: this.readonly,
383
+ });
365
384
  return Promise.resolve();
366
385
  }
367
386
  catch (err) {
@@ -372,6 +391,7 @@ export class SQLiteDBConnection {
372
391
  try {
373
392
  const res = await this.sqlite.getUrl({
374
393
  database: this.dbName,
394
+ readonly: this.readonly,
375
395
  });
376
396
  return Promise.resolve(res);
377
397
  }
@@ -383,6 +403,7 @@ export class SQLiteDBConnection {
383
403
  try {
384
404
  const version = await this.sqlite.getVersion({
385
405
  database: this.dbName,
406
+ readonly: this.readonly,
386
407
  });
387
408
  return Promise.resolve(version);
388
409
  }
@@ -394,6 +415,7 @@ export class SQLiteDBConnection {
394
415
  try {
395
416
  const res = await this.sqlite.getTableList({
396
417
  database: this.dbName,
418
+ readonly: this.readonly,
397
419
  });
398
420
  return Promise.resolve(res);
399
421
  }
@@ -403,12 +425,18 @@ export class SQLiteDBConnection {
403
425
  }
404
426
  async execute(statements, transaction = true) {
405
427
  try {
406
- const res = await this.sqlite.execute({
407
- database: this.dbName,
408
- statements: statements,
409
- transaction: transaction,
410
- });
411
- return Promise.resolve(res);
428
+ if (!this.readonly) {
429
+ const res = await this.sqlite.execute({
430
+ database: this.dbName,
431
+ statements: statements,
432
+ transaction: transaction,
433
+ readonly: false,
434
+ });
435
+ return Promise.resolve(res);
436
+ }
437
+ else {
438
+ return Promise.reject('not allowed in read-only mode');
439
+ }
412
440
  }
413
441
  catch (err) {
414
442
  return Promise.reject(err);
@@ -422,6 +450,7 @@ export class SQLiteDBConnection {
422
450
  database: this.dbName,
423
451
  statement: statement,
424
452
  values: values,
453
+ readonly: this.readonly,
425
454
  });
426
455
  }
427
456
  else {
@@ -429,6 +458,7 @@ export class SQLiteDBConnection {
429
458
  database: this.dbName,
430
459
  statement: statement,
431
460
  values: [],
461
+ readonly: this.readonly,
432
462
  });
433
463
  }
434
464
  if (res && typeof res.values[0] === 'object') {
@@ -456,24 +486,31 @@ export class SQLiteDBConnection {
456
486
  async run(statement, values, transaction = true) {
457
487
  let res;
458
488
  try {
459
- if (values && values.length > 0) {
460
- res = await this.sqlite.run({
461
- database: this.dbName,
462
- statement: statement,
463
- values: values,
464
- transaction: transaction,
465
- });
466
- // }
489
+ if (!this.readonly) {
490
+ if (values && values.length > 0) {
491
+ res = await this.sqlite.run({
492
+ database: this.dbName,
493
+ statement: statement,
494
+ values: values,
495
+ transaction: transaction,
496
+ readonly: false,
497
+ });
498
+ // }
499
+ }
500
+ else {
501
+ res = await this.sqlite.run({
502
+ database: this.dbName,
503
+ statement: statement,
504
+ values: [],
505
+ transaction: transaction,
506
+ readonly: false,
507
+ });
508
+ }
509
+ return Promise.resolve(res);
467
510
  }
468
511
  else {
469
- res = await this.sqlite.run({
470
- database: this.dbName,
471
- statement: statement,
472
- values: [],
473
- transaction: transaction,
474
- });
512
+ return Promise.reject('not allowed in read-only mode');
475
513
  }
476
- return Promise.resolve(res);
477
514
  }
478
515
  catch (err) {
479
516
  return Promise.reject(err);
@@ -481,13 +518,19 @@ export class SQLiteDBConnection {
481
518
  }
482
519
  async executeSet(set, transaction = true) {
483
520
  try {
484
- const res = await this.sqlite.executeSet({
485
- database: this.dbName,
486
- set: set,
487
- transaction: transaction,
488
- });
489
- // }
490
- return Promise.resolve(res);
521
+ if (!this.readonly) {
522
+ const res = await this.sqlite.executeSet({
523
+ database: this.dbName,
524
+ set: set,
525
+ transaction: transaction,
526
+ readonly: false,
527
+ });
528
+ // }
529
+ return Promise.resolve(res);
530
+ }
531
+ else {
532
+ return Promise.reject('not allowed in read-only mode');
533
+ }
491
534
  }
492
535
  catch (err) {
493
536
  return Promise.reject(err);
@@ -497,6 +540,7 @@ export class SQLiteDBConnection {
497
540
  try {
498
541
  const res = await this.sqlite.isDBExists({
499
542
  database: this.dbName,
543
+ readonly: this.readonly,
500
544
  });
501
545
  return Promise.resolve(res);
502
546
  }
@@ -509,6 +553,7 @@ export class SQLiteDBConnection {
509
553
  const res = await this.sqlite.isTableExists({
510
554
  database: this.dbName,
511
555
  table: table,
556
+ readonly: this.readonly,
512
557
  });
513
558
  return Promise.resolve(res);
514
559
  }
@@ -520,6 +565,7 @@ export class SQLiteDBConnection {
520
565
  try {
521
566
  const res = await this.sqlite.isDBOpen({
522
567
  database: this.dbName,
568
+ readonly: this.readonly,
523
569
  });
524
570
  return Promise.resolve(res);
525
571
  }
@@ -529,8 +575,16 @@ export class SQLiteDBConnection {
529
575
  }
530
576
  async delete() {
531
577
  try {
532
- await this.sqlite.deleteDatabase({ database: this.dbName });
533
- return Promise.resolve();
578
+ if (!this.readonly) {
579
+ await this.sqlite.deleteDatabase({
580
+ database: this.dbName,
581
+ readonly: false,
582
+ });
583
+ return Promise.resolve();
584
+ }
585
+ else {
586
+ return Promise.reject('not allowed in read-only mode');
587
+ }
534
588
  }
535
589
  catch (err) {
536
590
  return Promise.reject(err);
@@ -538,10 +592,16 @@ export class SQLiteDBConnection {
538
592
  }
539
593
  async createSyncTable() {
540
594
  try {
541
- const res = await this.sqlite.createSyncTable({
542
- database: this.dbName,
543
- });
544
- return Promise.resolve(res);
595
+ if (!this.readonly) {
596
+ const res = await this.sqlite.createSyncTable({
597
+ database: this.dbName,
598
+ readonly: false,
599
+ });
600
+ return Promise.resolve(res);
601
+ }
602
+ else {
603
+ return Promise.reject('not allowed in read-only mode');
604
+ }
545
605
  }
546
606
  catch (err) {
547
607
  return Promise.reject(err);
@@ -549,11 +609,17 @@ export class SQLiteDBConnection {
549
609
  }
550
610
  async setSyncDate(syncdate) {
551
611
  try {
552
- await this.sqlite.setSyncDate({
553
- database: this.dbName,
554
- syncdate: syncdate,
555
- });
556
- return Promise.resolve();
612
+ if (!this.readonly) {
613
+ await this.sqlite.setSyncDate({
614
+ database: this.dbName,
615
+ syncdate: syncdate,
616
+ readonly: false,
617
+ });
618
+ return Promise.resolve();
619
+ }
620
+ else {
621
+ return Promise.reject('not allowed in read-only mode');
622
+ }
557
623
  }
558
624
  catch (err) {
559
625
  return Promise.reject(err);
@@ -563,6 +629,7 @@ export class SQLiteDBConnection {
563
629
  try {
564
630
  const res = await this.sqlite.getSyncDate({
565
631
  database: this.dbName,
632
+ readonly: this.readonly,
566
633
  });
567
634
  let retDate = '';
568
635
  if (res.syncDate > 0)
@@ -578,6 +645,7 @@ export class SQLiteDBConnection {
578
645
  const res = await this.sqlite.exportToJson({
579
646
  database: this.dbName,
580
647
  jsonexportmode: mode,
648
+ readonly: this.readonly,
581
649
  });
582
650
  return Promise.resolve(res);
583
651
  }
@@ -587,8 +655,16 @@ export class SQLiteDBConnection {
587
655
  }
588
656
  async deleteExportedRows() {
589
657
  try {
590
- await this.sqlite.deleteExportedRows({ database: this.dbName });
591
- return Promise.resolve();
658
+ if (!this.readonly) {
659
+ await this.sqlite.deleteExportedRows({
660
+ database: this.dbName,
661
+ readonly: false,
662
+ });
663
+ return Promise.resolve();
664
+ }
665
+ else {
666
+ return Promise.reject('not allowed in read-only mode');
667
+ }
592
668
  }
593
669
  catch (err) {
594
670
  return Promise.reject(err);
@@ -596,55 +672,65 @@ export class SQLiteDBConnection {
596
672
  }
597
673
  async executeTransaction(txn) {
598
674
  try {
599
- const ret = await this.sqlite.execute({
600
- database: this.dbName,
601
- statements: 'BEGIN TRANSACTION;',
602
- transaction: false,
603
- });
604
- if (ret.changes.changes < 0) {
605
- return Promise.reject('Error in BEGIN TRANSACTION');
606
- }
607
- for (const task of txn) {
608
- if (task.values && task.values.length > 0) {
609
- const ret = await this.sqlite.run({
610
- database: this.dbName,
611
- statement: task.statement,
612
- values: task.values,
613
- transaction: false,
614
- });
615
- if (ret.changes.lastId === -1) {
616
- await this.execute('ROLLBACK;', false);
617
- return Promise.reject('Error in transaction run ');
618
- }
675
+ if (!this.readonly) {
676
+ const ret = await this.sqlite.execute({
677
+ database: this.dbName,
678
+ statements: 'BEGIN TRANSACTION;',
679
+ transaction: false,
680
+ });
681
+ if (ret.changes.changes < 0) {
682
+ return Promise.reject('Error in BEGIN TRANSACTION');
619
683
  }
620
- else {
621
- const ret = await this.sqlite.execute({
622
- database: this.dbName,
623
- statements: task.statement,
624
- transaction: false,
625
- });
626
- if (ret.changes.changes < 0) {
627
- await this.sqlite.execute({
684
+ for (const task of txn) {
685
+ if (task.values && task.values.length > 0) {
686
+ const ret = await this.sqlite.run({
687
+ database: this.dbName,
688
+ statement: task.statement,
689
+ values: task.values,
690
+ transaction: false,
691
+ readonly: false,
692
+ });
693
+ if (ret.changes.lastId === -1) {
694
+ await this.execute('ROLLBACK;', false);
695
+ return Promise.reject('Error in transaction run ');
696
+ }
697
+ }
698
+ else {
699
+ const ret = await this.sqlite.execute({
628
700
  database: this.dbName,
629
- statements: 'ROLLBACK;',
701
+ statements: task.statement,
630
702
  transaction: false,
703
+ readonly: false,
631
704
  });
632
- return Promise.reject('Error in transaction execute ');
705
+ if (ret.changes.changes < 0) {
706
+ await this.sqlite.execute({
707
+ database: this.dbName,
708
+ statements: 'ROLLBACK;',
709
+ transaction: false,
710
+ readonly: false,
711
+ });
712
+ return Promise.reject('Error in transaction execute ');
713
+ }
633
714
  }
634
715
  }
716
+ await this.sqlite.execute({
717
+ database: this.dbName,
718
+ statements: 'COMMIT;',
719
+ transaction: false,
720
+ readonly: false,
721
+ });
722
+ return Promise.resolve();
723
+ }
724
+ else {
725
+ return Promise.reject('not allowed in read-only mode');
635
726
  }
636
- await this.sqlite.execute({
637
- database: this.dbName,
638
- statements: 'COMMIT;',
639
- transaction: false,
640
- });
641
- return Promise.resolve();
642
727
  }
643
728
  catch (err) {
644
729
  await this.sqlite.execute({
645
730
  database: this.dbName,
646
731
  statements: 'ROLLBACK;',
647
732
  transaction: false,
733
+ readonly: false,
648
734
  });
649
735
  return Promise.reject(err);
650
736
  }
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}