@onekeyfe/react-native-range-downloader 3.0.81-alpha.0 → 3.0.81-alpha.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.
Files changed (22) hide show
  1. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactStore.kt +59 -127
  2. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/ReactNativeRangeDownloader.kt +1 -9
  3. package/android/src/test/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactDeadlineTest.kt +26 -0
  4. package/ios/FirmwareArtifactStore.swift +68 -146
  5. package/ios/ReactNativeRangeDownloader.swift +15 -29
  6. package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts +0 -4
  7. package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts.map +1 -1
  8. package/nitrogen/generated/android/c++/JHybridReactNativeRangeDownloaderSpec.cpp +0 -19
  9. package/nitrogen/generated/android/c++/JHybridReactNativeRangeDownloaderSpec.hpp +0 -1
  10. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/HybridReactNativeRangeDownloaderSpec.kt +0 -4
  11. package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Umbrella.hpp +0 -3
  12. package/nitrogen/generated/ios/c++/HybridReactNativeRangeDownloaderSpecSwift.hpp +0 -11
  13. package/nitrogen/generated/ios/swift/HybridReactNativeRangeDownloaderSpec.swift +0 -1
  14. package/nitrogen/generated/ios/swift/HybridReactNativeRangeDownloaderSpec_cxx.swift +0 -19
  15. package/nitrogen/generated/shared/c++/HybridReactNativeRangeDownloaderSpec.cpp +0 -1
  16. package/nitrogen/generated/shared/c++/HybridReactNativeRangeDownloaderSpec.hpp +0 -4
  17. package/package.json +2 -2
  18. package/src/ReactNativeRangeDownloader.nitro.ts +1 -8
  19. package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseReconcileParams.hpp +0 -76
  20. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseReconcileParams.kt +0 -38
  21. package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseReconcileParams.swift +0 -48
  22. package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseReconcileParams.hpp +0 -76
@@ -2,6 +2,33 @@ import CryptoKit
2
2
  import Foundation
3
3
  import SniConnect
4
4
 
5
+ func isFirmwareArtifactTLSError(_ error: Error) -> Bool {
6
+ var current: NSError? = error as NSError
7
+ var visited = Set<ObjectIdentifier>()
8
+ while let candidate = current {
9
+ let identifier = ObjectIdentifier(candidate)
10
+ guard visited.insert(identifier).inserted else {
11
+ break
12
+ }
13
+ if candidate.domain == NSURLErrorDomain,
14
+ [
15
+ NSURLErrorSecureConnectionFailed,
16
+ NSURLErrorServerCertificateHasBadDate,
17
+ NSURLErrorServerCertificateUntrusted,
18
+ NSURLErrorServerCertificateHasUnknownRoot,
19
+ NSURLErrorServerCertificateNotYetValid,
20
+ NSURLErrorClientCertificateRejected,
21
+ NSURLErrorClientCertificateRequired,
22
+ NSURLErrorAppTransportSecurityRequiresSecureConnection,
23
+ ].contains(candidate.code)
24
+ {
25
+ return true
26
+ }
27
+ current = candidate.userInfo[NSUnderlyingErrorKey] as? NSError
28
+ }
29
+ return false
30
+ }
31
+
5
32
  enum FirmwareArtifactStoreError: Error {
6
33
  case invalidInput(String)
7
34
  case downloadFailed(String)
@@ -79,8 +106,8 @@ private actor FirmwareArtifactDownloadCoordinator {
79
106
  final class FirmwareArtifactStore {
80
107
  static let shared = FirmwareArtifactStore()
81
108
  static let maxReadBytes = 256 * 1024
82
- private static let maxLeaseMetadataBytes: Int64 = 1024 * 1024
83
- private static let maxTotalLeaseRefs = 8192
109
+ private static let defaultDownloadDeadline: TimeInterval = 180
110
+ private static let maxDownloadDeadline: TimeInterval = 24 * 60 * 60
84
111
  private static let finalArtifactGrace: TimeInterval = 24 * 60 * 60
85
112
  private static let partialArtifactGrace: TimeInterval = 7 * 24 * 60 * 60
86
113
 
@@ -90,16 +117,11 @@ final class FirmwareArtifactStore {
90
117
  let size: Int64
91
118
  }
92
119
 
93
- private struct LeaseState: Codable {
120
+ private struct LeaseState {
94
121
  let transactionId: String
95
122
  var artifactRefs: Set<String>
96
123
  }
97
124
 
98
- private struct LeaseEnvelope: Codable {
99
- let schemaVersion: Int
100
- var leases: [String: LeaseState]
101
- }
102
-
103
125
  private let fileManager = FileManager.default
104
126
  private let downloadCoordinator = FirmwareArtifactDownloadCoordinator()
105
127
  private let leaseLock = NSLock()
@@ -109,6 +131,7 @@ final class FirmwareArtifactStore {
109
131
  private var cancelledTransactions: Set<String> = []
110
132
  private let readerLock = NSLock()
111
133
  private var readers: [String: OpenReader] = [:]
134
+ private var leases: [String: LeaseState] = [:]
112
135
 
113
136
  private lazy var rootURL: URL = {
114
137
  let base = fileManager.urls(
@@ -170,6 +193,14 @@ final class FirmwareArtifactStore {
170
193
  guard params.routeType == "domain" || params.routeType == "pinnedIp" else {
171
194
  throw FirmwareArtifactStoreError.invalidInput("Invalid firmware route type")
172
195
  }
196
+ let deadline = params.overallDeadlineSeconds ?? defaultDownloadDeadline
197
+ guard
198
+ deadline.isFinite,
199
+ deadline > 0,
200
+ deadline <= maxDownloadDeadline
201
+ else {
202
+ throw FirmwareArtifactStoreError.invalidInput("Invalid firmware download deadline")
203
+ }
173
204
  if params.routeType == "pinnedIp" {
174
205
  guard let resolvedIp = params.resolvedIp, !resolvedIp.isEmpty else {
175
206
  throw FirmwareArtifactStoreError.invalidInput("Pinned route requires resolvedIp")
@@ -188,8 +219,7 @@ final class FirmwareArtifactStore {
188
219
  transactionId: params.transactionId,
189
220
  artifactRef: "fw:\(expectedSha256)"
190
221
  )
191
- let key =
192
- "\(params.transactionId):\(expectedSha256):\(Int64(params.expectedSize))"
222
+ let key = "\(expectedSha256):\(Int64(params.expectedSize))"
193
223
  markDownloadActive(expectedSha256, delta: 1)
194
224
  do {
195
225
  let artifact = try await downloadCoordinator.run(
@@ -202,6 +232,7 @@ final class FirmwareArtifactStore {
202
232
  expectedSha256: expectedSha256
203
233
  )
204
234
  }
235
+ try rejectIfCancelled(transactionId: params.transactionId)
205
236
  markDownloadActive(expectedSha256, delta: -1)
206
237
  return artifact
207
238
  } catch {
@@ -309,17 +340,12 @@ final class FirmwareArtifactStore {
309
340
 
310
341
  func acceptBackgroundDownload(
311
342
  temporaryURL: URL,
312
- leaseRef: String,
313
343
  transactionId: String,
314
344
  expectedSize: Int64,
315
345
  expectedSha256: String
316
346
  ) throws -> StoredFirmwareArtifact {
317
347
  let normalizedExpectedSha256 = expectedSha256.lowercased()
318
- try retainExpectedArtifact(
319
- leaseRef: leaseRef,
320
- transactionId: transactionId,
321
- artifactRef: "fw:\(normalizedExpectedSha256)"
322
- )
348
+ try rejectIfCancelled(transactionId: transactionId)
323
349
  let finalURL = artifactURL(sha256: normalizedExpectedSha256)
324
350
  if let existing = try? validateStoredArtifact(
325
351
  fileURL: finalURL,
@@ -360,14 +386,8 @@ final class FirmwareArtifactStore {
360
386
  func discard(artifactRef: String) throws {
361
387
  let fileURL = try resolveArtifactURL(artifactRef)
362
388
  leaseLock.lock()
363
- let isRetained: Bool
364
- do {
365
- isRetained = try loadLeasesLocked().leases.values.contains {
366
- $0.artifactRefs.contains(artifactRef)
367
- }
368
- } catch {
369
- leaseLock.unlock()
370
- throw error
389
+ let isRetained = leases.values.contains {
390
+ $0.artifactRefs.contains(artifactRef)
371
391
  }
372
392
  leaseLock.unlock()
373
393
  guard !isRetained else {
@@ -566,18 +586,16 @@ final class FirmwareArtifactStore {
566
586
  }
567
587
  leaseLock.lock()
568
588
  defer { leaseLock.unlock() }
569
- var envelope = try loadLeasesLocked()
570
- guard envelope.leases.count < 32 else {
589
+ guard leases.count < 32 else {
571
590
  throw FirmwareArtifactStoreError.invalidInput(
572
591
  "Too many firmware artifact leases"
573
592
  )
574
593
  }
575
594
  let leaseRef = "fwlease:\(UUID().uuidString.lowercased())"
576
- envelope.leases[leaseRef] = LeaseState(
595
+ leases[leaseRef] = LeaseState(
577
596
  transactionId: transactionId,
578
597
  artifactRefs: []
579
598
  )
580
- try saveLeasesLocked(envelope)
581
599
  return leaseRef
582
600
  }
583
601
 
@@ -603,9 +621,8 @@ final class FirmwareArtifactStore {
603
621
  let transactionId: String = try {
604
622
  leaseLock.lock()
605
623
  defer { leaseLock.unlock() }
606
- var envelope = try loadLeasesLocked()
607
624
  guard
608
- let lease = envelope.leases.removeValue(
625
+ let lease = leases.removeValue(
609
626
  forKey: try validateLeaseRef(leaseRef)
610
627
  )
611
628
  else {
@@ -613,7 +630,6 @@ final class FirmwareArtifactStore {
613
630
  "Firmware artifact lease is unavailable"
614
631
  )
615
632
  }
616
- try saveLeasesLocked(envelope)
617
633
  return lease.transactionId
618
634
  }()
619
635
  cancellationLock.withFirmwareArtifactLock {
@@ -621,43 +637,13 @@ final class FirmwareArtifactStore {
621
637
  }
622
638
  }
623
639
 
624
- func reconcileLeases(activeLeaseRefs: [String]) throws {
625
- guard activeLeaseRefs.count <= 32 else {
626
- throw FirmwareArtifactStoreError.invalidInput(
627
- "Too many active firmware artifact leases"
628
- )
629
- }
630
- let active = try Set(activeLeaseRefs.map(validateLeaseRef))
631
- guard active.count == activeLeaseRefs.count else {
632
- throw FirmwareArtifactStoreError.invalidInput(
633
- "Duplicate active firmware artifact lease"
634
- )
635
- }
636
- leaseLock.lock()
637
- defer { leaseLock.unlock() }
638
- var envelope = try loadLeasesLocked()
639
- guard active.allSatisfy({ envelope.leases[$0] != nil }) else {
640
- throw FirmwareArtifactStoreError.invalidInput(
641
- "Firmware artifact lease reconciliation is incomplete"
642
- )
643
- }
644
- envelope.leases = envelope.leases.filter { active.contains($0.key) }
645
- try saveLeasesLocked(envelope)
646
- }
647
-
648
640
  func sweepOrphans() throws -> (deletedFiles: Int, deletedBytes: Int64) {
649
641
  leaseLock.lock()
650
- let retained: Set<String>
651
- do {
652
- retained = Set(
653
- try loadLeasesLocked().leases.values
654
- .flatMap(\.artifactRefs)
655
- .map { String($0.dropFirst(3)) }
656
- )
657
- } catch {
658
- leaseLock.unlock()
659
- throw error
660
- }
642
+ let retained = Set(
643
+ leases.values
644
+ .flatMap(\.artifactRefs)
645
+ .map { String($0.dropFirst(3)) }
646
+ )
661
647
  leaseLock.unlock()
662
648
  activeDownloadLock.lock()
663
649
  let active = Set(activeDownloadCounts.filter { $0.value > 0 }.keys)
@@ -676,7 +662,7 @@ final class FirmwareArtifactStore {
676
662
  )
677
663
  for fileURL in files {
678
664
  let name = fileURL.lastPathComponent
679
- guard name != "leases.json", name.count >= 64 else { continue }
665
+ guard name.count >= 64 else { continue }
680
666
  let sha256 = String(name.prefix(64))
681
667
  guard
682
668
  sha256.range(of: "^[a-f0-9]{64}$", options: .regularExpression) != nil,
@@ -714,7 +700,7 @@ final class FirmwareArtifactStore {
714
700
  private func requireLease(_ leaseRef: String) throws {
715
701
  leaseLock.lock()
716
702
  defer { leaseLock.unlock() }
717
- guard try loadLeasesLocked().leases[validateLeaseRef(leaseRef)] != nil else {
703
+ guard leases[try validateLeaseRef(leaseRef)] != nil else {
718
704
  throw FirmwareArtifactStoreError.invalidInput(
719
705
  "Firmware artifact lease is unavailable"
720
706
  )
@@ -736,9 +722,8 @@ final class FirmwareArtifactStore {
736
722
  }
737
723
  leaseLock.lock()
738
724
  defer { leaseLock.unlock() }
739
- var envelope = try loadLeasesLocked()
740
725
  let validatedLeaseRef = try validateLeaseRef(leaseRef)
741
- guard var lease = envelope.leases[validatedLeaseRef] else {
726
+ guard var lease = leases[validatedLeaseRef] else {
742
727
  throw FirmwareArtifactStoreError.invalidInput(
743
728
  "Firmware artifact lease is unavailable"
744
729
  )
@@ -749,8 +734,7 @@ final class FirmwareArtifactStore {
749
734
  )
750
735
  }
751
736
  if lease.artifactRefs.insert(artifactRef).inserted {
752
- envelope.leases[validatedLeaseRef] = lease
753
- try saveLeasesLocked(envelope)
737
+ leases[validatedLeaseRef] = lease
754
738
  }
755
739
  }
756
740
 
@@ -777,79 +761,6 @@ final class FirmwareArtifactStore {
777
761
  ) != nil
778
762
  }
779
763
 
780
- private func loadLeasesLocked() throws -> LeaseEnvelope {
781
- let url = rootURL.appendingPathComponent("leases.json", isDirectory: false)
782
- guard fileManager.fileExists(atPath: url.path) else {
783
- return LeaseEnvelope(schemaVersion: 1, leases: [:])
784
- }
785
- let fileSize = try url.resourceValues(forKeys: [.fileSizeKey]).fileSize ?? 0
786
- guard fileSize > 0, Int64(fileSize) <= Self.maxLeaseMetadataBytes else {
787
- throw FirmwareArtifactStoreError.invalidInput(
788
- "Firmware lease metadata is too large"
789
- )
790
- }
791
- let envelope = try JSONDecoder().decode(
792
- LeaseEnvelope.self,
793
- from: Data(contentsOf: url)
794
- )
795
- guard envelope.schemaVersion == 1, envelope.leases.count <= 32 else {
796
- throw FirmwareArtifactStoreError.invalidInput(
797
- "Unsupported firmware lease schema"
798
- )
799
- }
800
- guard
801
- envelope.leases.values.reduce(0, { $0 + $1.artifactRefs.count })
802
- <= Self.maxTotalLeaseRefs
803
- else {
804
- throw FirmwareArtifactStoreError.invalidInput(
805
- "Firmware lease metadata is too large"
806
- )
807
- }
808
- for (leaseRef, lease) in envelope.leases {
809
- guard
810
- Self.isValidLeaseRef(leaseRef),
811
- Self.isSafeIdentifier(lease.transactionId),
812
- lease.artifactRefs.count <= 4096,
813
- lease.artifactRefs.allSatisfy({
814
- $0.range(
815
- of: "^fw:[a-f0-9]{64}$",
816
- options: .regularExpression
817
- ) != nil
818
- })
819
- else {
820
- throw FirmwareArtifactStoreError.invalidInput(
821
- "Invalid persisted firmware lease"
822
- )
823
- }
824
- }
825
- return envelope
826
- }
827
-
828
- private func saveLeasesLocked(_ envelope: LeaseEnvelope) throws {
829
- guard
830
- envelope.schemaVersion == 1,
831
- envelope.leases.count <= 32,
832
- envelope.leases.values.allSatisfy({
833
- $0.artifactRefs.count <= 4096
834
- }),
835
- envelope.leases.values.reduce(0, {
836
- $0 + $1.artifactRefs.count
837
- }) <= Self.maxTotalLeaseRefs
838
- else {
839
- throw FirmwareArtifactStoreError.invalidInput(
840
- "Firmware lease metadata is too large"
841
- )
842
- }
843
- let data = try JSONEncoder().encode(envelope)
844
- guard Int64(data.count) <= Self.maxLeaseMetadataBytes else {
845
- throw FirmwareArtifactStoreError.invalidInput(
846
- "Firmware lease metadata is too large"
847
- )
848
- }
849
- let url = rootURL.appendingPathComponent("leases.json", isDirectory: false)
850
- try data.write(to: url, options: [.atomic])
851
- }
852
-
853
764
  private func markDownloadActive(_ sha256: String, delta: Int) {
854
765
  activeDownloadLock.lock()
855
766
  let next = (activeDownloadCounts[sha256] ?? 0) + delta
@@ -1008,7 +919,8 @@ final class FirmwareArtifactStore {
1008
919
  }
1009
920
  var request = URLRequest(url: url)
1010
921
  request.cachePolicy = .reloadIgnoringLocalCacheData
1011
- request.timeoutInterval = params.overallDeadlineSeconds ?? 180
922
+ request.timeoutInterval =
923
+ params.overallDeadlineSeconds ?? Self.defaultDownloadDeadline
1012
924
  request.setValue("identity", forHTTPHeaderField: "Accept-Encoding")
1013
925
  if resumeOffset > 0 {
1014
926
  request.setValue("bytes=\(resumeOffset)-", forHTTPHeaderField: "Range")
@@ -1050,6 +962,11 @@ final class FirmwareArtifactStore {
1050
962
  "ARTIFACT_CANCELLED: firmware artifact download was cancelled"
1051
963
  )
1052
964
  }
965
+ if isFirmwareArtifactTLSError(error) {
966
+ throw FirmwareArtifactStoreError.downloadFailed(
967
+ "ARTIFACT_TLS_FAILED: firmware TLS validation failed"
968
+ )
969
+ }
1053
970
  throw FirmwareArtifactStoreError.downloadFailed(
1054
971
  "ARTIFACT_NETWORK_FAILED: firmware request failed"
1055
972
  )
@@ -1113,6 +1030,11 @@ final class FirmwareArtifactStore {
1113
1030
  "ARTIFACT_CANCELLED: firmware artifact download was cancelled"
1114
1031
  )
1115
1032
  }
1033
+ if isFirmwareArtifactTLSError(error) {
1034
+ throw FirmwareArtifactStoreError.downloadFailed(
1035
+ "ARTIFACT_TLS_FAILED: firmware TLS validation failed"
1036
+ )
1037
+ }
1116
1038
  throw FirmwareArtifactStoreError.downloadFailed(
1117
1039
  "ARTIFACT_NETWORK_FAILED: firmware response stream failed"
1118
1040
  )
@@ -98,7 +98,7 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
98
98
 
99
99
  func getFirmwareArtifactCapabilities() throws -> FirmwareArtifactCapabilities {
100
100
  FirmwareArtifactCapabilities(
101
- firmwareArtifactProtocolVersion: 1,
101
+ firmwareArtifactProtocolVersion: 2,
102
102
  supportedRouteTypes: ["domain", "pinnedIp"],
103
103
  supportsArchiveMaterialization: true,
104
104
  maxReadBytes: Double(FirmwareArtifactStore.maxReadBytes)
@@ -243,16 +243,6 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
243
243
  }
244
244
  }
245
245
 
246
- func reconcileFirmwareArtifactLeases(
247
- params: FirmwareArtifactLeaseReconcileParams
248
- ) throws -> Promise<Void> {
249
- Promise.async {
250
- try FirmwareArtifactStore.shared.reconcileLeases(
251
- activeLeaseRefs: params.activeLeaseRefs
252
- )
253
- }
254
- }
255
-
256
246
  func sweepFirmwareArtifactOrphans() throws -> Promise<FirmwareArtifactSweepResult> {
257
247
  Promise.async {
258
248
  let result = try FirmwareArtifactStore.shared.sweepOrphans()
@@ -327,25 +317,20 @@ private struct FirmwareBackgroundTaskDescriptor: Codable, Equatable {
327
317
  let schemaVersion: Int
328
318
  let taskId: String
329
319
  let transactionId: String
330
- let leaseRef: String
331
320
  let expectedSize: Int64
332
321
  let expectedSha256: String
333
322
  let hostname: String
334
323
  let deadlineAt: TimeInterval
335
324
 
336
325
  var key: String {
337
- "\(leaseRef)|\(taskId)|\(expectedSha256)"
326
+ "\(expectedSize)|\(expectedSha256)"
338
327
  }
339
328
 
340
329
  func hasSameArtifactIdentity(
341
330
  as other: FirmwareBackgroundTaskDescriptor
342
331
  ) -> Bool {
343
- taskId == other.taskId &&
344
- transactionId == other.transactionId &&
345
- leaseRef == other.leaseRef &&
346
- expectedSize == other.expectedSize &&
347
- expectedSha256 == other.expectedSha256 &&
348
- hostname == other.hostname
332
+ expectedSize == other.expectedSize &&
333
+ expectedSha256 == other.expectedSha256
349
334
  }
350
335
  }
351
336
 
@@ -356,6 +341,7 @@ private enum FirmwareBackgroundDownloadError: LocalizedError {
356
341
  case redirectRejected
357
342
  case responseRejected
358
343
  case sizeRejected
344
+ case tlsRejected
359
345
  case transferFailed
360
346
 
361
347
  var errorDescription: String? {
@@ -372,6 +358,8 @@ private enum FirmwareBackgroundDownloadError: LocalizedError {
372
358
  return "ARTIFACT_PROTOCOL_INVALID: firmware response is invalid"
373
359
  case .sizeRejected:
374
360
  return "ARTIFACT_PROTOCOL_INVALID: firmware artifact size is invalid"
361
+ case .tlsRejected:
362
+ return "ARTIFACT_TLS_FAILED: firmware TLS validation failed"
375
363
  case .transferFailed:
376
364
  return "ARTIFACT_NETWORK_FAILED: firmware background transfer failed"
377
365
  }
@@ -694,7 +682,7 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
694
682
  return (r, decoded.segIndex)
695
683
  }
696
684
 
697
- private static let firmwareTaskDescriptionPrefix = "firmware-v1:"
685
+ private static let firmwareTaskDescriptionPrefix = "firmware-v2:"
698
686
 
699
687
  private static func encodeFirmwareTaskDescription(
700
688
  _ descriptor: FirmwareBackgroundTaskDescriptor
@@ -719,7 +707,7 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
719
707
  FirmwareBackgroundTaskDescriptor.self,
720
708
  from: data
721
709
  ),
722
- descriptor.schemaVersion == 1,
710
+ descriptor.schemaVersion == 2,
723
711
  descriptor.taskId.range(
724
712
  of: "^[A-Za-z0-9._-]{1,100}$",
725
713
  options: .regularExpression
@@ -728,10 +716,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
728
716
  of: "^[A-Za-z0-9._:-]{1,160}$",
729
717
  options: .regularExpression
730
718
  ) != nil,
731
- descriptor.leaseRef.range(
732
- of: "^fwlease:[a-f0-9-]{36}$",
733
- options: .regularExpression
734
- ) != nil,
735
719
  descriptor.expectedSize > 0,
736
720
  descriptor.expectedSize <= 512 * 1024 * 1024,
737
721
  descriptor.expectedSha256.range(
@@ -767,10 +751,9 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
767
751
  throw FirmwareBackgroundDownloadError.invalidTask
768
752
  }
769
753
  let descriptor = FirmwareBackgroundTaskDescriptor(
770
- schemaVersion: 1,
754
+ schemaVersion: 2,
771
755
  taskId: params.taskId,
772
756
  transactionId: params.transactionId,
773
- leaseRef: params.leaseRef,
774
757
  expectedSize: Int64(params.expectedSize),
775
758
  expectedSha256: params.expectedSha256.lowercased(),
776
759
  hostname: hostname,
@@ -1539,7 +1522,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
1539
1522
  }
1540
1523
  let artifact = try FirmwareArtifactStore.shared.acceptBackgroundDownload(
1541
1524
  temporaryURL: location,
1542
- leaseRef: descriptor.leaseRef,
1543
1525
  transactionId: descriptor.transactionId,
1544
1526
  expectedSize: descriptor.expectedSize,
1545
1527
  expectedSha256: descriptor.expectedSha256
@@ -1687,7 +1669,11 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
1687
1669
  ? FirmwareBackgroundDownloadError.cancelled
1688
1670
  : nil
1689
1671
  ) ??
1690
- error ??
1672
+ error.map {
1673
+ isFirmwareArtifactTLSError($0)
1674
+ ? FirmwareBackgroundDownloadError.tlsRejected
1675
+ : FirmwareBackgroundDownloadError.transferFailed
1676
+ } ??
1691
1677
  FirmwareBackgroundDownloadError.transferFailed
1692
1678
  )
1693
1679
  )
@@ -102,9 +102,6 @@ export interface FirmwareArtifactLeaseReleaseParams {
102
102
  leaseRef: string;
103
103
  disposition: string;
104
104
  }
105
- export interface FirmwareArtifactLeaseReconcileParams {
106
- activeLeaseRefs: string[];
107
- }
108
105
  export interface FirmwareArtifactSweepResult {
109
106
  deletedFiles: number;
110
107
  deletedBytes: number;
@@ -130,7 +127,6 @@ export interface ReactNativeRangeDownloader extends HybridObject<{
130
127
  createFirmwareArtifactLease(params: FirmwareArtifactLeaseCreateParams): Promise<FirmwareArtifactLease>;
131
128
  retainFirmwareArtifact(params: FirmwareArtifactLeaseRetainParams): Promise<void>;
132
129
  releaseFirmwareArtifactLease(params: FirmwareArtifactLeaseReleaseParams): Promise<void>;
133
- reconcileFirmwareArtifactLeases(params: FirmwareArtifactLeaseReconcileParams): Promise<void>;
134
130
  sweepFirmwareArtifactOrphans(): Promise<FirmwareArtifactSweepResult>;
135
131
  }
136
132
  //# sourceMappingURL=ReactNativeRangeDownloader.nitro.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeRangeDownloader.nitro.d.ts","sourceRoot":"","sources":["../../../src/ReactNativeRangeDownloader.nitro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactNativeRangeDownloader.nitro.d.ts","sourceRoot":"","sources":["../../../src/ReactNativeRangeDownloader.nitro.ts"],"names":[],"mappings":"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"}
@@ -53,8 +53,6 @@ namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLe
53
53
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseRetainParams; }
54
54
  // Forward declaration of `FirmwareArtifactLeaseReleaseParams` to properly resolve imports.
55
55
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseReleaseParams; }
56
- // Forward declaration of `FirmwareArtifactLeaseReconcileParams` to properly resolve imports.
57
- namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseReconcileParams; }
58
56
 
59
57
  #include "RangeDownloadResult.hpp"
60
58
  #include <NitroModules/Promise.hpp>
@@ -113,8 +111,6 @@ namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLe
113
111
  #include "JFirmwareArtifactLeaseRetainParams.hpp"
114
112
  #include "FirmwareArtifactLeaseReleaseParams.hpp"
115
113
  #include "JFirmwareArtifactLeaseReleaseParams.hpp"
116
- #include "FirmwareArtifactLeaseReconcileParams.hpp"
117
- #include "JFirmwareArtifactLeaseReconcileParams.hpp"
118
114
 
119
115
  namespace margelo::nitro::reactnativerangedownloader {
120
116
 
@@ -368,21 +364,6 @@ namespace margelo::nitro::reactnativerangedownloader {
368
364
  return __promise;
369
365
  }();
370
366
  }
371
- std::shared_ptr<Promise<void>> JHybridReactNativeRangeDownloaderSpec::reconcileFirmwareArtifactLeases(const FirmwareArtifactLeaseReconcileParams& params) {
372
- static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<JFirmwareArtifactLeaseReconcileParams> /* params */)>("reconcileFirmwareArtifactLeases");
373
- auto __result = method(_javaPart, JFirmwareArtifactLeaseReconcileParams::fromCpp(params));
374
- return [&]() {
375
- auto __promise = Promise<void>::create();
376
- __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& /* unit */) {
377
- __promise->resolve();
378
- });
379
- __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
380
- jni::JniException __jniError(__throwable);
381
- __promise->reject(std::make_exception_ptr(__jniError));
382
- });
383
- return __promise;
384
- }();
385
- }
386
367
  std::shared_ptr<Promise<FirmwareArtifactSweepResult>> JHybridReactNativeRangeDownloaderSpec::sweepFirmwareArtifactOrphans() {
387
368
  static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>()>("sweepFirmwareArtifactOrphans");
388
369
  auto __result = method(_javaPart);
@@ -71,7 +71,6 @@ namespace margelo::nitro::reactnativerangedownloader {
71
71
  std::shared_ptr<Promise<FirmwareArtifactLease>> createFirmwareArtifactLease(const FirmwareArtifactLeaseCreateParams& params) override;
72
72
  std::shared_ptr<Promise<void>> retainFirmwareArtifact(const FirmwareArtifactLeaseRetainParams& params) override;
73
73
  std::shared_ptr<Promise<void>> releaseFirmwareArtifactLease(const FirmwareArtifactLeaseReleaseParams& params) override;
74
- std::shared_ptr<Promise<void>> reconcileFirmwareArtifactLeases(const FirmwareArtifactLeaseReconcileParams& params) override;
75
74
  std::shared_ptr<Promise<FirmwareArtifactSweepResult>> sweepFirmwareArtifactOrphans() override;
76
75
 
77
76
  private:
@@ -120,10 +120,6 @@ abstract class HybridReactNativeRangeDownloaderSpec: HybridObject() {
120
120
  @Keep
121
121
  abstract fun releaseFirmwareArtifactLease(params: FirmwareArtifactLeaseReleaseParams): Promise<Unit>
122
122
 
123
- @DoNotStrip
124
- @Keep
125
- abstract fun reconcileFirmwareArtifactLeases(params: FirmwareArtifactLeaseReconcileParams): Promise<Unit>
126
-
127
123
  @DoNotStrip
128
124
  @Keep
129
125
  abstract fun sweepFirmwareArtifactOrphans(): Promise<FirmwareArtifactSweepResult>
@@ -26,8 +26,6 @@ namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactCa
26
26
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactDownloadParams; }
27
27
  // Forward declaration of `FirmwareArtifactLeaseCreateParams` to properly resolve imports.
28
28
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseCreateParams; }
29
- // Forward declaration of `FirmwareArtifactLeaseReconcileParams` to properly resolve imports.
30
- namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseReconcileParams; }
31
29
  // Forward declaration of `FirmwareArtifactLeaseReleaseParams` to properly resolve imports.
32
30
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseReleaseParams; }
33
31
  // Forward declaration of `FirmwareArtifactLeaseRetainParams` to properly resolve imports.
@@ -70,7 +68,6 @@ namespace margelo::nitro::reactnativerangedownloader { enum class RangeFallbackK
70
68
  #include "FirmwareArtifactDownloadParams.hpp"
71
69
  #include "FirmwareArtifactLease.hpp"
72
70
  #include "FirmwareArtifactLeaseCreateParams.hpp"
73
- #include "FirmwareArtifactLeaseReconcileParams.hpp"
74
71
  #include "FirmwareArtifactLeaseReleaseParams.hpp"
75
72
  #include "FirmwareArtifactLeaseRetainParams.hpp"
76
73
  #include "FirmwareArtifactReaderCloseParams.hpp"
@@ -58,8 +58,6 @@ namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLe
58
58
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseRetainParams; }
59
59
  // Forward declaration of `FirmwareArtifactLeaseReleaseParams` to properly resolve imports.
60
60
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseReleaseParams; }
61
- // Forward declaration of `FirmwareArtifactLeaseReconcileParams` to properly resolve imports.
62
- namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactLeaseReconcileParams; }
63
61
  // Forward declaration of `FirmwareArtifactSweepResult` to properly resolve imports.
64
62
  namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactSweepResult; }
65
63
 
@@ -92,7 +90,6 @@ namespace margelo::nitro::reactnativerangedownloader { struct FirmwareArtifactSw
92
90
  #include "FirmwareArtifactLeaseCreateParams.hpp"
93
91
  #include "FirmwareArtifactLeaseRetainParams.hpp"
94
92
  #include "FirmwareArtifactLeaseReleaseParams.hpp"
95
- #include "FirmwareArtifactLeaseReconcileParams.hpp"
96
93
  #include "FirmwareArtifactSweepResult.hpp"
97
94
 
98
95
  #include "ReactNativeRangeDownloader-Swift-Cxx-Umbrella.hpp"
@@ -273,14 +270,6 @@ namespace margelo::nitro::reactnativerangedownloader {
273
270
  auto __value = std::move(__result.value());
274
271
  return __value;
275
272
  }
276
- inline std::shared_ptr<Promise<void>> reconcileFirmwareArtifactLeases(const FirmwareArtifactLeaseReconcileParams& params) override {
277
- auto __result = _swiftPart.reconcileFirmwareArtifactLeases(std::forward<decltype(params)>(params));
278
- if (__result.hasError()) [[unlikely]] {
279
- std::rethrow_exception(__result.error());
280
- }
281
- auto __value = std::move(__result.value());
282
- return __value;
283
- }
284
273
  inline std::shared_ptr<Promise<FirmwareArtifactSweepResult>> sweepFirmwareArtifactOrphans() override {
285
274
  auto __result = _swiftPart.sweepFirmwareArtifactOrphans();
286
275
  if (__result.hasError()) [[unlikely]] {
@@ -31,7 +31,6 @@ public protocol HybridReactNativeRangeDownloaderSpec_protocol: HybridObject {
31
31
  func createFirmwareArtifactLease(params: FirmwareArtifactLeaseCreateParams) throws -> Promise<FirmwareArtifactLease>
32
32
  func retainFirmwareArtifact(params: FirmwareArtifactLeaseRetainParams) throws -> Promise<Void>
33
33
  func releaseFirmwareArtifactLease(params: FirmwareArtifactLeaseReleaseParams) throws -> Promise<Void>
34
- func reconcileFirmwareArtifactLeases(params: FirmwareArtifactLeaseReconcileParams) throws -> Promise<Void>
35
34
  func sweepFirmwareArtifactOrphans() throws -> Promise<FirmwareArtifactSweepResult>
36
35
  }
37
36