@onekeyfe/react-native-range-downloader 3.0.81-alpha.7 → 3.0.81-alpha.9

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 (24) hide show
  1. package/ReactNativeRangeDownloader.podspec +1 -1
  2. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveRules.kt +12 -5
  3. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactOrphanSweep.kt +111 -0
  4. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactStore.kt +132 -68
  5. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/ReactNativeRangeDownloader.kt +1 -1
  6. package/android/src/test/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveRulesTest.kt +39 -0
  7. package/android/src/test/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactOrphanSweepTest.kt +107 -0
  8. package/ios/FirmwareArtifactStore.swift +242 -172
  9. package/ios/RangeDownloadLogic.swift +194 -36
  10. package/ios/ReactNativeRangeDownloader.swift +9 -423
  11. package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts +3 -3
  12. package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts.map +1 -1
  13. package/nitrogen/generated/android/c++/JFirmwareArchiveMaterializeParams.hpp +7 -6
  14. package/nitrogen/generated/android/c++/JFirmwareArtifactDownloadParams.hpp +7 -7
  15. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializeParams.kt +2 -2
  16. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactDownloadParams.kt +3 -3
  17. package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Bridge.hpp +15 -0
  18. package/nitrogen/generated/ios/swift/FirmwareArchiveMaterializeParams.swift +32 -13
  19. package/nitrogen/generated/ios/swift/FirmwareArtifactDownloadParams.swift +39 -8
  20. package/nitrogen/generated/shared/c++/FirmwareArchiveMaterializeParams.hpp +6 -5
  21. package/nitrogen/generated/shared/c++/FirmwareArtifactDownloadParams.hpp +9 -9
  22. package/package.json +2 -2
  23. package/src/ReactNativeRangeDownloader.nitro.ts +3 -3
  24. package/ios/FirmwareBackgroundSessionEventRouter.swift +0 -17
@@ -108,7 +108,7 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
108
108
 
109
109
  func getFirmwareArtifactCapabilities() throws -> FirmwareArtifactCapabilities {
110
110
  FirmwareArtifactCapabilities(
111
- firmwareArtifactProtocolVersion: 2,
111
+ firmwareArtifactProtocolVersion: 3,
112
112
  supportedRouteTypes: ["domain", "pinnedIp"],
113
113
  supportsArchiveMaterialization: true,
114
114
  maxReadBytes: Double(FirmwareArtifactStore.maxReadBytes)
@@ -144,7 +144,14 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
144
144
  func cancelFirmwareArtifactDownloads(
145
145
  params: FirmwareArtifactCancelParams
146
146
  ) throws -> Promise<Void> {
147
- Promise.async {
147
+ guard FirmwareArtifactStore.isSafeIdentifier(params.transactionId) else {
148
+ return Promise.rejected(
149
+ withError: FirmwareArtifactStoreError.invalidInput(
150
+ "Invalid firmware transactionId"
151
+ )
152
+ )
153
+ }
154
+ return Promise.async {
148
155
  try await FirmwareArtifactStore.shared.cancelDownloads(
149
156
  transactionId: params.transactionId
150
157
  )
@@ -336,50 +343,10 @@ extension RangeFallbackClass {
336
343
  }
337
344
  }
338
345
 
339
- private struct FirmwareBackgroundTaskDescriptor: Codable, Equatable {
340
- let schemaVersion: Int
341
- let taskId: String
342
- let transactionId: String
343
- let expectedSize: Int64
344
- let expectedSha256: String
345
- let hostname: String
346
- let deadlineAt: TimeInterval
347
-
348
- var key: String {
349
- firmwareArtifactDownloadKey(
350
- transactionId: transactionId,
351
- expectedSize: expectedSize,
352
- expectedSha256: expectedSha256
353
- )
354
- }
355
-
356
- func hasSameDownloadIdentity(
357
- as other: FirmwareBackgroundTaskDescriptor
358
- ) -> Bool {
359
- transactionId == other.transactionId &&
360
- expectedSize == other.expectedSize &&
361
- expectedSha256 == other.expectedSha256
362
- }
363
- }
364
-
365
346
  public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
366
347
 
367
348
  public static let shared = RangeDownloader()
368
349
 
369
- public static func routeFirmwareBackgroundEvents(
370
- identifier: String,
371
- completionHandler: @escaping () -> Void
372
- ) -> Bool {
373
- guard identifier == sessionIdentifier(for: .firmware) else {
374
- return false
375
- }
376
- shared.attachBackgroundEvents(
377
- identifier: identifier,
378
- completionHandler: completionHandler
379
- )
380
- return true
381
- }
382
-
383
350
  /// Posted by the AppDelegate from
384
351
  /// application(_:handleEventsForBackgroundURLSession:completionHandler:).
385
352
  /// userInfo: ["identifier": String, "completionHandler": () -> Void].
@@ -416,11 +383,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
416
383
  /// notification), keyed by session identifier, so we can call each back once
417
384
  /// all its queued background events have been delivered.
418
385
  private var backgroundCompletionHandlers: [String: () -> Void] = [:]
419
- private var firmwareWaiters: [
420
- String: [CheckedContinuation<StoredFirmwareArtifact, Error>]
421
- ] = [:]
422
- private var firmwareTaskErrors: [Int: Error] = [:]
423
- private var completedFirmwareTasks: Set<Int> = []
424
386
 
425
387
  // Per-run mutable state.
426
388
  private final class RunState {
@@ -678,238 +640,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
678
640
  return (r, decoded.segIndex)
679
641
  }
680
642
 
681
- private static let firmwareTaskDescriptionPrefix = "firmware-v2:"
682
-
683
- private static func encodeFirmwareTaskDescription(
684
- _ descriptor: FirmwareBackgroundTaskDescriptor
685
- ) throws -> String {
686
- let data = try JSONEncoder().encode(descriptor)
687
- return firmwareTaskDescriptionPrefix + data.base64EncodedString()
688
- }
689
-
690
- private static func decodeFirmwareTaskDescription(
691
- _ description: String?
692
- ) -> FirmwareBackgroundTaskDescriptor? {
693
- guard
694
- let description,
695
- description.hasPrefix(firmwareTaskDescriptionPrefix),
696
- let data = Data(
697
- base64Encoded: String(
698
- description.dropFirst(firmwareTaskDescriptionPrefix.count)
699
- )
700
- ),
701
- data.count <= 2048,
702
- let descriptor = try? JSONDecoder().decode(
703
- FirmwareBackgroundTaskDescriptor.self,
704
- from: data
705
- ),
706
- descriptor.schemaVersion == 2,
707
- descriptor.taskId.range(
708
- of: "^[A-Za-z0-9._-]{1,100}$",
709
- options: .regularExpression
710
- ) != nil,
711
- descriptor.transactionId.range(
712
- of: "^[A-Za-z0-9._:-]{1,160}$",
713
- options: .regularExpression
714
- ) != nil,
715
- descriptor.expectedSize > 0,
716
- descriptor.expectedSize <= 512 * 1024 * 1024,
717
- descriptor.expectedSha256.range(
718
- of: "^[a-f0-9]{64}$",
719
- options: .regularExpression
720
- ) != nil,
721
- !descriptor.hostname.isEmpty,
722
- descriptor.hostname.count <= 253,
723
- descriptor.deadlineAt.isFinite,
724
- descriptor.deadlineAt > 0
725
- else {
726
- return nil
727
- }
728
- return descriptor
729
- }
730
-
731
- func downloadFirmwareArtifact(
732
- params: FirmwareArtifactDownloadParams
733
- ) async throws -> StoredFirmwareArtifact {
734
- guard
735
- params.routeType == "domain",
736
- let url = URL(string: params.url),
737
- let hostname = url.host?.lowercased()
738
- else {
739
- throw FirmwareBackgroundDownloadError.invalidTask
740
- }
741
- let deadlineSeconds = params.overallDeadlineSeconds ?? 180
742
- guard
743
- deadlineSeconds.isFinite,
744
- deadlineSeconds > 0,
745
- deadlineSeconds <= 24 * 60 * 60
746
- else {
747
- throw FirmwareBackgroundDownloadError.invalidTask
748
- }
749
- let descriptor = FirmwareBackgroundTaskDescriptor(
750
- schemaVersion: 2,
751
- taskId: params.taskId,
752
- transactionId: params.transactionId,
753
- expectedSize: Int64(params.expectedSize),
754
- expectedSha256: params.expectedSha256.lowercased(),
755
- hostname: hostname,
756
- deadlineAt: Date().timeIntervalSince1970 + deadlineSeconds
757
- )
758
- guard !FirmwareArtifactStore.shared.isTransactionCancelled(
759
- descriptor.transactionId
760
- ) else {
761
- throw FirmwareBackgroundDownloadError.cancelled
762
- }
763
- if let stored = try FirmwareArtifactStore.shared.storedArtifact(
764
- expectedSize: descriptor.expectedSize,
765
- expectedSha256: descriptor.expectedSha256
766
- ) {
767
- return stored
768
- }
769
-
770
- return try await withCheckedThrowingContinuation { continuation in
771
- lock.withLockValue {
772
- firmwareWaiters[descriptor.key, default: []].append(continuation)
773
- }
774
- Task { [weak self] in
775
- await self?.reconcileOrStartFirmwareTask(
776
- descriptor: descriptor,
777
- url: url
778
- )
779
- }
780
- }
781
- }
782
-
783
- func cancelFirmwareArtifactDownloads(
784
- transactionId: String
785
- ) async throws {
786
- guard transactionId.range(
787
- of: "^[A-Za-z0-9._:-]{1,160}$",
788
- options: .regularExpression
789
- ) != nil else {
790
- throw FirmwareBackgroundDownloadError.invalidTask
791
- }
792
- let session = session(forChannel: .firmware, segmentCount: 1)
793
- let tasks = await allTasks(in: session)
794
- for task in tasks {
795
- guard
796
- let descriptor = Self.decodeFirmwareTaskDescription(
797
- task.taskDescription
798
- ),
799
- descriptor.transactionId == transactionId
800
- else {
801
- continue
802
- }
803
- recordFirmwareTaskError(
804
- taskIdentifier: task.taskIdentifier,
805
- error: FirmwareBackgroundDownloadError.cancelled
806
- )
807
- task.cancel()
808
- }
809
- }
810
-
811
- private func reconcileOrStartFirmwareTask(
812
- descriptor: FirmwareBackgroundTaskDescriptor,
813
- url: URL
814
- ) async {
815
- guard !FirmwareArtifactStore.shared.isTransactionCancelled(
816
- descriptor.transactionId
817
- ) else {
818
- finishFirmwareTask(
819
- key: descriptor.key,
820
- result: .failure(FirmwareBackgroundDownloadError.cancelled)
821
- )
822
- return
823
- }
824
- let session = session(forChannel: .firmware, segmentCount: 1)
825
- let tasks = await allTasks(in: session)
826
- var matchingTaskFound = false
827
- for task in tasks {
828
- guard
829
- let candidate = Self.decodeFirmwareTaskDescription(
830
- task.taskDescription
831
- )
832
- else {
833
- continue
834
- }
835
- if candidate.hasSameDownloadIdentity(as: descriptor) {
836
- matchingTaskFound = true
837
- } else if
838
- candidate.transactionId == descriptor.transactionId &&
839
- candidate.taskId == descriptor.taskId
840
- {
841
- task.cancel()
842
- }
843
- }
844
- if matchingTaskFound {
845
- return
846
- }
847
- do {
848
- if let stored = try FirmwareArtifactStore.shared.storedArtifact(
849
- expectedSize: descriptor.expectedSize,
850
- expectedSha256: descriptor.expectedSha256
851
- ) {
852
- finishFirmwareTask(
853
- key: descriptor.key,
854
- result: .success(stored)
855
- )
856
- return
857
- }
858
- guard Date().timeIntervalSince1970 < descriptor.deadlineAt else {
859
- throw FirmwareBackgroundDownloadError.deadlineExceeded
860
- }
861
- guard !FirmwareArtifactStore.shared.isTransactionCancelled(
862
- descriptor.transactionId
863
- ) else {
864
- throw FirmwareBackgroundDownloadError.cancelled
865
- }
866
- var request = URLRequest(url: url)
867
- request.cachePolicy = .reloadIgnoringLocalCacheData
868
- request.timeoutInterval = max(
869
- 1,
870
- descriptor.deadlineAt - Date().timeIntervalSince1970
871
- )
872
- request.setValue("identity", forHTTPHeaderField: "Accept-Encoding")
873
- let task = session.downloadTask(with: request)
874
- task.taskDescription = try Self.encodeFirmwareTaskDescription(
875
- descriptor
876
- )
877
- task.resume()
878
- } catch {
879
- finishFirmwareTask(
880
- key: descriptor.key,
881
- result: .failure(error)
882
- )
883
- }
884
- }
885
-
886
- private func allTasks(in session: URLSession) async -> [URLSessionTask] {
887
- await withCheckedContinuation { continuation in
888
- session.getAllTasks { tasks in
889
- continuation.resume(returning: tasks)
890
- }
891
- }
892
- }
893
-
894
- private func finishFirmwareTask(
895
- key: String,
896
- result: Result<StoredFirmwareArtifact, Error>
897
- ) {
898
- let continuations: [
899
- CheckedContinuation<StoredFirmwareArtifact, Error>
900
- ] = lock.withLockValue {
901
- firmwareWaiters.removeValue(forKey: key) ?? []
902
- }
903
- for continuation in continuations {
904
- switch result {
905
- case let .success(artifact):
906
- continuation.resume(returning: artifact)
907
- case let .failure(error):
908
- continuation.resume(throwing: error)
909
- }
910
- }
911
- }
912
-
913
643
  // MARK: - Public entry
914
644
 
915
645
  /// Downloads [urlString] into [filePath] using concurrent background ranges.
@@ -1445,28 +1175,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
1445
1175
  public func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask,
1446
1176
  didWriteData bytesWritten: Int64, totalBytesWritten: Int64,
1447
1177
  totalBytesExpectedToWrite: Int64) {
1448
- if let descriptor = Self.decodeFirmwareTaskDescription(
1449
- downloadTask.taskDescription
1450
- ) {
1451
- let exceedsBound =
1452
- totalBytesWritten > descriptor.expectedSize ||
1453
- (
1454
- totalBytesExpectedToWrite != NSURLSessionTransferSizeUnknown &&
1455
- totalBytesExpectedToWrite != descriptor.expectedSize
1456
- )
1457
- let expired =
1458
- Date().timeIntervalSince1970 >= descriptor.deadlineAt
1459
- if exceedsBound || expired {
1460
- recordFirmwareTaskError(
1461
- taskIdentifier: downloadTask.taskIdentifier,
1462
- error: exceedsBound
1463
- ? FirmwareBackgroundDownloadError.sizeRejected
1464
- : FirmwareBackgroundDownloadError.deadlineExceeded
1465
- )
1466
- downloadTask.cancel()
1467
- }
1468
- return
1469
- }
1470
1178
  guard let desc = downloadTask.taskDescription,
1471
1179
  let (state, idx) = run(for: desc) else { return }
1472
1180
  lock.lock()
@@ -1497,52 +1205,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
1497
1205
 
1498
1206
  public func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask,
1499
1207
  didFinishDownloadingTo location: URL) {
1500
- if let descriptor = Self.decodeFirmwareTaskDescription(
1501
- downloadTask.taskDescription
1502
- ) {
1503
- guard firmwareTaskError(
1504
- taskIdentifier: downloadTask.taskIdentifier
1505
- ) == nil else {
1506
- return
1507
- }
1508
- do {
1509
- guard
1510
- !FirmwareArtifactStore.shared.isTransactionCancelled(
1511
- descriptor.transactionId
1512
- ),
1513
- Date().timeIntervalSince1970 < descriptor.deadlineAt,
1514
- let response = downloadTask.response as? HTTPURLResponse,
1515
- response.statusCode == 200,
1516
- response.url?.scheme?.lowercased() == "https",
1517
- response.url?.host?.lowercased() == descriptor.hostname,
1518
- response.url?.port == nil || response.url?.port == 443
1519
- else {
1520
- throw FirmwareBackgroundDownloadError.responseRejected
1521
- }
1522
- let artifact = try FirmwareArtifactStore.shared.acceptBackgroundDownload(
1523
- temporaryURL: location,
1524
- transactionId: descriptor.transactionId,
1525
- expectedSize: descriptor.expectedSize,
1526
- expectedSha256: descriptor.expectedSha256
1527
- )
1528
- lock.withLockValue {
1529
- firmwareTaskErrors.removeValue(
1530
- forKey: downloadTask.taskIdentifier
1531
- )
1532
- completedFirmwareTasks.insert(downloadTask.taskIdentifier)
1533
- }
1534
- finishFirmwareTask(
1535
- key: descriptor.key,
1536
- result: .success(artifact)
1537
- )
1538
- } catch {
1539
- recordFirmwareTaskError(
1540
- taskIdentifier: downloadTask.taskIdentifier,
1541
- error: error
1542
- )
1543
- }
1544
- return
1545
- }
1546
1208
  guard let desc = downloadTask.taskDescription,
1547
1209
  let (state, idx) = run(for: desc) else { return }
1548
1210
  let ranges = lock.withLockValue { state.ranges }
@@ -1641,43 +1303,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
1641
1303
  }
1642
1304
 
1643
1305
  public func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
1644
- if let descriptor = Self.decodeFirmwareTaskDescription(
1645
- task.taskDescription
1646
- ) {
1647
- let completion: (completed: Bool, error: Error?) =
1648
- lock.withLockValue {
1649
- let completed = completedFirmwareTasks.remove(
1650
- task.taskIdentifier
1651
- ) != nil
1652
- let recordedError = firmwareTaskErrors.removeValue(
1653
- forKey: task.taskIdentifier
1654
- )
1655
- return (completed, recordedError)
1656
- }
1657
- if completion.completed {
1658
- return
1659
- }
1660
- let failure: Error
1661
- if let recordedError = completion.error {
1662
- failure = recordedError
1663
- } else if FirmwareArtifactStore.shared.isTransactionCancelled(
1664
- descriptor.transactionId
1665
- ) {
1666
- failure = FirmwareBackgroundDownloadError.cancelled
1667
- } else if let taskError = error {
1668
- failure =
1669
- isFirmwareArtifactTLSError(taskError)
1670
- ? FirmwareBackgroundDownloadError.tlsRejected
1671
- : FirmwareBackgroundDownloadError.transferFailed
1672
- } else {
1673
- failure = FirmwareBackgroundDownloadError.transferFailed
1674
- }
1675
- finishFirmwareTask(
1676
- key: descriptor.key,
1677
- result: .failure(failure)
1678
- )
1679
- return
1680
- }
1681
1306
  guard let desc = task.taskDescription,
1682
1307
  let (state, idx) = run(for: desc) else { return }
1683
1308
  let ranges = lock.withLockValue { state.ranges }
@@ -1853,26 +1478,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
1853
1478
  willPerformHTTPRedirection response: HTTPURLResponse,
1854
1479
  newRequest request: URLRequest,
1855
1480
  completionHandler: @escaping (URLRequest?) -> Void) {
1856
- if let descriptor = Self.decodeFirmwareTaskDescription(
1857
- task.taskDescription
1858
- ) {
1859
- guard
1860
- request.url?.scheme?.lowercased() == "https",
1861
- request.url?.host?.lowercased() == descriptor.hostname,
1862
- request.url?.port == nil || request.url?.port == 443,
1863
- request.url?.user == nil,
1864
- request.url?.password == nil
1865
- else {
1866
- recordFirmwareTaskError(
1867
- taskIdentifier: task.taskIdentifier,
1868
- error: FirmwareBackgroundDownloadError.redirectRejected
1869
- )
1870
- completionHandler(nil)
1871
- return
1872
- }
1873
- completionHandler(request)
1874
- return
1875
- }
1876
1481
  if request.url?.scheme?.lowercased() != "https" {
1877
1482
  OneKeyLog.error("RangeDownloader", "blocked redirect to non-HTTPS URL")
1878
1483
  if let desc = task.taskDescription, let (state, _) = run(for: desc) {
@@ -1884,25 +1489,6 @@ public final class RangeDownloader: NSObject, URLSessionDownloadDelegate {
1884
1489
  }
1885
1490
  }
1886
1491
 
1887
- private func recordFirmwareTaskError(
1888
- taskIdentifier: Int,
1889
- error: Error
1890
- ) {
1891
- lock.withLockValue {
1892
- if firmwareTaskErrors[taskIdentifier] == nil {
1893
- firmwareTaskErrors[taskIdentifier] = error
1894
- }
1895
- }
1896
- }
1897
-
1898
- private func firmwareTaskError(
1899
- taskIdentifier: Int
1900
- ) -> Error? {
1901
- lock.withLockValue {
1902
- firmwareTaskErrors[taskIdentifier]
1903
- }
1904
- }
1905
-
1906
1492
  /// Called on the session delegate queue when all background events for this
1907
1493
  /// session have been delivered after a background relaunch.
1908
1494
  public func urlSessionDidFinishEvents(forBackgroundURLSession session: URLSession) {
@@ -36,8 +36,8 @@ export interface FirmwareArtifactDownloadParams {
36
36
  url: string;
37
37
  routeType: string;
38
38
  resolvedIp?: string;
39
- expectedSize: number;
40
- expectedSha256: string;
39
+ expectedSize?: number;
40
+ expectedSha256?: string;
41
41
  maxBytes: number;
42
42
  overallDeadlineSeconds?: number;
43
43
  }
@@ -73,7 +73,7 @@ export interface FirmwareArtifactReaderCloseParams {
73
73
  export interface FirmwareArchiveMaterializeParams {
74
74
  leaseRef: string;
75
75
  archiveArtifactRef: string;
76
- expectedEntries: FirmwareArchiveExpectedEntry[];
76
+ expectedEntries?: FirmwareArchiveExpectedEntry[];
77
77
  }
78
78
  export interface FirmwareArchiveExpectedEntry {
79
79
  artifactId: string;
@@ -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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"}
@@ -12,6 +12,7 @@
12
12
 
13
13
  #include "FirmwareArchiveExpectedEntry.hpp"
14
14
  #include "JFirmwareArchiveExpectedEntry.hpp"
15
+ #include <optional>
15
16
  #include <string>
16
17
  #include <vector>
17
18
 
@@ -43,7 +44,7 @@ namespace margelo::nitro::reactnativerangedownloader {
43
44
  return FirmwareArchiveMaterializeParams(
44
45
  leaseRef->toStdString(),
45
46
  archiveArtifactRef->toStdString(),
46
- [&]() {
47
+ expectedEntries != nullptr ? std::make_optional([&]() {
47
48
  size_t __size = expectedEntries->size();
48
49
  std::vector<FirmwareArchiveExpectedEntry> __vector;
49
50
  __vector.reserve(__size);
@@ -52,7 +53,7 @@ namespace margelo::nitro::reactnativerangedownloader {
52
53
  __vector.push_back(__element->toCpp());
53
54
  }
54
55
  return __vector;
55
- }()
56
+ }()) : std::nullopt
56
57
  );
57
58
  }
58
59
 
@@ -69,16 +70,16 @@ namespace margelo::nitro::reactnativerangedownloader {
69
70
  clazz,
70
71
  jni::make_jstring(value.leaseRef),
71
72
  jni::make_jstring(value.archiveArtifactRef),
72
- [&]() {
73
- size_t __size = value.expectedEntries.size();
73
+ value.expectedEntries.has_value() ? [&]() {
74
+ size_t __size = value.expectedEntries.value().size();
74
75
  jni::local_ref<jni::JArrayClass<JFirmwareArchiveExpectedEntry>> __array = jni::JArrayClass<JFirmwareArchiveExpectedEntry>::newArray(__size);
75
76
  for (size_t __i = 0; __i < __size; __i++) {
76
- const auto& __element = value.expectedEntries[__i];
77
+ const auto& __element = value.expectedEntries.value()[__i];
77
78
  auto __elementJni = JFirmwareArchiveExpectedEntry::fromCpp(__element);
78
79
  __array->setElement(__i, *__elementJni);
79
80
  }
80
81
  return __array;
81
- }()
82
+ }() : nullptr
82
83
  );
83
84
  }
84
85
  };
@@ -46,8 +46,8 @@ namespace margelo::nitro::reactnativerangedownloader {
46
46
  jni::local_ref<jni::JString> routeType = this->getFieldValue(fieldRouteType);
47
47
  static const auto fieldResolvedIp = clazz->getField<jni::JString>("resolvedIp");
48
48
  jni::local_ref<jni::JString> resolvedIp = this->getFieldValue(fieldResolvedIp);
49
- static const auto fieldExpectedSize = clazz->getField<double>("expectedSize");
50
- double expectedSize = this->getFieldValue(fieldExpectedSize);
49
+ static const auto fieldExpectedSize = clazz->getField<jni::JDouble>("expectedSize");
50
+ jni::local_ref<jni::JDouble> expectedSize = this->getFieldValue(fieldExpectedSize);
51
51
  static const auto fieldExpectedSha256 = clazz->getField<jni::JString>("expectedSha256");
52
52
  jni::local_ref<jni::JString> expectedSha256 = this->getFieldValue(fieldExpectedSha256);
53
53
  static const auto fieldMaxBytes = clazz->getField<double>("maxBytes");
@@ -62,8 +62,8 @@ namespace margelo::nitro::reactnativerangedownloader {
62
62
  url->toStdString(),
63
63
  routeType->toStdString(),
64
64
  resolvedIp != nullptr ? std::make_optional(resolvedIp->toStdString()) : std::nullopt,
65
- expectedSize,
66
- expectedSha256->toStdString(),
65
+ expectedSize != nullptr ? std::make_optional(expectedSize->value()) : std::nullopt,
66
+ expectedSha256 != nullptr ? std::make_optional(expectedSha256->toStdString()) : std::nullopt,
67
67
  maxBytes,
68
68
  overallDeadlineSeconds != nullptr ? std::make_optional(overallDeadlineSeconds->value()) : std::nullopt
69
69
  );
@@ -75,7 +75,7 @@ namespace margelo::nitro::reactnativerangedownloader {
75
75
  */
76
76
  [[maybe_unused]]
77
77
  static jni::local_ref<JFirmwareArtifactDownloadParams::javaobject> fromCpp(const FirmwareArtifactDownloadParams& value) {
78
- using JSignature = JFirmwareArtifactDownloadParams(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JDouble>);
78
+ using JSignature = JFirmwareArtifactDownloadParams(jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JString>, jni::alias_ref<jni::JDouble>, jni::alias_ref<jni::JString>, double, jni::alias_ref<jni::JDouble>);
79
79
  static const auto clazz = javaClassStatic();
80
80
  static const auto create = clazz->getStaticMethod<JSignature>("fromCpp");
81
81
  return create(
@@ -87,8 +87,8 @@ namespace margelo::nitro::reactnativerangedownloader {
87
87
  jni::make_jstring(value.url),
88
88
  jni::make_jstring(value.routeType),
89
89
  value.resolvedIp.has_value() ? jni::make_jstring(value.resolvedIp.value()) : nullptr,
90
- value.expectedSize,
91
- jni::make_jstring(value.expectedSha256),
90
+ value.expectedSize.has_value() ? jni::JDouble::valueOf(value.expectedSize.value()) : nullptr,
91
+ value.expectedSha256.has_value() ? jni::make_jstring(value.expectedSha256.value()) : nullptr,
92
92
  value.maxBytes,
93
93
  value.overallDeadlineSeconds.has_value() ? jni::JDouble::valueOf(value.overallDeadlineSeconds.value()) : nullptr
94
94
  );
@@ -25,7 +25,7 @@ data class FirmwareArchiveMaterializeParams(
25
25
  val archiveArtifactRef: String,
26
26
  @DoNotStrip
27
27
  @Keep
28
- val expectedEntries: Array<FirmwareArchiveExpectedEntry>
28
+ val expectedEntries: Array<FirmwareArchiveExpectedEntry>?
29
29
  ) {
30
30
  /* primary constructor */
31
31
 
@@ -37,7 +37,7 @@ data class FirmwareArchiveMaterializeParams(
37
37
  @Keep
38
38
  @Suppress("unused")
39
39
  @JvmStatic
40
- private fun fromCpp(leaseRef: String, archiveArtifactRef: String, expectedEntries: Array<FirmwareArchiveExpectedEntry>): FirmwareArchiveMaterializeParams {
40
+ private fun fromCpp(leaseRef: String, archiveArtifactRef: String, expectedEntries: Array<FirmwareArchiveExpectedEntry>?): FirmwareArchiveMaterializeParams {
41
41
  return FirmwareArchiveMaterializeParams(leaseRef, archiveArtifactRef, expectedEntries)
42
42
  }
43
43
  }
@@ -40,10 +40,10 @@ data class FirmwareArtifactDownloadParams(
40
40
  val resolvedIp: String?,
41
41
  @DoNotStrip
42
42
  @Keep
43
- val expectedSize: Double,
43
+ val expectedSize: Double?,
44
44
  @DoNotStrip
45
45
  @Keep
46
- val expectedSha256: String,
46
+ val expectedSha256: String?,
47
47
  @DoNotStrip
48
48
  @Keep
49
49
  val maxBytes: Double,
@@ -61,7 +61,7 @@ data class FirmwareArtifactDownloadParams(
61
61
  @Keep
62
62
  @Suppress("unused")
63
63
  @JvmStatic
64
- private fun fromCpp(taskId: String, transactionId: String, leaseRef: String, artifactId: String, url: String, routeType: String, resolvedIp: String?, expectedSize: Double, expectedSha256: String, maxBytes: Double, overallDeadlineSeconds: Double?): FirmwareArtifactDownloadParams {
64
+ private fun fromCpp(taskId: String, transactionId: String, leaseRef: String, artifactId: String, url: String, routeType: String, resolvedIp: String?, expectedSize: Double?, expectedSha256: String?, maxBytes: Double, overallDeadlineSeconds: Double?): FirmwareArtifactDownloadParams {
65
65
  return FirmwareArtifactDownloadParams(taskId, transactionId, leaseRef, artifactId, url, routeType, resolvedIp, expectedSize, expectedSha256, maxBytes, overallDeadlineSeconds)
66
66
  }
67
67
  }