@onekeyfe/react-native-range-downloader 3.0.80 → 3.0.81-alpha.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.
Files changed (113) hide show
  1. package/ReactNativeRangeDownloader.podspec +8 -0
  2. package/android/build.gradle +1 -0
  3. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveRules.kt +284 -0
  4. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactStore.kt +842 -0
  5. package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/ReactNativeRangeDownloader.kt +148 -0
  6. package/android/src/test/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveRulesTest.kt +75 -0
  7. package/ios/FirmwareArchiveMinizipBridge.h +33 -0
  8. package/ios/FirmwareArchiveMinizipBridge.mm +213 -0
  9. package/ios/FirmwareArtifactStore.swift +1276 -0
  10. package/ios/FirmwareBackgroundSessionEventRouter.swift +17 -0
  11. package/ios/ReactNativeRangeDownloader.swift +638 -6
  12. package/lib/module/index.js +2 -1
  13. package/lib/module/index.js.map +1 -1
  14. package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts +95 -1
  15. package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts.map +1 -1
  16. package/lib/typescript/src/index.d.ts +1 -0
  17. package/lib/typescript/src/index.d.ts.map +1 -1
  18. package/nitrogen/generated/android/c++/JDownloadChannel.hpp +3 -0
  19. package/nitrogen/generated/android/c++/JFirmwareArchiveExpectedEntry.hpp +69 -0
  20. package/nitrogen/generated/android/c++/JFirmwareArchiveMaterializeParams.hpp +86 -0
  21. package/nitrogen/generated/android/c++/JFirmwareArchiveMaterializeResult.hpp +80 -0
  22. package/nitrogen/generated/android/c++/JFirmwareArchiveMaterializedArtifact.hpp +63 -0
  23. package/nitrogen/generated/android/c++/JFirmwareArtifactCancelParams.hpp +57 -0
  24. package/nitrogen/generated/android/c++/JFirmwareArtifactCapabilities.hpp +88 -0
  25. package/nitrogen/generated/android/c++/JFirmwareArtifactDownloadParams.hpp +98 -0
  26. package/nitrogen/generated/android/c++/JFirmwareArtifactLease.hpp +57 -0
  27. package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseCreateParams.hpp +57 -0
  28. package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseReconcileParams.hpp +76 -0
  29. package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseReleaseParams.hpp +61 -0
  30. package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseRetainParams.hpp +61 -0
  31. package/nitrogen/generated/android/c++/JFirmwareArtifactReaderCloseParams.hpp +57 -0
  32. package/nitrogen/generated/android/c++/JFirmwareArtifactReaderInfo.hpp +61 -0
  33. package/nitrogen/generated/android/c++/JFirmwareArtifactReaderReadParams.hpp +65 -0
  34. package/nitrogen/generated/android/c++/JFirmwareArtifactReceipt.hpp +65 -0
  35. package/nitrogen/generated/android/c++/JFirmwareArtifactRefParams.hpp +57 -0
  36. package/nitrogen/generated/android/c++/JFirmwareArtifactSweepResult.hpp +61 -0
  37. package/nitrogen/generated/android/c++/JHybridReactNativeRangeDownloaderSpec.cpp +267 -0
  38. package/nitrogen/generated/android/c++/JHybridReactNativeRangeDownloaderSpec.hpp +13 -0
  39. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/DownloadChannel.kt +2 -1
  40. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveExpectedEntry.kt +47 -0
  41. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializeParams.kt +44 -0
  42. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializeResult.kt +38 -0
  43. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializedArtifact.kt +41 -0
  44. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactCancelParams.kt +38 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactCapabilities.kt +47 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactDownloadParams.kt +68 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLease.kt +38 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseCreateParams.kt +38 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseReconcileParams.kt +38 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseReleaseParams.kt +41 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseRetainParams.kt +41 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReaderCloseParams.kt +38 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReaderInfo.kt +41 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReaderReadParams.kt +44 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReceipt.kt +44 -0
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactRefParams.kt +38 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactSweepResult.kt +41 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/HybridReactNativeRangeDownloaderSpec.kt +53 -0
  59. package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Bridge.cpp +48 -0
  60. package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Bridge.hpp +329 -0
  61. package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Umbrella.hpp +56 -0
  62. package/nitrogen/generated/ios/c++/HybridReactNativeRangeDownloaderSpecSwift.hpp +163 -0
  63. package/nitrogen/generated/ios/swift/DownloadChannel.swift +4 -0
  64. package/nitrogen/generated/ios/swift/FirmwareArchiveExpectedEntry.swift +69 -0
  65. package/nitrogen/generated/ios/swift/FirmwareArchiveMaterializeParams.swift +70 -0
  66. package/nitrogen/generated/ios/swift/FirmwareArchiveMaterializeResult.swift +48 -0
  67. package/nitrogen/generated/ios/swift/FirmwareArchiveMaterializedArtifact.swift +47 -0
  68. package/nitrogen/generated/ios/swift/FirmwareArtifactCancelParams.swift +36 -0
  69. package/nitrogen/generated/ios/swift/FirmwareArtifactCapabilities.swift +81 -0
  70. package/nitrogen/generated/ios/swift/FirmwareArtifactDownloadParams.swift +177 -0
  71. package/nitrogen/generated/ios/swift/FirmwareArtifactLease.swift +36 -0
  72. package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseCreateParams.swift +36 -0
  73. package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseReconcileParams.swift +48 -0
  74. package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseReleaseParams.swift +47 -0
  75. package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseRetainParams.swift +47 -0
  76. package/nitrogen/generated/ios/swift/FirmwareArtifactReaderCloseParams.swift +36 -0
  77. package/nitrogen/generated/ios/swift/FirmwareArtifactReaderInfo.swift +47 -0
  78. package/nitrogen/generated/ios/swift/FirmwareArtifactReaderReadParams.swift +58 -0
  79. package/nitrogen/generated/ios/swift/FirmwareArtifactReceipt.swift +58 -0
  80. package/nitrogen/generated/ios/swift/FirmwareArtifactRefParams.swift +36 -0
  81. package/nitrogen/generated/ios/swift/FirmwareArtifactSweepResult.swift +47 -0
  82. package/nitrogen/generated/ios/swift/Func_void_FirmwareArchiveMaterializeResult.swift +47 -0
  83. package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactLease.swift +47 -0
  84. package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactReaderInfo.swift +47 -0
  85. package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactReceipt.swift +47 -0
  86. package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactSweepResult.swift +47 -0
  87. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_ArrayBuffer_.swift +47 -0
  88. package/nitrogen/generated/ios/swift/HybridReactNativeRangeDownloaderSpec.swift +13 -0
  89. package/nitrogen/generated/ios/swift/HybridReactNativeRangeDownloaderSpec_cxx.swift +240 -0
  90. package/nitrogen/generated/shared/c++/DownloadChannel.hpp +4 -0
  91. package/nitrogen/generated/shared/c++/FirmwareArchiveExpectedEntry.hpp +87 -0
  92. package/nitrogen/generated/shared/c++/FirmwareArchiveMaterializeParams.hpp +86 -0
  93. package/nitrogen/generated/shared/c++/FirmwareArchiveMaterializeResult.hpp +77 -0
  94. package/nitrogen/generated/shared/c++/FirmwareArchiveMaterializedArtifact.hpp +81 -0
  95. package/nitrogen/generated/shared/c++/FirmwareArtifactCancelParams.hpp +75 -0
  96. package/nitrogen/generated/shared/c++/FirmwareArtifactCapabilities.hpp +88 -0
  97. package/nitrogen/generated/shared/c++/FirmwareArtifactDownloadParams.hpp +116 -0
  98. package/nitrogen/generated/shared/c++/FirmwareArtifactLease.hpp +75 -0
  99. package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseCreateParams.hpp +75 -0
  100. package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseReconcileParams.hpp +76 -0
  101. package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseReleaseParams.hpp +79 -0
  102. package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseRetainParams.hpp +79 -0
  103. package/nitrogen/generated/shared/c++/FirmwareArtifactReaderCloseParams.hpp +75 -0
  104. package/nitrogen/generated/shared/c++/FirmwareArtifactReaderInfo.hpp +79 -0
  105. package/nitrogen/generated/shared/c++/FirmwareArtifactReaderReadParams.hpp +83 -0
  106. package/nitrogen/generated/shared/c++/FirmwareArtifactReceipt.hpp +83 -0
  107. package/nitrogen/generated/shared/c++/FirmwareArtifactRefParams.hpp +75 -0
  108. package/nitrogen/generated/shared/c++/FirmwareArtifactSweepResult.hpp +79 -0
  109. package/nitrogen/generated/shared/c++/HybridReactNativeRangeDownloaderSpec.cpp +13 -0
  110. package/nitrogen/generated/shared/c++/HybridReactNativeRangeDownloaderSpec.hpp +62 -0
  111. package/package.json +4 -2
  112. package/src/ReactNativeRangeDownloader.nitro.ts +134 -1
  113. package/src/index.tsx +3 -1
@@ -4,7 +4,7 @@ import type { HybridObject } from 'react-native-nitro-modules';
4
4
  // The channel decides the iOS background URLSession identifier suffix and the
5
5
  // event-routing key, so different consumers never cross-talk. Closed set per
6
6
  // design decision 10.1 (constant enum, not a bare string).
7
- export type DownloadChannel = 'bundle' | 'apk' | 'chart';
7
+ export type DownloadChannel = 'bundle' | 'apk' | 'chart' | 'firmware';
8
8
 
9
9
  export interface RangeDownloadParams {
10
10
  channel: DownloadChannel;
@@ -68,6 +68,105 @@ export interface RangeDownloadEvent {
68
68
  message: string;
69
69
  }
70
70
 
71
+ export interface FirmwareArtifactDownloadParams {
72
+ taskId: string;
73
+ transactionId: string;
74
+ leaseRef: string;
75
+ artifactId: string;
76
+ url: string;
77
+ routeType: string;
78
+ resolvedIp?: string;
79
+ expectedSize: number;
80
+ expectedSha256: string;
81
+ maxBytes: number;
82
+ overallDeadlineSeconds?: number;
83
+ }
84
+
85
+ export interface FirmwareArtifactReceipt {
86
+ artifactRef: string;
87
+ size: number;
88
+ sha256: string;
89
+ }
90
+
91
+ export interface FirmwareArtifactCapabilities {
92
+ firmwareArtifactProtocolVersion: number;
93
+ supportedRouteTypes: string[];
94
+ supportsArchiveMaterialization: boolean;
95
+ maxReadBytes: number;
96
+ }
97
+
98
+ export interface FirmwareArtifactRefParams {
99
+ artifactRef: string;
100
+ }
101
+
102
+ export interface FirmwareArtifactCancelParams {
103
+ transactionId: string;
104
+ }
105
+
106
+ export interface FirmwareArtifactReaderInfo {
107
+ readerId: string;
108
+ size: number;
109
+ }
110
+
111
+ export interface FirmwareArtifactReaderReadParams {
112
+ readerId: string;
113
+ offset: number;
114
+ length: number;
115
+ }
116
+
117
+ export interface FirmwareArtifactReaderCloseParams {
118
+ readerId: string;
119
+ }
120
+
121
+ export interface FirmwareArchiveMaterializeParams {
122
+ leaseRef: string;
123
+ archiveArtifactRef: string;
124
+ expectedEntries: FirmwareArchiveExpectedEntry[];
125
+ }
126
+
127
+ export interface FirmwareArchiveExpectedEntry {
128
+ artifactId: string;
129
+ entryName: string;
130
+ expectedSize: number;
131
+ expectedSha256: string;
132
+ }
133
+
134
+ export interface FirmwareArchiveMaterializedArtifact {
135
+ entryName: string;
136
+ receipt: FirmwareArtifactReceipt;
137
+ }
138
+
139
+ export interface FirmwareArchiveMaterializeResult {
140
+ artifacts: FirmwareArchiveMaterializedArtifact[];
141
+ }
142
+
143
+ export interface FirmwareArtifactLeaseCreateParams {
144
+ transactionId: string;
145
+ }
146
+
147
+ export interface FirmwareArtifactLease {
148
+ leaseRef: string;
149
+ }
150
+
151
+ export interface FirmwareArtifactLeaseRetainParams {
152
+ leaseRef: string;
153
+ artifactRef: string;
154
+ }
155
+
156
+ export interface FirmwareArtifactLeaseReleaseParams {
157
+ leaseRef: string;
158
+ disposition: string;
159
+ }
160
+
161
+ export interface FirmwareArtifactLeaseReconcileParams {
162
+ activeLeaseRefs: string[];
163
+ }
164
+
165
+ export interface FirmwareArtifactSweepResult {
166
+ deletedFiles: number;
167
+ deletedBytes: number;
168
+ }
169
+
71
170
  export interface ReactNativeRangeDownloader
72
171
  extends HybridObject<{ ios: 'swift'; android: 'kotlin' }> {
73
172
  // Main entry: concurrent ranged download (iOS background session / Android thread pool).
@@ -102,4 +201,38 @@ export interface ReactNativeRangeDownloader
102
201
  // not own directory layout for real consumers, but exposes this so demos/simple
103
202
  // callers have a valid absolute destination without hardcoding sandbox paths.
104
203
  getDownloadsDir(): string;
204
+
205
+ getFirmwareArtifactCapabilities(): FirmwareArtifactCapabilities;
206
+ downloadFirmwareArtifact(
207
+ params: FirmwareArtifactDownloadParams
208
+ ): Promise<FirmwareArtifactReceipt>;
209
+ cancelFirmwareArtifactDownloads(
210
+ params: FirmwareArtifactCancelParams
211
+ ): Promise<void>;
212
+ discardFirmwareArtifact(params: FirmwareArtifactRefParams): Promise<void>;
213
+ openFirmwareArtifact(
214
+ params: FirmwareArtifactRefParams
215
+ ): Promise<FirmwareArtifactReaderInfo>;
216
+ readFirmwareArtifact(
217
+ params: FirmwareArtifactReaderReadParams
218
+ ): Promise<ArrayBuffer>;
219
+ closeFirmwareArtifact(
220
+ params: FirmwareArtifactReaderCloseParams
221
+ ): Promise<void>;
222
+ materializeFirmwareArchive(
223
+ params: FirmwareArchiveMaterializeParams
224
+ ): Promise<FirmwareArchiveMaterializeResult>;
225
+ createFirmwareArtifactLease(
226
+ params: FirmwareArtifactLeaseCreateParams
227
+ ): Promise<FirmwareArtifactLease>;
228
+ retainFirmwareArtifact(
229
+ params: FirmwareArtifactLeaseRetainParams
230
+ ): Promise<void>;
231
+ releaseFirmwareArtifactLease(
232
+ params: FirmwareArtifactLeaseReleaseParams
233
+ ): Promise<void>;
234
+ reconcileFirmwareArtifactLeases(
235
+ params: FirmwareArtifactLeaseReconcileParams
236
+ ): Promise<void>;
237
+ sweepFirmwareArtifactOrphans(): Promise<FirmwareArtifactSweepResult>;
105
238
  }
package/src/index.tsx CHANGED
@@ -6,7 +6,8 @@ const ReactNativeRangeDownloaderHybridObject =
6
6
  'ReactNativeRangeDownloader'
7
7
  );
8
8
 
9
- export const ReactNativeRangeDownloader = ReactNativeRangeDownloaderHybridObject;
9
+ export const ReactNativeRangeDownloader =
10
+ ReactNativeRangeDownloaderHybridObject;
10
11
 
11
12
  // Closed set of download channels (design decision 10.1). The native side builds the
12
13
  // background session identifier as `so.onekey.rangedownloader.bg.<channel>`. New channels
@@ -15,6 +16,7 @@ export const RangeDownloadChannel = {
15
16
  Bundle: 'bundle',
16
17
  Apk: 'apk',
17
18
  Chart: 'chart',
19
+ Firmware: 'firmware',
18
20
  } as const;
19
21
 
20
22
  export type * from './ReactNativeRangeDownloader.nitro';