@hot-updater/react-native 0.30.12 → 0.31.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HotUpdater.podspec +1 -0
- package/android/build.gradle +1 -0
- package/android/src/main/java/com/hotupdater/BsdiffPatch.kt +284 -0
- package/android/src/main/java/com/hotupdater/BundleFileStorageService.kt +885 -5
- package/android/src/main/java/com/hotupdater/HotUpdaterImpl.kt +13 -2
- package/android/src/main/java/com/hotupdater/OkHttpDownloadService.kt +37 -8
- package/android/src/main/java/com/hotupdater/ReactNativeValueConverters.kt +48 -12
- package/android/src/main/java/com/hotupdater/SignatureVerifier.kt +60 -22
- package/android/src/newarch/HotUpdater.kt +14 -2
- package/android/src/newarch/HotUpdaterModule.kt +112 -1
- package/android/src/oldarch/HotUpdater.kt +14 -2
- package/android/src/oldarch/HotUpdaterModule.kt +107 -3
- package/android/src/test/java/com/hotupdater/BsdiffPatchTest.kt +46 -0
- package/android/src/test/java/com/hotupdater/BundleFileStorageServiceTest.kt +29 -1
- package/android/src/test/java/com/hotupdater/HotUpdaterImplTest.kt +4 -1
- package/ios/HotUpdater/Internal/BsdiffPatchBridge.h +16 -0
- package/ios/HotUpdater/Internal/BsdiffPatchBridge.mm +343 -0
- package/ios/HotUpdater/Internal/BundleFileStorageService.swift +1093 -47
- package/ios/HotUpdater/Internal/HotUpdater-Bridging-Header.h +2 -0
- package/ios/HotUpdater/Internal/HotUpdater.mm +12 -2
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +64 -5
- package/ios/HotUpdater/Internal/NotificationExtension.swift +2 -1
- package/ios/HotUpdater/Internal/SignatureVerifier.swift +28 -5
- package/ios/HotUpdater/Internal/StreamingTarArchiveExtractor.swift +11 -0
- package/ios/HotUpdater/Internal/URLSessionDownloadService.swift +11 -5
- package/lib/commonjs/DefaultResolver.js +6 -2
- package/lib/commonjs/DefaultResolver.js.map +1 -1
- package/lib/commonjs/DefaultResolver.spec.js +79 -3
- package/lib/commonjs/DefaultResolver.spec.js.map +1 -1
- package/lib/commonjs/checkForUpdate.js +6 -0
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/index.js +53 -18
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.spec.js +117 -1
- package/lib/commonjs/index.spec.js.map +1 -1
- package/lib/commonjs/native.js +40 -16
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/native.spec.js +119 -3
- package/lib/commonjs/native.spec.js.map +1 -1
- package/lib/commonjs/sdkVersion.js +8 -0
- package/lib/commonjs/sdkVersion.js.map +1 -0
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/commonjs/store.js +72 -5
- package/lib/commonjs/store.js.map +1 -1
- package/lib/commonjs/store.spec.js +265 -8
- package/lib/commonjs/store.spec.js.map +1 -1
- package/lib/commonjs/wrap.js +19 -5
- package/lib/commonjs/wrap.js.map +1 -1
- package/lib/commonjs/wrap.spec.js +74 -0
- package/lib/commonjs/wrap.spec.js.map +1 -1
- package/lib/module/DefaultResolver.js +6 -2
- package/lib/module/DefaultResolver.js.map +1 -1
- package/lib/module/DefaultResolver.spec.js +78 -3
- package/lib/module/DefaultResolver.spec.js.map +1 -1
- package/lib/module/checkForUpdate.js +6 -0
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/index.js +53 -18
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.spec.js +117 -1
- package/lib/module/index.spec.js.map +1 -1
- package/lib/module/native.js +40 -16
- package/lib/module/native.js.map +1 -1
- package/lib/module/native.spec.js +119 -3
- package/lib/module/native.spec.js.map +1 -1
- package/lib/module/sdkVersion.js +4 -0
- package/lib/module/sdkVersion.js.map +1 -0
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/store.js +72 -5
- package/lib/module/store.js.map +1 -1
- package/lib/module/store.spec.js +265 -8
- package/lib/module/store.spec.js.map +1 -1
- package/lib/module/wrap.js +19 -5
- package/lib/module/wrap.js.map +1 -1
- package/lib/module/wrap.spec.js +74 -0
- package/lib/module/wrap.spec.js.map +1 -1
- package/lib/typescript/commonjs/DefaultResolver.d.ts.map +1 -1
- package/lib/typescript/commonjs/checkForUpdate.d.ts +2 -2
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +36 -8
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +56 -3
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts +2 -0
- package/lib/typescript/commonjs/sdkVersion.d.ts.map +1 -0
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +27 -0
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/commonjs/store.d.ts +5 -0
- package/lib/typescript/commonjs/store.d.ts.map +1 -1
- package/lib/typescript/commonjs/wrap.d.ts +43 -29
- package/lib/typescript/commonjs/wrap.d.ts.map +1 -1
- package/lib/typescript/module/DefaultResolver.d.ts.map +1 -1
- package/lib/typescript/module/checkForUpdate.d.ts +2 -2
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +36 -8
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +56 -3
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/sdkVersion.d.ts +2 -0
- package/lib/typescript/module/sdkVersion.d.ts.map +1 -0
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +27 -0
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/store.d.ts +5 -0
- package/lib/typescript/module/store.d.ts.map +1 -1
- package/lib/typescript/module/wrap.d.ts +43 -29
- package/lib/typescript/module/wrap.d.ts.map +1 -1
- package/package.json +20 -10
- package/src/DefaultResolver.spec.ts +103 -3
- package/src/DefaultResolver.ts +9 -2
- package/src/checkForUpdate.ts +9 -2
- package/src/index.spec.ts +149 -1
- package/src/index.ts +99 -40
- package/src/native.spec.ts +139 -1
- package/src/native.ts +145 -31
- package/src/sdkVersion.ts +1 -0
- package/src/specs/NativeHotUpdater.ts +28 -0
- package/src/store.spec.ts +324 -9
- package/src/store.ts +133 -7
- package/src/wrap.spec.ts +91 -0
- package/src/wrap.tsx +79 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAiBL,iBAAiB,EACjB,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAiBL,iBAAiB,EACjB,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAItB,KAAK,mBAAmB,EACxB,IAAI,EACL,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,8BAA8B,EAC9B,uBAAuB,EACvB,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAoBhB,KAAK,cAAc,GAAG;IACpB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACtD;;;;;;;;;;;;;;;OAeG;IACH,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxD,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;CACvD,CAAC;AAOF;;;GAGG;AACH,iBAAS,sBAAsB;IAsI3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;oBACa,iBAAiB;IAOjC;;;;;;;;;;;;;;;OAeG;oBACa,qBAAqB,KAAG,IAAI;IAQ5C;;OAEG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;OAIG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;6BACsB,qBAAqB;IAiB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;OAIG;;IAgBH;;;;;;;;;;OAUG;;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"}
|
|
@@ -4,6 +4,7 @@ import { type UpdateBundleParams } from "./specs/NativeHotUpdater";
|
|
|
4
4
|
export { HotUpdaterErrorCode, isHotUpdaterError };
|
|
5
5
|
export interface ManifestAsset {
|
|
6
6
|
fileHash: string;
|
|
7
|
+
signature?: string;
|
|
7
8
|
}
|
|
8
9
|
export interface Manifest {
|
|
9
10
|
bundleId: string;
|
|
@@ -31,10 +32,62 @@ export type CustomReloadHandler = () => void | Promise<void>;
|
|
|
31
32
|
* - `custom`: Run a user-provided JS handler on both platforms
|
|
32
33
|
*/
|
|
33
34
|
export type ReloadBehaviorSetting = ReloadBehavior | "custom";
|
|
35
|
+
export type HotUpdaterProgressArtifactType = "archive" | "diff";
|
|
36
|
+
export type HotUpdaterDiffFileStatus = "pending" | "downloading" | "downloaded" | "failed";
|
|
37
|
+
export interface HotUpdaterDiffFileSnapshot {
|
|
38
|
+
/**
|
|
39
|
+
* Manifest asset path for this progress entry.
|
|
40
|
+
*
|
|
41
|
+
* This is the stable identity of the asset in the installed bundle. Use this
|
|
42
|
+
* when matching progress back to the manifest or to the final file location.
|
|
43
|
+
*/
|
|
44
|
+
path: string;
|
|
45
|
+
/**
|
|
46
|
+
* Artifact path currently being transferred for this progress entry.
|
|
47
|
+
*
|
|
48
|
+
* Usually this is the same as `path`. It can differ when the updater
|
|
49
|
+
* downloads an intermediate artifact that will be applied to produce the
|
|
50
|
+
* final asset.
|
|
51
|
+
*/
|
|
52
|
+
downloadPath: string;
|
|
53
|
+
/**
|
|
54
|
+
* Current download state for this asset within the manifest diff update.
|
|
55
|
+
*/
|
|
56
|
+
status: HotUpdaterDiffFileStatus;
|
|
57
|
+
/**
|
|
58
|
+
* Download progress for this file, normalized from 0 to 1.
|
|
59
|
+
*/
|
|
60
|
+
progress: number;
|
|
61
|
+
/**
|
|
62
|
+
* Stable display order among diff files.
|
|
63
|
+
*/
|
|
64
|
+
order: number;
|
|
65
|
+
/**
|
|
66
|
+
* Bytes downloaded for `downloadPath`, when the native downloader reports it.
|
|
67
|
+
*/
|
|
68
|
+
downloadedBytes?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Total expected bytes for `downloadPath`, when known.
|
|
71
|
+
*/
|
|
72
|
+
totalBytes?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface HotUpdaterDiffProgressDetails {
|
|
75
|
+
totalFilesCount: number;
|
|
76
|
+
completedFilesCount: number;
|
|
77
|
+
files: HotUpdaterDiffFileSnapshot[];
|
|
78
|
+
}
|
|
79
|
+
export type HotUpdaterProgressEvent = {
|
|
80
|
+
progress: number;
|
|
81
|
+
artifactType: "archive";
|
|
82
|
+
downloadedBytes?: number;
|
|
83
|
+
totalBytes?: number;
|
|
84
|
+
} | {
|
|
85
|
+
progress: number;
|
|
86
|
+
artifactType: "diff";
|
|
87
|
+
details: HotUpdaterDiffProgressDetails;
|
|
88
|
+
};
|
|
34
89
|
export type HotUpdaterEvent = {
|
|
35
|
-
onProgress:
|
|
36
|
-
progress: number;
|
|
37
|
-
};
|
|
90
|
+
onProgress: HotUpdaterProgressEvent;
|
|
38
91
|
};
|
|
39
92
|
export declare const addListener: <T extends keyof HotUpdaterEvent>(eventName: T, listener: (event: HotUpdaterEvent[T]) => void) => () => void;
|
|
40
93
|
export type UpdateParams = UpdateBundleParams & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdkVersion.d.ts","sourceRoot":"","sources":["../../../src/sdkVersion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,WAAW,CAAC"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import type { TurboModule } from "react-native";
|
|
2
2
|
import type { UnsafeObject } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
|
+
export interface ChangedAsset {
|
|
4
|
+
file?: {
|
|
5
|
+
compression?: "br" | null;
|
|
6
|
+
url: string;
|
|
7
|
+
} | null;
|
|
8
|
+
fileHash: string;
|
|
9
|
+
patch?: {
|
|
10
|
+
algorithm: "bsdiff";
|
|
11
|
+
baseBundleId: string;
|
|
12
|
+
baseFileHash: string;
|
|
13
|
+
patchFileHash: string;
|
|
14
|
+
patchUrl: string;
|
|
15
|
+
} | null;
|
|
16
|
+
}
|
|
3
17
|
export interface UpdateBundleParams {
|
|
4
18
|
bundleId: string;
|
|
5
19
|
channel?: string;
|
|
@@ -14,6 +28,19 @@ export interface UpdateBundleParams {
|
|
|
14
28
|
* Native determines verification mode by checking for "sig:" prefix.
|
|
15
29
|
*/
|
|
16
30
|
fileHash: string | null;
|
|
31
|
+
/**
|
|
32
|
+
* Optional signed manifest URL for manifest-driven installation.
|
|
33
|
+
*/
|
|
34
|
+
manifestUrl?: string | null;
|
|
35
|
+
/**
|
|
36
|
+
* File hash/signature for the manifest file itself.
|
|
37
|
+
*/
|
|
38
|
+
manifestFileHash?: string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Per-file URLs for assets that must be downloaded instead of reused from
|
|
41
|
+
* the currently active bundle.
|
|
42
|
+
*/
|
|
43
|
+
changedAssets?: UnsafeObject | null;
|
|
17
44
|
}
|
|
18
45
|
export interface Spec extends TurboModule {
|
|
19
46
|
reload(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,SAAS,EAAE,QAAQ,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,cAAc,IAAI;QAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,WAAW,EAAE,MAAM,YAAY,CAAC;IAEhC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,SAAS,EAAE,MAAM,MAAM,CAAC;IAGxB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import type { HotUpdaterDiffProgressDetails } from "./native";
|
|
1
2
|
export type HotUpdaterState = {
|
|
2
3
|
progress: number;
|
|
4
|
+
downloadedBytes: number | undefined;
|
|
5
|
+
totalBytes: number | undefined;
|
|
3
6
|
isUpdateDownloaded: boolean;
|
|
7
|
+
artifactType: "archive" | "diff" | null;
|
|
8
|
+
details: HotUpdaterDiffProgressDetails | null;
|
|
4
9
|
};
|
|
5
10
|
export declare const hotUpdaterStore: {
|
|
6
11
|
getSnapshot: () => HotUpdaterState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,6BAA6B,EAE9B,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC/C,CAAC;AAqLF,eAAO,MAAM,eAAe;;yBAnEE,OAAO,CAAC,eAAe,CAAC;0BAuDvB,MAAM,IAAI;CAYa,CAAC;AAEvD,eAAO,MAAM,kBAAkB,GAAI,CAAC,GAAG,eAAe,EACpD,WAAU,CAAC,QAAQ,EAAE,eAAe,KAAK,CAA+B,MAQzE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { HotUpdaterError } from "./error";
|
|
3
3
|
import { type NotifyAppReadyResult } from "./native";
|
|
4
|
+
import { type HotUpdaterState } from "./store";
|
|
4
5
|
import type { HotUpdaterBaseURL, HotUpdaterResolver } from "./types";
|
|
5
6
|
export interface RunUpdateProcessResponse {
|
|
6
7
|
status: "ROLLBACK" | "UPDATE" | "UP_TO_DATE";
|
|
@@ -9,8 +10,17 @@ export interface RunUpdateProcessResponse {
|
|
|
9
10
|
id: string;
|
|
10
11
|
}
|
|
11
12
|
type UpdateStatus = "CHECK_FOR_UPDATE" | "UPDATING" | "UPDATE_PROCESS_COMPLETED";
|
|
13
|
+
export type HotUpdaterFallbackComponentProps = {
|
|
14
|
+
status: Exclude<UpdateStatus, "UPDATE_PROCESS_COMPLETED">;
|
|
15
|
+
progress: number;
|
|
16
|
+
downloadedBytes: HotUpdaterState["downloadedBytes"];
|
|
17
|
+
totalBytes: HotUpdaterState["totalBytes"];
|
|
18
|
+
message: string | null;
|
|
19
|
+
artifactType: HotUpdaterState["artifactType"];
|
|
20
|
+
details: HotUpdaterState["details"];
|
|
21
|
+
};
|
|
12
22
|
/**
|
|
13
|
-
* Common options shared
|
|
23
|
+
* Common options shared by HotUpdater initialization APIs.
|
|
14
24
|
*/
|
|
15
25
|
interface CommonHotUpdaterOptions {
|
|
16
26
|
/**
|
|
@@ -34,18 +44,23 @@ interface CommonHotUpdaterOptions {
|
|
|
34
44
|
*
|
|
35
45
|
* @example
|
|
36
46
|
* ```tsx
|
|
37
|
-
* HotUpdater.
|
|
47
|
+
* HotUpdater.init({
|
|
38
48
|
* baseURL: "https://api.example.com",
|
|
39
|
-
* updateMode: "manual",
|
|
40
49
|
* onNotifyAppReady: ({ status, crashedBundleId }) => {
|
|
41
50
|
* if (status === "RECOVERED") {
|
|
42
51
|
* analytics.track("bundle_rollback", { crashedBundleId });
|
|
43
52
|
* }
|
|
44
|
-
* }
|
|
45
|
-
* })
|
|
53
|
+
* },
|
|
54
|
+
* });
|
|
46
55
|
* ```
|
|
47
56
|
*/
|
|
48
57
|
onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Default callback invoked when Hot Updater initialization or update checks
|
|
60
|
+
* fail. Per-call `HotUpdater.checkForUpdate({ onError })` handlers override
|
|
61
|
+
* this callback for that check.
|
|
62
|
+
*/
|
|
63
|
+
onError?: (error: HotUpdaterError | Error | unknown) => void;
|
|
49
64
|
}
|
|
50
65
|
/**
|
|
51
66
|
* Configuration with baseURL for standard server-based updates
|
|
@@ -81,18 +96,16 @@ interface ResolverConfig {
|
|
|
81
96
|
*/
|
|
82
97
|
type NetworkConfig = BaseURLConfig | ResolverConfig;
|
|
83
98
|
export type AutoUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
|
|
99
|
+
/**
|
|
100
|
+
* Automatic update mode. This is the default and can be omitted.
|
|
101
|
+
*/
|
|
102
|
+
updateMode?: "auto";
|
|
84
103
|
/**
|
|
85
104
|
* Update strategy
|
|
86
105
|
* - "fingerprint": Use fingerprint hash to check for updates
|
|
87
106
|
* - "appVersion": Use app version to check for updates
|
|
88
107
|
*/
|
|
89
108
|
updateStrategy: "fingerprint" | "appVersion";
|
|
90
|
-
/**
|
|
91
|
-
* Update mode
|
|
92
|
-
* - "auto": Automatically check and download updates
|
|
93
|
-
*/
|
|
94
|
-
updateMode: "auto";
|
|
95
|
-
onError?: (error: HotUpdaterError | Error | unknown) => void;
|
|
96
109
|
/**
|
|
97
110
|
* Component to show while downloading a new bundle update.
|
|
98
111
|
*
|
|
@@ -115,11 +128,7 @@ export type AutoUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
|
|
|
115
128
|
*
|
|
116
129
|
* If not defined, the bundle will download in the background without blocking the screen.
|
|
117
130
|
*/
|
|
118
|
-
fallbackComponent?: React.FC<
|
|
119
|
-
status: Exclude<UpdateStatus, "UPDATE_PROCESS_COMPLETED">;
|
|
120
|
-
progress: number;
|
|
121
|
-
message: string | null;
|
|
122
|
-
}>;
|
|
131
|
+
fallbackComponent?: React.FC<HotUpdaterFallbackComponentProps>;
|
|
123
132
|
onProgress?: (progress: number) => void;
|
|
124
133
|
/**
|
|
125
134
|
* When a force update exists, the app will automatically reload.
|
|
@@ -137,15 +146,24 @@ export type AutoUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
|
|
|
137
146
|
};
|
|
138
147
|
export type ManualUpdateOptions = CommonHotUpdaterOptions & NetworkConfig & {
|
|
139
148
|
/**
|
|
140
|
-
*
|
|
141
|
-
*
|
|
149
|
+
* @deprecated Replace manual `HotUpdater.wrap` with `HotUpdater.init`.
|
|
150
|
+
*
|
|
151
|
+
* ```tsx
|
|
152
|
+
* import { HotUpdater } from "@hot-updater/react-native";
|
|
153
|
+
*
|
|
154
|
+
* HotUpdater.init({
|
|
155
|
+
* baseURL: "<your-update-server-url>",
|
|
156
|
+
* });
|
|
157
|
+
*
|
|
158
|
+
* export default App;
|
|
159
|
+
* ```
|
|
160
|
+
*
|
|
161
|
+
* Then call `HotUpdater.checkForUpdate(...)` from your manual update flow.
|
|
162
|
+
* See https://hot-updater.dev/docs/guides/custom-update
|
|
142
163
|
*/
|
|
143
164
|
updateMode: "manual";
|
|
144
165
|
};
|
|
145
|
-
type
|
|
146
|
-
updateMode: "manual";
|
|
147
|
-
};
|
|
148
|
-
export type HotUpdaterInitOptions = Omit<ManualBaseURLUpdateOptions, "updateMode">;
|
|
166
|
+
export type HotUpdaterInitOptions = CommonHotUpdaterOptions & NetworkConfig;
|
|
149
167
|
export type HotUpdaterOptions = AutoUpdateOptions | ManualUpdateOptions;
|
|
150
168
|
/**
|
|
151
169
|
* Internal options after normalization in index.ts
|
|
@@ -156,16 +174,12 @@ type InternalCommonOptions = {
|
|
|
156
174
|
requestHeaders?: Record<string, string>;
|
|
157
175
|
requestTimeout?: number;
|
|
158
176
|
onNotifyAppReady?: (result: NotifyAppReadyResult) => void;
|
|
177
|
+
onError?: (error: HotUpdaterError | Error | unknown) => void;
|
|
159
178
|
};
|
|
160
179
|
type InternalAutoUpdateOptions = InternalCommonOptions & {
|
|
161
180
|
updateStrategy: "fingerprint" | "appVersion";
|
|
162
181
|
updateMode: "auto";
|
|
163
|
-
|
|
164
|
-
fallbackComponent?: React.FC<{
|
|
165
|
-
status: Exclude<UpdateStatus, "UPDATE_PROCESS_COMPLETED">;
|
|
166
|
-
progress: number;
|
|
167
|
-
message: string | null;
|
|
168
|
-
}>;
|
|
182
|
+
fallbackComponent?: React.FC<HotUpdaterFallbackComponentProps>;
|
|
169
183
|
onProgress?: (progress: number) => void;
|
|
170
184
|
reloadOnForceUpdate?: boolean;
|
|
171
185
|
onUpdateProcessCompleted?: (response: RunUpdateProcessResponse) => void;
|
|
@@ -176,6 +190,6 @@ type InternalManualUpdateOptions = InternalCommonOptions & {
|
|
|
176
190
|
export type InternalInitOptions = InternalCommonOptions;
|
|
177
191
|
export type InternalWrapOptions = InternalAutoUpdateOptions | InternalManualUpdateOptions;
|
|
178
192
|
export declare function init(options: InternalInitOptions): void;
|
|
179
|
-
export declare function wrap
|
|
193
|
+
export declare function wrap(options: InternalWrapOptions): <P extends object>(WrappedComponent: React.ComponentType<P>) => React.ComponentType<P>;
|
|
180
194
|
export {};
|
|
181
195
|
//# sourceMappingURL=wrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../../../src/wrap.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultResolver.d.ts","sourceRoot":"","sources":["../../../src/DefaultResolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DefaultResolver.d.ts","sourceRoot":"","sources":["../../../src/DefaultResolver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAajB;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,GACzB,kBAAkB,CA+BpB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AppUpdateAvailableInfo } from "@hot-updater/core";
|
|
2
2
|
import type { HotUpdaterResolver } from "./types";
|
|
3
3
|
export interface CheckForUpdateOptions {
|
|
4
4
|
/**
|
|
@@ -21,7 +21,7 @@ export interface CheckForUpdateOptions {
|
|
|
21
21
|
*/
|
|
22
22
|
requestTimeout?: number;
|
|
23
23
|
}
|
|
24
|
-
export type CheckForUpdateResult =
|
|
24
|
+
export type CheckForUpdateResult = AppUpdateAvailableInfo & {
|
|
25
25
|
/**
|
|
26
26
|
* Updates the bundle.
|
|
27
27
|
* This method is equivalent to `HotUpdater.updateBundle()` but with all required arguments pre-filled.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAiB,MAAM,mBAAmB,CAAC;AAgB/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD,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,sBAAsB,GAAG;IAC1D;;;OAGG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AAGF,MAAM,WAAW,6BAA8B,SAAQ,qBAAqB;IAC1E,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAUD,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAqHtC"}
|
|
@@ -1,11 +1,36 @@
|
|
|
1
1
|
import { type CheckForUpdateOptions } from "./checkForUpdate";
|
|
2
2
|
import { setReloadBehavior, type UpdateParams } from "./native";
|
|
3
|
-
import { type HotUpdaterInitOptions, type HotUpdaterOptions } from "./wrap";
|
|
4
|
-
export type { CustomReloadHandler, HotUpdaterEvent, Manifest, ManifestAsset, NotifyAppReadyResult, ReloadBehavior, ReloadBehaviorSetting, } from "./native";
|
|
3
|
+
import { type AutoUpdateOptions, type HotUpdaterInitOptions, type HotUpdaterOptions, type ManualUpdateOptions, wrap } from "./wrap";
|
|
4
|
+
export type { CustomReloadHandler, HotUpdaterEvent, HotUpdaterProgressArtifactType, HotUpdaterProgressEvent, Manifest, ManifestAsset, NotifyAppReadyResult, ReloadBehavior, ReloadBehaviorSetting, } from "./native";
|
|
5
5
|
export * from "./store";
|
|
6
6
|
export { extractSignatureFailure, type HotUpdaterBaseURL, type HotUpdaterResolver, isSignatureVerificationError, type ResolverCheckUpdateParams, type ResolverNotifyAppReadyParams, type SignatureVerificationFailure, } from "./types";
|
|
7
|
-
export type { HotUpdaterInitOptions, HotUpdaterOptions, RunUpdateProcessResponse, } from "./wrap";
|
|
8
|
-
|
|
7
|
+
export type { HotUpdaterFallbackComponentProps, HotUpdaterInitOptions, HotUpdaterOptions, ManualUpdateOptions, RunUpdateProcessResponse, } from "./wrap";
|
|
8
|
+
type HotUpdaterWrap = {
|
|
9
|
+
(options: AutoUpdateOptions): ReturnType<typeof wrap>;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated Replace manual `HotUpdater.wrap` with `HotUpdater.init`.
|
|
12
|
+
*
|
|
13
|
+
* ```tsx
|
|
14
|
+
* import { HotUpdater } from "@hot-updater/react-native";
|
|
15
|
+
*
|
|
16
|
+
* HotUpdater.init({
|
|
17
|
+
* baseURL: "<your-update-server-url>",
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* export default App;
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Then call `HotUpdater.checkForUpdate(...)` from your manual update flow.
|
|
24
|
+
* See https://hot-updater.dev/docs/guides/custom-update
|
|
25
|
+
*/
|
|
26
|
+
(options: ManualUpdateOptions): ReturnType<typeof wrap>;
|
|
27
|
+
(options: HotUpdaterOptions): ReturnType<typeof wrap>;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Creates a HotUpdater client instance with all update management methods.
|
|
31
|
+
* This function is called once on module initialization to create a singleton instance.
|
|
32
|
+
*/
|
|
33
|
+
declare function createHotUpdaterClient(): {
|
|
9
34
|
/**
|
|
10
35
|
* `HotUpdater.wrap` checks for updates at the entry point, and if there is a bundle to update, it downloads the bundle and applies the update strategy.
|
|
11
36
|
*
|
|
@@ -23,20 +48,19 @@ export declare const HotUpdater: {
|
|
|
23
48
|
* export default HotUpdater.wrap({
|
|
24
49
|
* baseURL: "<your-update-server-url>",
|
|
25
50
|
* updateStrategy: "appVersion",
|
|
26
|
-
* updateMode: "auto",
|
|
27
51
|
* requestHeaders: {
|
|
28
52
|
* "Authorization": "Bearer <your-access-token>",
|
|
29
53
|
* },
|
|
30
54
|
* })(App);
|
|
31
55
|
* ```
|
|
32
56
|
*/
|
|
33
|
-
wrap: (options: HotUpdaterOptions) => (WrappedComponent:
|
|
57
|
+
wrap: (options: HotUpdaterOptions) => <P extends object>(WrappedComponent: React.ComponentType<P>) => React.ComponentType<P>;
|
|
34
58
|
/**
|
|
35
59
|
* Initializes HotUpdater without wrapping a React component.
|
|
36
60
|
*
|
|
37
61
|
* Use this for manual update flows in runtimes where a root component HOC
|
|
38
|
-
* is not convenient.
|
|
39
|
-
* `HotUpdater.wrap({ updateMode: "manual" })(App)
|
|
62
|
+
* is not convenient. Replace deprecated manual
|
|
63
|
+
* `HotUpdater.wrap({ updateMode: "manual" })(App)` usage with this API.
|
|
40
64
|
*
|
|
41
65
|
* @example
|
|
42
66
|
* ```tsx
|
|
@@ -267,4 +291,8 @@ export declare const HotUpdater: {
|
|
|
267
291
|
*/
|
|
268
292
|
clearCrashHistory: () => boolean;
|
|
269
293
|
};
|
|
294
|
+
type HotUpdaterClient = Omit<ReturnType<typeof createHotUpdaterClient>, "wrap"> & {
|
|
295
|
+
wrap: HotUpdaterWrap;
|
|
296
|
+
};
|
|
297
|
+
export declare const HotUpdater: HotUpdaterClient;
|
|
270
298
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAiBL,iBAAiB,EACjB,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAiBL,iBAAiB,EACjB,KAAK,YAAY,EAElB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EAItB,KAAK,mBAAmB,EACxB,IAAI,EACL,MAAM,QAAQ,CAAC;AAEhB,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,8BAA8B,EAC9B,uBAAuB,EACvB,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAClB,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,GAClC,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,gCAAgC,EAChC,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,QAAQ,CAAC;AAoBhB,KAAK,cAAc,GAAG;IACpB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACtD;;;;;;;;;;;;;;;OAeG;IACH,CAAC,OAAO,EAAE,mBAAmB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;IACxD,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC;CACvD,CAAC;AAOF;;;GAGG;AACH,iBAAS,sBAAsB;IAsI3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;oBACa,iBAAiB;IAOjC;;;;;;;;;;;;;;;OAeG;oBACa,qBAAqB,KAAG,IAAI;IAQ5C;;OAEG;;IAGH;;;;;;;;;OASG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;OAWG;;IAGH;;;;OAIG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;;;;;;;;;;;;;;OAgBG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;6BACsB,qBAAqB;IAiB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;2BACoB,YAAY;IAKnC;;;;OAIG;;IAgBH;;;;;;;;;;OAUG;;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"}
|
|
@@ -4,6 +4,7 @@ import { type UpdateBundleParams } from "./specs/NativeHotUpdater";
|
|
|
4
4
|
export { HotUpdaterErrorCode, isHotUpdaterError };
|
|
5
5
|
export interface ManifestAsset {
|
|
6
6
|
fileHash: string;
|
|
7
|
+
signature?: string;
|
|
7
8
|
}
|
|
8
9
|
export interface Manifest {
|
|
9
10
|
bundleId: string;
|
|
@@ -31,10 +32,62 @@ export type CustomReloadHandler = () => void | Promise<void>;
|
|
|
31
32
|
* - `custom`: Run a user-provided JS handler on both platforms
|
|
32
33
|
*/
|
|
33
34
|
export type ReloadBehaviorSetting = ReloadBehavior | "custom";
|
|
35
|
+
export type HotUpdaterProgressArtifactType = "archive" | "diff";
|
|
36
|
+
export type HotUpdaterDiffFileStatus = "pending" | "downloading" | "downloaded" | "failed";
|
|
37
|
+
export interface HotUpdaterDiffFileSnapshot {
|
|
38
|
+
/**
|
|
39
|
+
* Manifest asset path for this progress entry.
|
|
40
|
+
*
|
|
41
|
+
* This is the stable identity of the asset in the installed bundle. Use this
|
|
42
|
+
* when matching progress back to the manifest or to the final file location.
|
|
43
|
+
*/
|
|
44
|
+
path: string;
|
|
45
|
+
/**
|
|
46
|
+
* Artifact path currently being transferred for this progress entry.
|
|
47
|
+
*
|
|
48
|
+
* Usually this is the same as `path`. It can differ when the updater
|
|
49
|
+
* downloads an intermediate artifact that will be applied to produce the
|
|
50
|
+
* final asset.
|
|
51
|
+
*/
|
|
52
|
+
downloadPath: string;
|
|
53
|
+
/**
|
|
54
|
+
* Current download state for this asset within the manifest diff update.
|
|
55
|
+
*/
|
|
56
|
+
status: HotUpdaterDiffFileStatus;
|
|
57
|
+
/**
|
|
58
|
+
* Download progress for this file, normalized from 0 to 1.
|
|
59
|
+
*/
|
|
60
|
+
progress: number;
|
|
61
|
+
/**
|
|
62
|
+
* Stable display order among diff files.
|
|
63
|
+
*/
|
|
64
|
+
order: number;
|
|
65
|
+
/**
|
|
66
|
+
* Bytes downloaded for `downloadPath`, when the native downloader reports it.
|
|
67
|
+
*/
|
|
68
|
+
downloadedBytes?: number;
|
|
69
|
+
/**
|
|
70
|
+
* Total expected bytes for `downloadPath`, when known.
|
|
71
|
+
*/
|
|
72
|
+
totalBytes?: number;
|
|
73
|
+
}
|
|
74
|
+
export interface HotUpdaterDiffProgressDetails {
|
|
75
|
+
totalFilesCount: number;
|
|
76
|
+
completedFilesCount: number;
|
|
77
|
+
files: HotUpdaterDiffFileSnapshot[];
|
|
78
|
+
}
|
|
79
|
+
export type HotUpdaterProgressEvent = {
|
|
80
|
+
progress: number;
|
|
81
|
+
artifactType: "archive";
|
|
82
|
+
downloadedBytes?: number;
|
|
83
|
+
totalBytes?: number;
|
|
84
|
+
} | {
|
|
85
|
+
progress: number;
|
|
86
|
+
artifactType: "diff";
|
|
87
|
+
details: HotUpdaterDiffProgressDetails;
|
|
88
|
+
};
|
|
34
89
|
export type HotUpdaterEvent = {
|
|
35
|
-
onProgress:
|
|
36
|
-
progress: number;
|
|
37
|
-
};
|
|
90
|
+
onProgress: HotUpdaterProgressEvent;
|
|
38
91
|
};
|
|
39
92
|
export declare const addListener: <T extends keyof HotUpdaterEvent>(eventName: T, listener: (event: HotUpdaterEvent[T]) => void) => () => void;
|
|
40
93
|
export type UpdateParams = UpdateBundleParams & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdkVersion.d.ts","sourceRoot":"","sources":["../../../src/sdkVersion.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,WAAW,CAAC"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import type { TurboModule } from "react-native";
|
|
2
2
|
import type { UnsafeObject } from "react-native/Libraries/Types/CodegenTypes";
|
|
3
|
+
export interface ChangedAsset {
|
|
4
|
+
file?: {
|
|
5
|
+
compression?: "br" | null;
|
|
6
|
+
url: string;
|
|
7
|
+
} | null;
|
|
8
|
+
fileHash: string;
|
|
9
|
+
patch?: {
|
|
10
|
+
algorithm: "bsdiff";
|
|
11
|
+
baseBundleId: string;
|
|
12
|
+
baseFileHash: string;
|
|
13
|
+
patchFileHash: string;
|
|
14
|
+
patchUrl: string;
|
|
15
|
+
} | null;
|
|
16
|
+
}
|
|
3
17
|
export interface UpdateBundleParams {
|
|
4
18
|
bundleId: string;
|
|
5
19
|
channel?: string;
|
|
@@ -14,6 +28,19 @@ export interface UpdateBundleParams {
|
|
|
14
28
|
* Native determines verification mode by checking for "sig:" prefix.
|
|
15
29
|
*/
|
|
16
30
|
fileHash: string | null;
|
|
31
|
+
/**
|
|
32
|
+
* Optional signed manifest URL for manifest-driven installation.
|
|
33
|
+
*/
|
|
34
|
+
manifestUrl?: string | null;
|
|
35
|
+
/**
|
|
36
|
+
* File hash/signature for the manifest file itself.
|
|
37
|
+
*/
|
|
38
|
+
manifestFileHash?: string | null;
|
|
39
|
+
/**
|
|
40
|
+
* Per-file URLs for assets that must be downloaded instead of reused from
|
|
41
|
+
* the currently active bundle.
|
|
42
|
+
*/
|
|
43
|
+
changedAssets?: UnsafeObject | null;
|
|
17
44
|
}
|
|
18
45
|
export interface Spec extends TurboModule {
|
|
19
46
|
reload(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC1B,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,SAAS,EAAE,QAAQ,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;;;;;OAQG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IAEvC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3D;;;;;;;;OAQG;IACH,cAAc,IAAI;QAChB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;QAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;OAKG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjC;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAEjC;;;OAGG;IACH,WAAW,EAAE,MAAM,YAAY,CAAC;IAEhC;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEpC;;;;OAIG;IACH,SAAS,EAAE,MAAM,MAAM,CAAC;IAGxB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;QACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;KACjC,CAAC;CACH;;AAED,wBAAoE"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import type { HotUpdaterDiffProgressDetails } from "./native";
|
|
1
2
|
export type HotUpdaterState = {
|
|
2
3
|
progress: number;
|
|
4
|
+
downloadedBytes: number | undefined;
|
|
5
|
+
totalBytes: number | undefined;
|
|
3
6
|
isUpdateDownloaded: boolean;
|
|
7
|
+
artifactType: "archive" | "diff" | null;
|
|
8
|
+
details: HotUpdaterDiffProgressDetails | null;
|
|
4
9
|
};
|
|
5
10
|
export declare const hotUpdaterStore: {
|
|
6
11
|
getSnapshot: () => HotUpdaterState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,6BAA6B,EAE9B,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,6BAA6B,GAAG,IAAI,CAAC;CAC/C,CAAC;AAqLF,eAAO,MAAM,eAAe;;yBAnEE,OAAO,CAAC,eAAe,CAAC;0BAuDvB,MAAM,IAAI;CAYa,CAAC;AAEvD,eAAO,MAAM,kBAAkB,GAAI,CAAC,GAAG,eAAe,EACpD,WAAU,CAAC,QAAQ,EAAE,eAAe,KAAK,CAA+B,MAQzE,CAAC"}
|