@capgo/capacitor-updater 6.39.0 → 6.40.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.
@@ -45,7 +45,8 @@ public struct CryptoCipher {
45
45
  if isHexString(checksum) {
46
46
  // Hex encoded (new format from CLI for plugin versions >= 5.30.0, 6.30.0, 7.30.0)
47
47
  guard let hexData = hexStringToData(checksum) else {
48
- logger.error("Cannot decode checksum as hex: \(checksum)")
48
+ logger.error("Cannot decode checksum as hex")
49
+ logger.debug("Checksum value: \(checksum)")
49
50
  throw CustomError.cannotDecode
50
51
  }
51
52
  checksumBytes = hexData
@@ -54,7 +55,8 @@ public struct CryptoCipher {
54
55
  // TODO: remove backwards compatibility
55
56
  // Base64 encoded (old format for backwards compatibility)
56
57
  guard let base64Data = Data(base64Encoded: checksum) else {
57
- logger.error("Cannot decode checksum as base64: \(checksum)")
58
+ logger.error("Cannot decode checksum as base64")
59
+ logger.debug("Checksum value: \(checksum)")
58
60
  throw CustomError.cannotDecode
59
61
  }
60
62
  checksumBytes = base64Data
@@ -86,15 +88,17 @@ public struct CryptoCipher {
86
88
  detectedAlgorithm = "SHA-256"
87
89
  } else if decryptedChecksum.count == 4 {
88
90
  detectedAlgorithm = "CRC32 (deprecated)"
89
- logger.error("CRC32 checksum detected. This algorithm is deprecated and no longer supported. Please update your CLI to use SHA-256 checksums.")
91
+ logger.error("CRC32 checksum detected - deprecated algorithm")
90
92
  } else {
91
93
  detectedAlgorithm = "unknown (\(decryptedChecksum.count) bytes)"
92
- logger.error("Unknown checksum algorithm detected with \(decryptedChecksum.count) bytes. Expected SHA-256 (32 bytes).")
94
+ logger.error("Unknown checksum algorithm detected")
95
+ logger.debug("Byte count: \(decryptedChecksum.count), Expected: 32 (SHA-256)")
93
96
  }
94
97
  logger.debug("Decrypted checksum: \(detectedAlgorithm) hex format (length: \(result.count) chars, \(decryptedChecksum.count) bytes)")
95
98
  return result
96
99
  } catch {
97
- logger.error("decryptChecksum fail: \(error.localizedDescription)")
100
+ logger.error("Checksum decryption failed")
101
+ logger.debug("Error: \(error.localizedDescription)")
98
102
  throw CustomError.cannotDecode
99
103
  }
100
104
  }
@@ -121,9 +125,10 @@ public struct CryptoCipher {
121
125
  let algorithm = detectChecksumAlgorithm(hexChecksum)
122
126
  logger.debug("\(label): \(algorithm) hex format (length: \(hexChecksum.count) chars)")
123
127
  if algorithm.contains("CRC32") {
124
- logger.error("CRC32 checksum detected. This algorithm is deprecated and no longer supported. Please update your CLI to use SHA-256 checksums.")
128
+ logger.error("CRC32 checksum detected - deprecated algorithm")
125
129
  } else if algorithm.contains("unknown") {
126
- logger.error("Unknown checksum algorithm detected. Expected SHA-256 (64 hex chars) but got \(hexChecksum.count) chars.")
130
+ logger.error("Unknown checksum algorithm detected")
131
+ logger.debug("Char count: \(hexChecksum.count), Expected: 64 (SHA-256)")
127
132
  }
128
133
  }
129
134
 
@@ -136,7 +141,8 @@ public struct CryptoCipher {
136
141
  do {
137
142
  fileHandle = try FileHandle(forReadingFrom: filePath)
138
143
  } catch {
139
- logger.error("Cannot open file for checksum: \(filePath.path) \(error)")
144
+ logger.error("Cannot open file for checksum calculation")
145
+ logger.debug("Path: \(filePath.path), Error: \(error)")
140
146
  return ""
141
147
  }
142
148
 
@@ -144,20 +150,18 @@ public struct CryptoCipher {
144
150
  do {
145
151
  try fileHandle.close()
146
152
  } catch {
147
- logger.error("Error closing file: \(error)")
153
+ logger.error("Error closing file during checksum")
154
+ logger.debug("Error: \(error)")
148
155
  }
149
156
  }
150
157
 
151
158
  while autoreleasepool(invoking: {
152
159
  let fileData: Data
153
160
  do {
154
- if #available(iOS 13.4, *) {
155
- fileData = try fileHandle.read(upToCount: bufferSize) ?? Data()
156
- } else {
157
- fileData = fileHandle.readData(ofLength: bufferSize)
158
- }
161
+ fileData = try fileHandle.read(upToCount: bufferSize) ?? Data()
159
162
  } catch {
160
- logger.error("Error reading file: \(error)")
163
+ logger.error("Error reading file during checksum")
164
+ logger.debug("Error: \(error)")
161
165
  return false
162
166
  }
163
167
 
@@ -172,7 +176,8 @@ public struct CryptoCipher {
172
176
  let digest = sha256.finalize()
173
177
  return digest.compactMap { String(format: "%02x", $0) }.joined()
174
178
  } catch {
175
- logger.error("Cannot get checksum: \(filePath.path) \(error)")
179
+ logger.error("Cannot calculate checksum")
180
+ logger.debug("Path: \(filePath.path), Error: \(error)")
176
181
  return ""
177
182
  }
178
183
  }
@@ -199,17 +204,20 @@ public struct CryptoCipher {
199
204
  let encryptedKeyBase64 = sessionKeyComponents[1]
200
205
 
201
206
  guard let ivData = Data(base64Encoded: ivBase64) else {
202
- logger.error("Cannot decode sessionKey IV \(ivBase64)")
207
+ logger.error("Cannot decode sessionKey IV")
208
+ logger.debug("IV value: \(ivBase64)")
203
209
  throw CustomError.cannotDecode
204
210
  }
205
211
 
206
212
  if ivData.count != 16 {
207
- logger.error("IV data has invalid length: \(ivData.count), expected 16")
213
+ logger.error("IV data has invalid length")
214
+ logger.debug("Length: \(ivData.count), Expected: 16")
208
215
  throw CustomError.cannotDecode
209
216
  }
210
217
 
211
218
  guard let sessionKeyDataEncrypted = Data(base64Encoded: encryptedKeyBase64) else {
212
- logger.error("Cannot decode sessionKey data \(encryptedKeyBase64)")
219
+ logger.error("Cannot decode sessionKey data")
220
+ logger.debug("Key value: \(encryptedKeyBase64)")
213
221
  throw NSError(domain: "Invalid session key data", code: 1, userInfo: nil)
214
222
  }
215
223
 
@@ -219,7 +227,8 @@ public struct CryptoCipher {
219
227
  }
220
228
 
221
229
  if sessionKeyDataDecrypted.count != 16 {
222
- logger.error("Decrypted session key has invalid length: \(sessionKeyDataDecrypted.count), expected 16")
230
+ logger.error("Decrypted session key has invalid length")
231
+ logger.debug("Length: \(sessionKeyDataDecrypted.count), Expected: 16")
223
232
  throw NSError(domain: "Invalid decrypted session key", code: 5, userInfo: nil)
224
233
  }
225
234
 
@@ -229,7 +238,8 @@ public struct CryptoCipher {
229
238
  do {
230
239
  encryptedData = try Data(contentsOf: filePath)
231
240
  } catch {
232
- logger.error("Failed to read encrypted data: \(error)")
241
+ logger.error("Failed to read encrypted data")
242
+ logger.debug("Error: \(error)")
233
243
  throw NSError(domain: "Failed to read encrypted data", code: 3, userInfo: nil)
234
244
  }
235
245
 
@@ -255,12 +265,13 @@ public struct CryptoCipher {
255
265
  throw NSError(domain: "File write failed", code: 8, userInfo: nil)
256
266
  }
257
267
  } catch {
258
- logger.error("Error writing decrypted file: \(error)")
268
+ logger.error("Error writing decrypted file")
269
+ logger.debug("Error: \(error)")
259
270
  throw error
260
271
  }
261
272
 
262
273
  } catch {
263
- logger.error("decryptFile fail")
274
+ logger.error("File decryption failed")
264
275
  throw CustomError.cannotDecode
265
276
  }
266
277
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/capacitor-updater",
3
- "version": "6.39.0",
3
+ "version": "6.40.2",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Live update for capacitor apps",
6
6
  "main": "dist/plugin.cjs.js",
@@ -24,6 +24,7 @@
24
24
  "bugs": {
25
25
  "url": "https://github.com/Cap-go/capacitor-updater/issues"
26
26
  },
27
+ "homepage": "https://capgo.app/docs/plugins/updater/",
27
28
  "keywords": [
28
29
  "capacitor",
29
30
  "live updates",
@@ -36,8 +37,7 @@
36
37
  "OTA",
37
38
  "ionic",
38
39
  "appflow alternative",
39
- "capawesome alternative",
40
- "@capawesome/capacitor-live-update",
40
+ "microsoft alternative",
41
41
  "native"
42
42
  ],
43
43
  "scripts": {
@@ -51,7 +51,7 @@
51
51
  "lint": "npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint",
52
52
  "fmt": "npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format",
53
53
  "eslint": "eslint . --ext .ts",
54
- "prettier": "prettier \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java",
54
+ "prettier": "prettier-pretty-check \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java",
55
55
  "swiftlint": "node-swiftlint",
56
56
  "docgen": "node scripts/generate-docs.js",
57
57
  "build": "npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs",
@@ -77,7 +77,8 @@
77
77
  "rimraf": "^6.0.1",
78
78
  "rollup": "^4.50.0",
79
79
  "swiftlint": "^2.0.0",
80
- "typescript": "^5.9.2"
80
+ "typescript": "^5.9.2",
81
+ "prettier-pretty-check": "^0.2.0"
81
82
  },
82
83
  "peerDependencies": {
83
84
  "@capacitor/core": "^6.0.0"