@capacitor-community/sqlite 4.6.1-1 → 4.6.1
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/README.md +10 -5
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLite.java +43 -20
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLitePlugin.java +31 -0
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsSecret.java +27 -0
- package/dist/esm/definitions.d.ts +15 -0
- package/dist/esm/definitions.js +11 -0
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/web.d.ts +1 -0
- package/dist/esm/web.js +4 -0
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +15 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +15 -0
- package/dist/plugin.js.map +1 -1
- package/electron/dist/plugin.js +28 -16
- package/electron/dist/plugin.js.map +1 -1
- package/ios/Plugin/CapacitorSQLite.swift +32 -6
- package/ios/Plugin/CapacitorSQLitePlugin.m +1 -0
- package/ios/Plugin/CapacitorSQLitePlugin.swift +31 -0
- package/ios/Plugin/Utils/UtilsSecret.swift +26 -0
- package/package.json +2 -2
|
@@ -258,6 +258,32 @@ enum CapacitorSQLiteError: Error {
|
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
+
// MARK: - CheckEncryptionSecret
|
|
262
|
+
|
|
263
|
+
@objc public func checkEncryptionSecret(passphrase: String) throws -> NSNumber {
|
|
264
|
+
if isInit {
|
|
265
|
+
if isEncryption {
|
|
266
|
+
do {
|
|
267
|
+
// close all connections
|
|
268
|
+
try closeAllConnections()
|
|
269
|
+
// check encryption secret
|
|
270
|
+
let res: NSNumber = try UtilsSecret
|
|
271
|
+
.checkEncryptionSecret(prefix: prefixKeychain,
|
|
272
|
+
passphrase: passphrase)
|
|
273
|
+
return res
|
|
274
|
+
} catch UtilsSecretError.checkEncryptionSecret(let message) {
|
|
275
|
+
throw CapacitorSQLiteError.failed(message: message)
|
|
276
|
+
} catch let error {
|
|
277
|
+
throw CapacitorSQLiteError.failed(message: "\(error)")
|
|
278
|
+
}
|
|
279
|
+
} else {
|
|
280
|
+
throw CapacitorSQLiteError.failed(message: "No Encryption set in capacitor.config")
|
|
281
|
+
}
|
|
282
|
+
} else {
|
|
283
|
+
throw CapacitorSQLiteError.failed(message: initMessage)
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
|
|
261
287
|
// MARK: - getNCDatabasePath
|
|
262
288
|
|
|
263
289
|
@objc public func getNCDatabasePath(_ folderPath: String, dbName: String ) throws -> String {
|
|
@@ -1244,6 +1270,7 @@ enum CapacitorSQLiteError: Error {
|
|
|
1244
1270
|
throws -> [Int: [String: Any]] {
|
|
1245
1271
|
if isInit {
|
|
1246
1272
|
var upgDict: [String: Any] = [:]
|
|
1273
|
+
var upgVersionDict: [Int: [String: Any]] = [:]
|
|
1247
1274
|
for dict in upgrade {
|
|
1248
1275
|
let keys = dict.keys
|
|
1249
1276
|
if !(keys.contains("toVersion")) || !(keys.contains("statements")) {
|
|
@@ -1254,13 +1281,12 @@ enum CapacitorSQLiteError: Error {
|
|
|
1254
1281
|
for (key, value) in dict {
|
|
1255
1282
|
upgDict[key] = value
|
|
1256
1283
|
}
|
|
1284
|
+
guard let toVersion = upgDict["toVersion"] as? Int else {
|
|
1285
|
+
let msg: String = "toVersion key must be an Int"
|
|
1286
|
+
throw CapacitorSQLiteError.failed(message: msg)
|
|
1287
|
+
}
|
|
1288
|
+
upgVersionDict[toVersion] = upgDict
|
|
1257
1289
|
}
|
|
1258
|
-
guard let toVersion = upgDict["toVersion"] as? Int else {
|
|
1259
|
-
let msg: String = "toVersion key must be an Int"
|
|
1260
|
-
throw CapacitorSQLiteError.failed(message: msg)
|
|
1261
|
-
}
|
|
1262
|
-
let upgVersionDict: [Int: [String: Any]] =
|
|
1263
|
-
[toVersion: upgDict]
|
|
1264
1290
|
return upgVersionDict
|
|
1265
1291
|
} else {
|
|
1266
1292
|
throw CapacitorSQLiteError.failed(message: initMessage)
|
|
@@ -45,4 +45,5 @@ CAP_PLUGIN(CapacitorSQLitePlugin, "CapacitorSQLite",
|
|
|
45
45
|
CAP_PLUGIN_METHOD(changeEncryptionSecret, CAPPluginReturnPromise);
|
|
46
46
|
CAP_PLUGIN_METHOD(clearEncryptionSecret, CAPPluginReturnPromise);
|
|
47
47
|
CAP_PLUGIN_METHOD(getFromHTTPRequest, CAPPluginReturnPromise);
|
|
48
|
+
CAP_PLUGIN_METHOD(checkEncryptionSecret, CAPPluginReturnPromise);
|
|
48
49
|
)
|
|
@@ -143,6 +143,37 @@ public class CapacitorSQLitePlugin: CAPPlugin {
|
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
|
|
146
|
+
// MARK: - CheckEncryptionSecret
|
|
147
|
+
|
|
148
|
+
@objc func checkEncryptionSecret(_ call: CAPPluginCall) {
|
|
149
|
+
|
|
150
|
+
guard let passphrase = call.options["passphrase"] as? String else {
|
|
151
|
+
retHandler.rResult(
|
|
152
|
+
call: call,
|
|
153
|
+
message: "CheckEncryptionSecret: Must provide a passphrase")
|
|
154
|
+
return
|
|
155
|
+
}
|
|
156
|
+
do {
|
|
157
|
+
let res = try implementation?
|
|
158
|
+
.checkEncryptionSecret(passphrase: passphrase)
|
|
159
|
+
var bRes: Bool = false
|
|
160
|
+
if res == 1 {
|
|
161
|
+
bRes = true
|
|
162
|
+
}
|
|
163
|
+
retHandler.rResult(call: call, ret: bRes)
|
|
164
|
+
return
|
|
165
|
+
} catch CapacitorSQLiteError.failed(let message) {
|
|
166
|
+
let msg = "CheckEncryptionSecret: \(message)"
|
|
167
|
+
retHandler.rResult(call: call, message: msg)
|
|
168
|
+
return
|
|
169
|
+
} catch let error {
|
|
170
|
+
retHandler.rResult(
|
|
171
|
+
call: call,
|
|
172
|
+
message: "CheckEncryptionSecret: \(error)")
|
|
173
|
+
return
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
146
177
|
// MARK: - CreateConnection
|
|
147
178
|
|
|
148
179
|
@objc func createConnection(_ call: CAPPluginCall) {
|
|
@@ -15,6 +15,7 @@ enum UtilsSecretError: Error {
|
|
|
15
15
|
case setEncryptionSecret(message: String)
|
|
16
16
|
case changeEncryptionSecret(message: String)
|
|
17
17
|
case clearEncryptionSecret(message: String)
|
|
18
|
+
case checkEncryptionSecret(message: String)
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
let oldAccount: String = "CapacitorSQLitePlugin"
|
|
@@ -259,4 +260,29 @@ class UtilsSecret {
|
|
|
259
260
|
}
|
|
260
261
|
|
|
261
262
|
}
|
|
263
|
+
|
|
264
|
+
// MARK: - CheckEncryptionSecret
|
|
265
|
+
|
|
266
|
+
class func checkEncryptionSecret(prefix: String, passphrase: String) throws -> NSNumber {
|
|
267
|
+
var ret: NSNumber = 0
|
|
268
|
+
if prefix.isEmpty {
|
|
269
|
+
let msg: String = "keychain prefix must not be empty"
|
|
270
|
+
throw UtilsSecretError.checkEncryptionSecret(message: msg)
|
|
271
|
+
}
|
|
272
|
+
if passphrase.isEmpty {
|
|
273
|
+
let msg: String = "passphrase must not be empty"
|
|
274
|
+
throw UtilsSecretError.checkEncryptionSecret(message: msg)
|
|
275
|
+
}
|
|
276
|
+
// get encrypted passphrase
|
|
277
|
+
let account = "\(prefix)_\(oldAccount)"
|
|
278
|
+
let storedPassPhrase = getPassphrase(account: account)
|
|
279
|
+
if storedPassPhrase.isEmpty {
|
|
280
|
+
let msg: String = "no passphrase stored in keychain"
|
|
281
|
+
throw UtilsSecretError.checkEncryptionSecret(message: msg)
|
|
282
|
+
}
|
|
283
|
+
if storedPassPhrase == passphrase {
|
|
284
|
+
ret = 1
|
|
285
|
+
}
|
|
286
|
+
return ret
|
|
287
|
+
}
|
|
262
288
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capacitor-community/sqlite",
|
|
3
|
-
"version": "4.6.1
|
|
3
|
+
"version": "4.6.1",
|
|
4
4
|
"description": "Community plugin for native & electron SQLite databases",
|
|
5
5
|
"main": "dist/plugin.cjs.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -93,6 +93,6 @@
|
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
"dependencies": {
|
|
96
|
-
"jeep-sqlite": "^1.
|
|
96
|
+
"jeep-sqlite": "^1.7.0"
|
|
97
97
|
}
|
|
98
98
|
}
|