@onekeyfe/react-native-range-downloader 3.0.81-alpha.9 → 3.0.82
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/ReactNativeRangeDownloader.podspec +1 -2
- package/android/build.gradle +0 -1
- package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactStore.kt +9 -25
- package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/ReactNativeRangeDownloader.kt +6 -2
- package/ios/FirmwareArtifactStore.swift +33 -40
- package/ios/RangeDownloadLogic.swift +41 -2
- package/ios/ReactNativeRangeDownloader.swift +20 -15
- package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts +1 -0
- package/lib/typescript/src/ReactNativeRangeDownloader.nitro.d.ts.map +1 -1
- package/nitrogen/generated/android/c++/JDownloadChannel.hpp +6 -7
- package/nitrogen/generated/android/c++/JFirmwareArchiveExpectedEntry.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArchiveMaterializeParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArchiveMaterializeResult.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArchiveMaterializedArtifact.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactCancelParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactCapabilities.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactDownloadParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactLease.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseCreateParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseReleaseParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactLeaseRetainParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactReaderCloseParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactReaderInfo.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactReaderReadParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactReceipt.hpp +9 -5
- package/nitrogen/generated/android/c++/JFirmwareArtifactRefParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JFirmwareArtifactSweepResult.hpp +2 -2
- package/nitrogen/generated/android/c++/JFunc_void_RangeDownloadEvent.hpp +3 -3
- package/nitrogen/generated/android/c++/JHybridReactNativeRangeDownloaderSpec.cpp +39 -38
- package/nitrogen/generated/android/c++/JHybridReactNativeRangeDownloaderSpec.hpp +20 -22
- package/nitrogen/generated/android/c++/JRangeDownloadEvent.hpp +2 -2
- package/nitrogen/generated/android/c++/JRangeDownloadOutcome.hpp +6 -7
- package/nitrogen/generated/android/c++/JRangeDownloadParams.hpp +2 -2
- package/nitrogen/generated/android/c++/JRangeDownloadResult.hpp +2 -2
- package/nitrogen/generated/android/c++/JRangeFallbackKind.hpp +12 -13
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/DownloadChannel.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveExpectedEntry.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializeParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializeResult.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializedArtifact.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactCancelParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactCapabilities.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactDownloadParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLease.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseCreateParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseReleaseParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseRetainParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReaderCloseParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReaderInfo.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReaderReadParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactReceipt.kt +8 -5
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactRefParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactSweepResult.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/Func_void_RangeDownloadEvent.kt +1 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/HybridReactNativeRangeDownloaderSpec.kt +16 -19
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/RangeDownloadEvent.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/RangeDownloadOutcome.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/RangeDownloadParams.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/RangeDownloadResult.kt +2 -2
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/RangeFallbackKind.kt +3 -1
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/reactnativerangedownloader/reactnativerangedownloaderOnLoad.kt +1 -1
- package/nitrogen/generated/android/reactnativerangedownloader+autolinking.cmake +1 -1
- package/nitrogen/generated/android/reactnativerangedownloader+autolinking.gradle +1 -1
- package/nitrogen/generated/android/reactnativerangedownloaderOnLoad.cpp +28 -18
- package/nitrogen/generated/android/reactnativerangedownloaderOnLoad.hpp +14 -5
- package/nitrogen/generated/ios/ReactNativeRangeDownloader+autolinking.rb +2 -2
- package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Bridge.cpp +1 -1
- package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Bridge.hpp +5 -5
- package/nitrogen/generated/ios/ReactNativeRangeDownloader-Swift-Cxx-Umbrella.hpp +1 -1
- package/nitrogen/generated/ios/ReactNativeRangeDownloaderAutolinking.mm +1 -1
- package/nitrogen/generated/ios/ReactNativeRangeDownloaderAutolinking.swift +9 -8
- package/nitrogen/generated/ios/c++/HybridReactNativeRangeDownloaderSpecSwift.cpp +1 -1
- package/nitrogen/generated/ios/c++/HybridReactNativeRangeDownloaderSpecSwift.hpp +7 -1
- package/nitrogen/generated/ios/swift/DownloadChannel.swift +1 -1
- package/nitrogen/generated/ios/swift/FirmwareArchiveExpectedEntry.swift +9 -34
- package/nitrogen/generated/ios/swift/FirmwareArchiveMaterializeParams.swift +14 -45
- package/nitrogen/generated/ios/swift/FirmwareArchiveMaterializeResult.swift +3 -16
- package/nitrogen/generated/ios/swift/FirmwareArchiveMaterializedArtifact.swift +5 -18
- package/nitrogen/generated/ios/swift/FirmwareArtifactCancelParams.swift +3 -10
- package/nitrogen/generated/ios/swift/FirmwareArtifactCapabilities.swift +9 -40
- package/nitrogen/generated/ios/swift/FirmwareArtifactDownloadParams.swift +51 -128
- package/nitrogen/generated/ios/swift/FirmwareArtifactLease.swift +3 -10
- package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseCreateParams.swift +3 -10
- package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseReleaseParams.swift +5 -18
- package/nitrogen/generated/ios/swift/FirmwareArtifactLeaseRetainParams.swift +5 -18
- package/nitrogen/generated/ios/swift/FirmwareArtifactReaderCloseParams.swift +3 -10
- package/nitrogen/generated/ios/swift/FirmwareArtifactReaderInfo.swift +5 -18
- package/nitrogen/generated/ios/swift/FirmwareArtifactReaderReadParams.swift +7 -26
- package/nitrogen/generated/ios/swift/FirmwareArtifactReceipt.swift +14 -28
- package/nitrogen/generated/ios/swift/FirmwareArtifactRefParams.swift +3 -10
- package/nitrogen/generated/ios/swift/FirmwareArtifactSweepResult.swift +5 -18
- package/nitrogen/generated/ios/swift/Func_void.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_FirmwareArchiveMaterializeResult.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactLease.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactReaderInfo.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactReceipt.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_FirmwareArtifactSweepResult.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RangeDownloadEvent.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_RangeDownloadResult.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +1 -2
- package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_ArrayBuffer_.swift +1 -2
- package/nitrogen/generated/ios/swift/HybridReactNativeRangeDownloaderSpec.swift +3 -4
- package/nitrogen/generated/ios/swift/HybridReactNativeRangeDownloaderSpec_cxx.swift +9 -2
- package/nitrogen/generated/ios/swift/RangeDownloadEvent.swift +11 -42
- package/nitrogen/generated/ios/swift/RangeDownloadOutcome.swift +1 -1
- package/nitrogen/generated/ios/swift/RangeDownloadParams.swift +72 -139
- package/nitrogen/generated/ios/swift/RangeDownloadResult.swift +16 -53
- package/nitrogen/generated/ios/swift/RangeFallbackKind.swift +1 -1
- package/nitrogen/generated/shared/c++/DownloadChannel.hpp +1 -1
- package/nitrogen/generated/shared/c++/FirmwareArchiveExpectedEntry.hpp +22 -14
- package/nitrogen/generated/shared/c++/FirmwareArchiveMaterializeParams.hpp +19 -11
- package/nitrogen/generated/shared/c++/FirmwareArchiveMaterializeResult.hpp +13 -5
- package/nitrogen/generated/shared/c++/FirmwareArchiveMaterializedArtifact.hpp +16 -8
- package/nitrogen/generated/shared/c++/FirmwareArtifactCancelParams.hpp +13 -5
- package/nitrogen/generated/shared/c++/FirmwareArtifactCapabilities.hpp +22 -14
- package/nitrogen/generated/shared/c++/FirmwareArtifactDownloadParams.hpp +43 -35
- package/nitrogen/generated/shared/c++/FirmwareArtifactLease.hpp +13 -5
- package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseCreateParams.hpp +13 -5
- package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseReleaseParams.hpp +16 -8
- package/nitrogen/generated/shared/c++/FirmwareArtifactLeaseRetainParams.hpp +16 -8
- package/nitrogen/generated/shared/c++/FirmwareArtifactReaderCloseParams.hpp +13 -5
- package/nitrogen/generated/shared/c++/FirmwareArtifactReaderInfo.hpp +16 -8
- package/nitrogen/generated/shared/c++/FirmwareArtifactReaderReadParams.hpp +19 -11
- package/nitrogen/generated/shared/c++/FirmwareArtifactReceipt.hpp +24 -12
- package/nitrogen/generated/shared/c++/FirmwareArtifactRefParams.hpp +13 -5
- package/nitrogen/generated/shared/c++/FirmwareArtifactSweepResult.hpp +16 -8
- package/nitrogen/generated/shared/c++/HybridReactNativeRangeDownloaderSpec.cpp +1 -1
- package/nitrogen/generated/shared/c++/HybridReactNativeRangeDownloaderSpec.hpp +1 -1
- package/nitrogen/generated/shared/c++/RangeDownloadEvent.hpp +25 -17
- package/nitrogen/generated/shared/c++/RangeDownloadOutcome.hpp +1 -1
- package/nitrogen/generated/shared/c++/RangeDownloadParams.hpp +43 -35
- package/nitrogen/generated/shared/c++/RangeDownloadResult.hpp +22 -14
- package/nitrogen/generated/shared/c++/RangeFallbackKind.hpp +1 -1
- package/package.json +5 -7
- package/src/ReactNativeRangeDownloader.nitro.ts +3 -0
|
@@ -23,13 +23,12 @@ Pod::Spec.new do |s|
|
|
|
23
23
|
s.dependency 'React-jsi'
|
|
24
24
|
s.dependency 'React-callinvoker'
|
|
25
25
|
s.dependency 'ReactNativeNativeLogger'
|
|
26
|
-
s.dependency 'SniConnect', package["peerDependencies"]["@onekeyfe/react-native-sni-connect"]
|
|
27
26
|
s.public_header_files = "ios/FirmwareArchiveMinizipBridge.h"
|
|
28
27
|
s.pod_target_xcconfig = {
|
|
29
28
|
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/SSZipArchive/SSZipArchive/minizip"',
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
s.dependency 'SSZipArchive', '
|
|
31
|
+
s.dependency 'SSZipArchive', '2.5.5'
|
|
33
32
|
|
|
34
33
|
load 'nitrogen/generated/ios/ReactNativeRangeDownloader+autolinking.rb'
|
|
35
34
|
add_nitrogen_files(s)
|
package/android/build.gradle
CHANGED
|
@@ -127,7 +127,6 @@ dependencies {
|
|
|
127
127
|
implementation project(":react-native-nitro-modules")
|
|
128
128
|
|
|
129
129
|
implementation project(":onekeyfe_react-native-native-logger")
|
|
130
|
-
implementation project(":onekeyfe_react-native-sni-connect")
|
|
131
130
|
|
|
132
131
|
implementation "com.squareup.okhttp3:okhttp:4.12.0"
|
|
133
132
|
|
package/android/src/main/java/com/margelo/nitro/reactnativerangedownloader/FirmwareArtifactStore.kt
CHANGED
|
@@ -2,7 +2,6 @@ package com.margelo.nitro.reactnativerangedownloader
|
|
|
2
2
|
|
|
3
3
|
import android.system.Os
|
|
4
4
|
import com.margelo.nitro.NitroModules
|
|
5
|
-
import com.sniconnect.SniPinnedTransport
|
|
6
5
|
import java.io.BufferedInputStream
|
|
7
6
|
import java.io.File
|
|
8
7
|
import java.io.FileInputStream
|
|
@@ -70,7 +69,7 @@ private class FirmwareDownloadLock {
|
|
|
70
69
|
internal object FirmwareArtifactStore {
|
|
71
70
|
const val MAX_READ_BYTES = 256 * 1024
|
|
72
71
|
|
|
73
|
-
|
|
72
|
+
const val MAX_ARTIFACT_BYTES = 512L * 1024 * 1024
|
|
74
73
|
private val sha256Pattern = Regex("^[a-fA-F0-9]{64}$")
|
|
75
74
|
private val artifactRefPattern = Regex("^fw:[a-f0-9]{64}$")
|
|
76
75
|
private val leaseRefPattern = Regex("^fwlease:[a-f0-9-]{36}$")
|
|
@@ -331,7 +330,6 @@ internal object FirmwareArtifactStore {
|
|
|
331
330
|
val maxBytes: Long,
|
|
332
331
|
val expectedSha256: String?,
|
|
333
332
|
val downloadToken: String,
|
|
334
|
-
val hostname: String,
|
|
335
333
|
val overallDeadlineSeconds: Double,
|
|
336
334
|
)
|
|
337
335
|
|
|
@@ -379,24 +377,17 @@ internal object FirmwareArtifactStore {
|
|
|
379
377
|
}
|
|
380
378
|
val overallDeadlineSeconds =
|
|
381
379
|
validateFirmwareDownloadDeadlineSeconds(params.overallDeadlineSeconds)
|
|
382
|
-
require(params.routeType == "domain"
|
|
380
|
+
require(params.routeType == "domain") {
|
|
383
381
|
"Invalid firmware route type"
|
|
384
382
|
}
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
"Pinned route requires resolvedIp"
|
|
388
|
-
}
|
|
389
|
-
} else {
|
|
390
|
-
require(params.resolvedIp == null) {
|
|
391
|
-
"Domain route must not include resolvedIp"
|
|
392
|
-
}
|
|
383
|
+
require(params.resolvedIp == null) {
|
|
384
|
+
"Domain route must not include resolvedIp"
|
|
393
385
|
}
|
|
394
386
|
return ValidatedDownload(
|
|
395
387
|
expectedSize = expectedSize,
|
|
396
388
|
maxBytes = maxBytes,
|
|
397
389
|
expectedSha256 = expectedSha256,
|
|
398
390
|
downloadToken = expectedSha256 ?: sha256(params.url),
|
|
399
|
-
hostname = url.host,
|
|
400
391
|
overallDeadlineSeconds = overallDeadlineSeconds,
|
|
401
392
|
)
|
|
402
393
|
}
|
|
@@ -455,18 +446,11 @@ internal object FirmwareArtifactStore {
|
|
|
455
446
|
requestBuilder.header("Range", "bytes=$resumeOffset-")
|
|
456
447
|
}
|
|
457
448
|
|
|
458
|
-
val client =
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
)
|
|
463
|
-
} else {
|
|
464
|
-
OkHttpClient.Builder()
|
|
465
|
-
.protocols(listOf(Protocol.HTTP_1_1))
|
|
466
|
-
.followRedirects(false)
|
|
467
|
-
.followSslRedirects(false)
|
|
468
|
-
.build()
|
|
469
|
-
}
|
|
449
|
+
val client = OkHttpClient.Builder()
|
|
450
|
+
.protocols(listOf(Protocol.HTTP_1_1))
|
|
451
|
+
.followRedirects(false)
|
|
452
|
+
.followSslRedirects(false)
|
|
453
|
+
.build()
|
|
470
454
|
val call = client.newCall(requestBuilder.build())
|
|
471
455
|
call.timeout().timeout(
|
|
472
456
|
ceil(validated.overallDeadlineSeconds * 1000).toLong(),
|
|
@@ -272,8 +272,8 @@ class ReactNativeRangeDownloader : HybridReactNativeRangeDownloaderSpec() {
|
|
|
272
272
|
|
|
273
273
|
override fun getFirmwareArtifactCapabilities(): FirmwareArtifactCapabilities {
|
|
274
274
|
return FirmwareArtifactCapabilities(
|
|
275
|
-
firmwareArtifactProtocolVersion =
|
|
276
|
-
supportedRouteTypes = arrayOf("domain"
|
|
275
|
+
firmwareArtifactProtocolVersion = 4.0,
|
|
276
|
+
supportedRouteTypes = arrayOf("domain"),
|
|
277
277
|
supportsArchiveMaterialization = true,
|
|
278
278
|
maxReadBytes = FirmwareArtifactStore.MAX_READ_BYTES.toDouble(),
|
|
279
279
|
)
|
|
@@ -288,6 +288,7 @@ class ReactNativeRangeDownloader : HybridReactNativeRangeDownloaderSpec() {
|
|
|
288
288
|
artifactRef = artifact.artifactRef,
|
|
289
289
|
size = artifact.size.toDouble(),
|
|
290
290
|
sha256 = artifact.sha256,
|
|
291
|
+
expectedSha256Verified = params.expectedSha256 != null,
|
|
291
292
|
)
|
|
292
293
|
}
|
|
293
294
|
}
|
|
@@ -324,9 +325,11 @@ class ReactNativeRangeDownloader : HybridReactNativeRangeDownloaderSpec() {
|
|
|
324
325
|
require(
|
|
325
326
|
params.offset.isFinite() &&
|
|
326
327
|
params.offset >= 0 &&
|
|
328
|
+
params.offset <= FirmwareArtifactStore.MAX_ARTIFACT_BYTES.toDouble() &&
|
|
327
329
|
params.offset.toLong().toDouble() == params.offset &&
|
|
328
330
|
params.length.isFinite() &&
|
|
329
331
|
params.length > 0 &&
|
|
332
|
+
params.length <= FirmwareArtifactStore.MAX_READ_BYTES.toDouble() &&
|
|
330
333
|
params.length.toInt().toDouble() == params.length
|
|
331
334
|
) {
|
|
332
335
|
"Invalid firmware artifact read"
|
|
@@ -366,6 +369,7 @@ class ReactNativeRangeDownloader : HybridReactNativeRangeDownloaderSpec() {
|
|
|
366
369
|
artifactRef = entry.artifact.artifactRef,
|
|
367
370
|
size = entry.artifact.size.toDouble(),
|
|
368
371
|
sha256 = entry.artifact.sha256,
|
|
372
|
+
expectedSha256Verified = params.expectedEntries != null,
|
|
369
373
|
),
|
|
370
374
|
)
|
|
371
375
|
}.toTypedArray(),
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import CryptoKit
|
|
2
2
|
import Foundation
|
|
3
3
|
import ReactNativeNativeLogger
|
|
4
|
-
import SniConnect
|
|
5
4
|
|
|
6
5
|
func isFirmwareArtifactTLSError(_ error: Error) -> Bool {
|
|
7
6
|
var current: NSError? = error as NSError
|
|
@@ -384,7 +383,8 @@ private actor FirmwareArtifactDownloadCoordinator {
|
|
|
384
383
|
|
|
385
384
|
final class FirmwareArtifactStore {
|
|
386
385
|
static let shared = FirmwareArtifactStore()
|
|
387
|
-
static let maxReadBytes =
|
|
386
|
+
static let maxReadBytes = Int(firmwareArtifactMaxReadBytes)
|
|
387
|
+
static let maxArtifactBytes = firmwareArtifactMaxBytes
|
|
388
388
|
private static let defaultDownloadDeadline: TimeInterval = 180
|
|
389
389
|
private static let maxDownloadDeadline: TimeInterval = 24 * 60 * 60
|
|
390
390
|
|
|
@@ -461,30 +461,26 @@ final class FirmwareArtifactStore {
|
|
|
461
461
|
}
|
|
462
462
|
let expectedSize: Int64?
|
|
463
463
|
if let value = params.expectedSize {
|
|
464
|
-
guard
|
|
465
|
-
value
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
else {
|
|
464
|
+
guard let converted = firmwareArtifactExactInt64(
|
|
465
|
+
value,
|
|
466
|
+
minimum: 1,
|
|
467
|
+
maximum: Self.maxArtifactBytes
|
|
468
|
+
) else {
|
|
470
469
|
throw FirmwareArtifactStoreError.invalidInput(
|
|
471
470
|
"Invalid firmware artifact expected size"
|
|
472
471
|
)
|
|
473
472
|
}
|
|
474
|
-
expectedSize =
|
|
473
|
+
expectedSize = converted
|
|
475
474
|
} else {
|
|
476
475
|
expectedSize = nil
|
|
477
476
|
}
|
|
478
|
-
guard
|
|
479
|
-
params.maxBytes
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
params.maxBytes <= Double(512 * 1024 * 1024)
|
|
484
|
-
else {
|
|
477
|
+
guard let maxBytes = firmwareArtifactExactInt64(
|
|
478
|
+
params.maxBytes,
|
|
479
|
+
minimum: 1,
|
|
480
|
+
maximum: Self.maxArtifactBytes
|
|
481
|
+
) else {
|
|
485
482
|
throw FirmwareArtifactStoreError.invalidInput("Invalid firmware artifact size")
|
|
486
483
|
}
|
|
487
|
-
let maxBytes = Int64(params.maxBytes)
|
|
488
484
|
guard expectedSize.map({ $0 <= maxBytes }) ?? true else {
|
|
489
485
|
throw FirmwareArtifactStoreError.invalidInput(
|
|
490
486
|
"Firmware artifact expected size exceeds maxBytes"
|
|
@@ -501,7 +497,7 @@ final class FirmwareArtifactStore {
|
|
|
501
497
|
)
|
|
502
498
|
}
|
|
503
499
|
}
|
|
504
|
-
guard params.routeType == "domain"
|
|
500
|
+
guard params.routeType == "domain" else {
|
|
505
501
|
throw FirmwareArtifactStoreError.invalidInput("Invalid firmware route type")
|
|
506
502
|
}
|
|
507
503
|
let deadline = params.overallDeadlineSeconds ?? defaultDownloadDeadline
|
|
@@ -512,11 +508,7 @@ final class FirmwareArtifactStore {
|
|
|
512
508
|
else {
|
|
513
509
|
throw FirmwareArtifactStoreError.invalidInput("Invalid firmware download deadline")
|
|
514
510
|
}
|
|
515
|
-
if params.
|
|
516
|
-
guard let resolvedIp = params.resolvedIp, !resolvedIp.isEmpty else {
|
|
517
|
-
throw FirmwareArtifactStoreError.invalidInput("Pinned route requires resolvedIp")
|
|
518
|
-
}
|
|
519
|
-
} else if params.resolvedIp != nil {
|
|
511
|
+
if params.resolvedIp != nil {
|
|
520
512
|
throw FirmwareArtifactStoreError.invalidInput("Domain route must not include resolvedIp")
|
|
521
513
|
}
|
|
522
514
|
return ValidatedDownload(
|
|
@@ -549,7 +541,8 @@ final class FirmwareArtifactStore {
|
|
|
549
541
|
transactionId: params.transactionId,
|
|
550
542
|
taskId: params.taskId,
|
|
551
543
|
expectedSize: validated.expectedSize,
|
|
552
|
-
expectedSha256: validated.expectedSha256
|
|
544
|
+
expectedSha256: validated.expectedSha256,
|
|
545
|
+
downloadToken: validated.downloadToken
|
|
553
546
|
)
|
|
554
547
|
markDownloadActive(validated.downloadToken, delta: 1)
|
|
555
548
|
do {
|
|
@@ -1149,6 +1142,20 @@ final class FirmwareArtifactStore {
|
|
|
1149
1142
|
if let expectedEntries {
|
|
1150
1143
|
return try validateArchiveRequirements(expectedEntries)
|
|
1151
1144
|
}
|
|
1145
|
+
if let issue = firmwareArchiveDiscoveredEntriesIssue(
|
|
1146
|
+
archiveEntries.map(\.name)
|
|
1147
|
+
) {
|
|
1148
|
+
switch issue {
|
|
1149
|
+
case .empty:
|
|
1150
|
+
throw FirmwareArtifactStoreError.archiveInvalid(
|
|
1151
|
+
"Firmware archive must contain at least one entry"
|
|
1152
|
+
)
|
|
1153
|
+
case .duplicateName:
|
|
1154
|
+
throw FirmwareArtifactStoreError.archiveInvalid(
|
|
1155
|
+
"Firmware archive contains duplicate entry names"
|
|
1156
|
+
)
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1152
1159
|
return archiveEntries.map {
|
|
1153
1160
|
FirmwareArchiveRequirement(
|
|
1154
1161
|
entryName: $0.name,
|
|
@@ -1319,27 +1326,13 @@ final class FirmwareArtifactStore {
|
|
|
1319
1326
|
self?.isTransactionCancelled(params.transactionId) == true
|
|
1320
1327
|
}
|
|
1321
1328
|
)
|
|
1322
|
-
let
|
|
1323
|
-
if params.routeType == "pinnedIp" {
|
|
1324
|
-
pinnedSession = try SniConnectPinnedTransport.makeSession(
|
|
1325
|
-
hostname: hostname,
|
|
1326
|
-
ip: params.resolvedIp!,
|
|
1327
|
-
dataDelegate: streamDelegate
|
|
1328
|
-
)
|
|
1329
|
-
} else {
|
|
1330
|
-
pinnedSession = nil
|
|
1331
|
-
}
|
|
1332
|
-
let session = pinnedSession?.session ?? URLSession(
|
|
1329
|
+
let session = URLSession(
|
|
1333
1330
|
configuration: .ephemeral,
|
|
1334
1331
|
delegate: streamDelegate,
|
|
1335
1332
|
delegateQueue: nil
|
|
1336
1333
|
)
|
|
1337
1334
|
defer {
|
|
1338
|
-
|
|
1339
|
-
pinnedSession.close()
|
|
1340
|
-
} else {
|
|
1341
|
-
session.finishTasksAndInvalidate()
|
|
1342
|
-
}
|
|
1335
|
+
session.finishTasksAndInvalidate()
|
|
1343
1336
|
}
|
|
1344
1337
|
|
|
1345
1338
|
do {
|
|
@@ -49,9 +49,28 @@ func firmwareArtifactDownloadKey(
|
|
|
49
49
|
transactionId: String,
|
|
50
50
|
taskId: String,
|
|
51
51
|
expectedSize: Int64?,
|
|
52
|
-
expectedSha256: String
|
|
52
|
+
expectedSha256: String?,
|
|
53
|
+
downloadToken: String
|
|
53
54
|
) -> String {
|
|
54
|
-
"\(transactionId)|\(taskId)|\(expectedSize.map(String.init) ?? "unknown")|\(expectedSha256 ?? "unknown")"
|
|
55
|
+
"\(transactionId)|\(taskId)|\(expectedSize.map(String.init) ?? "unknown")|\(expectedSha256 ?? "unknown")|\(downloadToken)"
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
enum FirmwareArchiveDiscoveredEntriesIssue: Equatable {
|
|
59
|
+
case empty
|
|
60
|
+
case duplicateName
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
func firmwareArchiveDiscoveredEntriesIssue(
|
|
64
|
+
_ entryNames: [String]
|
|
65
|
+
) -> FirmwareArchiveDiscoveredEntriesIssue? {
|
|
66
|
+
guard !entryNames.isEmpty else {
|
|
67
|
+
return .empty
|
|
68
|
+
}
|
|
69
|
+
var names = Set<String>()
|
|
70
|
+
guard entryNames.allSatisfy({ names.insert($0).inserted }) else {
|
|
71
|
+
return .duplicateName
|
|
72
|
+
}
|
|
73
|
+
return nil
|
|
55
74
|
}
|
|
56
75
|
|
|
57
76
|
func firmwareArtifactDownloadToken(
|
|
@@ -123,6 +142,26 @@ func firmwareArtifactResponseFits(
|
|
|
123
142
|
let firmwareArtifactFinalGrace: TimeInterval = 24 * 60 * 60
|
|
124
143
|
let firmwareArtifactPartialGrace: TimeInterval = 7 * 24 * 60 * 60
|
|
125
144
|
let firmwareArtifactScratchGrace: TimeInterval = firmwareArtifactPartialGrace
|
|
145
|
+
let firmwareArtifactMaxBytes: Int64 = 512 * 1024 * 1024
|
|
146
|
+
let firmwareArtifactMaxReadBytes: Int64 = 256 * 1024
|
|
147
|
+
|
|
148
|
+
func firmwareArtifactExactInt64(
|
|
149
|
+
_ value: Double,
|
|
150
|
+
minimum: Int64,
|
|
151
|
+
maximum: Int64
|
|
152
|
+
) -> Int64? {
|
|
153
|
+
guard
|
|
154
|
+
minimum <= maximum,
|
|
155
|
+
value.isFinite,
|
|
156
|
+
value.rounded() == value,
|
|
157
|
+
let converted = Int64(exactly: value),
|
|
158
|
+
converted >= minimum,
|
|
159
|
+
converted <= maximum
|
|
160
|
+
else {
|
|
161
|
+
return nil
|
|
162
|
+
}
|
|
163
|
+
return converted
|
|
164
|
+
}
|
|
126
165
|
|
|
127
166
|
func firmwareArtifactIdentifierIsSafe(_ value: String) -> Bool {
|
|
128
167
|
value.range(
|
|
@@ -108,8 +108,8 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
|
|
|
108
108
|
|
|
109
109
|
func getFirmwareArtifactCapabilities() throws -> FirmwareArtifactCapabilities {
|
|
110
110
|
FirmwareArtifactCapabilities(
|
|
111
|
-
firmwareArtifactProtocolVersion:
|
|
112
|
-
supportedRouteTypes: ["domain"
|
|
111
|
+
firmwareArtifactProtocolVersion: 4,
|
|
112
|
+
supportedRouteTypes: ["domain"],
|
|
113
113
|
supportsArchiveMaterialization: true,
|
|
114
114
|
maxReadBytes: Double(FirmwareArtifactStore.maxReadBytes)
|
|
115
115
|
)
|
|
@@ -124,7 +124,8 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
|
|
|
124
124
|
withResult: FirmwareArtifactReceipt(
|
|
125
125
|
artifactRef: artifact.artifactRef,
|
|
126
126
|
size: Double(artifact.size),
|
|
127
|
-
sha256: artifact.sha256
|
|
127
|
+
sha256: artifact.sha256,
|
|
128
|
+
expectedSha256Verified: params.expectedSha256 != nil
|
|
128
129
|
)
|
|
129
130
|
)
|
|
130
131
|
}
|
|
@@ -136,7 +137,8 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
|
|
|
136
137
|
return FirmwareArtifactReceipt(
|
|
137
138
|
artifactRef: artifact.artifactRef,
|
|
138
139
|
size: Double(artifact.size),
|
|
139
|
-
sha256: artifact.sha256
|
|
140
|
+
sha256: artifact.sha256,
|
|
141
|
+
expectedSha256Verified: params.expectedSha256 != nil
|
|
140
142
|
)
|
|
141
143
|
}
|
|
142
144
|
}
|
|
@@ -185,14 +187,16 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
|
|
|
185
187
|
) throws -> Promise<ArrayBuffer> {
|
|
186
188
|
settledFirmwareArtifactPromise {
|
|
187
189
|
guard
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
190
|
+
let offset = firmwareArtifactExactInt64(
|
|
191
|
+
params.offset,
|
|
192
|
+
minimum: 0,
|
|
193
|
+
maximum: FirmwareArtifactStore.maxArtifactBytes
|
|
194
|
+
),
|
|
195
|
+
let length = firmwareArtifactExactInt64(
|
|
196
|
+
params.length,
|
|
197
|
+
minimum: 1,
|
|
198
|
+
maximum: firmwareArtifactMaxReadBytes
|
|
199
|
+
)
|
|
196
200
|
else {
|
|
197
201
|
throw FirmwareArtifactStoreError.readerInvalid(
|
|
198
202
|
"Invalid firmware artifact read"
|
|
@@ -200,8 +204,8 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
|
|
|
200
204
|
}
|
|
201
205
|
let data = try FirmwareArtifactStore.shared.read(
|
|
202
206
|
readerId: params.readerId,
|
|
203
|
-
offset:
|
|
204
|
-
length: Int(
|
|
207
|
+
offset: offset,
|
|
208
|
+
length: Int(length)
|
|
205
209
|
)
|
|
206
210
|
return try ArrayBuffer.copy(data: data)
|
|
207
211
|
}
|
|
@@ -231,7 +235,8 @@ class ReactNativeRangeDownloader: HybridReactNativeRangeDownloaderSpec {
|
|
|
231
235
|
receipt: FirmwareArtifactReceipt(
|
|
232
236
|
artifactRef: entry.artifact.artifactRef,
|
|
233
237
|
size: Double(entry.artifact.size),
|
|
234
|
-
sha256: entry.artifact.sha256
|
|
238
|
+
sha256: entry.artifact.sha256,
|
|
239
|
+
expectedSha256Verified: params.expectedEntries != nil
|
|
235
240
|
)
|
|
236
241
|
)
|
|
237
242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNativeRangeDownloader.nitro.d.ts","sourceRoot":"","sources":["../../../src/ReactNativeRangeDownloader.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAM/D,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAI5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAWD,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GACX,mBAAmB,GACnB,mBAAmB,GACnB,UAAU,CAAC;AAKf,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,kBAAkB,GAClB,aAAa,GACb,UAAU,GACV,kBAAkB,GAClB,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,WAAW,GACX,iBAAiB,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactNativeRangeDownloader.nitro.d.ts","sourceRoot":"","sources":["../../../src/ReactNativeRangeDownloader.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JDownloadChannel.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -19,7 +19,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
19
19
|
*/
|
|
20
20
|
struct JDownloadChannel final: public jni::JavaClass<JDownloadChannel> {
|
|
21
21
|
public:
|
|
22
|
-
static auto
|
|
22
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/DownloadChannel;";
|
|
23
23
|
|
|
24
24
|
public:
|
|
25
25
|
/**
|
|
@@ -41,19 +41,18 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
41
41
|
[[maybe_unused]]
|
|
42
42
|
static jni::alias_ref<JDownloadChannel> fromCpp(DownloadChannel value) {
|
|
43
43
|
static const auto clazz = javaClassStatic();
|
|
44
|
-
static const auto fieldBUNDLE = clazz->getStaticField<JDownloadChannel>("BUNDLE");
|
|
45
|
-
static const auto fieldAPK = clazz->getStaticField<JDownloadChannel>("APK");
|
|
46
|
-
static const auto fieldCHART = clazz->getStaticField<JDownloadChannel>("CHART");
|
|
47
|
-
static const auto fieldFIRMWARE = clazz->getStaticField<JDownloadChannel>("FIRMWARE");
|
|
48
|
-
|
|
49
44
|
switch (value) {
|
|
50
45
|
case DownloadChannel::BUNDLE:
|
|
46
|
+
static const auto fieldBUNDLE = clazz->getStaticField<JDownloadChannel>("BUNDLE");
|
|
51
47
|
return clazz->getStaticFieldValue(fieldBUNDLE);
|
|
52
48
|
case DownloadChannel::APK:
|
|
49
|
+
static const auto fieldAPK = clazz->getStaticField<JDownloadChannel>("APK");
|
|
53
50
|
return clazz->getStaticFieldValue(fieldAPK);
|
|
54
51
|
case DownloadChannel::CHART:
|
|
52
|
+
static const auto fieldCHART = clazz->getStaticField<JDownloadChannel>("CHART");
|
|
55
53
|
return clazz->getStaticFieldValue(fieldCHART);
|
|
56
54
|
case DownloadChannel::FIRMWARE:
|
|
55
|
+
static const auto fieldFIRMWARE = clazz->getStaticField<JDownloadChannel>("FIRMWARE");
|
|
57
56
|
return clazz->getStaticFieldValue(fieldFIRMWARE);
|
|
58
57
|
default:
|
|
59
58
|
std::string stringValue = std::to_string(static_cast<int>(value));
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArchiveExpectedEntry.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JFirmwareArchiveExpectedEntry final: public jni::JavaClass<JFirmwareArchiveExpectedEntry> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArchiveExpectedEntry;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArchiveMaterializeParams.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -25,7 +25,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
25
25
|
*/
|
|
26
26
|
struct JFirmwareArchiveMaterializeParams final: public jni::JavaClass<JFirmwareArchiveMaterializeParams> {
|
|
27
27
|
public:
|
|
28
|
-
static auto
|
|
28
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializeParams;";
|
|
29
29
|
|
|
30
30
|
public:
|
|
31
31
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArchiveMaterializeResult.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -26,7 +26,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
26
26
|
*/
|
|
27
27
|
struct JFirmwareArchiveMaterializeResult final: public jni::JavaClass<JFirmwareArchiveMaterializeResult> {
|
|
28
28
|
public:
|
|
29
|
-
static auto
|
|
29
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializeResult;";
|
|
30
30
|
|
|
31
31
|
public:
|
|
32
32
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArchiveMaterializedArtifact.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -23,7 +23,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
23
23
|
*/
|
|
24
24
|
struct JFirmwareArchiveMaterializedArtifact final: public jni::JavaClass<JFirmwareArchiveMaterializedArtifact> {
|
|
25
25
|
public:
|
|
26
|
-
static auto
|
|
26
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArchiveMaterializedArtifact;";
|
|
27
27
|
|
|
28
28
|
public:
|
|
29
29
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArtifactCancelParams.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JFirmwareArtifactCancelParams final: public jni::JavaClass<JFirmwareArtifactCancelParams> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArtifactCancelParams;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArtifactCapabilities.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -22,7 +22,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
22
22
|
*/
|
|
23
23
|
struct JFirmwareArtifactCapabilities final: public jni::JavaClass<JFirmwareArtifactCapabilities> {
|
|
24
24
|
public:
|
|
25
|
-
static auto
|
|
25
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArtifactCapabilities;";
|
|
26
26
|
|
|
27
27
|
public:
|
|
28
28
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArtifactDownloadParams.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -22,7 +22,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
22
22
|
*/
|
|
23
23
|
struct JFirmwareArtifactDownloadParams final: public jni::JavaClass<JFirmwareArtifactDownloadParams> {
|
|
24
24
|
public:
|
|
25
|
-
static auto
|
|
25
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArtifactDownloadParams;";
|
|
26
26
|
|
|
27
27
|
public:
|
|
28
28
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArtifactLease.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JFirmwareArtifactLease final: public jni::JavaClass<JFirmwareArtifactLease> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLease;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// JFirmwareArtifactLeaseCreateParams.hpp
|
|
3
3
|
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
4
|
/// https://github.com/mrousavy/nitro
|
|
5
|
-
/// Copyright ©
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
6
|
///
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
@@ -21,7 +21,7 @@ namespace margelo::nitro::reactnativerangedownloader {
|
|
|
21
21
|
*/
|
|
22
22
|
struct JFirmwareArtifactLeaseCreateParams final: public jni::JavaClass<JFirmwareArtifactLeaseCreateParams> {
|
|
23
23
|
public:
|
|
24
|
-
static auto
|
|
24
|
+
static constexpr auto kJavaDescriptor = "Lcom/margelo/nitro/reactnativerangedownloader/FirmwareArtifactLeaseCreateParams;";
|
|
25
25
|
|
|
26
26
|
public:
|
|
27
27
|
/**
|