@capacitor-community/sqlite 5.0.4 → 5.0.5-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.
- package/dist/esm/definitions.js +4 -1
- package/dist/esm/definitions.js.map +1 -1
- package/dist/plugin.cjs.js +4 -1
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +4 -1
- package/dist/plugin.js.map +1 -1
- package/electron/dist/plugin.js +30 -60
- package/electron/dist/plugin.js.map +1 -1
- package/package.json +5 -5
- package/src/definitions.ts +4 -1
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["//import { Capacitor } from '@capacitor/core';\n/**\n * SQLiteConnection Class\n */\nexport class SQLiteConnection {\n constructor(sqlite) {\n this.sqlite = sqlite;\n this._connectionDict = new Map();\n }\n async initWebStore() {\n try {\n await this.sqlite.initWebStore();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async saveToStore(database) {\n try {\n await this.sqlite.saveToStore({ database });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async saveToLocalDisk(database) {\n try {\n await this.sqlite.saveToLocalDisk({ database });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getFromLocalDiskToStore(overwrite) {\n const mOverwrite = overwrite != null ? overwrite : true;\n try {\n await this.sqlite.getFromLocalDiskToStore({ overwrite: mOverwrite });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async echo(value) {\n try {\n const res = await this.sqlite.echo({ value });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isSecretStored() {\n try {\n const res = await this.sqlite.isSecretStored();\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async setEncryptionSecret(passphrase) {\n try {\n await this.sqlite.setEncryptionSecret({ passphrase: passphrase });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async changeEncryptionSecret(passphrase, oldpassphrase) {\n try {\n await this.sqlite.changeEncryptionSecret({\n passphrase: passphrase,\n oldpassphrase: oldpassphrase,\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async clearEncryptionSecret() {\n try {\n await this.sqlite.clearEncryptionSecret();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async checkEncryptionSecret(passphrase) {\n try {\n const res = await this.sqlite.checkEncryptionSecret({\n passphrase: passphrase,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async addUpgradeStatement(database, toVersion, statements) {\n const upgrade = {\n toVersion,\n statements,\n };\n try {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n await this.sqlite.addUpgradeStatement({\n database,\n upgrade: [upgrade],\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async createConnection(database, encrypted, mode, version, readonly) {\n try {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n await this.sqlite.createConnection({\n database,\n encrypted,\n mode,\n version,\n readonly,\n });\n const conn = new SQLiteDBConnection(database, readonly, this.sqlite);\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n this._connectionDict.set(connName, conn);\n return Promise.resolve(conn);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async closeConnection(database, readonly) {\n try {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n await this.sqlite.closeConnection({ database, readonly });\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n this._connectionDict.delete(connName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isConnection(database, readonly) {\n const res = {};\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n res.result = this._connectionDict.has(connName);\n return Promise.resolve(res);\n }\n async retrieveConnection(database, readonly) {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n if (this._connectionDict.has(connName)) {\n const conn = this._connectionDict.get(connName);\n if (typeof conn != 'undefined')\n return Promise.resolve(conn);\n else {\n return Promise.reject(`Connection ${database} is undefined`);\n }\n }\n else {\n return Promise.reject(`Connection ${database} does not exist`);\n }\n }\n async getNCDatabasePath(path, database) {\n try {\n const databasePath = await this.sqlite.getNCDatabasePath({\n path,\n database,\n });\n return Promise.resolve(databasePath);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async createNCConnection(databasePath, version) {\n try {\n await this.sqlite.createNCConnection({\n databasePath,\n version,\n });\n const conn = new SQLiteDBConnection(databasePath, true, this.sqlite);\n const connName = `RO_${databasePath})`;\n this._connectionDict.set(connName, conn);\n return Promise.resolve(conn);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async closeNCConnection(databasePath) {\n try {\n await this.sqlite.closeNCConnection({ databasePath });\n const connName = `RO_${databasePath})`;\n this._connectionDict.delete(connName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isNCConnection(databasePath) {\n const res = {};\n const connName = `RO_${databasePath})`;\n res.result = this._connectionDict.has(connName);\n return Promise.resolve(res);\n }\n async retrieveNCConnection(databasePath) {\n if (this._connectionDict.has(databasePath)) {\n const connName = `RO_${databasePath})`;\n const conn = this._connectionDict.get(connName);\n if (typeof conn != 'undefined')\n return Promise.resolve(conn);\n else {\n return Promise.reject(`Connection ${databasePath} is undefined`);\n }\n }\n else {\n return Promise.reject(`Connection ${databasePath} does not exist`);\n }\n }\n async isNCDatabase(databasePath) {\n try {\n const res = await this.sqlite.isNCDatabase({ databasePath });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async retrieveAllConnections() {\n return this._connectionDict;\n }\n async closeAllConnections() {\n const delDict = new Map();\n try {\n for (const key of this._connectionDict.keys()) {\n const database = key.substring(3);\n const readonly = key.substring(0, 3) === 'RO_' ? true : false;\n await this.sqlite.closeConnection({ database, readonly });\n delDict.set(key, null);\n }\n for (const key of delDict.keys()) {\n this._connectionDict.delete(key);\n }\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async checkConnectionsConsistency() {\n try {\n const keys = [...this._connectionDict.keys()];\n const openModes = [];\n const dbNames = [];\n for (const key of keys) {\n openModes.push(key.substring(0, 2));\n dbNames.push(key.substring(3));\n }\n const res = await this.sqlite.checkConnectionsConsistency({\n dbNames: dbNames,\n openModes: openModes,\n });\n if (!res.result)\n this._connectionDict = new Map();\n return Promise.resolve(res);\n }\n catch (err) {\n this._connectionDict = new Map();\n return Promise.reject(err);\n }\n }\n async importFromJson(jsonstring) {\n try {\n const ret = await this.sqlite.importFromJson({ jsonstring: jsonstring });\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isJsonValid(jsonstring) {\n try {\n const ret = await this.sqlite.isJsonValid({ jsonstring: jsonstring });\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async copyFromAssets(overwrite) {\n const mOverwrite = overwrite != null ? overwrite : true;\n try {\n await this.sqlite.copyFromAssets({ overwrite: mOverwrite });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getFromHTTPRequest(url, overwrite) {\n const mOverwrite = overwrite != null ? overwrite : true;\n try {\n await this.sqlite.getFromHTTPRequest({ url, overwrite: mOverwrite });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDatabaseEncrypted(database) {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n try {\n const res = await this.sqlite.isDatabaseEncrypted({ database: database });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isInConfigEncryption() {\n try {\n const res = await this.sqlite.isInConfigEncryption();\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isInConfigBiometricAuth() {\n try {\n const res = await this.sqlite.isInConfigBiometricAuth();\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDatabase(database) {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n try {\n const res = await this.sqlite.isDatabase({ database: database });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getDatabaseList() {\n try {\n const res = await this.sqlite.getDatabaseList();\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getMigratableDbList(folderPath) {\n if (!folderPath || folderPath.length === 0) {\n return Promise.reject('You must provide a folder path');\n }\n try {\n const res = await this.sqlite.getMigratableDbList({\n folderPath: folderPath,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async addSQLiteSuffix(folderPath, dbNameList) {\n const path = folderPath ? folderPath : 'default';\n const dbList = dbNameList ? dbNameList : [];\n try {\n const res = await this.sqlite.addSQLiteSuffix({\n folderPath: path,\n dbNameList: dbList,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteOldDatabases(folderPath, dbNameList) {\n const path = folderPath ? folderPath : 'default';\n const dbList = dbNameList ? dbNameList : [];\n try {\n const res = await this.sqlite.deleteOldDatabases({\n folderPath: path,\n dbNameList: dbList,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async moveDatabasesAndAddSuffix(folderPath, dbNameList) {\n const path = folderPath ? folderPath : 'default';\n const dbList = dbNameList ? dbNameList : [];\n return this.sqlite.moveDatabasesAndAddSuffix({\n folderPath: path,\n dbNameList: dbList,\n });\n }\n}\n/**\n * SQLiteDBConnection Class\n */\nexport class SQLiteDBConnection {\n constructor(dbName, readonly, sqlite) {\n this.dbName = dbName;\n this.readonly = readonly;\n this.sqlite = sqlite;\n }\n getConnectionDBName() {\n return this.dbName;\n }\n getConnectionReadOnly() {\n return this.readonly;\n }\n async open() {\n try {\n await this.sqlite.open({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async close() {\n try {\n await this.sqlite.close({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getUrl() {\n try {\n const res = await this.sqlite.getUrl({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getVersion() {\n try {\n const version = await this.sqlite.getVersion({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(version);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getTableList() {\n try {\n const res = await this.sqlite.getTableList({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async execute(statements, transaction = true) {\n try {\n if (!this.readonly) {\n const res = await this.sqlite.execute({\n database: this.dbName,\n statements: statements,\n transaction: transaction,\n readonly: false,\n });\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async query(statement, values) {\n let res;\n try {\n if (values && values.length > 0) {\n res = await this.sqlite.query({\n database: this.dbName,\n statement: statement,\n values: values,\n readonly: this.readonly,\n });\n }\n else {\n res = await this.sqlite.query({\n database: this.dbName,\n statement: statement,\n values: [],\n readonly: this.readonly,\n });\n }\n if (res && typeof res.values[0] === 'object') {\n if (Object.keys(res.values[0]).includes('ios_columns')) {\n const columnList = res.values[0]['ios_columns'];\n const iosRes = [];\n for (let i = 1; i < res.values.length; i++) {\n const rowJson = res.values[i];\n const resRowJson = {};\n for (const item of columnList) {\n resRowJson[item] = rowJson[item];\n }\n iosRes.push(resRowJson);\n }\n res = {};\n res['values'] = iosRes;\n }\n }\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async run(statement, values, transaction = true) {\n let res;\n try {\n if (!this.readonly) {\n if (values && values.length > 0) {\n res = await this.sqlite.run({\n database: this.dbName,\n statement: statement,\n values: values,\n transaction: transaction,\n readonly: false,\n });\n // }\n }\n else {\n res = await this.sqlite.run({\n database: this.dbName,\n statement: statement,\n values: [],\n transaction: transaction,\n readonly: false,\n });\n }\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async executeSet(set, transaction = true) {\n try {\n if (!this.readonly) {\n const res = await this.sqlite.executeSet({\n database: this.dbName,\n set: set,\n transaction: transaction,\n readonly: false,\n });\n // }\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isExists() {\n try {\n const res = await this.sqlite.isDBExists({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isTable(table) {\n try {\n const res = await this.sqlite.isTableExists({\n database: this.dbName,\n table: table,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDBOpen() {\n try {\n const res = await this.sqlite.isDBOpen({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async delete() {\n try {\n if (!this.readonly) {\n await this.sqlite.deleteDatabase({\n database: this.dbName,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async createSyncTable() {\n try {\n if (!this.readonly) {\n const res = await this.sqlite.createSyncTable({\n database: this.dbName,\n readonly: false,\n });\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async setSyncDate(syncdate) {\n try {\n if (!this.readonly) {\n await this.sqlite.setSyncDate({\n database: this.dbName,\n syncdate: syncdate,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getSyncDate() {\n try {\n const res = await this.sqlite.getSyncDate({\n database: this.dbName,\n readonly: this.readonly,\n });\n let retDate = '';\n if (res.syncDate > 0)\n retDate = new Date(res.syncDate * 1000).toISOString();\n return Promise.resolve(retDate);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async exportToJson(mode) {\n try {\n const res = await this.sqlite.exportToJson({\n database: this.dbName,\n jsonexportmode: mode,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteExportedRows() {\n try {\n if (!this.readonly) {\n await this.sqlite.deleteExportedRows({\n database: this.dbName,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async executeTransaction(txn) {\n try {\n if (!this.readonly) {\n const ret = await this.sqlite.execute({\n database: this.dbName,\n statements: 'BEGIN TRANSACTION;',\n transaction: false,\n });\n if (ret.changes.changes < 0) {\n return Promise.reject('Error in BEGIN TRANSACTION');\n }\n for (const task of txn) {\n if (task.values && task.values.length > 0) {\n const ret = await this.sqlite.run({\n database: this.dbName,\n statement: task.statement,\n values: task.values,\n transaction: false,\n readonly: false,\n });\n if (ret.changes.lastId === -1) {\n await this.execute('ROLLBACK;', false);\n return Promise.reject('Error in transaction run ');\n }\n }\n else {\n const ret = await this.sqlite.execute({\n database: this.dbName,\n statements: task.statement,\n transaction: false,\n readonly: false,\n });\n if (ret.changes.changes < 0) {\n await this.sqlite.execute({\n database: this.dbName,\n statements: 'ROLLBACK;',\n transaction: false,\n readonly: false,\n });\n return Promise.reject('Error in transaction execute ');\n }\n }\n }\n await this.sqlite.execute({\n database: this.dbName,\n statements: 'COMMIT;',\n transaction: false,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n await this.sqlite.execute({\n database: this.dbName,\n statements: 'ROLLBACK;',\n transaction: false,\n readonly: false,\n });\n return Promise.reject(err);\n }\n }\n}\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst CapacitorSQLite = registerPlugin('CapacitorSQLite', {\n web: () => import('./web').then(m => new m.CapacitorSQLiteWeb()),\n electron: () => window.CapacitorCustomPlatform.plugins.CapacitorSQLite,\n});\nexport { CapacitorSQLite };\nexport * from './definitions';\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class CapacitorSQLiteWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.jeepSqliteElement = null;\n this.isWebStoreOpen = false;\n }\n async initWebStore() {\n await customElements.whenDefined('jeep-sqlite');\n this.jeepSqliteElement = document.querySelector('jeep-sqlite');\n this.ensureJeepSqliteIsAvailable();\n this.jeepSqliteElement.addEventListener('jeepSqliteImportProgress', (event) => {\n this.notifyListeners('sqliteImportProgressEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqliteExportProgress', (event) => {\n this.notifyListeners('sqliteExportProgressEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqliteHTTPRequestEnded', (event) => {\n this.notifyListeners('sqliteHTTPRequestEndedEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqlitePickDatabaseEnded', (event) => {\n this.notifyListeners('sqlitePickDatabaseEndedEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqliteSaveDatabaseToDisk', (event) => {\n this.notifyListeners('sqliteSaveDatabaseToDiskEvent', event.detail);\n });\n if (!this.isWebStoreOpen) {\n this.isWebStoreOpen = await this.jeepSqliteElement.isStoreOpen();\n }\n return;\n }\n async saveToStore(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.saveToStore(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getFromLocalDiskToStore(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.getFromLocalDiskToStore(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async saveToLocalDisk(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.saveToLocalDisk(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async echo(options) {\n this.ensureJeepSqliteIsAvailable();\n const echoResult = await this.jeepSqliteElement.echo(options);\n return echoResult;\n }\n async createConnection(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.createConnection(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async open(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.open(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async closeConnection(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.closeConnection(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getVersion(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const versionResult = await this.jeepSqliteElement.getVersion(options);\n return versionResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async checkConnectionsConsistency(options) {\n this.ensureJeepSqliteIsAvailable();\n try {\n const consistencyResult = await this.jeepSqliteElement.checkConnectionsConsistency(options);\n return consistencyResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async close(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.close(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getTableList(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const tableListResult = await this.jeepSqliteElement.getTableList(options);\n return tableListResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async execute(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const executeResult = await this.jeepSqliteElement.execute(options);\n return executeResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async executeSet(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const executeResult = await this.jeepSqliteElement.executeSet(options);\n return executeResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async run(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const runResult = await this.jeepSqliteElement.run(options);\n return runResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async query(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const queryResult = await this.jeepSqliteElement.query(options);\n return queryResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isDBExists(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const dbExistsResult = await this.jeepSqliteElement.isDBExists(options);\n return dbExistsResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isDBOpen(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const isDBOpenResult = await this.jeepSqliteElement.isDBOpen(options);\n return isDBOpenResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isDatabase(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const isDatabaseResult = await this.jeepSqliteElement.isDatabase(options);\n return isDatabaseResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isTableExists(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const tableExistsResult = await this.jeepSqliteElement.isTableExists(options);\n return tableExistsResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async deleteDatabase(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.deleteDatabase(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isJsonValid(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const isJsonValidResult = await this.jeepSqliteElement.isJsonValid(options);\n return isJsonValidResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async importFromJson(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const importFromJsonResult = await this.jeepSqliteElement.importFromJson(options);\n return importFromJsonResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async exportToJson(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const exportToJsonResult = await this.jeepSqliteElement.exportToJson(options);\n return exportToJsonResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async createSyncTable(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const createSyncTableResult = await this.jeepSqliteElement.createSyncTable(options);\n return createSyncTableResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async setSyncDate(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.setSyncDate(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getSyncDate(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const getSyncDateResult = await this.jeepSqliteElement.getSyncDate(options);\n return getSyncDateResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async deleteExportedRows(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.deleteExportedRows(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async addUpgradeStatement(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.addUpgradeStatement(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async copyFromAssets(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.copyFromAssets(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getFromHTTPRequest(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.getFromHTTPRequest(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getDatabaseList() {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const databaseListResult = await this.jeepSqliteElement.getDatabaseList();\n return databaseListResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n /**\n * Checks if the `jeep-sqlite` element is present in the DOM.\n * If it's not in the DOM, this method throws an Error.\n *\n * Attention: This will always fail, if the `intWebStore()` method wasn't called before.\n */\n ensureJeepSqliteIsAvailable() {\n if (this.jeepSqliteElement === null) {\n throw new Error(`The jeep-sqlite element is not present in the DOM! Please check the @capacitor-community/sqlite documentation for instructions regarding the web platform.`);\n }\n }\n ensureWebstoreIsOpen() {\n if (!this.isWebStoreOpen) {\n /**\n * if (!this.isWebStoreOpen)\n this.isWebStoreOpen = await this.jeepSqliteElement.isStoreOpen();\n */\n throw new Error('WebStore is not open yet. You have to call \"initWebStore()\" first.');\n }\n }\n ////////////////////////////////////\n ////// UNIMPLEMENTED METHODS\n ////////////////////////////////////\n async getUrl() {\n throw this.unimplemented('Not implemented on web.');\n }\n async getMigratableDbList(options) {\n console.log('getMigratableDbList', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async addSQLiteSuffix(options) {\n console.log('addSQLiteSuffix', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async deleteOldDatabases(options) {\n console.log('deleteOldDatabases', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async moveDatabasesAndAddSuffix(options) {\n console.log('moveDatabasesAndAddSuffix', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isSecretStored() {\n throw this.unimplemented('Not implemented on web.');\n }\n async setEncryptionSecret(options) {\n console.log('setEncryptionSecret', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async changeEncryptionSecret(options) {\n console.log('changeEncryptionSecret', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async clearEncryptionSecret() {\n console.log('clearEncryptionSecret');\n throw this.unimplemented('Not implemented on web.');\n }\n async checkEncryptionSecret(options) {\n console.log('checkEncryptionPassPhrase', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async getNCDatabasePath(options) {\n console.log('getNCDatabasePath', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async createNCConnection(options) {\n console.log('createNCConnection', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async closeNCConnection(options) {\n console.log('closeNCConnection', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isNCDatabase(options) {\n console.log('isNCDatabase', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isDatabaseEncrypted(options) {\n console.log('isDatabaseEncrypted', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isInConfigEncryption() {\n throw this.unimplemented('Not implemented on web.');\n }\n async isInConfigBiometricAuth() {\n throw this.unimplemented('Not implemented on web.');\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["//import { Capacitor } from '@capacitor/core';\n/**\n * SQLiteConnection Class\n */\nexport class SQLiteConnection {\n constructor(sqlite) {\n this.sqlite = sqlite;\n this._connectionDict = new Map();\n }\n async initWebStore() {\n try {\n await this.sqlite.initWebStore();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async saveToStore(database) {\n try {\n await this.sqlite.saveToStore({ database });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async saveToLocalDisk(database) {\n try {\n await this.sqlite.saveToLocalDisk({ database });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getFromLocalDiskToStore(overwrite) {\n const mOverwrite = overwrite != null ? overwrite : true;\n try {\n await this.sqlite.getFromLocalDiskToStore({ overwrite: mOverwrite });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async echo(value) {\n try {\n const res = await this.sqlite.echo({ value });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isSecretStored() {\n try {\n const res = await this.sqlite.isSecretStored();\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async setEncryptionSecret(passphrase) {\n try {\n await this.sqlite.setEncryptionSecret({ passphrase: passphrase });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async changeEncryptionSecret(passphrase, oldpassphrase) {\n try {\n await this.sqlite.changeEncryptionSecret({\n passphrase: passphrase,\n oldpassphrase: oldpassphrase,\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async clearEncryptionSecret() {\n try {\n await this.sqlite.clearEncryptionSecret();\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async checkEncryptionSecret(passphrase) {\n try {\n const res = await this.sqlite.checkEncryptionSecret({\n passphrase: passphrase,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async addUpgradeStatement(database, toVersion, statements) {\n const upgrade = {\n toVersion,\n statements,\n };\n try {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n await this.sqlite.addUpgradeStatement({\n database,\n upgrade: [upgrade],\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async createConnection(database, encrypted, mode, version, readonly) {\n try {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n await this.sqlite.createConnection({\n database,\n encrypted,\n mode,\n version,\n readonly,\n });\n const conn = new SQLiteDBConnection(database, readonly, this.sqlite);\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n this._connectionDict.set(connName, conn);\n return Promise.resolve(conn);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async closeConnection(database, readonly) {\n try {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n await this.sqlite.closeConnection({ database, readonly });\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n this._connectionDict.delete(connName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isConnection(database, readonly) {\n const res = {};\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n res.result = this._connectionDict.has(connName);\n return Promise.resolve(res);\n }\n async retrieveConnection(database, readonly) {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n const connName = readonly ? `RO_${database}` : `RW_${database}`;\n if (this._connectionDict.has(connName)) {\n const conn = this._connectionDict.get(connName);\n if (typeof conn != 'undefined')\n return Promise.resolve(conn);\n else {\n return Promise.reject(`Connection ${database} is undefined`);\n }\n }\n else {\n return Promise.reject(`Connection ${database} does not exist`);\n }\n }\n async getNCDatabasePath(path, database) {\n try {\n const databasePath = await this.sqlite.getNCDatabasePath({\n path,\n database,\n });\n return Promise.resolve(databasePath);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async createNCConnection(databasePath, version) {\n try {\n await this.sqlite.createNCConnection({\n databasePath,\n version,\n });\n const conn = new SQLiteDBConnection(databasePath, true, this.sqlite);\n const connName = `RO_${databasePath})`;\n this._connectionDict.set(connName, conn);\n return Promise.resolve(conn);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async closeNCConnection(databasePath) {\n try {\n await this.sqlite.closeNCConnection({ databasePath });\n const connName = `RO_${databasePath})`;\n this._connectionDict.delete(connName);\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isNCConnection(databasePath) {\n const res = {};\n const connName = `RO_${databasePath})`;\n res.result = this._connectionDict.has(connName);\n return Promise.resolve(res);\n }\n async retrieveNCConnection(databasePath) {\n if (this._connectionDict.has(databasePath)) {\n const connName = `RO_${databasePath})`;\n const conn = this._connectionDict.get(connName);\n if (typeof conn != 'undefined')\n return Promise.resolve(conn);\n else {\n return Promise.reject(`Connection ${databasePath} is undefined`);\n }\n }\n else {\n return Promise.reject(`Connection ${databasePath} does not exist`);\n }\n }\n async isNCDatabase(databasePath) {\n try {\n const res = await this.sqlite.isNCDatabase({ databasePath });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async retrieveAllConnections() {\n return this._connectionDict;\n }\n async closeAllConnections() {\n const delDict = new Map();\n try {\n for (const key of this._connectionDict.keys()) {\n const database = key.substring(3);\n const readonly = key.substring(0, 3) === 'RO_' ? true : false;\n await this.sqlite.closeConnection({ database, readonly });\n delDict.set(key, null);\n }\n for (const key of delDict.keys()) {\n this._connectionDict.delete(key);\n }\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async checkConnectionsConsistency() {\n try {\n const keys = [...this._connectionDict.keys()];\n const openModes = [];\n const dbNames = [];\n for (const key of keys) {\n openModes.push(key.substring(0, 2));\n dbNames.push(key.substring(3));\n }\n const res = await this.sqlite.checkConnectionsConsistency({\n dbNames: dbNames,\n openModes: openModes,\n });\n if (!res.result)\n this._connectionDict = new Map();\n return Promise.resolve(res);\n }\n catch (err) {\n this._connectionDict = new Map();\n return Promise.reject(err);\n }\n }\n async importFromJson(jsonstring) {\n try {\n const ret = await this.sqlite.importFromJson({ jsonstring: jsonstring });\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isJsonValid(jsonstring) {\n try {\n const ret = await this.sqlite.isJsonValid({ jsonstring: jsonstring });\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async copyFromAssets(overwrite) {\n const mOverwrite = overwrite != null ? overwrite : true;\n try {\n await this.sqlite.copyFromAssets({ overwrite: mOverwrite });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getFromHTTPRequest(url, overwrite) {\n const mOverwrite = overwrite != null ? overwrite : true;\n try {\n await this.sqlite.getFromHTTPRequest({ url, overwrite: mOverwrite });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDatabaseEncrypted(database) {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n try {\n const res = await this.sqlite.isDatabaseEncrypted({ database: database });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isInConfigEncryption() {\n try {\n const res = await this.sqlite.isInConfigEncryption();\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isInConfigBiometricAuth() {\n try {\n const res = await this.sqlite.isInConfigBiometricAuth();\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDatabase(database) {\n if (database.endsWith('.db'))\n database = database.slice(0, -3);\n try {\n const res = await this.sqlite.isDatabase({ database: database });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getDatabaseList() {\n try {\n const res = await this.sqlite.getDatabaseList();\n const values = res.values;\n values.sort();\n const ret = { values: values };\n return Promise.resolve(ret);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getMigratableDbList(folderPath) {\n if (!folderPath || folderPath.length === 0) {\n return Promise.reject('You must provide a folder path');\n }\n try {\n const res = await this.sqlite.getMigratableDbList({\n folderPath: folderPath,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async addSQLiteSuffix(folderPath, dbNameList) {\n const path = folderPath ? folderPath : 'default';\n const dbList = dbNameList ? dbNameList : [];\n try {\n const res = await this.sqlite.addSQLiteSuffix({\n folderPath: path,\n dbNameList: dbList,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteOldDatabases(folderPath, dbNameList) {\n const path = folderPath ? folderPath : 'default';\n const dbList = dbNameList ? dbNameList : [];\n try {\n const res = await this.sqlite.deleteOldDatabases({\n folderPath: path,\n dbNameList: dbList,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async moveDatabasesAndAddSuffix(folderPath, dbNameList) {\n const path = folderPath ? folderPath : 'default';\n const dbList = dbNameList ? dbNameList : [];\n return this.sqlite.moveDatabasesAndAddSuffix({\n folderPath: path,\n dbNameList: dbList,\n });\n }\n}\n/**\n * SQLiteDBConnection Class\n */\nexport class SQLiteDBConnection {\n constructor(dbName, readonly, sqlite) {\n this.dbName = dbName;\n this.readonly = readonly;\n this.sqlite = sqlite;\n }\n getConnectionDBName() {\n return this.dbName;\n }\n getConnectionReadOnly() {\n return this.readonly;\n }\n async open() {\n try {\n await this.sqlite.open({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async close() {\n try {\n await this.sqlite.close({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve();\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getUrl() {\n try {\n const res = await this.sqlite.getUrl({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getVersion() {\n try {\n const version = await this.sqlite.getVersion({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(version);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getTableList() {\n try {\n const res = await this.sqlite.getTableList({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async execute(statements, transaction = true) {\n try {\n if (!this.readonly) {\n const res = await this.sqlite.execute({\n database: this.dbName,\n statements: statements,\n transaction: transaction,\n readonly: false,\n });\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async query(statement, values) {\n let res;\n try {\n if (values && values.length > 0) {\n res = await this.sqlite.query({\n database: this.dbName,\n statement: statement,\n values: values,\n readonly: this.readonly,\n });\n }\n else {\n res = await this.sqlite.query({\n database: this.dbName,\n statement: statement,\n values: [],\n readonly: this.readonly,\n });\n }\n if (res && typeof res.values[0] === 'object') {\n if (Object.keys(res.values[0]).includes('ios_columns')) {\n const columnList = res.values[0]['ios_columns'];\n const iosRes = [];\n for (let i = 1; i < res.values.length; i++) {\n const rowJson = res.values[i];\n const resRowJson = {};\n for (const item of columnList) {\n resRowJson[item] = rowJson[item];\n }\n iosRes.push(resRowJson);\n }\n res = {};\n res['values'] = iosRes;\n }\n }\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async run(statement, values, transaction = true) {\n let res;\n try {\n if (!this.readonly) {\n if (values && values.length > 0) {\n res = await this.sqlite.run({\n database: this.dbName,\n statement: statement,\n values: values,\n transaction: transaction,\n readonly: false,\n });\n // }\n }\n else {\n res = await this.sqlite.run({\n database: this.dbName,\n statement: statement,\n values: [],\n transaction: transaction,\n readonly: false,\n });\n }\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async executeSet(set, transaction = true) {\n try {\n if (!this.readonly) {\n const res = await this.sqlite.executeSet({\n database: this.dbName,\n set: set,\n transaction: transaction,\n readonly: false,\n });\n // }\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isExists() {\n try {\n const res = await this.sqlite.isDBExists({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isTable(table) {\n try {\n const res = await this.sqlite.isTableExists({\n database: this.dbName,\n table: table,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async isDBOpen() {\n try {\n const res = await this.sqlite.isDBOpen({\n database: this.dbName,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async delete() {\n try {\n if (!this.readonly) {\n await this.sqlite.deleteDatabase({\n database: this.dbName,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async createSyncTable() {\n try {\n if (!this.readonly) {\n const res = await this.sqlite.createSyncTable({\n database: this.dbName,\n readonly: false,\n });\n return Promise.resolve(res);\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async setSyncDate(syncdate) {\n try {\n if (!this.readonly) {\n await this.sqlite.setSyncDate({\n database: this.dbName,\n syncdate: syncdate,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async getSyncDate() {\n try {\n const res = await this.sqlite.getSyncDate({\n database: this.dbName,\n readonly: this.readonly,\n });\n let retDate = '';\n if (res.syncDate > 0)\n retDate = new Date(res.syncDate * 1000).toISOString();\n return Promise.resolve(retDate);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async exportToJson(mode) {\n try {\n const res = await this.sqlite.exportToJson({\n database: this.dbName,\n jsonexportmode: mode,\n readonly: this.readonly,\n });\n return Promise.resolve(res);\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async deleteExportedRows() {\n try {\n if (!this.readonly) {\n await this.sqlite.deleteExportedRows({\n database: this.dbName,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n return Promise.reject(err);\n }\n }\n async executeTransaction(txn) {\n try {\n if (!this.readonly) {\n const ret = await this.sqlite.execute({\n database: this.dbName,\n statements: 'BEGIN TRANSACTION;',\n transaction: false,\n });\n if (ret.changes.changes < 0) {\n return Promise.reject('Error in BEGIN TRANSACTION');\n }\n for (const task of txn) {\n if (task.values && task.values.length > 0) {\n const ret = await this.sqlite.run({\n database: this.dbName,\n statement: task.statement,\n values: task.values,\n transaction: false,\n readonly: false,\n });\n if (ret.changes.lastId === -1) {\n await this.execute('ROLLBACK;', false);\n return Promise.reject('Error in transaction run ');\n }\n }\n else {\n const ret = await this.sqlite.execute({\n database: this.dbName,\n statements: task.statement,\n transaction: false,\n readonly: false,\n });\n if (ret.changes.changes < 0) {\n await this.sqlite.execute({\n database: this.dbName,\n statements: 'ROLLBACK;',\n transaction: false,\n readonly: false,\n });\n return Promise.reject('Error in transaction execute ');\n }\n }\n }\n await this.sqlite.execute({\n database: this.dbName,\n statements: 'COMMIT;',\n transaction: false,\n readonly: false,\n });\n return Promise.resolve();\n }\n else {\n return Promise.reject('not allowed in read-only mode');\n }\n }\n catch (err) {\n await this.sqlite.execute({\n database: this.dbName,\n statements: 'ROLLBACK;',\n transaction: false,\n readonly: false,\n });\n return Promise.reject(err);\n }\n }\n}\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst CapacitorSQLite = registerPlugin('CapacitorSQLite', {\n web: () => import('./web').then(m => new m.CapacitorSQLiteWeb()),\n electron: () => window.CapacitorCustomPlatform.plugins.CapacitorSQLite,\n});\nexport { CapacitorSQLite };\nexport * from './definitions';\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class CapacitorSQLiteWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.jeepSqliteElement = null;\n this.isWebStoreOpen = false;\n }\n async initWebStore() {\n await customElements.whenDefined('jeep-sqlite');\n this.jeepSqliteElement = document.querySelector('jeep-sqlite');\n this.ensureJeepSqliteIsAvailable();\n this.jeepSqliteElement.addEventListener('jeepSqliteImportProgress', (event) => {\n this.notifyListeners('sqliteImportProgressEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqliteExportProgress', (event) => {\n this.notifyListeners('sqliteExportProgressEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqliteHTTPRequestEnded', (event) => {\n this.notifyListeners('sqliteHTTPRequestEndedEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqlitePickDatabaseEnded', (event) => {\n this.notifyListeners('sqlitePickDatabaseEndedEvent', event.detail);\n });\n this.jeepSqliteElement.addEventListener('jeepSqliteSaveDatabaseToDisk', (event) => {\n this.notifyListeners('sqliteSaveDatabaseToDiskEvent', event.detail);\n });\n if (!this.isWebStoreOpen) {\n this.isWebStoreOpen = await this.jeepSqliteElement.isStoreOpen();\n }\n return;\n }\n async saveToStore(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.saveToStore(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getFromLocalDiskToStore(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.getFromLocalDiskToStore(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async saveToLocalDisk(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.saveToLocalDisk(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async echo(options) {\n this.ensureJeepSqliteIsAvailable();\n const echoResult = await this.jeepSqliteElement.echo(options);\n return echoResult;\n }\n async createConnection(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.createConnection(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async open(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.open(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async closeConnection(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.closeConnection(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getVersion(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const versionResult = await this.jeepSqliteElement.getVersion(options);\n return versionResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async checkConnectionsConsistency(options) {\n this.ensureJeepSqliteIsAvailable();\n try {\n const consistencyResult = await this.jeepSqliteElement.checkConnectionsConsistency(options);\n return consistencyResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async close(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.close(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getTableList(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const tableListResult = await this.jeepSqliteElement.getTableList(options);\n return tableListResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async execute(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const executeResult = await this.jeepSqliteElement.execute(options);\n return executeResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async executeSet(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const executeResult = await this.jeepSqliteElement.executeSet(options);\n return executeResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async run(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const runResult = await this.jeepSqliteElement.run(options);\n return runResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async query(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const queryResult = await this.jeepSqliteElement.query(options);\n return queryResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isDBExists(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const dbExistsResult = await this.jeepSqliteElement.isDBExists(options);\n return dbExistsResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isDBOpen(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const isDBOpenResult = await this.jeepSqliteElement.isDBOpen(options);\n return isDBOpenResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isDatabase(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const isDatabaseResult = await this.jeepSqliteElement.isDatabase(options);\n return isDatabaseResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isTableExists(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const tableExistsResult = await this.jeepSqliteElement.isTableExists(options);\n return tableExistsResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async deleteDatabase(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.deleteDatabase(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async isJsonValid(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const isJsonValidResult = await this.jeepSqliteElement.isJsonValid(options);\n return isJsonValidResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async importFromJson(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const importFromJsonResult = await this.jeepSqliteElement.importFromJson(options);\n return importFromJsonResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async exportToJson(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const exportToJsonResult = await this.jeepSqliteElement.exportToJson(options);\n return exportToJsonResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async createSyncTable(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const createSyncTableResult = await this.jeepSqliteElement.createSyncTable(options);\n return createSyncTableResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async setSyncDate(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.setSyncDate(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getSyncDate(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const getSyncDateResult = await this.jeepSqliteElement.getSyncDate(options);\n return getSyncDateResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async deleteExportedRows(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.deleteExportedRows(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async addUpgradeStatement(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.addUpgradeStatement(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async copyFromAssets(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.copyFromAssets(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getFromHTTPRequest(options) {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n await this.jeepSqliteElement.getFromHTTPRequest(options);\n return;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n async getDatabaseList() {\n this.ensureJeepSqliteIsAvailable();\n this.ensureWebstoreIsOpen();\n try {\n const databaseListResult = await this.jeepSqliteElement.getDatabaseList();\n return databaseListResult;\n }\n catch (err) {\n throw new Error(`${err}`);\n }\n }\n /**\n * Checks if the `jeep-sqlite` element is present in the DOM.\n * If it's not in the DOM, this method throws an Error.\n *\n * Attention: This will always fail, if the `intWebStore()` method wasn't called before.\n */\n ensureJeepSqliteIsAvailable() {\n if (this.jeepSqliteElement === null) {\n throw new Error(`The jeep-sqlite element is not present in the DOM! Please check the @capacitor-community/sqlite documentation for instructions regarding the web platform.`);\n }\n }\n ensureWebstoreIsOpen() {\n if (!this.isWebStoreOpen) {\n /**\n * if (!this.isWebStoreOpen)\n this.isWebStoreOpen = await this.jeepSqliteElement.isStoreOpen();\n */\n throw new Error('WebStore is not open yet. You have to call \"initWebStore()\" first.');\n }\n }\n ////////////////////////////////////\n ////// UNIMPLEMENTED METHODS\n ////////////////////////////////////\n async getUrl() {\n throw this.unimplemented('Not implemented on web.');\n }\n async getMigratableDbList(options) {\n console.log('getMigratableDbList', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async addSQLiteSuffix(options) {\n console.log('addSQLiteSuffix', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async deleteOldDatabases(options) {\n console.log('deleteOldDatabases', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async moveDatabasesAndAddSuffix(options) {\n console.log('moveDatabasesAndAddSuffix', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isSecretStored() {\n throw this.unimplemented('Not implemented on web.');\n }\n async setEncryptionSecret(options) {\n console.log('setEncryptionSecret', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async changeEncryptionSecret(options) {\n console.log('changeEncryptionSecret', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async clearEncryptionSecret() {\n console.log('clearEncryptionSecret');\n throw this.unimplemented('Not implemented on web.');\n }\n async checkEncryptionSecret(options) {\n console.log('checkEncryptionPassPhrase', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async getNCDatabasePath(options) {\n console.log('getNCDatabasePath', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async createNCConnection(options) {\n console.log('createNCConnection', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async closeNCConnection(options) {\n console.log('closeNCConnection', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isNCDatabase(options) {\n console.log('isNCDatabase', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isDatabaseEncrypted(options) {\n console.log('isDatabaseEncrypted', options);\n throw this.unimplemented('Not implemented on web.');\n }\n async isInConfigEncryption() {\n throw this.unimplemented('Not implemented on web.');\n }\n async isInConfigBiometricAuth() {\n throw this.unimplemented('Not implemented on web.');\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
package/electron/dist/plugin.js
CHANGED
|
@@ -87,7 +87,6 @@ class UtilsFile {
|
|
|
87
87
|
this.isEncryption = this.capConfig.plugins.CapacitorSQLite.electronIsEncryption
|
|
88
88
|
? this.capConfig.plugins.CapacitorSQLite.electronIsEncryption
|
|
89
89
|
: false;
|
|
90
|
-
console.log(`$$$$$$ this.isEncryption: ${this.isEncryption} $$$$$$`);
|
|
91
90
|
this.osType = this.Os.type();
|
|
92
91
|
switch (this.osType) {
|
|
93
92
|
case 'Darwin':
|
|
@@ -118,7 +117,6 @@ class UtilsFile {
|
|
|
118
117
|
* @returns
|
|
119
118
|
*/
|
|
120
119
|
getIsEncryption() {
|
|
121
|
-
console.log(`>>>>>> getIsEncryption this.isEncryption: ${this.isEncryption} >>>>>>`);
|
|
122
120
|
return this.isEncryption;
|
|
123
121
|
}
|
|
124
122
|
/**
|
|
@@ -598,6 +596,22 @@ class UtilsFile {
|
|
|
598
596
|
fileStream.on('finish', resolve);
|
|
599
597
|
});
|
|
600
598
|
}
|
|
599
|
+
readFileAsPromise(path, options) {
|
|
600
|
+
return new Promise((resolve, reject) => {
|
|
601
|
+
const fileStream = this.NodeFs.createReadStream(path, options);
|
|
602
|
+
const chunks = [];
|
|
603
|
+
fileStream.on('data', (data) => {
|
|
604
|
+
chunks.push(data);
|
|
605
|
+
});
|
|
606
|
+
fileStream.on('close', () => {
|
|
607
|
+
resolve(chunks.toString());
|
|
608
|
+
});
|
|
609
|
+
fileStream.on('error', (err) => {
|
|
610
|
+
const msg = err.message ? err.message : err;
|
|
611
|
+
reject(msg);
|
|
612
|
+
});
|
|
613
|
+
});
|
|
614
|
+
}
|
|
601
615
|
/**
|
|
602
616
|
* CreateFolderIfNotExists
|
|
603
617
|
* Create directory
|
|
@@ -1532,13 +1546,13 @@ class UtilsSQLite {
|
|
|
1532
1546
|
throw new Error(`${msg} ${errmsg}`);
|
|
1533
1547
|
}
|
|
1534
1548
|
}
|
|
1535
|
-
isDatabaseEncrypted(dbName) {
|
|
1549
|
+
async isDatabaseEncrypted(dbName) {
|
|
1536
1550
|
const msg = "isDatabaseEncrypted";
|
|
1537
1551
|
try {
|
|
1538
1552
|
const isExists = this.fileUtil.isFileExists(dbName);
|
|
1539
1553
|
if (isExists) {
|
|
1540
|
-
const filePath = this.fileUtil.getFilePath(dbName
|
|
1541
|
-
return this.isDBEncrypted(filePath);
|
|
1554
|
+
const filePath = this.fileUtil.getFilePath(dbName);
|
|
1555
|
+
return await this.isDBEncrypted(filePath);
|
|
1542
1556
|
}
|
|
1543
1557
|
else {
|
|
1544
1558
|
throw new Error(`${msg}: Database ${dbName} does not exist`);
|
|
@@ -1549,12 +1563,13 @@ class UtilsSQLite {
|
|
|
1549
1563
|
throw new Error(`${msg} ${errmsg}`);
|
|
1550
1564
|
}
|
|
1551
1565
|
}
|
|
1552
|
-
isDBEncrypted(filePath) {
|
|
1566
|
+
async isDBEncrypted(filePath) {
|
|
1553
1567
|
try {
|
|
1554
|
-
const
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1568
|
+
const retStr = await this.fileUtil.readFileAsPromise(filePath, { start: 0, end: 12 });
|
|
1569
|
+
if (retStr === 'SQLite format')
|
|
1570
|
+
return false;
|
|
1571
|
+
else
|
|
1572
|
+
return true;
|
|
1558
1573
|
}
|
|
1559
1574
|
catch (error) {
|
|
1560
1575
|
return true;
|
|
@@ -3443,27 +3458,6 @@ class UtilsEncryption {
|
|
|
3443
3458
|
constructor() {
|
|
3444
3459
|
this.fileUtil = new utilsFile_1$3.UtilsFile();
|
|
3445
3460
|
this.sqliteUtil = new utilsSQLite_1$4.UtilsSQLite();
|
|
3446
|
-
/**
|
|
3447
|
-
* SqlcipherEncrypt
|
|
3448
|
-
* @param oDB
|
|
3449
|
-
* @param pathDB
|
|
3450
|
-
* @param password
|
|
3451
|
-
*/
|
|
3452
|
-
/* private async sqlcipherEncrypt(
|
|
3453
|
-
oDB: any,
|
|
3454
|
-
pathDB: string,
|
|
3455
|
-
password: string,
|
|
3456
|
-
): Promise<void> {
|
|
3457
|
-
oDB.serialize(() => {
|
|
3458
|
-
let stmt = `ATTACH DATABASE '${pathDB}' `;
|
|
3459
|
-
stmt += `AS encrypted KEY '${password}';`;
|
|
3460
|
-
oDB.run(stmt);
|
|
3461
|
-
oDB.run("SELECT sqlcipher_export('encrypted');");
|
|
3462
|
-
oDB.run('DETACH DATABASE encrypted;');
|
|
3463
|
-
});
|
|
3464
|
-
return Promise.resolve();
|
|
3465
|
-
}
|
|
3466
|
-
*/
|
|
3467
3461
|
}
|
|
3468
3462
|
/**
|
|
3469
3463
|
* EncryptDatabase
|
|
@@ -3474,16 +3468,10 @@ class UtilsEncryption {
|
|
|
3474
3468
|
const msg = 'EncryptDatabase: ';
|
|
3475
3469
|
const retB = this.fileUtil.isPathExists(pathDB);
|
|
3476
3470
|
if (retB) {
|
|
3477
|
-
const tempPath = this.fileUtil.getFilePath('temp.db');
|
|
3478
3471
|
try {
|
|
3479
|
-
await this.
|
|
3480
|
-
|
|
3481
|
-
const mDB = await this.sqliteUtil.openOrCreateDatabase(pathDB, '', true);
|
|
3482
|
-
this.sqliteUtil.pragmaReKey(oDB, '', password);
|
|
3483
|
-
this.sqliteUtil.closeDB(oDB);
|
|
3472
|
+
const mDB = await this.sqliteUtil.openOrCreateDatabase(pathDB, '', false);
|
|
3473
|
+
this.sqliteUtil.pragmaReKey(mDB, '', password);
|
|
3484
3474
|
this.sqliteUtil.closeDB(mDB);
|
|
3485
|
-
this.fileUtil.deleteFilePath(pathDB);
|
|
3486
|
-
this.fileUtil.renameFilePath(tempPath, pathDB);
|
|
3487
3475
|
return Promise.resolve();
|
|
3488
3476
|
}
|
|
3489
3477
|
catch (err) {
|
|
@@ -3520,7 +3508,6 @@ class UtilsSecret {
|
|
|
3520
3508
|
setEncryptSecret(passphrase) {
|
|
3521
3509
|
try {
|
|
3522
3510
|
let oldpassphrase = this.getPassphrase();
|
|
3523
|
-
console.log(`>>>> setEncryptSecret oldpassphrase: ${oldpassphrase}`);
|
|
3524
3511
|
if (oldpassphrase.length > 0) {
|
|
3525
3512
|
throw new Error(`setEncryptSecret: passphrase already stored`);
|
|
3526
3513
|
}
|
|
@@ -3529,7 +3516,6 @@ class UtilsSecret {
|
|
|
3529
3516
|
if (oldpassphrase.length <= 0) {
|
|
3530
3517
|
throw new Error(`setEncryptSecret: globalUtil is null`);
|
|
3531
3518
|
}
|
|
3532
|
-
console.log(`>>>> setEncryptSecret oldpassphrase: ${oldpassphrase}, passphrase ${passphrase}`);
|
|
3533
3519
|
// check if some databases were encrypted with the initial secret 'sqlite secret'
|
|
3534
3520
|
this.changeDatabaseSecret(oldpassphrase, passphrase).then(() => {
|
|
3535
3521
|
this.storage.set('userData', { passphrase: passphrase }, function (error) {
|
|
@@ -3583,20 +3569,13 @@ class UtilsSecret {
|
|
|
3583
3569
|
}
|
|
3584
3570
|
async changeDatabaseSecret(oldpassphrase, newpassphrase) {
|
|
3585
3571
|
try {
|
|
3586
|
-
console.log(`>>> changeDatabaseSecret oldpassphrase: ${oldpassphrase}`);
|
|
3587
|
-
console.log(`>>> changeDatabaseSecret newpassphrase: ${newpassphrase}`);
|
|
3588
3572
|
// get the database folder
|
|
3589
3573
|
const pathDatabase = this.fileUtil.getDatabasesPath();
|
|
3590
|
-
console.log(`>>> changeDatabaseSecret pathDatabase: ${pathDatabase}`);
|
|
3591
3574
|
// get the list of databases
|
|
3592
3575
|
const files = await this.fileUtil.getFileList(pathDatabase);
|
|
3593
|
-
|
|
3594
|
-
files.forEach(dbName => {
|
|
3595
|
-
console.log(`>>> changeDatabaseSecret dbName: ${dbName}`);
|
|
3576
|
+
files.forEach(async (dbName) => {
|
|
3596
3577
|
const filePath = this.fileUtil.getFilePath(dbName);
|
|
3597
|
-
|
|
3598
|
-
const isEncrypt = this.sqliteUtil.isDBEncrypted(filePath);
|
|
3599
|
-
console.log(`>>> changeDatabaseSecret isEncrypt: ${isEncrypt}`);
|
|
3578
|
+
const isEncrypt = await this.sqliteUtil.isDBEncrypted(filePath);
|
|
3600
3579
|
if (isEncrypt) {
|
|
3601
3580
|
this.sqliteUtil.changePassword(filePath, oldpassphrase, newpassphrase);
|
|
3602
3581
|
}
|
|
@@ -3609,7 +3588,6 @@ class UtilsSecret {
|
|
|
3609
3588
|
}
|
|
3610
3589
|
getPassphrase() {
|
|
3611
3590
|
const data = this.storage.getSync('userData');
|
|
3612
|
-
console.log(`>>>>>> data: `, data);
|
|
3613
3591
|
const keys = Object.keys(data);
|
|
3614
3592
|
if (data == null || keys.length <= 0)
|
|
3615
3593
|
return "";
|
|
@@ -3623,7 +3601,6 @@ class UtilsSecret {
|
|
|
3623
3601
|
setPassphrase(passphrase) {
|
|
3624
3602
|
const data = this.storage.getSync('userData');
|
|
3625
3603
|
data.passphrase = passphrase;
|
|
3626
|
-
console.log(`>>>>>> set data: `, data);
|
|
3627
3604
|
this.storage.set('userData', data, function (error) {
|
|
3628
3605
|
if (error)
|
|
3629
3606
|
throw new Error(`setPassphrase: ${error.message}`);
|
|
@@ -3632,7 +3609,6 @@ class UtilsSecret {
|
|
|
3632
3609
|
removePassphrase() {
|
|
3633
3610
|
const data = this.storage.getSync('userData');
|
|
3634
3611
|
delete data.passphrase;
|
|
3635
|
-
console.log(`>>>>>> set data: `, data);
|
|
3636
3612
|
this.storage.set('userData', data, function (error) {
|
|
3637
3613
|
if (error)
|
|
3638
3614
|
throw new Error(`removePassphrase: ${error.message}`);
|
|
@@ -4283,12 +4259,10 @@ class CapacitorSQLite {
|
|
|
4283
4259
|
const readonly = options.readonly ? options.readonly : false;
|
|
4284
4260
|
const connName = readonly ? 'RO_' + dbName : 'RW_' + dbName;
|
|
4285
4261
|
const database = this.getDatabaseConnectionOrThrowError(connName);
|
|
4286
|
-
console.log(`@@@@@ connName: ${connName}`);
|
|
4287
4262
|
try {
|
|
4288
4263
|
if (database.isDBOpen()) {
|
|
4289
4264
|
// close the database
|
|
4290
4265
|
database.dbClose();
|
|
4291
|
-
console.log(`@@@@@ after database.dbClose()`);
|
|
4292
4266
|
}
|
|
4293
4267
|
}
|
|
4294
4268
|
catch (err) {
|
|
@@ -4393,7 +4367,6 @@ class CapacitorSQLite {
|
|
|
4393
4367
|
throw new Error(`Execute: ${msg}`);
|
|
4394
4368
|
}
|
|
4395
4369
|
try {
|
|
4396
|
-
console.log(`in index.ts statements`);
|
|
4397
4370
|
const executeResult = database.executeSQL(statements, transaction);
|
|
4398
4371
|
if (executeResult < 0) {
|
|
4399
4372
|
throw new Error('Execute changes < 0');
|
|
@@ -4897,7 +4870,6 @@ class CapacitorSQLite {
|
|
|
4897
4870
|
throw new Error(`setEncryptionSecret: passphrase already in store`);
|
|
4898
4871
|
}
|
|
4899
4872
|
await this.closeAllConnections();
|
|
4900
|
-
console.log(`setEncryptionSecret after closeAllConnections`);
|
|
4901
4873
|
this.secretUtil.setEncryptSecret(passphrase);
|
|
4902
4874
|
return;
|
|
4903
4875
|
}
|
|
@@ -4915,8 +4887,6 @@ class CapacitorSQLite {
|
|
|
4915
4887
|
if (oldpassphrase.length <= 0) {
|
|
4916
4888
|
throw new Error(`changeEncryptionSecret: You must give the oldpassphrase`);
|
|
4917
4889
|
}
|
|
4918
|
-
console.log(`##### oldsecret: ${oldsecret}`);
|
|
4919
|
-
console.log(`##### oldpassphrase: ${oldpassphrase}`);
|
|
4920
4890
|
if (oldpassphrase !== oldsecret) {
|
|
4921
4891
|
throw new Error(`changeEncryptionSecret: the given oldpassphrase is wrong`);
|
|
4922
4892
|
}
|
|
@@ -4956,7 +4926,7 @@ class CapacitorSQLite {
|
|
|
4956
4926
|
async isDatabaseEncrypted(options) {
|
|
4957
4927
|
const dbName = this.getOptionValue(options, 'database');
|
|
4958
4928
|
try {
|
|
4959
|
-
const isEncrypt = this.sqliteUtil.isDatabaseEncrypted(dbName + 'SQLite.db');
|
|
4929
|
+
const isEncrypt = await this.sqliteUtil.isDatabaseEncrypted(dbName + 'SQLite.db');
|
|
4960
4930
|
return { result: isEncrypt };
|
|
4961
4931
|
}
|
|
4962
4932
|
catch (err) {
|