@hot-updater/react-native 1.0.0-rc.15 → 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 +15 -67
- package/lib/commonjs/httpClient.js.map +1 -1
- package/lib/commonjs/httpClient.spec.js +26 -9
- package/lib/commonjs/httpClient.spec.js.map +1 -1
- package/lib/commonjs/index.js +49 -25
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.spec.js +126 -40
- 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 +14 -66
- package/lib/module/httpClient.js.map +1 -1
- package/lib/module/httpClient.spec.js +26 -9
- package/lib/module/httpClient.spec.js.map +1 -1
- package/lib/module/index.js +44 -27
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.spec.js +127 -41
- 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 -30
- 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 -5
- 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 -30
- 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 -5
- 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 +28 -9
- package/src/httpClient.ts +16 -109
- package/src/index.spec.ts +129 -36
- package/src/index.ts +67 -37
- 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 -5
- 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 -124
- package/lib/commonjs/notifyAppReadyInsights.transport.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 -123
- package/lib/module/notifyAppReadyInsights.transport.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/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/src/notifyAppReadyInsights.boundary.spec.ts +0 -242
- package/src/notifyAppReadyInsights.spec.ts +0 -362
- package/src/notifyAppReadyInsights.transport.spec.ts +0 -138
- package/src/notifyAppReadyInsights.ts +0 -293
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HotUpdaterError } from "./error";
|
|
2
|
+
import { type NotifyAppReadyResult } from "./native";
|
|
3
|
+
import { emitPluginHook } from "./pluginHost";
|
|
4
|
+
export type NotifyAppReadyOptions = {
|
|
5
|
+
onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
|
|
6
|
+
onError?: (error: HotUpdaterError | Error | unknown) => void;
|
|
7
|
+
};
|
|
8
|
+
/** Android 11+: why the app's previous main process exited, once the launch was read. */
|
|
9
|
+
export declare const getPreviousProcessExit: () => string | null;
|
|
10
|
+
/**
|
|
11
|
+
* The Release the running bundle was selected as: the active or stable
|
|
12
|
+
* selection that names it on the current channel.
|
|
13
|
+
*/
|
|
14
|
+
export declare const getRunningReleaseId: (bundleId: string, channel: string) => string | null;
|
|
15
|
+
/** Reads this runtime's launch once native finalizes it and reports it to plugins. */
|
|
16
|
+
export declare const handleNotifyAppReady: (options: NotifyAppReadyOptions) => Promise<NotifyAppReadyResult | undefined>;
|
|
17
|
+
/**
|
|
18
|
+
* Calls a plugin hook after this runtime's `onAppReady`, so plugins see the
|
|
19
|
+
* launch before anything that followed it. The event is built now, from the
|
|
20
|
+
* state it describes, and only when a plugin listens.
|
|
21
|
+
*/
|
|
22
|
+
export declare const emitAfterAppReady: typeof emitPluginHook;
|
|
23
|
+
//# sourceMappingURL=appReady.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appReady.d.ts","sourceRoot":"","sources":["../../../src/appReady.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAKL,KAAK,oBAAoB,EAE1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAGL,cAAc,EACf,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,qBAAqB,GAAG;IAClC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI,CAAC;CAC9D,CAAC;AAUF,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,QAAO,MAAM,GAAG,IAA2B,CAAC;AAkB/E;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aACpB,MAAM,WACP,MAAM,KACd,MAAM,GAAG,IAQX,CAAC;AA4DF,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,YACtB,qBAAqB,KAC7B,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAI1C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAAO,cAWtC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LaunchTransition, NotifyAppReadyResult } from "./native";
|
|
2
|
+
export declare const createNotifyReadResult: (result?: NotifyAppReadyResult, transition?: LaunchTransition | null, pending?: boolean, previousProcessExit?: string | null) => {
|
|
3
|
+
transition: LaunchTransition | null;
|
|
4
|
+
previousProcessExit: string | null;
|
|
5
|
+
pending: boolean;
|
|
6
|
+
result: NotifyAppReadyResult;
|
|
7
|
+
};
|
|
8
|
+
export declare const stubNotifyFrame: () => void;
|
|
9
|
+
//# sourceMappingURL=appReady.test-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"appReady.test-utils.d.ts","sourceRoot":"","sources":["../../../src/appReady.test-utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEvE,eAAO,MAAM,sBAAsB,YACzB,oBAAoB,eAChB,gBAAgB,GAAG,IAAI,2CAEd,MAAM,GAAG,IAAI,KACjC;IACD,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,oBAAoB,CAAC;CAM7B,CAAC;AAEH,eAAO,MAAM,eAAe,YAS3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseURL.d.ts","sourceRoot":"","sources":["../../../src/baseURL.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,gEAAgE;AAChE,eAAO,MAAM,cAAc,YAChB,iBAAiB,KACzB,OAAO,CAAC,MAAM,CAShB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { ReleaseTransitionKind, UpdateErrorResource, UpdateErrorStage } from "./clientPlugin";
|
|
1
2
|
import type { HotUpdaterHttpClient } from "./httpClient";
|
|
3
|
+
export type { ReleaseTransitionKind };
|
|
2
4
|
export interface CheckForUpdateOptions {
|
|
3
5
|
/**
|
|
4
6
|
* Update strategy
|
|
@@ -35,10 +37,21 @@ export type CheckForUpdateResult = {
|
|
|
35
37
|
*/
|
|
36
38
|
updateBundle: () => Promise<boolean>;
|
|
37
39
|
};
|
|
38
|
-
export type ReleaseTransitionKind = "INSTALL" | "ADOPT_RELEASE" | "USE_EMBEDDED" | "USE_BUILTIN";
|
|
39
40
|
export interface InternalCheckForUpdateOptions extends CheckForUpdateOptions {
|
|
40
|
-
insights?: boolean;
|
|
41
41
|
client: HotUpdaterHttpClient;
|
|
42
42
|
}
|
|
43
|
+
/** The running bundle, the channel checked, and the update's target. */
|
|
44
|
+
type UpdateErrorScope = {
|
|
45
|
+
readonly channel: string;
|
|
46
|
+
readonly bundleId: string;
|
|
47
|
+
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
48
|
+
readonly targetBundleId?: string;
|
|
49
|
+
readonly targetReleaseId?: string | null;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* Tells plugins why an update failed, when it failed as an update. An error
|
|
53
|
+
* the SDK's JavaScript raised happened in `stage`, fetching `resource`.
|
|
54
|
+
*/
|
|
55
|
+
export declare const reportUpdateError: (error: unknown, stage: UpdateErrorStage, resource: UpdateErrorResource | undefined, scope: UpdateErrorScope) => void;
|
|
43
56
|
export declare function checkForUpdate(options: InternalCheckForUpdateOptions): Promise<CheckForUpdateResult | null>;
|
|
44
57
|
//# sourceMappingURL=checkForUpdate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAwBzD,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,cAAc,EAAE,YAAY,GAAG,aAAa,CAAC;IAE7C;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IACvC,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAChD;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAyCD,wEAAwE;AACxE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,UACrB,OAAO,SACP,gBAAgB,YACb,mBAAmB,GAAG,SAAS,SAClC,gBAAgB,KACtB,IAqBF,CAAC;AAuRF,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA2EtC"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The client plugin contract. Built-in plugins, such as
|
|
3
|
+
* `@hot-updater/react-native/plugins/insights`, and third-party plugins use
|
|
4
|
+
* the same one, as server plugins do.
|
|
5
|
+
*/
|
|
6
|
+
export type UpdateStrategy = "fingerprint" | "appVersion";
|
|
7
|
+
/** How an update moves the app's selection. */
|
|
8
|
+
export type ReleaseTransitionKind = "INSTALL" | "ADOPT_RELEASE" | "USE_EMBEDDED" | "USE_BUILTIN";
|
|
9
|
+
/** The launch outcome native reports once per JavaScript runtime. */
|
|
10
|
+
export type AppReadyResult = ({
|
|
11
|
+
/** No update was applied or recovered at this launch. */
|
|
12
|
+
readonly status: "UNCHANGED";
|
|
13
|
+
readonly channel: string;
|
|
14
|
+
/** The running bundle. */
|
|
15
|
+
readonly bundleId: string;
|
|
16
|
+
/** The Release the running bundle was selected as, when known. */
|
|
17
|
+
readonly releaseId: string | null;
|
|
18
|
+
} | {
|
|
19
|
+
/**
|
|
20
|
+
* `UPDATE_APPLIED`: a staged update became active at this launch.
|
|
21
|
+
* `RECOVERED`: a failed update was rolled back to `toBundleId`.
|
|
22
|
+
*/
|
|
23
|
+
readonly status: "UPDATE_APPLIED" | "RECOVERED";
|
|
24
|
+
readonly channel: string;
|
|
25
|
+
readonly fromBundleId: string;
|
|
26
|
+
readonly fromReleaseId: string | null;
|
|
27
|
+
readonly toBundleId: string;
|
|
28
|
+
readonly toReleaseId: string | null;
|
|
29
|
+
readonly updateStrategy: UpdateStrategy;
|
|
30
|
+
}) & {
|
|
31
|
+
/**
|
|
32
|
+
* Android 11+: why the app's previous main process exited, the
|
|
33
|
+
* `ApplicationExitInfo` reason without its `REASON_` prefix, such as
|
|
34
|
+
* `CRASH`, `ANR`, `LOW_MEMORY`, or `USER_REQUESTED`. Null on iOS and on
|
|
35
|
+
* older Android. It tells a crash from the system or the user closing the
|
|
36
|
+
* app.
|
|
37
|
+
*/
|
|
38
|
+
readonly previousProcessExit: string | null;
|
|
39
|
+
};
|
|
40
|
+
/** What an update check found. */
|
|
41
|
+
export type UpdateCheckResult = {
|
|
42
|
+
/**
|
|
43
|
+
* The app keeps running its bundle: the check found nothing to
|
|
44
|
+
* install, or the app adopted a newer Release of the running bundle.
|
|
45
|
+
*/
|
|
46
|
+
readonly status: "UNCHANGED";
|
|
47
|
+
readonly channel: string;
|
|
48
|
+
readonly bundleId: string;
|
|
49
|
+
/** The Release the running bundle is selected as after the check. */
|
|
50
|
+
readonly releaseId: string | null;
|
|
51
|
+
/** The Release before the check; it differs after an adoption. */
|
|
52
|
+
readonly previousReleaseId: string | null;
|
|
53
|
+
} | {
|
|
54
|
+
/** The check found a Release to install, adopt, or roll back to. */
|
|
55
|
+
readonly status: "UPDATE_AVAILABLE";
|
|
56
|
+
readonly channel: string;
|
|
57
|
+
readonly fromBundleId: string;
|
|
58
|
+
readonly fromReleaseId: string | null;
|
|
59
|
+
readonly toBundleId: string;
|
|
60
|
+
readonly toReleaseId: string | null;
|
|
61
|
+
readonly transitionKind: ReleaseTransitionKind;
|
|
62
|
+
readonly updateStatus: "UPDATE" | "ROLLBACK";
|
|
63
|
+
readonly shouldForceUpdate: boolean;
|
|
64
|
+
readonly updateStrategy: UpdateStrategy;
|
|
65
|
+
};
|
|
66
|
+
/** A bundle the SDK downloaded, verified, and staged for the next launch. */
|
|
67
|
+
export interface BundleDownloadedInfo {
|
|
68
|
+
readonly channel: string;
|
|
69
|
+
readonly fromBundleId: string;
|
|
70
|
+
readonly fromReleaseId: string | null;
|
|
71
|
+
readonly toBundleId: string;
|
|
72
|
+
readonly toReleaseId: string | null;
|
|
73
|
+
readonly updateStrategy: UpdateStrategy;
|
|
74
|
+
/**
|
|
75
|
+
* How the bundle arrived: `patch` when a bsdiff patch produced a file,
|
|
76
|
+
* `manifest` when only the changed files were downloaded, `archive` for
|
|
77
|
+
* the full archive.
|
|
78
|
+
*/
|
|
79
|
+
readonly delivery: "patch" | "manifest" | "archive";
|
|
80
|
+
/** A patch was tried, but the file or the archive was downloaded instead. */
|
|
81
|
+
readonly patchFallback: boolean;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Where an update failed: `check` covers the Release catalog request,
|
|
85
|
+
* `download` the transfer and verification of the update's files, and
|
|
86
|
+
* `install` patching, extracting, and moving them into place.
|
|
87
|
+
*/
|
|
88
|
+
export type UpdateErrorStage = "check" | "download" | "install";
|
|
89
|
+
/** What the SDK was fetching or applying when an update failed. */
|
|
90
|
+
export type UpdateErrorResource = "catalog" | "artifact" | "manifest" | "file" | "patch" | "archive";
|
|
91
|
+
/** Why no response arrived, for a `network` failure. */
|
|
92
|
+
export type UpdateErrorTransport = "timeout" | "dns" | "tls" | "connection" | "offline" | "cancelled";
|
|
93
|
+
export type UpdateErrorReason = "network" | "http" | "invalid_response" | "hash_mismatch" | "signature" | "patch" | "extract" | "storage" | "unknown";
|
|
94
|
+
/** An update check, download, or install that failed. */
|
|
95
|
+
export interface UpdateError {
|
|
96
|
+
readonly stage: UpdateErrorStage;
|
|
97
|
+
readonly reason: UpdateErrorReason;
|
|
98
|
+
/** What was being fetched or applied, when the SDK knows. */
|
|
99
|
+
readonly resource?: UpdateErrorResource;
|
|
100
|
+
/** The response status when `reason` is `"http"`. */
|
|
101
|
+
readonly httpStatus?: number;
|
|
102
|
+
/**
|
|
103
|
+
* The storage origin's XML error `<Code>`, such as `AccessDenied`,
|
|
104
|
+
* `NoSuchKey`, or `ExpiredToken`, when an `http` failure's body names one.
|
|
105
|
+
* It tells an expired signed URL from a missing file.
|
|
106
|
+
*/
|
|
107
|
+
readonly originCode?: string;
|
|
108
|
+
/** Why no response arrived, for a `network` failure, when the SDK knows. */
|
|
109
|
+
readonly transport?: UpdateErrorTransport;
|
|
110
|
+
/** Android 11+: why the previous main process exited (see `AppReadyResult`). */
|
|
111
|
+
readonly previousProcessExit?: string;
|
|
112
|
+
/** The bundle the update targeted; absent for the check stage. */
|
|
113
|
+
readonly targetBundleId?: string;
|
|
114
|
+
/** The Release the update targeted, when it names one. */
|
|
115
|
+
readonly targetReleaseId?: string;
|
|
116
|
+
readonly channel: string;
|
|
117
|
+
/** The running bundle and the Release it was selected as. */
|
|
118
|
+
readonly bundleId: string;
|
|
119
|
+
readonly releaseId: string | null;
|
|
120
|
+
readonly updateStrategy: UpdateStrategy;
|
|
121
|
+
/** The error the SDK caught. */
|
|
122
|
+
readonly cause: unknown;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Lifecycle hooks a plugin returns from `setup`. Hooks observe: the SDK
|
|
126
|
+
* never waits for one and ignores what it returns, and a hook that throws or
|
|
127
|
+
* rejects is reported through `onError`, or a console warning without one,
|
|
128
|
+
* so a plugin can never delay or change an update.
|
|
129
|
+
*/
|
|
130
|
+
export interface HotUpdaterClientHooks {
|
|
131
|
+
/** Called once per JavaScript runtime, after native reports the launch. */
|
|
132
|
+
onAppReady?(result: AppReadyResult): void | Promise<void>;
|
|
133
|
+
/** Called after each update check, and after a Release adoption commits. */
|
|
134
|
+
onUpdateCheck?(result: UpdateCheckResult): void | Promise<void>;
|
|
135
|
+
/** Called after the SDK stages a downloaded bundle. */
|
|
136
|
+
onBundleDownloaded?(info: BundleDownloadedInfo): void | Promise<void>;
|
|
137
|
+
/** Called when an update check, download, or install fails. */
|
|
138
|
+
onUpdateError?(error: UpdateError): void | Promise<void>;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* A plugin's persistent key-value store. Native keeps it on the device,
|
|
142
|
+
* outside device backups, and the SDK scopes its keys to the plugin's id.
|
|
143
|
+
* It is meant for small values, up to 64 KB each.
|
|
144
|
+
*/
|
|
145
|
+
export interface HotUpdaterClientStorage {
|
|
146
|
+
get(key: string): string | null;
|
|
147
|
+
/** Writes the value; `null` removes the key. */
|
|
148
|
+
set(key: string, value: string | null): void;
|
|
149
|
+
}
|
|
150
|
+
export interface HotUpdaterClientContext {
|
|
151
|
+
/**
|
|
152
|
+
* Requests a path relative to the configured `baseURL`, with the SDK's
|
|
153
|
+
* `requestHeaders` and `requestTimeout` applied. Rejects with
|
|
154
|
+
* `Request timed out` when the timeout passes before a response arrives.
|
|
155
|
+
*/
|
|
156
|
+
fetch(path: string, init?: RequestInit): Promise<Response>;
|
|
157
|
+
/** A random id native creates once per installation. */
|
|
158
|
+
readonly installId: string;
|
|
159
|
+
readonly platform: "ios" | "android";
|
|
160
|
+
/** The native app version, or null when the native build has none. */
|
|
161
|
+
readonly appVersion: string | null;
|
|
162
|
+
readonly sdkVersion: string;
|
|
163
|
+
/** Whether this is a debug build (`__DEV__`). */
|
|
164
|
+
readonly isDebugBuild: boolean;
|
|
165
|
+
/** The bundle native reports as current. */
|
|
166
|
+
getBundleId(): string;
|
|
167
|
+
getChannel(): string;
|
|
168
|
+
getCohort(): string;
|
|
169
|
+
getFingerprintHash(): string | null;
|
|
170
|
+
readonly storage: HotUpdaterClientStorage;
|
|
171
|
+
/** The current time in milliseconds since the epoch. */
|
|
172
|
+
now(): number;
|
|
173
|
+
}
|
|
174
|
+
export interface HotUpdaterClientPlugin {
|
|
175
|
+
/** Unique among an app's plugins; two plugins with one id throw at init. */
|
|
176
|
+
readonly id: string;
|
|
177
|
+
/**
|
|
178
|
+
* Called once, when `HotUpdater.init` or `HotUpdater.wrap` first
|
|
179
|
+
* configures the runtime with this plugin.
|
|
180
|
+
*/
|
|
181
|
+
setup(context: HotUpdaterClientContext): HotUpdaterClientHooks | void;
|
|
182
|
+
}
|
|
183
|
+
/** Declares a client plugin; built-in and third-party plugins use the same contract. */
|
|
184
|
+
export declare const defineClientPlugin: <const P extends HotUpdaterClientPlugin>(plugin: P) => P;
|
|
185
|
+
//# sourceMappingURL=clientPlugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientPlugin.d.ts","sourceRoot":"","sources":["../../../src/clientPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
constructor(status: number, statusText: string);
|
|
1
|
+
import { UpdateHttpError } from "./updateError";
|
|
2
|
+
export declare class FetchJSONResponseError extends UpdateHttpError {
|
|
4
3
|
}
|
|
5
4
|
export declare const fetchJSON: <T>({ url, requestHeaders, requestTimeout, }: {
|
|
6
5
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchJSON.d.ts","sourceRoot":"","sources":["../../../src/fetchJSON.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"fetchJSON.d.ts","sourceRoot":"","sources":["../../../src/fetchJSON.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,qBAAa,sBAAuB,SAAQ,eAAe;CAAG;AAE9D,eAAO,MAAM,SAAS,GAAU,CAAC,4CAI9B;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,KAAG,OAAO,CAAC,CAAC,CAwBZ,CAAC"}
|
|
@@ -15,42 +15,14 @@ export interface ArtifactRequest {
|
|
|
15
15
|
readonly requestHeaders?: Record<string, string>;
|
|
16
16
|
readonly requestTimeout?: number;
|
|
17
17
|
}
|
|
18
|
-
interface InsightsEventCommonParams {
|
|
19
|
-
readonly installId: string;
|
|
20
|
-
readonly userId?: string;
|
|
21
|
-
readonly username?: string;
|
|
22
|
-
readonly platform: "ios" | "android";
|
|
23
|
-
readonly appVersion: string;
|
|
24
|
-
readonly channel: string;
|
|
25
|
-
readonly cohort: string;
|
|
26
|
-
readonly fingerprintHash: string | null;
|
|
27
|
-
readonly fromReleaseId?: string | null;
|
|
28
|
-
readonly toReleaseId?: string | null;
|
|
29
|
-
readonly requestHeaders?: Record<string, string>;
|
|
30
|
-
readonly requestTimeout?: number;
|
|
31
|
-
}
|
|
32
|
-
type InsightsTransitionEventParams = InsightsEventCommonParams & {
|
|
33
|
-
readonly type: "UPDATE_DOWNLOADED" | "UPDATE_APPLIED" | "RECOVERED";
|
|
34
|
-
readonly fromBundleId: string;
|
|
35
|
-
readonly toBundleId: string;
|
|
36
|
-
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
37
|
-
};
|
|
38
|
-
type InsightsUnchangedEventParams = InsightsEventCommonParams & {
|
|
39
|
-
readonly type: "UNCHANGED";
|
|
40
|
-
readonly fromBundleId: null;
|
|
41
|
-
readonly toBundleId: string;
|
|
42
|
-
readonly updateStrategy: null;
|
|
43
|
-
};
|
|
44
|
-
export type InsightsEventParams = InsightsTransitionEventParams | InsightsUnchangedEventParams;
|
|
45
18
|
export interface HotUpdaterHttpSession {
|
|
46
|
-
|
|
19
|
+
/** Resolves to null when the server says the scope has no catalog, so no update. */
|
|
20
|
+
fetchReleaseCatalog: (params: ReleaseCatalogRequest) => Promise<ReleaseCatalog | null>;
|
|
47
21
|
resolveArtifact: (params: ArtifactRequest) => Promise<ArtifactInfo>;
|
|
48
|
-
sendInsightsEvent: (params: InsightsEventParams) => Promise<void>;
|
|
49
22
|
}
|
|
50
23
|
export interface HotUpdaterHttpClient {
|
|
51
24
|
createSession: () => Promise<HotUpdaterHttpSession>;
|
|
52
25
|
}
|
|
53
26
|
/** Creates the private HTTP client used by HotUpdater.init and HotUpdater.wrap. */
|
|
54
27
|
export declare const createHttpClient: (baseURL: HotUpdaterBaseURL) => HotUpdaterHttpClient;
|
|
55
|
-
export {};
|
|
56
28
|
//# sourceMappingURL=httpClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAGjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,aAAa,GAAG,YAAY,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,mBAAmB,EAAE,CACnB,MAAM,EAAE,qBAAqB,KAC1B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpC,eAAe,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrD;AAuID,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,YAClB,iBAAiB,KACzB,oBAED,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type CheckForUpdateOptions } from "./checkForUpdate";
|
|
2
|
-
import { addListener, clearCrashHistory, getAppVersion, getUpdateId, getChannel, getCohort, getCrashHistory, getDefaultChannel, getFingerprintHash, getInstallId, getManifest, getMinBundleId, isChannelSwitched, notifyAppReady, reload, setCohort, setReloadBehavior,
|
|
2
|
+
import { addListener, clearCrashHistory, getAppVersion, getUpdateId, getChannel, getCohort, getCrashHistory, getDefaultChannel, getFingerprintHash, getInstallId, getManifest, getMinBundleId, isChannelSwitched, notifyAppReady, reload, setCohort, setReloadBehavior, type UpdateParams } from "./native";
|
|
3
3
|
import { type AutoUpdateOptions, type HotUpdaterInitOptions, type HotUpdaterOptions, wrap } from "./wrap";
|
|
4
|
-
export type
|
|
4
|
+
export { defineClientPlugin, type AppReadyResult, type BundleDownloadedInfo, type HotUpdaterClientContext, type HotUpdaterClientHooks, type HotUpdaterClientPlugin, type HotUpdaterClientStorage, type ReleaseTransitionKind, type UpdateCheckResult, type UpdateError, type UpdateErrorReason, type UpdateErrorStage, type UpdateStrategy, } from "./clientPlugin";
|
|
5
|
+
export type { CustomReloadHandler, HotUpdaterEvent, HotUpdaterProgressArtifactType, HotUpdaterProgressEvent, Manifest, ManifestAsset, NotifyAppReadyResult, ActiveUpdateState, ReloadBehavior, ReloadBehaviorSetting, } from "./native";
|
|
5
6
|
export * from "./store";
|
|
6
7
|
export { extractSignatureFailure, type HotUpdaterBaseURL, isSignatureVerificationError, type SignatureVerificationFailure, } from "./types";
|
|
7
8
|
export type { HotUpdaterFallbackComponentProps, HotUpdaterInitOptions, HotUpdaterOptions, RunUpdateProcessResponse, } from "./wrap";
|
|
@@ -245,10 +246,6 @@ declare function createHotUpdaterClient(): {
|
|
|
245
246
|
* Fetches the persisted install id for this app installation.
|
|
246
247
|
*/
|
|
247
248
|
getInstallId: typeof getInstallId;
|
|
248
|
-
/**
|
|
249
|
-
* Persists nullable user identity fields associated with this installation.
|
|
250
|
-
*/
|
|
251
|
-
setUser: typeof setUser;
|
|
252
249
|
/**
|
|
253
250
|
* Reads the native launch report for the current process.
|
|
254
251
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,WAAW,EAIX,iBAAiB,EACjB,aAAa,EAEb,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,MAAM,EAEN,SAAS,EACT,iBAAiB,EAEjB,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAItB,IAAI,EACL,MAAM,QAAQ,CAAC;AAEhB,OAAO,EACL,kBAAkB,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACpB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,8BAA8B,EAC9B,uBAAuB,EACvB,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,4BAA4B,EAC5B,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAoBhB,KAAK,cAAc,GAAG;IACpB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACtD,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;CACvD,CAAC;AAEF;;;GAGG;AACH,iBAAS,sBAAsB;IA+I3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;oBACa,iBAAiB;IAQjC;;;;;;;;;;;;;;OAcG;oBACa,qBAAqB,KAAG,IAAI;IAS5C;;OAEG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH,wDAAwD;;IAGxD;;;OAGG;;IAGH,wEAAwE;;IAGxE;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;OAIG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;6BACsB,qBAAqB;IAiB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;2BAC0B,YAAY;IAiDzC;;;;OAIG;;IAcH;;;;;;;;;;OAUG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;;;;;;;;OAWG;;EAGN;AAED,KAAK,gBAAgB,GAAG,IAAI,CAC1B,UAAU,CAAC,OAAO,sBAAsB,CAAC,EACzC,MAAM,CACP,GAAG;IACF,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,gBAA2C,CAAC"}
|
|
@@ -125,6 +125,24 @@ export declare const commitReleaseSelection: (input: {
|
|
|
125
125
|
readonly selection: PersistedSelectionReceipt;
|
|
126
126
|
readonly guard: ReleaseSelectionGuard;
|
|
127
127
|
}) => Promise<boolean>;
|
|
128
|
+
/** How native delivered a staged bundle. */
|
|
129
|
+
export type BundleDelivery = {
|
|
130
|
+
/**
|
|
131
|
+
* "patch" when a bsdiff patch produced a file, "manifest" when only the
|
|
132
|
+
* changed files were downloaded, "archive" for the full archive.
|
|
133
|
+
*/
|
|
134
|
+
readonly delivery: "patch" | "manifest" | "archive";
|
|
135
|
+
/** A patch was tried, but the file or the archive was downloaded instead. */
|
|
136
|
+
readonly patchFallback: boolean;
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Stages a bundle for the next launch. Resolves with how native delivered
|
|
140
|
+
* it, or with null when this runtime had already staged it and nothing was
|
|
141
|
+
* downloaded; rejects when the download or install fails.
|
|
142
|
+
*
|
|
143
|
+
* @throws {Error} Rejects with error.code from HotUpdaterErrorCode enum and error.message
|
|
144
|
+
*/
|
|
145
|
+
export declare function stageBundle(params: UpdateParams): Promise<BundleDelivery | null>;
|
|
128
146
|
/**
|
|
129
147
|
* Downloads files and applies them to the app.
|
|
130
148
|
*
|
|
@@ -215,17 +233,10 @@ export declare const isChannelSwitched: () => boolean;
|
|
|
215
233
|
*/
|
|
216
234
|
export declare const getFingerprintHash: () => string | null;
|
|
217
235
|
export declare const getInstallId: () => string;
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
export declare const getPersistedUserIdentity: () => PersistedUserIdentity;
|
|
223
|
-
export type SetUserParams = {
|
|
224
|
-
userId?: string | number | null;
|
|
225
|
-
username?: string | null;
|
|
226
|
-
};
|
|
227
|
-
export declare function setUser(params: SetUserParams): void;
|
|
228
|
-
export declare function setUser(params: null): void;
|
|
236
|
+
/** Reads a value from the SDK's native key-value store. */
|
|
237
|
+
export declare const getStorageItem: (key: string) => string | null;
|
|
238
|
+
/** Writes a value to the SDK's native key-value store; null removes it. */
|
|
239
|
+
export declare const setStorageItem: (key: string, value: string | null) => void;
|
|
229
240
|
/**
|
|
230
241
|
* Result returned by notifyAppReady()
|
|
231
242
|
*/
|
|
@@ -244,17 +255,20 @@ export type NotifyAppReadyResult = {
|
|
|
244
255
|
fromReleaseId?: string;
|
|
245
256
|
toReleaseId?: string;
|
|
246
257
|
};
|
|
247
|
-
|
|
258
|
+
/** An update applied or recovered at this launch, as native persisted it. */
|
|
259
|
+
export type LaunchTransition = {
|
|
248
260
|
type: "UPDATE_APPLIED" | "RECOVERED";
|
|
249
261
|
fromBundleId: string;
|
|
250
262
|
toBundleId: string;
|
|
251
|
-
fromReleaseId
|
|
252
|
-
toReleaseId
|
|
263
|
+
fromReleaseId: string | null;
|
|
264
|
+
toReleaseId: string | null;
|
|
253
265
|
updateStrategy: PersistedUpdateStrategy;
|
|
254
266
|
};
|
|
255
267
|
export declare const readNotifyAppReady: () => {
|
|
256
268
|
result: NotifyAppReadyResult;
|
|
257
|
-
|
|
269
|
+
transition: LaunchTransition | null;
|
|
270
|
+
/** Android 11+: why the previous main process exited, when native knows. */
|
|
271
|
+
previousProcessExit: string | null;
|
|
258
272
|
pending: boolean;
|
|
259
273
|
};
|
|
260
274
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAIrB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC/B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjE,OAAyB,EACvB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAGlD,KAAK,uBAAuB,GAAG,aAAa,GAAG,YAAY,CAAC;AAU5D,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACvC;AAUD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { HotUpdaterClientHooks, HotUpdaterClientPlugin } from "./clientPlugin";
|
|
2
|
+
import type { HotUpdaterBaseURL } from "./types";
|
|
3
|
+
type HookName = keyof HotUpdaterClientHooks;
|
|
4
|
+
type HookPayload<K extends HookName> = Parameters<NonNullable<HotUpdaterClientHooks[K]>>[0];
|
|
5
|
+
/** The init or wrap settings plugins see through their context. */
|
|
6
|
+
export interface PluginHostConfig {
|
|
7
|
+
readonly baseURL: HotUpdaterBaseURL;
|
|
8
|
+
readonly requestHeaders?: Record<string, string>;
|
|
9
|
+
readonly requestTimeout?: number;
|
|
10
|
+
readonly onError?: (error: unknown) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Sets up the plugins of an init or wrap call. A plugin passed to an earlier
|
|
14
|
+
* call keeps its hooks, and a plugin left out stops receiving events.
|
|
15
|
+
*/
|
|
16
|
+
export declare const configurePlugins: (plugins: readonly HotUpdaterClientPlugin[] | undefined, nextConfig: PluginHostConfig) => void;
|
|
17
|
+
/** Whether any plugin listens to this hook, so callers build events only when one does. */
|
|
18
|
+
export declare const hasPluginHook: (name: HookName) => boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Builds a hook's event when a plugin listens. A failure to build it is
|
|
21
|
+
* reported, not thrown, since reporting never changes an update.
|
|
22
|
+
*/
|
|
23
|
+
export declare const buildPluginEvent: <K extends HookName>(name: K, createPayload: () => HookPayload<K> | null) => HookPayload<K> | null;
|
|
24
|
+
/** Calls a hook on every plugin that listens, without waiting for any. */
|
|
25
|
+
export declare const dispatchPluginHook: <K extends HookName>(name: K, payload: HookPayload<K>) => void;
|
|
26
|
+
/** Builds a hook's event when a plugin listens and calls the hook right away. */
|
|
27
|
+
export declare const emitPluginHook: <K extends HookName>(name: K, createPayload: () => HookPayload<K> | null) => void;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=pluginHost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluginHost.d.ts","sourceRoot":"","sources":["../../../src/pluginHost.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EACrB,sBAAsB,EAEvB,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,KAAK,QAAQ,GAAG,MAAM,qBAAqB,CAAC;AAC5C,KAAK,WAAW,CAAC,CAAC,SAAS,QAAQ,IAAI,UAAU,CAC/C,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CACtC,CAAC,CAAC,CAAC,CAAC;AAEL,mEAAmE;AACnE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7C;AAwID;;;GAGG;AACH,eAAO,MAAM,gBAAgB,YAClB,SAAS,sBAAsB,EAAE,GAAG,SAAS,cAC1C,gBAAgB,KAC3B,IA4BF,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,aAAa,SAAU,QAAQ,KAAG,OACuB,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,QAC3C,CAAC,iBACQ,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,KACzC,WAAW,CAAC,CAAC,CAAC,GAAG,IAQnB,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,QAAQ,QAC7C,CAAC,WACE,WAAW,CAAC,CAAC,CAAC,KACtB,IAqBF,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,QACzC,CAAC,iBACQ,MAAM,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,KACzC,IAGF,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an RFC 9562 UUIDv7: a 48-bit millisecond timestamp, then random bits.
|
|
3
|
+
*
|
|
4
|
+
* `createUUIDv7` from `@hot-updater/plugin-core` calls `crypto.getRandomValues`
|
|
5
|
+
* unconditionally, but React Native has no Web Crypto unless the app installs a
|
|
6
|
+
* polyfill. An Insights event ID only has to tell one event from another so a
|
|
7
|
+
* retried POST is counted once, so `Math.random` is enough without one.
|
|
8
|
+
*/
|
|
9
|
+
export declare const createUUIDv7: () => string;
|
|
10
|
+
/** SHA-256 of a string's UTF-8 bytes, since React Native has no Web Crypto. */
|
|
11
|
+
export declare const sha256: (value: string) => Uint8Array;
|
|
12
|
+
/**
|
|
13
|
+
* A UUIDv7 derived from a key: its time field is `timestamp` and its random
|
|
14
|
+
* bits are the key's SHA-256, so the same key and time always give the same
|
|
15
|
+
* id, and a server that stores reports by id counts it once.
|
|
16
|
+
*/
|
|
17
|
+
export declare const createKeyedUUIDv7: (key: string, timestamp: number) => string;
|
|
18
|
+
//# sourceMappingURL=eventId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventId.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/insights/eventId.ts"],"names":[],"mappings":"AAqBA;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,QAAO,MAW/B,CAAC;AA0CF,+EAA+E;AAC/E,eAAO,MAAM,MAAM,UAAW,MAAM,KAAG,UA+EtC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAS,MAAM,aAAa,MAAM,KAAG,MAChB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type HotUpdaterClientPlugin } from "../../clientPlugin";
|
|
2
|
+
export interface InsightsOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Also report from debug builds (`__DEV__`). Defaults to `false`, so
|
|
5
|
+
* development sessions stay out of production Insights.
|
|
6
|
+
*/
|
|
7
|
+
readonly debug?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** The app's own id for the signed-in user, attached to later reports. */
|
|
10
|
+
export interface InsightsUser {
|
|
11
|
+
readonly userId: string | number;
|
|
12
|
+
}
|
|
13
|
+
export interface InsightsPlugin extends HotUpdaterClientPlugin {
|
|
14
|
+
readonly id: "insights";
|
|
15
|
+
/**
|
|
16
|
+
* Attaches the signed-in user's id to later reports, or clears it with
|
|
17
|
+
* `null`. It persists on the device, sends nothing by itself, and can be
|
|
18
|
+
* called before `HotUpdater.init`.
|
|
19
|
+
*/
|
|
20
|
+
setUser(user: InsightsUser | null): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Reports update adoption to a server that runs the `insights()` server
|
|
24
|
+
* plugin: launches (at most once a UTC day while nothing changes), downloads,
|
|
25
|
+
* applies, recoveries, and update failures. After the server answers that
|
|
26
|
+
* Insights is off, the plugin sends nothing for 24 hours, and for the rest
|
|
27
|
+
* of that runtime.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { HotUpdater } from "@hot-updater/react-native";
|
|
32
|
+
* import { insights } from "@hot-updater/react-native/plugins/insights";
|
|
33
|
+
*
|
|
34
|
+
* const analytics = insights();
|
|
35
|
+
* HotUpdater.init({ baseURL, plugins: [analytics] });
|
|
36
|
+
* analytics.setUser({ userId: "user-123" });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare const insights: (options?: InsightsOptions) => InsightsPlugin;
|
|
40
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/insights/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,sBAAsB,EAG5B,MAAM,oBAAoB,CAAC;AAgB5B,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC5D,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;CAC1C;AAgCD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,QAAQ,aAAa,eAAe,KAAQ,cAgRxD,CAAC"}
|