@hot-updater/react-native 1.0.0-rc.16 → 1.0.0-rc.17
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/src/main/java/com/hotupdater/BundleFileStorageService.kt +491 -388
- package/android/src/main/java/com/hotupdater/BundleMetadata.kt +5 -11
- package/android/src/main/java/com/hotupdater/FileManagerService.kt +45 -0
- package/android/src/main/java/com/hotupdater/HotUpdaterException.kt +290 -12
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +35 -19
- 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 +110 -52
- 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/newarch/HotUpdaterModule.kt +74 -69
- package/android/src/oldarch/HotUpdaterModule.kt +63 -59
- package/android/src/oldarch/HotUpdaterSpec.kt +4 -6
- package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +1 -1
- package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +446 -61
- package/android/src/test/java/com/hotupdater/HotUpdaterExceptionTest.kt +220 -0
- package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +19 -27
- package/android/src/test/java/com/hotupdater/InstallIdentityServiceTest.kt +71 -0
- package/android/src/test/java/com/hotupdater/KeyValueStorageServiceTest.kt +106 -0
- package/android/src/test/java/com/hotupdater/NoBackupContext.kt +11 -0
- package/android/src/test/java/com/hotupdater/OkHttpDownloadServiceTest.kt +309 -23
- package/android/src/test/java/com/hotupdater/PreviousProcessExitTest.kt +57 -0
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +238 -157
- package/ios/HotUpdater/Internal/BundleMetadata.swift +3 -53
- package/ios/HotUpdater/Internal/FileManagerService.swift +48 -0
- package/ios/HotUpdater/Internal/HotUpdater.mm +8 -18
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +48 -29
- package/ios/HotUpdater/Internal/KeyValueStorageService.swift +71 -0
- package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +108 -1
- package/ios/HotUpdater/Internal/UpdateFailure.swift +390 -0
- package/lib/commonjs/appReady.js +111 -0
- package/lib/commonjs/appReady.js.map +1 -0
- package/lib/commonjs/appReady.spec.js +360 -0
- package/lib/commonjs/appReady.spec.js.map +1 -0
- package/lib/commonjs/{notifyAppReadyInsights.test-utils.js → appReady.test-utils.js} +4 -3
- package/lib/commonjs/appReady.test-utils.js.map +1 -0
- package/lib/commonjs/baseURL.js +16 -0
- package/lib/commonjs/baseURL.js.map +1 -0
- package/lib/commonjs/checkForUpdate.js +104 -56
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js +337 -74
- package/lib/commonjs/checkForUpdate.releaseCatalog.spec.js.map +1 -1
- package/lib/commonjs/clientPlugin.js +49 -0
- package/lib/commonjs/clientPlugin.js.map +1 -0
- package/lib/commonjs/entryImportGraph.spec.js +50 -0
- package/lib/commonjs/entryImportGraph.spec.js.map +1 -0
- package/lib/commonjs/fetchJSON.js +2 -6
- package/lib/commonjs/fetchJSON.js.map +1 -1
- package/lib/commonjs/httpClient.js +18 -165
- package/lib/commonjs/httpClient.js.map +1 -1
- package/lib/commonjs/httpClient.spec.js +26 -199
- package/lib/commonjs/httpClient.spec.js.map +1 -1
- package/lib/commonjs/index.js +49 -36
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.spec.js +108 -123
- package/lib/commonjs/index.spec.js.map +1 -1
- package/lib/commonjs/native.js +67 -48
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +80 -58
- package/lib/commonjs/native.spec.js.map +1 -1
- package/lib/commonjs/pluginHost.js +208 -0
- package/lib/commonjs/pluginHost.js.map +1 -0
- package/lib/commonjs/pluginHost.spec.js +292 -0
- package/lib/commonjs/pluginHost.spec.js.map +1 -0
- package/lib/commonjs/plugins/insights/eventId.js +129 -0
- package/lib/commonjs/plugins/insights/eventId.js.map +1 -0
- package/lib/commonjs/plugins/insights/eventId.spec.js +47 -0
- package/lib/commonjs/plugins/insights/eventId.spec.js.map +1 -0
- package/lib/commonjs/plugins/insights/index.js +272 -0
- package/lib/commonjs/plugins/insights/index.js.map +1 -0
- package/lib/commonjs/plugins/insights/insights.spec.js +640 -0
- package/lib/commonjs/plugins/insights/insights.spec.js.map +1 -0
- package/lib/commonjs/plugins/insights/sender.js +128 -0
- package/lib/commonjs/plugins/insights/sender.js.map +1 -0
- package/lib/commonjs/plugins/insights/sender.spec.js +265 -0
- package/lib/commonjs/plugins/insights/sender.spec.js.map +1 -0
- package/lib/commonjs/plugins/insights/state.js +145 -0
- package/lib/commonjs/plugins/insights/state.js.map +1 -0
- package/lib/commonjs/releaseCatalogCache.js +13 -2
- package/lib/commonjs/releaseCatalogCache.js.map +1 -1
- package/lib/commonjs/releaseCatalogCache.spec.js +18 -0
- package/lib/commonjs/releaseCatalogCache.spec.js.map +1 -1
- package/lib/commonjs/sdkVersion.js +1 -1
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/updateError.js +132 -0
- package/lib/commonjs/updateError.js.map +1 -0
- package/lib/commonjs/updateError.spec.js +149 -0
- package/lib/commonjs/updateError.spec.js.map +1 -0
- package/lib/commonjs/wrap.js +43 -25
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/commonjs/wrap.progress.spec.js +195 -0
- package/lib/commonjs/wrap.progress.spec.js.map +1 -0
- package/lib/commonjs/wrap.spec.js +94 -230
- package/lib/commonjs/wrap.spec.js.map +1 -1
- package/lib/module/appReady.js +103 -0
- package/lib/module/appReady.js.map +1 -0
- package/lib/module/appReady.spec.js +359 -0
- package/lib/module/appReady.spec.js.map +1 -0
- package/lib/module/{notifyAppReadyInsights.test-utils.js → appReady.test-utils.js} +4 -3
- package/lib/module/appReady.test-utils.js.map +1 -0
- package/lib/module/baseURL.js +11 -0
- package/lib/module/baseURL.js.map +1 -0
- package/lib/module/checkForUpdate.js +103 -57
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/checkForUpdate.releaseCatalog.spec.js +337 -74
- package/lib/module/checkForUpdate.releaseCatalog.spec.js.map +1 -1
- package/lib/module/clientPlugin.js +44 -0
- package/lib/module/clientPlugin.js.map +1 -0
- package/lib/module/entryImportGraph.spec.js +50 -0
- package/lib/module/entryImportGraph.spec.js.map +1 -0
- package/lib/module/fetchJSON.js +2 -6
- package/lib/module/fetchJSON.js.map +1 -1
- package/lib/module/httpClient.js +18 -165
- package/lib/module/httpClient.js.map +1 -1
- package/lib/module/httpClient.spec.js +27 -200
- package/lib/module/httpClient.spec.js.map +1 -1
- package/lib/module/index.js +44 -38
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.spec.js +108 -123
- package/lib/module/index.spec.js.map +1 -1
- package/lib/module/native.js +63 -44
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +80 -58
- package/lib/module/native.spec.js.map +1 -1
- package/lib/module/pluginHost.js +200 -0
- package/lib/module/pluginHost.js.map +1 -0
- package/lib/module/pluginHost.spec.js +291 -0
- package/lib/module/pluginHost.spec.js.map +1 -0
- package/lib/module/plugins/insights/eventId.js +122 -0
- package/lib/module/plugins/insights/eventId.js.map +1 -0
- package/lib/module/plugins/insights/eventId.spec.js +47 -0
- package/lib/module/plugins/insights/eventId.spec.js.map +1 -0
- package/lib/module/plugins/insights/index.js +268 -0
- package/lib/module/plugins/insights/index.js.map +1 -0
- package/lib/module/plugins/insights/insights.spec.js +639 -0
- package/lib/module/plugins/insights/insights.spec.js.map +1 -0
- package/lib/module/plugins/insights/sender.js +123 -0
- package/lib/module/plugins/insights/sender.js.map +1 -0
- package/lib/module/plugins/insights/sender.spec.js +265 -0
- package/lib/module/plugins/insights/sender.spec.js.map +1 -0
- package/lib/module/plugins/insights/state.js +139 -0
- package/lib/module/plugins/insights/state.js.map +1 -0
- package/lib/module/releaseCatalogCache.js +13 -2
- package/lib/module/releaseCatalogCache.js.map +1 -1
- package/lib/module/releaseCatalogCache.spec.js +18 -0
- package/lib/module/releaseCatalogCache.spec.js.map +1 -1
- package/lib/module/sdkVersion.js +1 -1
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/updateError.js +126 -0
- package/lib/module/updateError.js.map +1 -0
- package/lib/module/updateError.spec.js +149 -0
- package/lib/module/updateError.spec.js.map +1 -0
- package/lib/module/wrap.js +43 -25
- package/lib/module/wrap.js.map +1 -1
- package/lib/module/wrap.progress.spec.js +196 -0
- package/lib/module/wrap.progress.spec.js.map +1 -0
- package/lib/module/wrap.spec.js +93 -229
- package/lib/module/wrap.spec.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/appReady.test-utils.d.ts +9 -0
- package/lib/typescript/commonjs/appReady.test-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/baseURL.d.ts +4 -0
- package/lib/typescript/commonjs/baseURL.d.ts.map +1 -0
- package/lib/typescript/commonjs/checkForUpdate.d.ts +15 -2
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/clientPlugin.d.ts +185 -0
- package/lib/typescript/commonjs/clientPlugin.d.ts.map +1 -0
- package/lib/typescript/commonjs/fetchJSON.d.ts +2 -3
- package/lib/typescript/commonjs/fetchJSON.d.ts.map +1 -1
- package/lib/typescript/commonjs/httpClient.d.ts +2 -36
- package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +3 -6
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +29 -15
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/pluginHost.d.ts +29 -0
- package/lib/typescript/commonjs/pluginHost.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugins/insights/eventId.d.ts +18 -0
- package/lib/typescript/commonjs/plugins/insights/eventId.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugins/insights/index.d.ts +40 -0
- package/lib/typescript/commonjs/plugins/insights/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugins/insights/sender.d.ts +74 -0
- package/lib/typescript/commonjs/plugins/insights/sender.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugins/insights/state.d.ts +46 -0
- package/lib/typescript/commonjs/plugins/insights/state.d.ts.map +1 -0
- package/lib/typescript/commonjs/releaseCatalogCache.d.ts +5 -1
- package/lib/typescript/commonjs/releaseCatalogCache.d.ts.map +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +34 -12
- package/lib/typescript/commonjs/specs/NativeHotUpdater.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 -10
- 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/appReady.test-utils.d.ts +9 -0
- package/lib/typescript/module/appReady.test-utils.d.ts.map +1 -0
- package/lib/typescript/module/baseURL.d.ts +4 -0
- package/lib/typescript/module/baseURL.d.ts.map +1 -0
- package/lib/typescript/module/checkForUpdate.d.ts +15 -2
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/clientPlugin.d.ts +185 -0
- package/lib/typescript/module/clientPlugin.d.ts.map +1 -0
- package/lib/typescript/module/fetchJSON.d.ts +2 -3
- package/lib/typescript/module/fetchJSON.d.ts.map +1 -1
- package/lib/typescript/module/httpClient.d.ts +2 -36
- package/lib/typescript/module/httpClient.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +3 -6
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +29 -15
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/pluginHost.d.ts +29 -0
- package/lib/typescript/module/pluginHost.d.ts.map +1 -0
- package/lib/typescript/module/plugins/insights/eventId.d.ts +18 -0
- package/lib/typescript/module/plugins/insights/eventId.d.ts.map +1 -0
- package/lib/typescript/module/plugins/insights/index.d.ts +40 -0
- package/lib/typescript/module/plugins/insights/index.d.ts.map +1 -0
- package/lib/typescript/module/plugins/insights/sender.d.ts +74 -0
- package/lib/typescript/module/plugins/insights/sender.d.ts.map +1 -0
- package/lib/typescript/module/plugins/insights/state.d.ts +46 -0
- package/lib/typescript/module/plugins/insights/state.d.ts.map +1 -0
- package/lib/typescript/module/releaseCatalogCache.d.ts +5 -1
- package/lib/typescript/module/releaseCatalogCache.d.ts.map +1 -1
- package/lib/typescript/module/sdkVersion.d.ts +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +34 -12
- package/lib/typescript/module/specs/NativeHotUpdater.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 -10
- package/lib/typescript/module/wrap.types.d.ts.map +1 -1
- package/package.json +14 -2
- package/plugins/insights/package.json +8 -0
- package/src/appReady.spec.ts +393 -0
- package/src/{notifyAppReadyInsights.test-utils.ts → appReady.test-utils.ts} +7 -7
- package/src/appReady.ts +149 -0
- package/src/baseURL.ts +15 -0
- package/src/checkForUpdate.releaseCatalog.spec.ts +370 -76
- package/src/checkForUpdate.ts +135 -80
- package/src/clientPlugin.ts +231 -0
- package/src/entryImportGraph.spec.ts +65 -0
- package/src/fetchJSON.ts +3 -10
- package/src/httpClient.spec.ts +30 -227
- package/src/httpClient.ts +20 -256
- package/src/index.spec.ts +117 -93
- package/src/index.ts +67 -52
- package/src/native.spec.ts +98 -72
- package/src/native.ts +93 -77
- package/src/pluginHost.spec.ts +297 -0
- package/src/pluginHost.ts +262 -0
- package/src/plugins/insights/eventId.spec.ts +60 -0
- package/src/plugins/insights/eventId.ts +171 -0
- package/src/plugins/insights/index.ts +367 -0
- package/src/plugins/insights/insights.spec.ts +732 -0
- package/src/plugins/insights/sender.spec.ts +287 -0
- package/src/plugins/insights/sender.ts +221 -0
- package/src/plugins/insights/state.ts +184 -0
- package/src/releaseCatalogCache.spec.ts +22 -0
- package/src/releaseCatalogCache.ts +19 -4
- package/src/sdkVersion.ts +1 -1
- package/src/specs/NativeHotUpdater.ts +34 -13
- package/src/updateError.spec.ts +144 -0
- package/src/updateError.ts +153 -0
- package/src/wrap.progress.spec.ts +232 -0
- package/src/wrap.spec.ts +100 -283
- package/src/wrap.tsx +57 -26
- package/src/wrap.types.ts +6 -12
- package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js +0 -225
- package/lib/commonjs/notifyAppReadyInsights.boundary.spec.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.js +0 -188
- package/lib/commonjs/notifyAppReadyInsights.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.spec.js +0 -378
- package/lib/commonjs/notifyAppReadyInsights.spec.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.test-utils.js.map +0 -1
- package/lib/commonjs/notifyAppReadyInsights.transport.spec.js +0 -171
- package/lib/commonjs/notifyAppReadyInsights.transport.spec.js.map +0 -1
- package/lib/commonjs/uuidv7.js +0 -41
- package/lib/commonjs/uuidv7.js.map +0 -1
- package/lib/commonjs/uuidv7.spec.js +0 -30
- package/lib/commonjs/uuidv7.spec.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.boundary.spec.js +0 -224
- package/lib/module/notifyAppReadyInsights.boundary.spec.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.js +0 -181
- package/lib/module/notifyAppReadyInsights.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.spec.js +0 -377
- package/lib/module/notifyAppReadyInsights.spec.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.test-utils.js.map +0 -1
- package/lib/module/notifyAppReadyInsights.transport.spec.js +0 -170
- package/lib/module/notifyAppReadyInsights.transport.spec.js.map +0 -1
- package/lib/module/uuidv7.js +0 -36
- package/lib/module/uuidv7.js.map +0 -1
- package/lib/module/uuidv7.spec.js +0 -30
- package/lib/module/uuidv7.spec.js.map +0 -1
- package/lib/typescript/commonjs/notifyAppReadyInsights.d.ts +0 -25
- 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/commonjs/uuidv7.d.ts +0 -10
- package/lib/typescript/commonjs/uuidv7.d.ts.map +0 -1
- package/lib/typescript/module/notifyAppReadyInsights.d.ts +0 -25
- 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/lib/typescript/module/uuidv7.d.ts +0 -10
- package/lib/typescript/module/uuidv7.d.ts.map +0 -1
- package/src/notifyAppReadyInsights.boundary.spec.ts +0 -242
- package/src/notifyAppReadyInsights.spec.ts +0 -362
- package/src/notifyAppReadyInsights.transport.spec.ts +0 -196
- package/src/notifyAppReadyInsights.ts +0 -293
- package/src/uuidv7.spec.ts +0 -25
- package/src/uuidv7.ts +0 -38
|
@@ -174,7 +174,7 @@ class HotUpdaterModule internal constructor(
|
|
|
174
174
|
try {
|
|
175
175
|
val bundleId = params.getString("bundleId")
|
|
176
176
|
if (bundleId == null || bundleId.isEmpty()) {
|
|
177
|
-
promise.
|
|
177
|
+
promise.rejectUpdateBundle(HotUpdaterException.missingBundleId())
|
|
178
178
|
return@launch
|
|
179
179
|
}
|
|
180
180
|
|
|
@@ -182,13 +182,15 @@ class HotUpdaterModule internal constructor(
|
|
|
182
182
|
val manifestFileHash = params.getString("manifestFileHash")
|
|
183
183
|
val assets = parseAssets(params)
|
|
184
184
|
if (manifestUrl.isNullOrEmpty() || manifestFileHash.isNullOrEmpty() || assets == null) {
|
|
185
|
-
promise.
|
|
185
|
+
promise.rejectUpdateBundle(HotUpdaterException.invalidManifestParams())
|
|
186
186
|
return@launch
|
|
187
187
|
}
|
|
188
188
|
try {
|
|
189
189
|
java.net.URL(manifestUrl)
|
|
190
190
|
} catch (e: java.net.MalformedURLException) {
|
|
191
|
-
promise.
|
|
191
|
+
promise.rejectUpdateBundle(
|
|
192
|
+
HotUpdaterException.invalidFileUrl("manifestUrl", manifestUrl, UpdateFailureResource.MANIFEST),
|
|
193
|
+
)
|
|
192
194
|
return@launch
|
|
193
195
|
}
|
|
194
196
|
val channel = params.getString("channel")
|
|
@@ -202,7 +204,9 @@ class HotUpdaterModule internal constructor(
|
|
|
202
204
|
try {
|
|
203
205
|
java.net.URL(archiveUrl)
|
|
204
206
|
} catch (e: java.net.MalformedURLException) {
|
|
205
|
-
promise.
|
|
207
|
+
promise.rejectUpdateBundle(
|
|
208
|
+
HotUpdaterException.invalidFileUrl("archiveUrl", archiveUrl, UpdateFailureResource.ARCHIVE),
|
|
209
|
+
)
|
|
206
210
|
return@launch
|
|
207
211
|
}
|
|
208
212
|
}
|
|
@@ -210,69 +214,72 @@ class HotUpdaterModule internal constructor(
|
|
|
210
214
|
|
|
211
215
|
val impl = getInstance()
|
|
212
216
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
217
|
+
val result =
|
|
218
|
+
impl.updateBundle(
|
|
219
|
+
bundleId,
|
|
220
|
+
manifestUrl,
|
|
221
|
+
manifestFileHash,
|
|
222
|
+
assets,
|
|
223
|
+
channel,
|
|
224
|
+
selection,
|
|
225
|
+
archiveUrl,
|
|
226
|
+
) { progress ->
|
|
227
|
+
// Post to Main thread for React Native event emission
|
|
228
|
+
Handler(Looper.getMainLooper()).post {
|
|
229
|
+
try {
|
|
230
|
+
val progressParams =
|
|
231
|
+
WritableNativeMap().apply {
|
|
232
|
+
putDouble("progress", progress.progress)
|
|
233
|
+
putString("artifactType", progress.artifactType)
|
|
234
|
+
progress.details?.let { details ->
|
|
235
|
+
putMap(
|
|
236
|
+
"details",
|
|
237
|
+
WritableNativeMap().apply {
|
|
238
|
+
putInt("totalFilesCount", details.totalFilesCount)
|
|
239
|
+
putInt("completedFilesCount", details.completedFilesCount)
|
|
240
|
+
putArray(
|
|
241
|
+
"files",
|
|
242
|
+
WritableNativeArray().apply {
|
|
243
|
+
details.files.forEach { file ->
|
|
244
|
+
pushMap(
|
|
245
|
+
WritableNativeMap().apply {
|
|
246
|
+
putString("path", file.path)
|
|
247
|
+
putString("downloadPath", file.downloadPath)
|
|
248
|
+
putString("status", file.status)
|
|
249
|
+
putDouble("progress", file.progress)
|
|
250
|
+
putInt("order", file.order)
|
|
251
|
+
file.downloadedBytes?.let {
|
|
252
|
+
putDouble(
|
|
253
|
+
"downloadedBytes",
|
|
254
|
+
it.toDouble(),
|
|
255
|
+
)
|
|
256
|
+
}
|
|
257
|
+
file.totalBytes?.let { putDouble("totalBytes", it.toDouble()) }
|
|
258
|
+
},
|
|
259
|
+
)
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
)
|
|
263
|
+
},
|
|
264
|
+
)
|
|
265
|
+
}
|
|
260
266
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
267
|
+
|
|
268
|
+
this@HotUpdaterModule
|
|
269
|
+
.mReactApplicationContext
|
|
270
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
271
|
+
?.emit("onProgress", progressParams)
|
|
272
|
+
} catch (e: Exception) {
|
|
273
|
+
Log.w("HotUpdater", "Failed to emit progress (bridge may be unavailable): ${e.message}")
|
|
274
|
+
}
|
|
269
275
|
}
|
|
270
276
|
}
|
|
271
|
-
|
|
272
|
-
promise.resolve(true)
|
|
277
|
+
promise.resolve(result.toWritableMap())
|
|
273
278
|
} catch (e: HotUpdaterException) {
|
|
274
|
-
promise.
|
|
279
|
+
promise.rejectUpdateBundle(e)
|
|
275
280
|
} catch (e: Exception) {
|
|
281
|
+
// Not an update failure (a stale Release selection, for example),
|
|
282
|
+
// so the rejection carries no classification.
|
|
276
283
|
promise.reject("UNKNOWN_ERROR", e.message ?: "An unknown error occurred")
|
|
277
284
|
}
|
|
278
285
|
}
|
|
@@ -409,15 +416,13 @@ class HotUpdaterModule internal constructor(
|
|
|
409
416
|
|
|
410
417
|
override fun getInstallId(): String = getInstance().getInstallId()
|
|
411
418
|
|
|
412
|
-
override fun
|
|
413
|
-
|
|
414
|
-
override fun getUsername(): String? = getInstance().getUsername()
|
|
419
|
+
override fun getStorageItem(key: String): String? = getInstance().getStorageItem(key)
|
|
415
420
|
|
|
416
|
-
override fun
|
|
417
|
-
|
|
418
|
-
|
|
421
|
+
override fun setStorageItem(
|
|
422
|
+
key: String,
|
|
423
|
+
value: String?,
|
|
419
424
|
) {
|
|
420
|
-
getInstance().
|
|
425
|
+
getInstance().setStorageItem(key, value)
|
|
421
426
|
}
|
|
422
427
|
|
|
423
428
|
override fun resetChannel(promise: Promise) {
|
|
@@ -178,7 +178,7 @@ class HotUpdaterModule internal constructor(
|
|
|
178
178
|
try {
|
|
179
179
|
val bundleId = params.getString("bundleId")
|
|
180
180
|
if (bundleId == null || bundleId.isEmpty()) {
|
|
181
|
-
promise.
|
|
181
|
+
promise.rejectUpdateBundle(HotUpdaterException.missingBundleId())
|
|
182
182
|
return@launch
|
|
183
183
|
}
|
|
184
184
|
|
|
@@ -186,13 +186,15 @@ class HotUpdaterModule internal constructor(
|
|
|
186
186
|
val manifestFileHash = params.getString("manifestFileHash")
|
|
187
187
|
val assets = parseAssets(params)
|
|
188
188
|
if (manifestUrl.isNullOrEmpty() || manifestFileHash.isNullOrEmpty() || assets == null) {
|
|
189
|
-
promise.
|
|
189
|
+
promise.rejectUpdateBundle(HotUpdaterException.invalidManifestParams())
|
|
190
190
|
return@launch
|
|
191
191
|
}
|
|
192
192
|
try {
|
|
193
193
|
java.net.URL(manifestUrl)
|
|
194
194
|
} catch (e: java.net.MalformedURLException) {
|
|
195
|
-
promise.
|
|
195
|
+
promise.rejectUpdateBundle(
|
|
196
|
+
HotUpdaterException.invalidFileUrl("manifestUrl", manifestUrl, UpdateFailureResource.MANIFEST),
|
|
197
|
+
)
|
|
196
198
|
return@launch
|
|
197
199
|
}
|
|
198
200
|
val channel = params.getString("channel")
|
|
@@ -206,7 +208,9 @@ class HotUpdaterModule internal constructor(
|
|
|
206
208
|
try {
|
|
207
209
|
java.net.URL(archiveUrl)
|
|
208
210
|
} catch (e: java.net.MalformedURLException) {
|
|
209
|
-
promise.
|
|
211
|
+
promise.rejectUpdateBundle(
|
|
212
|
+
HotUpdaterException.invalidFileUrl("archiveUrl", archiveUrl, UpdateFailureResource.ARCHIVE),
|
|
213
|
+
)
|
|
210
214
|
return@launch
|
|
211
215
|
}
|
|
212
216
|
}
|
|
@@ -214,62 +218,65 @@ class HotUpdaterModule internal constructor(
|
|
|
214
218
|
|
|
215
219
|
val impl = getInstance()
|
|
216
220
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
files.
|
|
221
|
+
val result =
|
|
222
|
+
impl.updateBundle(
|
|
223
|
+
bundleId,
|
|
224
|
+
manifestUrl,
|
|
225
|
+
manifestFileHash,
|
|
226
|
+
assets,
|
|
227
|
+
channel,
|
|
228
|
+
selection,
|
|
229
|
+
archiveUrl,
|
|
230
|
+
) { progress ->
|
|
231
|
+
// Post to Main thread for React Native event emission
|
|
232
|
+
Handler(Looper.getMainLooper()).post {
|
|
233
|
+
try {
|
|
234
|
+
val progressParams =
|
|
235
|
+
Arguments.createMap().apply {
|
|
236
|
+
putDouble("progress", progress.progress)
|
|
237
|
+
putString("artifactType", progress.artifactType)
|
|
238
|
+
progress.details?.let { details ->
|
|
239
|
+
val files = Arguments.createArray()
|
|
240
|
+
details.files.forEach { file ->
|
|
241
|
+
files.pushMap(
|
|
242
|
+
Arguments.createMap().apply {
|
|
243
|
+
putString("path", file.path)
|
|
244
|
+
putString("downloadPath", file.downloadPath)
|
|
245
|
+
putString("status", file.status)
|
|
246
|
+
putDouble("progress", file.progress)
|
|
247
|
+
putInt("order", file.order)
|
|
248
|
+
file.downloadedBytes?.let { putDouble("downloadedBytes", it.toDouble()) }
|
|
249
|
+
file.totalBytes?.let { putDouble("totalBytes", it.toDouble()) }
|
|
250
|
+
},
|
|
251
|
+
)
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
putMap(
|
|
255
|
+
"details",
|
|
237
256
|
Arguments.createMap().apply {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
putDouble("progress", file.progress)
|
|
242
|
-
putInt("order", file.order)
|
|
243
|
-
file.downloadedBytes?.let { putDouble("downloadedBytes", it.toDouble()) }
|
|
244
|
-
file.totalBytes?.let { putDouble("totalBytes", it.toDouble()) }
|
|
257
|
+
putInt("totalFilesCount", details.totalFilesCount)
|
|
258
|
+
putInt("completedFilesCount", details.completedFilesCount)
|
|
259
|
+
putArray("files", files)
|
|
245
260
|
},
|
|
246
261
|
)
|
|
247
262
|
}
|
|
248
|
-
|
|
249
|
-
putMap(
|
|
250
|
-
"details",
|
|
251
|
-
Arguments.createMap().apply {
|
|
252
|
-
putInt("totalFilesCount", details.totalFilesCount)
|
|
253
|
-
putInt("completedFilesCount", details.completedFilesCount)
|
|
254
|
-
putArray("files", files)
|
|
255
|
-
},
|
|
256
|
-
)
|
|
257
263
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
264
|
+
|
|
265
|
+
this@HotUpdaterModule
|
|
266
|
+
.mReactApplicationContext
|
|
267
|
+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
268
|
+
?.emit("onProgress", progressParams)
|
|
269
|
+
} catch (e: Exception) {
|
|
270
|
+
Log.w("HotUpdater", "Failed to emit progress (bridge may be unavailable): ${e.message}")
|
|
271
|
+
}
|
|
266
272
|
}
|
|
267
273
|
}
|
|
268
|
-
|
|
269
|
-
promise.resolve(true)
|
|
274
|
+
promise.resolve(result.toWritableMap())
|
|
270
275
|
} catch (e: HotUpdaterException) {
|
|
271
|
-
promise.
|
|
276
|
+
promise.rejectUpdateBundle(e)
|
|
272
277
|
} catch (e: Exception) {
|
|
278
|
+
// Not an update failure (a stale Release selection, for example),
|
|
279
|
+
// so the rejection carries no classification.
|
|
273
280
|
promise.reject("UNKNOWN_ERROR", e.message ?: "An unknown error occurred")
|
|
274
281
|
}
|
|
275
282
|
}
|
|
@@ -434,17 +441,14 @@ class HotUpdaterModule internal constructor(
|
|
|
434
441
|
override fun getInstallId(): String = getInstance().getInstallId()
|
|
435
442
|
|
|
436
443
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
437
|
-
override fun
|
|
438
|
-
|
|
439
|
-
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
440
|
-
override fun getUsername(): String? = getInstance().getUsername()
|
|
444
|
+
override fun getStorageItem(key: String): String? = getInstance().getStorageItem(key)
|
|
441
445
|
|
|
442
446
|
@ReactMethod
|
|
443
|
-
override fun
|
|
444
|
-
|
|
445
|
-
|
|
447
|
+
override fun setStorageItem(
|
|
448
|
+
key: String,
|
|
449
|
+
value: String?,
|
|
446
450
|
) {
|
|
447
|
-
getInstance().
|
|
451
|
+
getInstance().setStorageItem(key, value)
|
|
448
452
|
}
|
|
449
453
|
|
|
450
454
|
@ReactMethod
|
|
@@ -62,13 +62,11 @@ abstract class HotUpdaterSpec internal constructor(
|
|
|
62
62
|
|
|
63
63
|
abstract fun getInstallId(): String
|
|
64
64
|
|
|
65
|
-
abstract fun
|
|
65
|
+
abstract fun getStorageItem(key: String): String?
|
|
66
66
|
|
|
67
|
-
abstract fun
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
userId: String?,
|
|
71
|
-
username: String?,
|
|
67
|
+
abstract fun setStorageItem(
|
|
68
|
+
key: String,
|
|
69
|
+
value: String?,
|
|
72
70
|
)
|
|
73
71
|
|
|
74
72
|
abstract fun resetChannel(promise: Promise)
|
|
@@ -40,7 +40,7 @@ class BsdiffPatchTest {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
companion object {
|
|
43
|
-
|
|
43
|
+
const val BSDIFF_PATCH_FIXTURE_BASE64 =
|
|
44
44
|
"RU5EU0xFWS9CU0RJRkY0Mx8AAAAAAAAAQlpoOTFBWSZTWb12MIEAAAB5gEQYAADQYQAIPsXOACAAIo0A0NAaNCgAGgZMgHAtYscVxxRtTt4nmaj70g4gQSF5+T4u5IpwoSF67GEC"
|
|
45
45
|
}
|
|
46
46
|
}
|