@hot-updater/react-native 1.0.0-rc.2 → 1.0.0-rc.21
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/android/proguard-rules.pro +17 -2
- package/android/src/main/java/com/hotupdater/BuiltInAssetResolver.kt +286 -0
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +954 -837
- package/android/src/main/java/com/hotupdater/BundleMetadata.kt +15 -11
- package/android/src/main/java/com/hotupdater/FileManagerService.kt +45 -0
- package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +287 -22
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +43 -31
- package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryManager.kt +37 -54
- package/android/src/main/java/com/hotupdater/HotUpdaterRecoveryState.kt +64 -0
- package/android/src/main/java/com/hotupdater/InstallIdentityService.kt +37 -0
- package/android/src/main/java/com/hotupdater/KeyValueStorageService.kt +86 -0
- package/android/src/main/java/com/hotupdater/NetworkState.kt +31 -0
- package/android/src/main/java/com/hotupdater/NoBackupStorage.kt +17 -0
- package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +127 -50
- package/android/src/main/java/com/hotupdater/PreviousProcessExit.kt +89 -0
- package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +34 -0
- package/android/src/main/java/com/hotupdater/TarArchiveInputStream.kt +214 -375
- package/android/src/main/java/com/hotupdater/TarBrArchiveExtractor.kt +119 -0
- package/android/src/newarch/HotUpdater.kt +7 -9
- package/android/src/newarch/HotUpdaterModule.kt +109 -84
- package/android/src/oldarch/HotUpdater.kt +7 -9
- package/android/src/oldarch/HotUpdaterModule.kt +98 -74
- package/android/src/oldarch/HotUpdaterSpec.kt +4 -6
- package/ios/HotUpdater/Internal/BrotliFileDecompressor.swift +167 -0
- package/ios/HotUpdater/Internal/BuiltInAssetResolver.swift +196 -0
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +950 -1112
- package/ios/HotUpdater/Internal/BundleMetadata.swift +8 -53
- package/ios/HotUpdater/Internal/FileManagerService.swift +48 -0
- package/ios/HotUpdater/Internal/FileUtilities.swift +64 -0
- package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +0 -1
- package/ios/HotUpdater/Internal/HotUpdater.mm +13 -45
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +190 -73
- package/ios/HotUpdater/Internal/KeyValueStorageService.swift +71 -0
- package/ios/HotUpdater/Internal/NotificationExtension.swift +0 -2
- package/ios/HotUpdater/Internal/TarArchiveExtractor.swift +182 -311
- package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +119 -71
- package/ios/HotUpdater/Internal/UpdateFailure.swift +390 -0
- package/ios/HotUpdater/Recovery/HotUpdaterRecovery.h +16 -0
- package/ios/HotUpdater/Recovery/HotUpdaterRecovery.mm +83 -0
- package/ios/HotUpdater/Recovery/HotUpdaterRecoveryHooks.mm +49 -0
- package/lib/commonjs/appReady.js +111 -0
- package/lib/commonjs/appReady.js.map +1 -0
- package/lib/commonjs/checkForUpdate.js +125 -70
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/clientPlugin.js +13 -0
- package/lib/commonjs/clientPlugin.js.map +1 -0
- package/lib/commonjs/error.js +4 -13
- package/lib/commonjs/error.js.map +1 -1
- package/lib/commonjs/fetchJSON.js +5 -2
- package/lib/commonjs/fetchJSON.js.map +1 -1
- package/lib/commonjs/httpClient.js +55 -92
- package/lib/commonjs/httpClient.js.map +1 -1
- package/lib/commonjs/index.js +68 -20
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/native.js +82 -62
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/pluginHost.js +44 -0
- package/lib/commonjs/pluginHost.js.map +1 -0
- package/lib/commonjs/releaseCatalogCache.js +20 -61
- package/lib/commonjs/releaseCatalogCache.js.map +1 -1
- package/lib/commonjs/sdkVersion.js +1 -1
- package/lib/commonjs/sdkVersion.js.map +1 -1
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/store.js +3 -10
- package/lib/commonjs/store.js.map +1 -1
- package/lib/commonjs/updateError.js +132 -0
- package/lib/commonjs/updateError.js.map +1 -0
- package/lib/commonjs/wrap.js +44 -27
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/module/appReady.js +103 -0
- package/lib/module/appReady.js.map +1 -0
- package/lib/module/checkForUpdate.js +118 -65
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/clientPlugin.js +4 -0
- package/lib/module/clientPlugin.js.map +1 -0
- package/lib/module/error.js +4 -13
- package/lib/module/error.js.map +1 -1
- package/lib/module/fetchJSON.js +3 -1
- package/lib/module/fetchJSON.js.map +1 -1
- package/lib/module/httpClient.js +53 -90
- package/lib/module/httpClient.js.map +1 -1
- package/lib/module/index.js +55 -22
- package/lib/module/index.js.map +1 -1
- package/lib/module/native.js +74 -54
- package/lib/module/native.js.map +1 -1
- package/lib/module/pluginHost.js +35 -0
- package/lib/module/pluginHost.js.map +1 -0
- package/lib/module/releaseCatalogCache.js +16 -56
- package/lib/module/releaseCatalogCache.js.map +1 -1
- package/lib/module/sdkVersion.js +1 -1
- package/lib/module/sdkVersion.js.map +1 -1
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/store.js +3 -10
- package/lib/module/store.js.map +1 -1
- package/lib/module/updateError.js +126 -0
- package/lib/module/updateError.js.map +1 -0
- package/lib/module/wrap.js +45 -28
- package/lib/module/wrap.js.map +1 -1
- package/lib/typescript/commonjs/appReady.d.ts +23 -0
- package/lib/typescript/commonjs/appReady.d.ts.map +1 -0
- package/lib/typescript/commonjs/checkForUpdate.d.ts +16 -4
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/clientPlugin.d.ts +2 -0
- package/lib/typescript/commonjs/clientPlugin.d.ts.map +1 -0
- package/lib/typescript/commonjs/error.d.ts +4 -13
- package/lib/typescript/commonjs/error.d.ts.map +1 -1
- package/lib/typescript/commonjs/fetchJSON.d.ts +3 -0
- package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -1
- package/lib/typescript/commonjs/httpClient.d.ts +3 -32
- package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +7 -12
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +33 -23
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/pluginHost.d.ts +4 -0
- package/lib/typescript/commonjs/pluginHost.d.ts.map +1 -0
- package/lib/typescript/commonjs/releaseCatalogCache.d.ts +6 -14
- package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +42 -47
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/commonjs/store.d.ts +1 -3
- package/lib/typescript/commonjs/store.d.ts.map +1 -1
- package/lib/typescript/commonjs/types.d.ts +1 -1
- package/lib/typescript/commonjs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/updateError.d.ts +26 -0
- package/lib/typescript/commonjs/updateError.d.ts.map +1 -0
- package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.types.d.ts +6 -7
- package/lib/typescript/commonjs/wrap.types.d.ts.map +1 -1
- package/lib/typescript/module/appReady.d.ts +23 -0
- package/lib/typescript/module/appReady.d.ts.map +1 -0
- package/lib/typescript/module/checkForUpdate.d.ts +16 -4
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/clientPlugin.d.ts +2 -0
- package/lib/typescript/module/clientPlugin.d.ts.map +1 -0
- package/lib/typescript/module/error.d.ts +4 -13
- package/lib/typescript/module/error.d.ts.map +1 -1
- package/lib/typescript/module/fetchJSON.d.ts +3 -0
- package/lib/typescript/module/fetchJSON.d.ts.map +1 -1
- package/lib/typescript/module/httpClient.d.ts +3 -32
- package/lib/typescript/module/httpClient.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +7 -12
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +33 -23
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/pluginHost.d.ts +4 -0
- package/lib/typescript/module/pluginHost.d.ts.map +1 -0
- package/lib/typescript/module/releaseCatalogCache.d.ts +6 -14
- package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -1
- package/lib/typescript/module/sdkVersion.d.ts +1 -1
- package/lib/typescript/module/sdkVersion.d.ts.map +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +42 -47
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/store.d.ts +1 -3
- package/lib/typescript/module/store.d.ts.map +1 -1
- package/lib/typescript/module/types.d.ts +1 -1
- package/lib/typescript/module/types.d.ts.map +1 -1
- package/lib/typescript/module/updateError.d.ts +26 -0
- package/lib/typescript/module/updateError.d.ts.map +1 -0
- package/lib/typescript/module/wrap.d.ts.map +1 -1
- package/lib/typescript/module/wrap.types.d.ts +6 -7
- package/lib/typescript/module/wrap.types.d.ts.map +1 -1
- package/package.json +7 -4
- package/src/appReady.ts +149 -0
- package/src/checkForUpdate.ts +152 -89
- package/src/clientPlugin.ts +17 -0
- package/src/error.ts +4 -14
- package/src/fetchJSON.ts +5 -1
- package/src/httpClient.ts +78 -157
- package/src/index.ts +87 -29
- package/src/native.ts +109 -104
- package/src/pluginHost.ts +45 -0
- package/src/releaseCatalogCache.ts +26 -140
- package/src/sdkVersion.ts +1 -1
- package/src/specs/NativeHotUpdater.ts +41 -48
- package/src/store.ts +2 -23
- package/src/types.ts +1 -1
- package/src/updateError.ts +153 -0
- package/src/wrap.tsx +59 -28
- package/src/wrap.types.ts +6 -7
- package/android/src/main/java/com/hotupdater/DecompressService.kt +0 -89
- package/android/src/main/java/com/hotupdater/DecompressionStrategy.kt +0 -26
- package/android/src/main/java/com/hotupdater/TarBrDecompressionStrategy.kt +0 -117
- package/android/src/main/java/com/hotupdater/TarGzDecompressionStrategy.kt +0 -117
- package/android/src/main/java/com/hotupdater/ZipDecompressionStrategy.kt +0 -192
- package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +0 -46
- package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +0 -799
- package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +0 -273
- package/android/src/test/java/com/hotupdater/NativeConfigUtilsTest.kt +0 -20
- package/android/src/test/java/com/hotupdater/OkHttpDownloadServiceTest.kt +0 -111
- package/android/src/test/java/com/hotupdater/RelativePathResolverTest.kt +0 -41
- package/android/src/test/java/com/hotupdater/ReleaseCatalogCacheServiceTest.kt +0 -118
- package/android/src/test/java/com/hotupdater/TarArchiveInputStreamTest.kt +0 -68
- package/ios/HotUpdater/Internal/ArchiveExtractionUtilities.swift +0 -178
- package/ios/HotUpdater/Internal/DecompressService.swift +0 -112
- package/ios/HotUpdater/Internal/DecompressionStrategy.swift +0 -22
- package/ios/HotUpdater/Internal/StreamingTarArchiveExtractor.swift +0 -370
- package/ios/HotUpdater/Internal/TarBrDecompressionStrategy.swift +0 -39
- package/ios/HotUpdater/Internal/TarGzDecompressionStrategy.swift +0 -59
- package/ios/HotUpdater/Internal/ZipArchiveExtractor.swift +0 -482
- package/ios/HotUpdater/Internal/ZipDecompressionStrategy.swift +0 -56
- package/lib/commonjs/catalogCacheNative.spec.js +0 -31
- package/lib/commonjs/catalogCacheNative.spec.js.map +0 -1
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +0 -604
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +0 -1
- package/lib/commonjs/httpClient.spec.js +0 -102
- package/lib/commonjs/httpClient.spec.js.map +0 -1
- package/lib/commonjs/index.spec.js +0 -298
- package/lib/commonjs/index.spec.js.map +0 -1
- package/lib/commonjs/iosInterop.spec.js +0 -18
- package/lib/commonjs/iosInterop.spec.js.map +0 -1
- package/lib/commonjs/native.spec.js +0 -795
- package/lib/commonjs/native.spec.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js +0 -218
- package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.js +0 -133
- package/lib/commonjs/notifyAppReadyInsights.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.spec.js +0 -246
- package/lib/commonjs/notifyAppReadyInsights.spec.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.test-utils.js +0 -24
- package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.transport.spec.js +0 -117
- package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +0 -1
- package/lib/commonjs/releaseCatalogCache.spec.js +0 -195
- package/lib/commonjs/releaseCatalogCache.spec.js.map +0 -1
- package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js +0 -64
- package/lib/commonjs/releaseCatalogCacheNativeContract.spec.js.map +0 -1
- package/lib/commonjs/store.notification.spec.js +0 -76
- package/lib/commonjs/store.notification.spec.js.map +0 -1
- package/lib/commonjs/store.spec.js +0 -316
- package/lib/commonjs/store.spec.js.map +0 -1
- package/lib/commonjs/wrap.spec.js +0 -296
- package/lib/commonjs/wrap.spec.js.map +0 -1
- package/lib/module/catalogCacheNative.spec.js +0 -31
- package/lib/module/catalogCacheNative.spec.js.map +0 -1
- package/lib/module/checkForUpdate.releaseCatalog.spec.js +0 -603
- package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +0 -1
- package/lib/module/httpClient.spec.js +0 -102
- package/lib/module/httpClient.spec.js.map +0 -1
- package/lib/module/index.spec.js +0 -297
- package/lib/module/index.spec.js.map +0 -1
- package/lib/module/iosInterop.spec.js +0 -18
- package/lib/module/iosInterop.spec.js.map +0 -1
- package/lib/module/native.spec.js +0 -794
- package/lib/module/native.spec.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.boundary.spec.js +0 -217
- package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.js +0 -128
- package/lib/module/notifyAppReadyInsights.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.spec.js +0 -245
- package/lib/module/notifyAppReadyInsights.spec.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.test-utils.js +0 -18
- package/lib/module/notifyAppReadyInsights.test-utils.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.transport.spec.js +0 -116
- package/lib/module/notifyAppReadyInsights.transport.spec.js.map +0 -1
- package/lib/module/releaseCatalogCache.spec.js +0 -195
- package/lib/module/releaseCatalogCache.spec.js.map +0 -1
- package/lib/module/releaseCatalogCacheNativeContract.spec.js +0 -64
- package/lib/module/releaseCatalogCacheNativeContract.spec.js.map +0 -1
- package/lib/module/store.notification.spec.js +0 -77
- package/lib/module/store.notification.spec.js.map +0 -1
- package/lib/module/store.spec.js +0 -315
- package/lib/module/store.spec.js.map +0 -1
- package/lib/module/wrap.spec.js +0 -295
- package/lib/module/wrap.spec.js.map +0 -1
- package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +0 -13
- package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts.map +0 -1
- package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts +0 -8
- package/lib/typescript/commonjs/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
- package/lib/typescript/module/notifyAppReadyInsights.d.ts +0 -13
- package/lib/typescript/module/notifyAppReadyInsights.d.ts.map +0 -1
- package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts +0 -8
- package/lib/typescript/module/notifyAppReadyInsights.test-utils.d.ts.map +0 -1
- package/src/catalogCacheNative.spec.ts +0 -63
- package/src/checkForUpdate.releaseCatalog.spec.ts +0 -596
- package/src/httpClient.spec.ts +0 -132
- package/src/index.spec.ts +0 -331
- package/src/iosInterop.spec.ts +0 -30
- package/src/native.spec.ts +0 -855
- package/src/notifyAppReadyInsights.boundary.spec.ts +0 -234
- package/src/notifyAppReadyInsights.spec.ts +0 -243
- package/src/notifyAppReadyInsights.test-utils.ts +0 -31
- package/src/notifyAppReadyInsights.transport.spec.ts +0 -130
- package/src/notifyAppReadyInsights.ts +0 -194
- package/src/releaseCatalogCache.spec.ts +0 -282
- package/src/releaseCatalogCacheNativeContract.spec.ts +0 -80
- package/src/store.notification.spec.ts +0 -92
- package/src/store.spec.ts +0 -372
- package/src/wrap.spec.ts +0 -367
package/lib/commonjs/error.js
CHANGED
|
@@ -14,7 +14,7 @@ exports.isHotUpdaterError = isHotUpdaterError;
|
|
|
14
14
|
*
|
|
15
15
|
* Error Classification:
|
|
16
16
|
* - Parameter Validation: Invalid or missing function parameters
|
|
17
|
-
* - Bundle Storage: Errors during download,
|
|
17
|
+
* - Bundle Storage: Errors during download, verification, and storage
|
|
18
18
|
* - Signature Verification: Cryptographic verification failures (collapsed to a single public code)
|
|
19
19
|
* - Internal: Platform-specific or unexpected errors
|
|
20
20
|
*
|
|
@@ -31,8 +31,7 @@ let HotUpdaterErrorCode = exports.HotUpdaterErrorCode = /*#__PURE__*/function (H
|
|
|
31
31
|
*/
|
|
32
32
|
HotUpdaterErrorCode["MISSING_BUNDLE_ID"] = "MISSING_BUNDLE_ID";
|
|
33
33
|
/**
|
|
34
|
-
*
|
|
35
|
-
* Thrown when fileUrl parameter cannot be parsed as a valid URL.
|
|
34
|
+
* Manifest or asset URL is invalid or malformed.
|
|
36
35
|
* @retryable false
|
|
37
36
|
*/
|
|
38
37
|
HotUpdaterErrorCode["INVALID_FILE_URL"] = "INVALID_FILE_URL";
|
|
@@ -57,23 +56,15 @@ let HotUpdaterErrorCode = exports.HotUpdaterErrorCode = /*#__PURE__*/function (H
|
|
|
57
56
|
* @retryable true - Download may succeed on retry
|
|
58
57
|
*/
|
|
59
58
|
HotUpdaterErrorCode["INCOMPLETE_DOWNLOAD"] = "INCOMPLETE_DOWNLOAD";
|
|
60
|
-
/**
|
|
61
|
-
* Bundle archive format is invalid or corrupted.
|
|
62
|
-
* Thrown when ZIP file has wrong magic bytes, invalid structure, or unsupported format.
|
|
63
|
-
* Also thrown for path traversal attempts during extraction.
|
|
64
|
-
* @retryable false - Indicates corrupted or malicious bundle
|
|
65
|
-
*/
|
|
66
|
-
HotUpdaterErrorCode["EXTRACTION_FORMAT_ERROR"] = "EXTRACTION_FORMAT_ERROR";
|
|
67
59
|
/**
|
|
68
60
|
* Bundle missing required platform files.
|
|
69
|
-
* Thrown when
|
|
61
|
+
* Thrown when the staged bundle doesn't contain index.android.bundle (Android)
|
|
70
62
|
* or main.jsbundle (iOS).
|
|
71
63
|
* @retryable false - Indicates incorrectly built bundle
|
|
72
64
|
*/
|
|
73
65
|
HotUpdaterErrorCode["INVALID_BUNDLE"] = "INVALID_BUNDLE";
|
|
74
66
|
/**
|
|
75
|
-
* Insufficient disk space for bundle
|
|
76
|
-
* Thrown when available disk space is less than required (file size * 2).
|
|
67
|
+
* Insufficient disk space for bundle staging.
|
|
77
68
|
* Error message includes required and available bytes.
|
|
78
69
|
* @retryable false - User must free up disk space
|
|
79
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["HotUpdaterErrorCode","exports","isHotUpdaterError","error","code","Object","values","includes","HotUpdaterError","Error","constructor","message","name","StaleReleaseCatalogError"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA,IAkBYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAC7B;EAEA;AACF;AACA;AACA;AACA;EAPYA,mBAAmB;EAU7B;AACF;AACA;AACA;
|
|
1
|
+
{"version":3,"names":["HotUpdaterErrorCode","exports","isHotUpdaterError","error","code","Object","values","includes","HotUpdaterError","Error","constructor","message","name","StaleReleaseCatalogError"],"sourceRoot":"../../src","sources":["error.ts"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA,IAkBYA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,0BAAnBA,mBAAmB;EAC7B;EAEA;AACF;AACA;AACA;AACA;EAPYA,mBAAmB;EAU7B;AACF;AACA;AACA;EAbYA,mBAAmB;EAgB7B;EAEA;AACF;AACA;AACA;AACA;EAtBYA,mBAAmB;EAyB7B;AACF;AACA;AACA;AACA;AACA;EA9BYA,mBAAmB;EAiC7B;AACF;AACA;AACA;AACA;AACA;EAtCYA,mBAAmB;EAyC7B;AACF;AACA;AACA;AACA;AACA;EA9CYA,mBAAmB;EAiD7B;AACF;AACA;AACA;AACA;EArDYA,mBAAmB;EAwD7B;AACF;AACA;AACA;AACA;AACA;EA7DYA,mBAAmB;EAgE7B;AACF;AACA;AACA;AACA;AACA;AACA;EAtEYA,mBAAmB;EAyE7B;AACF;AACA;AACA;AACA;AACA;EA9EYA,mBAAmB;EAiF7B;EACA;EAEA;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EA7FYA,mBAAmB;EAgG7B;AACF;AACA;AACA;AACA;AACA;EArGYA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAyG/B;AACA;AACA;AACO,SAASE,iBAAiBA,CAC/BC,KAAc,EAC2C;EACzD,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,MAAM,IAAIA,KAAK,IACf,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,IAC9BC,MAAM,CAACC,MAAM,CAACN,mBAAmB,CAAC,CAACO,QAAQ,CACzCJ,KAAK,CAACC,IACR,CAAC;AAEL;;AAEA;AACA;AACA;AACO,MAAMI,eAAe,SAASC,KAAK,CAAC;EACzCC,WAAWA,CAACC,OAAe,EAAE;IAC3B,KAAK,CAACA,OAAO,CAAC;IACd,IAAI,CAACC,IAAI,GAAG,iBAAiB;EAC/B;AACF;AAACX,OAAA,CAAAO,eAAA,GAAAA,eAAA;AAEM,MAAMK,wBAAwB,SAASL,eAAe,CAAC;EAC5DE,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,gEAAgE,CAAC;IACvE,IAAI,CAACE,IAAI,GAAG,0BAA0B;EACxC;AACF;AAACX,OAAA,CAAAY,wBAAA,GAAAA,wBAAA","ignoreList":[]}
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.fetchJSON = void 0;
|
|
6
|
+
exports.fetchJSON = exports.FetchJSONResponseError = void 0;
|
|
7
|
+
var _updateError = require("./updateError.js");
|
|
8
|
+
class FetchJSONResponseError extends _updateError.UpdateHttpError {}
|
|
9
|
+
exports.FetchJSONResponseError = FetchJSONResponseError;
|
|
7
10
|
const fetchJSON = async ({
|
|
8
11
|
url,
|
|
9
12
|
requestHeaders,
|
|
@@ -20,7 +23,7 @@ const fetchJSON = async ({
|
|
|
20
23
|
signal: controller.signal
|
|
21
24
|
});
|
|
22
25
|
if (response.status !== 200) {
|
|
23
|
-
throw new
|
|
26
|
+
throw new FetchJSONResponseError(response.status, response.statusText);
|
|
24
27
|
}
|
|
25
28
|
return await response.json();
|
|
26
29
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fetchJSON","url","requestHeaders","requestTimeout","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","headers","Accept","signal","status","
|
|
1
|
+
{"version":3,"names":["_updateError","require","FetchJSONResponseError","UpdateHttpError","exports","fetchJSON","url","requestHeaders","requestTimeout","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","headers","Accept","signal","status","statusText","json","error","Error","name","clearTimeout"],"sourceRoot":"../../src","sources":["fetchJSON.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,sBAAsB,SAASC,4BAAe,CAAC;AAAEC,OAAA,CAAAF,sBAAA,GAAAA,sBAAA;AAEvD,MAAMG,SAAS,GAAG,MAAAA,CAAU;EACjCC,GAAG;EACHC,cAAc;EACdC,cAAc,GAAG;AAKnB,CAAC,KAAiB;EAChB,MAAMC,UAAU,GAAG,IAAIC,eAAe,CAAC,CAAC;EACxC,MAAMC,SAAS,GAAGC,UAAU,CAAC,MAAMH,UAAU,CAACI,KAAK,CAAC,CAAC,EAAEL,cAAc,CAAC;EAEtE,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMC,KAAK,CAACT,GAAG,EAAE;MAChCU,OAAO,EAAE;QACPC,MAAM,EAAE,kBAAkB;QAC1B,GAAGV;MACL,CAAC;MACDW,MAAM,EAAET,UAAU,CAACS;IACrB,CAAC,CAAC;IACF,IAAIJ,QAAQ,CAACK,MAAM,KAAK,GAAG,EAAE;MAC3B,MAAM,IAAIjB,sBAAsB,CAACY,QAAQ,CAACK,MAAM,EAAEL,QAAQ,CAACM,UAAU,CAAC;IACxE;IACA,OAAQ,MAAMN,QAAQ,CAACO,IAAI,CAAC,CAAC;EAC/B,CAAC,CAAC,OAAOC,KAAc,EAAE;IACvB,IAAIA,KAAK,YAAYC,KAAK,IAAID,KAAK,CAACE,IAAI,KAAK,YAAY,EAAE;MACzD,MAAM,IAAID,KAAK,CAAC,mBAAmB,CAAC;IACtC;IACA,MAAMD,KAAK;EACb,CAAC,SAAS;IACRG,YAAY,CAACd,SAAS,CAAC;EACzB;AACF,CAAC;AAACP,OAAA,CAAAC,SAAA,GAAAA,SAAA","ignoreList":[]}
|
|
@@ -4,106 +4,60 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createHttpClient = void 0;
|
|
7
|
-
var
|
|
8
|
-
var _pluginCore = require("@hot-updater/plugin-core");
|
|
7
|
+
var _protocol = require("@hot-updater/protocol");
|
|
9
8
|
var _fetchJSON = require("./fetchJSON.js");
|
|
10
9
|
var _releaseCatalogCache = require("./releaseCatalogCache.js");
|
|
11
|
-
var
|
|
12
|
-
const resolveBaseURL = async baseURL => {
|
|
13
|
-
const resolvedBaseURL = typeof baseURL === "function" ? await baseURL() : baseURL;
|
|
14
|
-
if (!resolvedBaseURL) {
|
|
15
|
-
throw new Error("baseURL function must return a non-empty string");
|
|
16
|
-
}
|
|
17
|
-
return resolvedBaseURL.replace(/\/+$/, "");
|
|
18
|
-
};
|
|
10
|
+
var _updateError = require("./updateError.js");
|
|
19
11
|
const resolveArtifactUrl = (baseURL, value) => {
|
|
20
12
|
if (/^https?:\/\//i.test(value)) {
|
|
21
|
-
|
|
13
|
+
try {
|
|
14
|
+
new URL(value);
|
|
15
|
+
} catch (error) {
|
|
16
|
+
throw new _updateError.InvalidUpdateResponseError(`Invalid artifact URL: ${value}`, {
|
|
17
|
+
cause: error
|
|
18
|
+
});
|
|
19
|
+
}
|
|
22
20
|
return value;
|
|
23
21
|
}
|
|
24
22
|
if (!value.startsWith("/storage/")) {
|
|
25
|
-
throw new
|
|
23
|
+
throw new _updateError.InvalidUpdateResponseError("Artifact URLs must be absolute HTTP(S) URLs or client-relative storage paths.");
|
|
26
24
|
}
|
|
27
25
|
return `${baseURL}/${value.slice(1)}`;
|
|
28
26
|
};
|
|
29
27
|
const resolveArtifactUrls = (baseURL, info) => ({
|
|
30
28
|
...info,
|
|
31
|
-
|
|
32
|
-
...(info.
|
|
33
|
-
|
|
34
|
-
}),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
...
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
} : {})
|
|
50
|
-
}]))
|
|
51
|
-
})
|
|
29
|
+
manifestUrl: resolveArtifactUrl(baseURL, info.manifestUrl),
|
|
30
|
+
...(info.archiveUrl ? {
|
|
31
|
+
archiveUrl: resolveArtifactUrl(baseURL, info.archiveUrl)
|
|
32
|
+
} : {}),
|
|
33
|
+
assets: Object.fromEntries(Object.entries(info.assets).map(([path, asset]) => [path, {
|
|
34
|
+
...asset,
|
|
35
|
+
file: {
|
|
36
|
+
...asset.file,
|
|
37
|
+
url: resolveArtifactUrl(baseURL, asset.file.url)
|
|
38
|
+
},
|
|
39
|
+
...(asset.patch ? {
|
|
40
|
+
patch: {
|
|
41
|
+
...asset.patch,
|
|
42
|
+
patchUrl: resolveArtifactUrl(baseURL, asset.patch.patchUrl)
|
|
43
|
+
}
|
|
44
|
+
} : {})
|
|
45
|
+
}]))
|
|
52
46
|
});
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
body: JSON.stringify({
|
|
61
|
-
appVersion: params.appVersion,
|
|
62
|
-
channel: params.channel,
|
|
63
|
-
cohort: params.cohort,
|
|
64
|
-
fingerprintHash: params.fingerprintHash,
|
|
65
|
-
fromBundleId: params.fromBundleId,
|
|
66
|
-
...(params.fromReleaseId === undefined ? {} : {
|
|
67
|
-
fromReleaseId: params.fromReleaseId
|
|
68
|
-
}),
|
|
69
|
-
installId: params.installId,
|
|
70
|
-
platform: params.platform,
|
|
71
|
-
sdkVersion: _sdkVersion.HOT_UPDATER_SDK_VERSION,
|
|
72
|
-
toBundleId: params.toBundleId,
|
|
73
|
-
...(params.toReleaseId === undefined ? {} : {
|
|
74
|
-
toReleaseId: params.toReleaseId
|
|
75
|
-
}),
|
|
76
|
-
type: params.type,
|
|
77
|
-
updateStrategy: params.updateStrategy,
|
|
78
|
-
...(params.userId != null ? {
|
|
79
|
-
userId: params.userId
|
|
80
|
-
} : {}),
|
|
81
|
-
...(params.username != null ? {
|
|
82
|
-
username: params.username
|
|
83
|
-
} : {})
|
|
84
|
-
}),
|
|
85
|
-
headers: {
|
|
86
|
-
"Content-Type": "application/json",
|
|
87
|
-
...params.requestHeaders
|
|
88
|
-
},
|
|
89
|
-
method: "POST",
|
|
90
|
-
signal: controller.signal
|
|
91
|
-
});
|
|
92
|
-
if (response.status !== 204) {
|
|
93
|
-
throw new Error(`Expected HTTP 204 from /events, received ${response.status}`);
|
|
94
|
-
}
|
|
95
|
-
} catch (error) {
|
|
96
|
-
if (error instanceof Error && error.name === "AbortError") {
|
|
97
|
-
throw new Error("Request timed out");
|
|
47
|
+
const requireArtifactProtocolV1 = info => {
|
|
48
|
+
if (info.artifactProtocolVersion !== _protocol.ARTIFACT_PROTOCOL_VERSION || !info.assets || !info.manifestUrl || !info.manifestFileHash || info.archiveUrl !== undefined && typeof info.archiveUrl !== "string") {
|
|
49
|
+
throw new _updateError.InvalidUpdateResponseError(`Server does not support artifact protocol ${_protocol.ARTIFACT_PROTOCOL_VERSION}.`);
|
|
50
|
+
}
|
|
51
|
+
for (const asset of Object.values(info.assets)) {
|
|
52
|
+
if (!asset.file?.url || !asset.fileHash) {
|
|
53
|
+
throw new _updateError.InvalidUpdateResponseError("Artifact protocol 1 requires an original file for every asset.");
|
|
98
54
|
}
|
|
99
|
-
throw error;
|
|
100
|
-
} finally {
|
|
101
|
-
clearTimeout(timeoutId);
|
|
102
55
|
}
|
|
56
|
+
return info;
|
|
103
57
|
};
|
|
104
58
|
const createSession = baseURL => ({
|
|
105
59
|
fetchReleaseCatalog: async params => {
|
|
106
|
-
const channelKey = (0,
|
|
60
|
+
const channelKey = (0, _protocol.encodeChannelKey)(params.channel);
|
|
107
61
|
let strategyValue;
|
|
108
62
|
if (params.updateStrategy === "fingerprint") {
|
|
109
63
|
if (!params.fingerprintHash) {
|
|
@@ -111,7 +65,7 @@ const createSession = baseURL => ({
|
|
|
111
65
|
}
|
|
112
66
|
strategyValue = params.fingerprintHash;
|
|
113
67
|
} else {
|
|
114
|
-
const appVersion = (0,
|
|
68
|
+
const appVersion = (0, _protocol.canonicalizeAppVersion)(params.appVersion);
|
|
115
69
|
if (appVersion === null) throw new Error("Invalid app version");
|
|
116
70
|
strategyValue = appVersion;
|
|
117
71
|
}
|
|
@@ -135,19 +89,28 @@ const createSession = baseURL => ({
|
|
|
135
89
|
});
|
|
136
90
|
},
|
|
137
91
|
resolveArtifact: async params => {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
92
|
+
let info;
|
|
93
|
+
try {
|
|
94
|
+
info = await (0, _fetchJSON.fetchJSON)({
|
|
95
|
+
requestHeaders: params.requestHeaders,
|
|
96
|
+
requestTimeout: params.requestTimeout,
|
|
97
|
+
url: `${baseURL}/artifacts/v1/${encodeURIComponent(params.targetBundleId)}/from/${encodeURIComponent(params.currentBundleId)}`
|
|
98
|
+
});
|
|
99
|
+
} catch (error) {
|
|
100
|
+
if (error instanceof _fetchJSON.FetchJSONResponseError && error.status === 404) {
|
|
101
|
+
throw new _updateError.InvalidUpdateResponseError(`Server does not support artifact protocol ${_protocol.ARTIFACT_PROTOCOL_VERSION}.`, {
|
|
102
|
+
cause: error
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
return resolveArtifactUrls(baseURL, requireArtifactProtocolV1(info));
|
|
108
|
+
}
|
|
146
109
|
});
|
|
147
110
|
|
|
148
111
|
/** Creates the private HTTP client used by HotUpdater.init and HotUpdater.wrap. */
|
|
149
112
|
const createHttpClient = baseURL => ({
|
|
150
|
-
createSession: async () => createSession(await resolveBaseURL(baseURL))
|
|
113
|
+
createSession: async () => createSession(await (0, _protocol.resolveBaseURL)(baseURL))
|
|
151
114
|
});
|
|
152
115
|
exports.createHttpClient = createHttpClient;
|
|
153
116
|
//# sourceMappingURL=httpClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_protocol","require","_fetchJSON","_releaseCatalogCache","_updateError","resolveArtifactUrl","baseURL","value","test","URL","error","InvalidUpdateResponseError","cause","startsWith","slice","resolveArtifactUrls","info","manifestUrl","archiveUrl","assets","Object","fromEntries","entries","map","path","asset","file","url","patch","patchUrl","requireArtifactProtocolV1","artifactProtocolVersion","ARTIFACT_PROTOCOL_VERSION","manifestFileHash","undefined","values","fileHash","createSession","fetchReleaseCatalog","params","channelKey","encodeChannelKey","channel","strategyValue","updateStrategy","fingerprintHash","Error","appVersion","canonicalizeAppVersion","strategyPath","platform","encodeURIComponent","fetchReleaseCatalogWithCache","expectedScope","strategy","requestHeaders","requestTimeout","resolveArtifact","fetchJSON","targetBundleId","currentBundleId","FetchJSONResponseError","status","createHttpClient","resolveBaseURL","exports"],"sourceRoot":"../../src","sources":["httpClient.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAUA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AA+BA,MAAMI,kBAAkB,GAAGA,CAACC,OAAe,EAAEC,KAAa,KAAa;EACrE,IAAI,eAAe,CAACC,IAAI,CAACD,KAAK,CAAC,EAAE;IAC/B,IAAI;MACF,IAAIE,GAAG,CAACF,KAAK,CAAC;IAChB,CAAC,CAAC,OAAOG,KAAK,EAAE;MACd,MAAM,IAAIC,uCAA0B,CAAC,yBAAyBJ,KAAK,EAAE,EAAE;QACrEK,KAAK,EAAEF;MACT,CAAC,CAAC;IACJ;IACA,OAAOH,KAAK;EACd;EACA,IAAI,CAACA,KAAK,CAACM,UAAU,CAAC,WAAW,CAAC,EAAE;IAClC,MAAM,IAAIF,uCAA0B,CAClC,+EACF,CAAC;EACH;EACA,OAAO,GAAGL,OAAO,IAAIC,KAAK,CAACO,KAAK,CAAC,CAAC,CAAC,EAAE;AACvC,CAAC;AAED,MAAMC,mBAAmB,GAAGA,CAC1BT,OAAe,EACfU,IAAkB,MACA;EAClB,GAAGA,IAAI;EACPC,WAAW,EAAEZ,kBAAkB,CAACC,OAAO,EAAEU,IAAI,CAACC,WAAW,CAAC;EAC1D,IAAID,IAAI,CAACE,UAAU,GACf;IAAEA,UAAU,EAAEb,kBAAkB,CAACC,OAAO,EAAEU,IAAI,CAACE,UAAU;EAAE,CAAC,GAC5D,CAAC,CAAC,CAAC;EACPC,MAAM,EAAEC,MAAM,CAACC,WAAW,CACxBD,MAAM,CAACE,OAAO,CAACN,IAAI,CAACG,MAAM,CAAC,CAACI,GAAG,CAAC,CAAC,CAACC,IAAI,EAAEC,KAAK,CAAC,KAAK,CACjDD,IAAI,EACJ;IACE,GAAGC,KAAK;IACRC,IAAI,EAAE;MACJ,GAAGD,KAAK,CAACC,IAAI;MACbC,GAAG,EAAEtB,kBAAkB,CAACC,OAAO,EAAEmB,KAAK,CAACC,IAAI,CAACC,GAAG;IACjD,CAAC;IACD,IAAIF,KAAK,CAACG,KAAK,GACX;MACEA,KAAK,EAAE;QACL,GAAGH,KAAK,CAACG,KAAK;QACdC,QAAQ,EAAExB,kBAAkB,CAACC,OAAO,EAAEmB,KAAK,CAACG,KAAK,CAACC,QAAQ;MAC5D;IACF,CAAC,GACD,CAAC,CAAC;EACR,CAAC,CACF,CACH;AACF,CAAC,CAAC;AAEF,MAAMC,yBAAyB,GAAId,IAAkB,IAAmB;EACtE,IACEA,IAAI,CAACe,uBAAuB,KAAKC,mCAAyB,IAC1D,CAAChB,IAAI,CAACG,MAAM,IACZ,CAACH,IAAI,CAACC,WAAW,IACjB,CAACD,IAAI,CAACiB,gBAAgB,IACrBjB,IAAI,CAACE,UAAU,KAAKgB,SAAS,IAAI,OAAOlB,IAAI,CAACE,UAAU,KAAK,QAAS,EACtE;IACA,MAAM,IAAIP,uCAA0B,CAClC,6CAA6CqB,mCAAyB,GACxE,CAAC;EACH;EACA,KAAK,MAAMP,KAAK,IAAIL,MAAM,CAACe,MAAM,CAACnB,IAAI,CAACG,MAAM,CAAC,EAAE;IAC9C,IAAI,CAACM,KAAK,CAACC,IAAI,EAAEC,GAAG,IAAI,CAACF,KAAK,CAACW,QAAQ,EAAE;MACvC,MAAM,IAAIzB,uCAA0B,CAClC,gEACF,CAAC;IACH;EACF;EACA,OAAOK,IAAI;AACb,CAAC;AAED,MAAMqB,aAAa,GAAI/B,OAAe,KAA6B;EACjEgC,mBAAmB,EAAE,MAAOC,MAAM,IAAqC;IACrE,MAAMC,UAAU,GAAG,IAAAC,0BAAgB,EAACF,MAAM,CAACG,OAAO,CAAC;IACnD,IAAIC,aAAqB;IACzB,IAAIJ,MAAM,CAACK,cAAc,KAAK,aAAa,EAAE;MAC3C,IAAI,CAACL,MAAM,CAACM,eAAe,EAAE;QAC3B,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;MACjD;MACAH,aAAa,GAAGJ,MAAM,CAACM,eAAe;IACxC,CAAC,MAAM;MACL,MAAME,UAAU,GAAG,IAAAC,gCAAsB,EAACT,MAAM,CAACQ,UAAU,CAAC;MAC5D,IAAIA,UAAU,KAAK,IAAI,EAAE,MAAM,IAAID,KAAK,CAAC,qBAAqB,CAAC;MAC/DH,aAAa,GAAGI,UAAU;IAC5B;IACA,MAAME,YAAY,GAChBV,MAAM,CAACK,cAAc,KAAK,aAAa,GAAG,aAAa,GAAG,aAAa;IACzE,MAAMjB,GAAG,GAAG,GAAGrB,OAAO,qBAAqB2C,YAAY,IAAIV,MAAM,CAACW,QAAQ,IAAIV,UAAU,IAAIW,kBAAkB,CAACR,aAAa,CAAC,EAAE;IAE/H,OAAO,IAAAS,iDAA4B,EAAC;MAClC9C,OAAO;MACP+C,aAAa,EACXd,MAAM,CAACK,cAAc,KAAK,aAAa,GACnC;QACEJ,UAAU;QACVK,eAAe,EAAEF,aAAa;QAC9BO,QAAQ,EAAEX,MAAM,CAACW,QAAQ;QACzBI,QAAQ,EAAE;MACZ,CAAC,GACD;QACEd,UAAU;QACVU,QAAQ,EAAEX,MAAM,CAACW,QAAQ;QACzBI,QAAQ,EAAE;MACZ,CAAC;MACPC,cAAc,EAAEhB,MAAM,CAACgB,cAAc;MACrCC,cAAc,EAAEjB,MAAM,CAACiB,cAAc;MACrC7B;IACF,CAAC,CAAC;EACJ,CAAC;EACD8B,eAAe,EAAE,MAAOlB,MAAM,IAA4B;IACxD,IAAIvB,IAAkB;IACtB,IAAI;MACFA,IAAI,GAAG,MAAM,IAAA0C,oBAAS,EAAe;QACnCH,cAAc,EAAEhB,MAAM,CAACgB,cAAc;QACrCC,cAAc,EAAEjB,MAAM,CAACiB,cAAc;QACrC7B,GAAG,EAAE,GAAGrB,OAAO,iBAAiB6C,kBAAkB,CAChDZ,MAAM,CAACoB,cACT,CAAC,SAASR,kBAAkB,CAACZ,MAAM,CAACqB,eAAe,CAAC;MACtD,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOlD,KAAK,EAAE;MACd,IAAIA,KAAK,YAAYmD,iCAAsB,IAAInD,KAAK,CAACoD,MAAM,KAAK,GAAG,EAAE;QACnE,MAAM,IAAInD,uCAA0B,CAClC,6CAA6CqB,mCAAyB,GAAG,EACzE;UAAEpB,KAAK,EAAEF;QAAM,CACjB,CAAC;MACH;MACA,MAAMA,KAAK;IACb;IACA,OAAOK,mBAAmB,CAACT,OAAO,EAAEwB,yBAAyB,CAACd,IAAI,CAAC,CAAC;EACtE;AACF,CAAC,CAAC;;AAEF;AACO,MAAM+C,gBAAgB,GAC3BzD,OAA0B,KACA;EAC1B+B,aAAa,EAAE,MAAAA,CAAA,KAAYA,aAAa,CAAC,MAAM,IAAA2B,wBAAc,EAAC1D,OAAO,CAAC;AACxE,CAAC,CAAC;AAAC2D,OAAA,CAAAF,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -5,25 +5,41 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
var _exportNames = {
|
|
7
7
|
HotUpdater: true,
|
|
8
|
+
defineClientPlugin: true,
|
|
9
|
+
insights: true,
|
|
8
10
|
extractSignatureFailure: true,
|
|
9
11
|
isSignatureVerificationError: true
|
|
10
12
|
};
|
|
11
13
|
exports.HotUpdater = void 0;
|
|
14
|
+
Object.defineProperty(exports, "defineClientPlugin", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _clientPlugin.defineClientPlugin;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
12
20
|
Object.defineProperty(exports, "extractSignatureFailure", {
|
|
13
21
|
enumerable: true,
|
|
14
22
|
get: function () {
|
|
15
23
|
return _types.extractSignatureFailure;
|
|
16
24
|
}
|
|
17
25
|
});
|
|
26
|
+
Object.defineProperty(exports, "insights", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () {
|
|
29
|
+
return _client.insights;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
18
32
|
Object.defineProperty(exports, "isSignatureVerificationError", {
|
|
19
33
|
enumerable: true,
|
|
20
34
|
get: function () {
|
|
21
35
|
return _types.isSignatureVerificationError;
|
|
22
36
|
}
|
|
23
37
|
});
|
|
38
|
+
var _appReady = require("./appReady.js");
|
|
24
39
|
var _checkForUpdate = require("./checkForUpdate.js");
|
|
25
40
|
var _httpClient = require("./httpClient.js");
|
|
26
41
|
var _native = require("./native.js");
|
|
42
|
+
var _pluginHost = require("./pluginHost.js");
|
|
27
43
|
var _store = require("./store.js");
|
|
28
44
|
Object.keys(_store).forEach(function (key) {
|
|
29
45
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -37,7 +53,11 @@ Object.keys(_store).forEach(function (key) {
|
|
|
37
53
|
});
|
|
38
54
|
});
|
|
39
55
|
var _wrap = require("./wrap.js");
|
|
56
|
+
var _clientPlugin = require("./clientPlugin.js");
|
|
57
|
+
var _client = require("@hot-updater/plugin-insights/client");
|
|
40
58
|
var _types = require("./types.js");
|
|
59
|
+
// The built-in Insights client plugin, for HotUpdater.init({ plugins }).
|
|
60
|
+
|
|
41
61
|
/**
|
|
42
62
|
* Register getBaseURL to global objects for use without imports.
|
|
43
63
|
* This is needed for Expo DOM components and Babel plugin generated code.
|
|
@@ -65,7 +85,6 @@ function createHotUpdaterClient() {
|
|
|
65
85
|
|
|
66
86
|
// Global configuration stored from wrap
|
|
67
87
|
const globalConfig = {
|
|
68
|
-
insights: true,
|
|
69
88
|
client: null
|
|
70
89
|
};
|
|
71
90
|
const createMissingNetworkConfigError = apiName => {
|
|
@@ -84,11 +103,11 @@ function createHotUpdaterClient() {
|
|
|
84
103
|
if (autoOptions.baseURL) {
|
|
85
104
|
const {
|
|
86
105
|
baseURL,
|
|
106
|
+
plugins: _plugins,
|
|
87
107
|
...rest
|
|
88
108
|
} = autoOptions;
|
|
89
109
|
return {
|
|
90
110
|
...rest,
|
|
91
|
-
insights: rest.insights ?? true,
|
|
92
111
|
client: (0, _httpClient.createHttpClient)(baseURL)
|
|
93
112
|
};
|
|
94
113
|
}
|
|
@@ -102,18 +121,24 @@ function createHotUpdaterClient() {
|
|
|
102
121
|
if (rest.baseURL) {
|
|
103
122
|
const {
|
|
104
123
|
baseURL,
|
|
124
|
+
plugins: _plugins,
|
|
105
125
|
...baseURLRest
|
|
106
126
|
} = rest;
|
|
107
127
|
return {
|
|
108
128
|
...baseURLRest,
|
|
109
|
-
insights: baseURLRest.insights ?? true,
|
|
110
129
|
client: (0, _httpClient.createHttpClient)(baseURL)
|
|
111
130
|
};
|
|
112
131
|
}
|
|
113
132
|
throw createMissingNetworkConfigError("init");
|
|
114
133
|
};
|
|
115
134
|
const configureGlobal = (normalizedOptions, options) => {
|
|
116
|
-
|
|
135
|
+
// Plugins are set up before init or wrap reads the launch they observe.
|
|
136
|
+
(0, _pluginHost.configurePlugins)(options.plugins, {
|
|
137
|
+
baseURL: options.baseURL,
|
|
138
|
+
requestHeaders: options.requestHeaders,
|
|
139
|
+
requestTimeout: options.requestTimeout,
|
|
140
|
+
onError: options.onError
|
|
141
|
+
});
|
|
117
142
|
globalConfig.client = normalizedOptions.client;
|
|
118
143
|
globalConfig.requestHeaders = options.requestHeaders;
|
|
119
144
|
globalConfig.requestTimeout = options.requestTimeout;
|
|
@@ -223,13 +248,12 @@ function createHotUpdaterClient() {
|
|
|
223
248
|
/** Reads the active and stable Release/Bundle state. */
|
|
224
249
|
getActiveUpdateState: async () => (0, _native.getPublicActiveUpdateState)(),
|
|
225
250
|
/**
|
|
226
|
-
*
|
|
251
|
+
* Returns the selected update ID, matching the ID shown in the console.
|
|
252
|
+
* A staged update can change this ID before the app reloads.
|
|
227
253
|
*/
|
|
228
|
-
getBundleId: _native.
|
|
254
|
+
getBundleId: _native.getUpdateId,
|
|
229
255
|
/** Returns the minimum bundle ID based on the native app build time. */
|
|
230
256
|
getMinBundleId: _native.getMinBundleId,
|
|
231
|
-
/** Returns the active Release identity, or null for BUILTIN/legacy state. */
|
|
232
|
-
getReleaseId: _native.getReleaseId,
|
|
233
257
|
/**
|
|
234
258
|
* Fetches the current manifest for the active bundle.
|
|
235
259
|
*/
|
|
@@ -327,7 +351,6 @@ function createHotUpdaterClient() {
|
|
|
327
351
|
const client = ensureGlobalClient("checkForUpdate");
|
|
328
352
|
const mergedConfig = {
|
|
329
353
|
...config,
|
|
330
|
-
insights: globalConfig.insights,
|
|
331
354
|
client,
|
|
332
355
|
requestHeaders: {
|
|
333
356
|
...globalConfig.requestHeaders,
|
|
@@ -343,8 +366,6 @@ function createHotUpdaterClient() {
|
|
|
343
366
|
*
|
|
344
367
|
* @param {UpdateBundleParams} params - Parameters object required for bundle update
|
|
345
368
|
* @param {string} params.bundleId - The bundle ID of the app
|
|
346
|
-
* @param {string|null} params.fileUrl - The URL of the zip file
|
|
347
|
-
*
|
|
348
369
|
* @returns {Promise<boolean>} Whether the update was successful
|
|
349
370
|
*
|
|
350
371
|
* @example
|
|
@@ -368,9 +389,42 @@ function createHotUpdaterClient() {
|
|
|
368
389
|
* }
|
|
369
390
|
* ```
|
|
370
391
|
*/
|
|
371
|
-
updateBundle: params => {
|
|
392
|
+
updateBundle: async params => {
|
|
372
393
|
ensureGlobalClient("updateBundle");
|
|
373
|
-
|
|
394
|
+
const fromBundleId = (0, _native.getBundleId)();
|
|
395
|
+
const state = (0, _native.getActiveUpdateState)();
|
|
396
|
+
const active = state.activeSelection;
|
|
397
|
+
const fromReleaseId = active?.bundleId === fromBundleId ? active.releaseId : state.stableSelection?.bundleId === fromBundleId ? state.stableSelection.releaseId : null;
|
|
398
|
+
const channel = params.channel ?? (0, _native.getChannel)();
|
|
399
|
+
const strategyOf = scopeKey => scopeKey?.startsWith("v1:fingerprint:") ? "fingerprint" : "appVersion";
|
|
400
|
+
let delivery;
|
|
401
|
+
try {
|
|
402
|
+
delivery = await (0, _native.stageBundle)(params);
|
|
403
|
+
} catch (error) {
|
|
404
|
+
(0, _checkForUpdate.reportUpdateError)(error, "download", undefined, {
|
|
405
|
+
bundleId: fromBundleId,
|
|
406
|
+
channel,
|
|
407
|
+
targetBundleId: params.bundleId,
|
|
408
|
+
targetReleaseId: params.selection?.releaseId ?? null,
|
|
409
|
+
updateStrategy: strategyOf(params.selection?.scopeKey)
|
|
410
|
+
});
|
|
411
|
+
throw error;
|
|
412
|
+
}
|
|
413
|
+
if (delivery !== null && params.bundleId !== fromBundleId) {
|
|
414
|
+
(0, _appReady.emitAfterAppReady)("onBundleDownloaded", () => {
|
|
415
|
+
const selection = (0, _native.getActiveUpdateState)().activeSelection;
|
|
416
|
+
return {
|
|
417
|
+
channel,
|
|
418
|
+
fromBundleId,
|
|
419
|
+
fromReleaseId,
|
|
420
|
+
toBundleId: params.bundleId,
|
|
421
|
+
toReleaseId: selection?.releaseId ?? null,
|
|
422
|
+
updateStrategy: strategyOf(selection?.scopeKey),
|
|
423
|
+
...delivery
|
|
424
|
+
};
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
return true;
|
|
374
428
|
},
|
|
375
429
|
/**
|
|
376
430
|
* Clears the runtime channel override and restores the original bundle.
|
|
@@ -383,10 +437,8 @@ function createHotUpdaterClient() {
|
|
|
383
437
|
_store.hotUpdaterStore.setState({
|
|
384
438
|
artifactType: null,
|
|
385
439
|
details: null,
|
|
386
|
-
downloadedBytes: undefined,
|
|
387
440
|
isUpdateDownloaded: false,
|
|
388
|
-
progress: 0
|
|
389
|
-
totalBytes: undefined
|
|
441
|
+
progress: 0
|
|
390
442
|
});
|
|
391
443
|
}
|
|
392
444
|
return ok;
|
|
@@ -407,10 +459,6 @@ function createHotUpdaterClient() {
|
|
|
407
459
|
* Fetches the persisted install id for this app installation.
|
|
408
460
|
*/
|
|
409
461
|
getInstallId: _native.getInstallId,
|
|
410
|
-
/**
|
|
411
|
-
* Persists nullable user identity fields associated with this installation.
|
|
412
|
-
*/
|
|
413
|
-
setUser: _native.setUser,
|
|
414
462
|
/**
|
|
415
463
|
* Reads the native launch report for the current process.
|
|
416
464
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_appReady","require","_checkForUpdate","_httpClient","_native","_pluginHost","_store","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_wrap","_clientPlugin","_client","_types","registerGlobalGetBaseURL","fn","getBaseURL","globalThis","HotUpdaterGetBaseURL","createHotUpdaterClient","configurationAPI","mixedConfigurationReported","globalConfig","client","createMissingNetworkConfigError","apiName","Error","baseURLExample","normalizeOptions","options","incoming","updateMode","autoOptions","baseURL","plugins","_plugins","rest","createHttpClient","normalizeInitOptions","_updateMode","baseURLRest","configureGlobal","normalizedOptions","configurePlugins","requestHeaders","requestTimeout","onError","reportMixedConfiguration","nextAPI","console","error","ensureGlobalClient","methodName","wrap","init","reload","setReloadBehavior","isUpdateDownloaded","hotUpdaterStore","getSnapshot","getAppVersion","getActiveUpdateState","getPublicActiveUpdateState","getBundleId","getUpdateId","getMinBundleId","getManifest","getChannel","getDefaultChannel","isChannelSwitched","setCohort","getCohort","addListener","checkForUpdate","config","mergedConfig","updateBundle","params","fromBundleId","state","active","activeSelection","fromReleaseId","bundleId","releaseId","stableSelection","channel","strategyOf","scopeKey","startsWith","delivery","stageBundle","reportUpdateError","undefined","targetBundleId","targetReleaseId","selection","updateStrategy","emitAfterAppReady","toBundleId","toReleaseId","resetChannel","ok","setState","artifactType","details","progress","getFingerprintHash","getInstallId","notifyAppReady","getCrashHistory","clearCrashHistory","HotUpdater"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIY,IAAI,EAAGzB,OAA8B,IAAW;MAC9C,MAAMa,iBAAiB,GAAGJ,oBAAoB,CAACT,OAAO,CAAC;MAEvDkB,wBAAwB,CAAC,MAAM,CAAC;MAChCN,eAAe,CAACC,iBAAiB,EAAEb,OAAO,CAAC;MAE3C,IAAAyB,UAAI,EAACZ,iBAAiB,CAAC;IACzB,CAAC;IAED;AACJ;AACA;IACIa,MAAM,EAANA,cAAM;IAEN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,kBAAkB,EAAEA,CAAA,KAAMC,sBAAe,CAACC,WAAW,CAAC,CAAC,CAACF,kBAAkB;IAE1E;AACJ;AACA;IACIG,aAAa,EAAbA,qBAAa;IAEb;IACAC,oBAAoB,EAAE,MAAAA,CAAA,KAAY,IAAAC,kCAA0B,EAAC,CAAC;IAE9D;AACJ;AACA;AACA;IACIC,WAAW,EAAEC,mBAAW;IAExB;IACAC,cAAc,EAAdA,sBAAc;IAEd;AACJ;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,UAAU,EAAVA,kBAAU;IAEV;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA,yBAAiB;IAEjB;AACJ;AACA;AACA;IACIC,SAAS,EAATA,iBAAS;IAET;AACJ;AACA;IACIC,SAAS,EAATA,iBAAS;IAET;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,WAAW,EAAXA,mBAAW;IAEX;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,cAAc,EAAGC,MAA6B,IAAK;MACjD,MAAMnD,MAAM,GAAG4B,kBAAkB,CAAC,gBAAgB,CAAC;MAEnD,MAAMwB,YAA2C,GAAG;QAClD,GAAGD,MAAM;QACTnD,MAAM;QACNqB,cAAc,EAAE;UACd,GAAGtB,YAAY,CAACsB,cAAc;UAC9B,GAAG8B,MAAM,CAAC9B;QACZ,CAAC;QACDC,cAAc,EAAE6B,MAAM,CAAC7B,cAAc,IAAIvB,YAAY,CAACuB,cAAc;QACpEC,OAAO,EAAE4B,MAAM,CAAC5B,OAAO,IAAIxB,YAAY,CAACwB;MAC1C,CAAC;MAED,OAAO,IAAA2B,8BAAc,EAACE,YAAY,CAAC;IACrC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,YAAY,EAAE,MAAOC,MAAoB,IAAK;MAC5C1B,kBAAkB,CAAC,cAAc,CAAC;MAClC,MAAM2B,YAAY,GAAG,IAAAf,mBAAW,EAAC,CAAC;MAClC,MAAMgB,KAAK,GAAG,IAAAlB,4BAAoB,EAAC,CAAC;MACpC,MAAMmB,MAAM,GAAGD,KAAK,CAACE,eAAe;MACpC,MAAMC,aAAa,GACjBF,MAAM,EAAEG,QAAQ,KAAKL,YAAY,GAC7BE,MAAM,CAACI,SAAS,GAChBL,KAAK,CAACM,eAAe,EAAEF,QAAQ,KAAKL,YAAY,GAC9CC,KAAK,CAACM,eAAe,CAACD,SAAS,GAC/B,IAAI;MACZ,MAAME,OAAO,GAAGT,MAAM,CAACS,OAAO,IAAI,IAAAnB,kBAAU,EAAC,CAAC;MAC9C,MAAMoB,UAAU,GAAIC,QAAmC,IACrDA,QAAQ,EAAEC,UAAU,CAAC,iBAAiB,CAAC,GAAG,aAAa,GAAG,YAAY;MACxE,IAAIC,QAAiD;MACrD,IAAI;QACFA,QAAQ,GAAG,MAAM,IAAAC,mBAAW,EAACd,MAAM,CAAC;MACtC,CAAC,CAAC,OAAO3B,KAAK,EAAE;QACd,IAAA0C,iCAAiB,EAAC1C,KAAK,EAAE,UAAU,EAAE2C,SAAS,EAAE;UAC9CV,QAAQ,EAAEL,YAAY;UACtBQ,OAAO;UACPQ,cAAc,EAAEjB,MAAM,CAACM,QAAQ;UAC/BY,eAAe,EACZlB,MAAM,CAACmB,SAAS,EACbZ,SAAS,IAAI,IAAI;UACvBa,cAAc,EAAEV,UAAU,CACvBV,MAAM,CAACmB,SAAS,EACbR,QACN;QACF,CAAC,CAAC;QACF,MAAMtC,KAAK;MACb;MACA,IAAIwC,QAAQ,KAAK,IAAI,IAAIb,MAAM,CAACM,QAAQ,KAAKL,YAAY,EAAE;QACzD,IAAAoB,2BAAiB,EAAC,oBAAoB,EAAE,MAAM;UAC5C,MAAMF,SAAS,GAAG,IAAAnC,4BAAoB,EAAC,CAAC,CAACoB,eAAe;UACxD,OAAO;YACLK,OAAO;YACPR,YAAY;YACZI,aAAa;YACbiB,UAAU,EAAEtB,MAAM,CAACM,QAAQ;YAC3BiB,WAAW,EAAEJ,SAAS,EAAEZ,SAAS,IAAI,IAAI;YACzCa,cAAc,EAAEV,UAAU,CAACS,SAAS,EAAER,QAAQ,CAAC;YAC/C,GAAGE;UACL,CAAC;QACH,CAAC,CAAC;MACJ;MACA,OAAO,IAAI;IACb,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIW,YAAY,EAAE,MAAAA,CAAA,KAAY;MACxB,MAAMC,EAAE,GAAG,MAAM,IAAAD,oBAAY,EAAC,CAAC;MAC/B,IAAIC,EAAE,EAAE;QACN5C,sBAAe,CAAC6C,QAAQ,CAAC;UACvBC,YAAY,EAAE,IAAI;UAClBC,OAAO,EAAE,IAAI;UACbhD,kBAAkB,EAAE,KAAK;UACzBiD,QAAQ,EAAE;QACZ,CAAC,CAAC;MACJ;MACA,OAAOJ,EAAE;IACX,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIK,kBAAkB,EAAlBA,0BAAkB;IAElB;AACJ;AACA;IACIC,YAAY,EAAZA,oBAAY;IAEZ;AACJ;AACA;IACIC,cAAc,EAAdA,sBAAc;IAEd;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,eAAe,EAAfA,uBAAe;IAEf;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIC,iBAAiB,EAAjBA;EACF,CAAC;AACH;AASO,MAAMC,UAA4B,GAAA1G,OAAA,CAAA0G,UAAA,GAAG7F,sBAAsB,CAAC,CAAC","ignoreList":[]}
|