@hot-updater/react-native 1.0.6 → 1.0.8
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/ContentAppearedLog.kt +31 -0
- package/android/src/newarch/HotUpdaterModule.kt +108 -57
- package/android/src/newarch/ReactIntegrationManager.kt +27 -0
- package/android/src/oldarch/HotUpdaterModule.kt +109 -57
- package/android/src/oldarch/HotUpdaterSpec.kt +5 -0
- package/ios/HotUpdater/Interface/HotUpdaterInterface.h +3 -0
- package/ios/HotUpdater/Internal/HotUpdater.mm +49 -0
- package/ios/HotUpdater/Internal/HotUpdaterImpl.swift +150 -62
- package/lib/commonjs/checkForUpdate.js +16 -9
- package/lib/commonjs/checkForUpdate.js.map +1 -1
- package/lib/commonjs/httpClient.js +14 -20
- package/lib/commonjs/httpClient.js.map +1 -1
- package/lib/commonjs/native.js +36 -10
- package/lib/commonjs/native.js.map +1 -1
- package/lib/commonjs/sdkVersion.js +1 -1
- package/lib/commonjs/specs/NativeHotUpdater.js +5 -0
- package/lib/commonjs/specs/NativeHotUpdater.js.map +1 -1
- package/lib/module/checkForUpdate.js +17 -10
- package/lib/module/checkForUpdate.js.map +1 -1
- package/lib/module/httpClient.js +14 -20
- package/lib/module/httpClient.js.map +1 -1
- package/lib/module/native.js +35 -10
- package/lib/module/native.js.map +1 -1
- package/lib/module/sdkVersion.js +1 -1
- package/lib/module/specs/NativeHotUpdater.js +7 -0
- package/lib/module/specs/NativeHotUpdater.js.map +1 -1
- package/lib/typescript/commonjs/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/commonjs/httpClient.d.ts +20 -12
- package/lib/typescript/commonjs/httpClient.d.ts.map +1 -1
- package/lib/typescript/commonjs/native.d.ts +17 -3
- package/lib/typescript/commonjs/native.d.ts.map +1 -1
- package/lib/typescript/commonjs/sdkVersion.d.ts +1 -1
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts +31 -7
- package/lib/typescript/commonjs/specs/NativeHotUpdater.d.ts.map +1 -1
- package/lib/typescript/module/checkForUpdate.d.ts.map +1 -1
- package/lib/typescript/module/httpClient.d.ts +20 -12
- package/lib/typescript/module/httpClient.d.ts.map +1 -1
- package/lib/typescript/module/native.d.ts +17 -3
- package/lib/typescript/module/native.d.ts.map +1 -1
- package/lib/typescript/module/sdkVersion.d.ts +1 -1
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts +31 -7
- package/lib/typescript/module/specs/NativeHotUpdater.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/checkForUpdate.ts +13 -8
- package/src/httpClient.ts +35 -31
- package/src/native.ts +53 -16
- package/src/sdkVersion.ts +1 -1
- package/src/specs/NativeHotUpdater.ts +33 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ArtifactInfo, type ChangedAssetPatch, type HotUpdaterBaseURL, type ReleaseCatalog, type UpdateHttpResponse } from "@hot-updater/protocol";
|
|
2
2
|
export interface ReleaseCatalogRequest {
|
|
3
3
|
readonly platform: "ios" | "android";
|
|
4
4
|
readonly channel: string;
|
|
@@ -9,27 +9,35 @@ export interface ReleaseCatalogRequest {
|
|
|
9
9
|
readonly requestTimeout?: number;
|
|
10
10
|
}
|
|
11
11
|
export interface ArtifactRequest {
|
|
12
|
+
/**
|
|
13
|
+
* The newest artifact protocol native installs: 1 for native built from an
|
|
14
|
+
* SDK older than protocol v2. 2 by default.
|
|
15
|
+
*/
|
|
16
|
+
readonly artifactProtocol?: 1 | 2;
|
|
12
17
|
readonly targetBundleId: string;
|
|
13
18
|
readonly currentBundleId: string;
|
|
14
19
|
readonly requestHeaders?: Record<string, string>;
|
|
15
20
|
readonly requestTimeout?: number;
|
|
16
21
|
}
|
|
17
22
|
/**
|
|
18
|
-
* How native downloads a Bundle
|
|
19
|
-
*
|
|
20
|
-
*
|
|
23
|
+
* How native downloads a Bundle: with a URL for every file in artifact
|
|
24
|
+
* protocol v1, or in v2 with only the Hermes patch, asking `filesUrl` for the
|
|
25
|
+
* files it downloads one by one.
|
|
21
26
|
*/
|
|
22
|
-
export
|
|
27
|
+
export type ResolvedArtifact = {
|
|
23
28
|
readonly manifestUrl: string;
|
|
24
29
|
readonly manifestFileHash: string;
|
|
25
30
|
readonly archiveUrl?: string;
|
|
26
|
-
readonly assets:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
readonly
|
|
32
|
-
|
|
31
|
+
readonly assets: ArtifactInfo["assets"];
|
|
32
|
+
} | {
|
|
33
|
+
readonly manifestUrl: string;
|
|
34
|
+
readonly manifestFileHash: string;
|
|
35
|
+
readonly archiveUrl?: string;
|
|
36
|
+
readonly patch?: ChangedAssetPatch & {
|
|
37
|
+
assetPath: string;
|
|
38
|
+
};
|
|
39
|
+
readonly filesUrl: string;
|
|
40
|
+
};
|
|
33
41
|
export interface HotUpdaterHttpSession {
|
|
34
42
|
/** Resolves to null when the server says the scope has no catalog, so no update. */
|
|
35
43
|
fetchReleaseCatalog: (params: ReleaseCatalogRequest) => Promise<ReleaseCatalog | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAM/B,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;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC,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;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;CACzC,GACD;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEN,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,gBAAgB,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrD;AA6JD,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,YAClB,iBAAiB,eACb,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,KAClD,oBAGD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type CatalogHighWater, type UpdateStatus, type PersistedSelectionReceipt } from "@hot-updater/protocol";
|
|
1
|
+
import { type CatalogHighWater, type ChangedAssetPatch, type UpdateStatus, type PersistedSelectionReceipt } from "@hot-updater/protocol";
|
|
2
2
|
import { HotUpdaterErrorCode, isHotUpdaterError } from "./error";
|
|
3
|
-
import { type UpdateBundleParams } from "./specs/NativeHotUpdater";
|
|
3
|
+
import { type InstallArtifactParams, type UpdateBundleParams } from "./specs/NativeHotUpdater";
|
|
4
4
|
export { HotUpdaterErrorCode, isHotUpdaterError };
|
|
5
5
|
type PersistedUpdateStrategy = "fingerprint" | "appVersion";
|
|
6
6
|
export interface ManifestAsset {
|
|
@@ -90,6 +90,20 @@ export type UpdateParams = UpdateBundleParams & {
|
|
|
90
90
|
status: UpdateStatus;
|
|
91
91
|
shouldSkipCurrentBundleIdCheck?: boolean;
|
|
92
92
|
};
|
|
93
|
+
/** How the update check stages a Bundle over artifact protocol v2. */
|
|
94
|
+
export type InstallArtifactUpdateParams = Omit<InstallArtifactParams, "patch"> & {
|
|
95
|
+
patch?: (ChangedAssetPatch & {
|
|
96
|
+
assetPath: string;
|
|
97
|
+
}) | null;
|
|
98
|
+
status: UpdateStatus;
|
|
99
|
+
shouldSkipCurrentBundleIdCheck?: boolean;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Whether native installs artifact protocol v2. Native built from an SDK
|
|
103
|
+
* older than protocol v2 has no `installArtifact`, and an OTA can bring this
|
|
104
|
+
* JavaScript to such native code, so the update check then asks for v1.
|
|
105
|
+
*/
|
|
106
|
+
export declare const supportsArtifactFiles: () => boolean;
|
|
93
107
|
export interface ActiveUpdateState {
|
|
94
108
|
readonly activeSelection: ActiveUpdateSelection | null;
|
|
95
109
|
readonly stableSelection: ActiveUpdateSelection | null;
|
|
@@ -142,7 +156,7 @@ export type BundleDelivery = {
|
|
|
142
156
|
*
|
|
143
157
|
* @throws {Error} Rejects with error.code from HotUpdaterErrorCode enum and error.message
|
|
144
158
|
*/
|
|
145
|
-
export declare function stageBundle(params: UpdateParams): Promise<BundleDelivery | null>;
|
|
159
|
+
export declare function stageBundle(params: UpdateParams | InstallArtifactUpdateParams): Promise<BundleDelivery | null>;
|
|
146
160
|
/**
|
|
147
161
|
* Downloads files and applies them to the app.
|
|
148
162
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const HOT_UPDATER_SDK_VERSION = "1.0.
|
|
1
|
+
export declare const HOT_UPDATER_SDK_VERSION = "1.0.8";
|
|
2
2
|
//# sourceMappingURL=sdkVersion.d.ts.map
|
|
@@ -13,21 +13,39 @@ export interface UpdateBundleParams {
|
|
|
13
13
|
manifestFileHash: string;
|
|
14
14
|
/** Optional tar.br URL; integrity and sizes come from the verified manifest. */
|
|
15
15
|
archiveUrl?: string | null;
|
|
16
|
-
/**
|
|
17
|
-
* Target file descriptors: every file with its URL in artifact protocol v1,
|
|
18
|
-
* or only the Hermes patch in v2, where native asks `filesUrl`.
|
|
19
|
-
*/
|
|
16
|
+
/** Every target file with its download URL and optional Hermes patch. */
|
|
20
17
|
assets: UnsafeObject;
|
|
21
18
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
19
|
+
* Legacy: JavaScript from the first artifact protocol v2 SDK sends these
|
|
20
|
+
* here, with only the Hermes patch in `assets`, and apps may pass them to
|
|
21
|
+
* `updateBundle` as that release documented. Native keeps accepting them so
|
|
22
|
+
* such OTA Bundles still install. The update check sends them to
|
|
23
|
+
* `installArtifact`.
|
|
24
24
|
*/
|
|
25
25
|
filesUrl?: string | null;
|
|
26
|
+
requestHeaders?: UnsafeObject | null;
|
|
27
|
+
requestTimeout?: number | null;
|
|
28
|
+
/** Full Release Catalog selection receipt committed with the staged Bundle. */
|
|
29
|
+
selection?: UnsafeObject | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Artifact protocol v2: no URL per file. Native reuses local files, chooses
|
|
33
|
+
* the archive or files, and POSTs the paths it downloads one by one to
|
|
34
|
+
* `filesUrl` for their URLs.
|
|
35
|
+
*/
|
|
36
|
+
export interface InstallArtifactParams {
|
|
37
|
+
bundleId: string;
|
|
38
|
+
channel?: string;
|
|
39
|
+
manifestUrl: string;
|
|
40
|
+
manifestFileHash: string;
|
|
41
|
+
archiveUrl?: string | null;
|
|
42
|
+
/** The Hermes bytecode patch from the running Bundle, with its `assetPath`. */
|
|
43
|
+
patch?: UnsafeObject | null;
|
|
44
|
+
filesUrl: string;
|
|
26
45
|
/** Headers for the `filesUrl` request, as the update check sent them. */
|
|
27
46
|
requestHeaders?: UnsafeObject | null;
|
|
28
47
|
/** Milliseconds the `filesUrl` request may take, as the update check's. */
|
|
29
48
|
requestTimeout?: number | null;
|
|
30
|
-
/** Full Release Catalog selection receipt committed with the staged Bundle. */
|
|
31
49
|
selection?: UnsafeObject | null;
|
|
32
50
|
}
|
|
33
51
|
export interface Spec extends TurboModule {
|
|
@@ -85,6 +103,12 @@ export interface Spec extends TurboModule {
|
|
|
85
103
|
* "connection", "offline", or "cancelled".
|
|
86
104
|
*/
|
|
87
105
|
updateBundle(params: UpdateBundleParams): Promise<UnsafeObject>;
|
|
106
|
+
/**
|
|
107
|
+
* Stages a Bundle over artifact protocol v2 and resolves like
|
|
108
|
+
* `updateBundle`. Native built from an SDK older than protocol v2 lacks
|
|
109
|
+
* it, so JS checks for it before asking the server for v2.
|
|
110
|
+
*/
|
|
111
|
+
installArtifact(params: InstallArtifactParams): Promise<UnsafeObject>;
|
|
88
112
|
/** Accepts and durably advances the catalog high-water for a scope. */
|
|
89
113
|
acceptReleaseCatalog(params: UnsafeObject): boolean;
|
|
90
114
|
/** Reads active/stable selection receipts and catalog high-water state. */
|
|
@@ -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;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B
|
|
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;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,yEAAyE;IACzE,MAAM,EAAE,YAAY,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,cAAc,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACjC;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEhE;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEtE,uEAAuE;IACvE,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAEpD,2EAA2E;IAC3E,oBAAoB,IAAI,YAAY,CAAC;IAErC,6DAA6D;IAC7D,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAElE,+DAA+D;IAC/D,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E,2DAA2D;IAC3D,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/D,4EAA4E;IAC5E,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAEzD,+DAA+D;IAC/D,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/D;;;;;;OAMG;IACH,cAAc,IAAI;QAChB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,gBAAgB,GAAG,WAAW,CAAC;QACjE,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;KAC/C,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;IAExB;;;OAGG;IACH,YAAY,EAAE,MAAM,MAAM,CAAC;IAE3B;;;OAGG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAE/C;;;OAGG;IACH,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAG5D,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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAaA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"checkForUpdate.d.ts","sourceRoot":"","sources":["../../../src/checkForUpdate.ts"],"names":[],"mappings":"AAaA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAqBzD,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAEtC,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;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;IAC7B,kDAAkD;IAClD,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,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,SACtB,cAAc,CAAC,MAAM,CAAC,SACrB,OAAO,SACP,gBAAgB,YACb,mBAAmB,GAAG,SAAS,SAClC,gBAAgB,KACtB,IAmBF,CAAC;AAoTF,wBAAsB,cAAc,CAClC,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CA2EtC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type ArtifactInfo, type ChangedAssetPatch, type HotUpdaterBaseURL, type ReleaseCatalog, type UpdateHttpResponse } from "@hot-updater/protocol";
|
|
2
2
|
export interface ReleaseCatalogRequest {
|
|
3
3
|
readonly platform: "ios" | "android";
|
|
4
4
|
readonly channel: string;
|
|
@@ -9,27 +9,35 @@ export interface ReleaseCatalogRequest {
|
|
|
9
9
|
readonly requestTimeout?: number;
|
|
10
10
|
}
|
|
11
11
|
export interface ArtifactRequest {
|
|
12
|
+
/**
|
|
13
|
+
* The newest artifact protocol native installs: 1 for native built from an
|
|
14
|
+
* SDK older than protocol v2. 2 by default.
|
|
15
|
+
*/
|
|
16
|
+
readonly artifactProtocol?: 1 | 2;
|
|
12
17
|
readonly targetBundleId: string;
|
|
13
18
|
readonly currentBundleId: string;
|
|
14
19
|
readonly requestHeaders?: Record<string, string>;
|
|
15
20
|
readonly requestTimeout?: number;
|
|
16
21
|
}
|
|
17
22
|
/**
|
|
18
|
-
* How native downloads a Bundle
|
|
19
|
-
*
|
|
20
|
-
*
|
|
23
|
+
* How native downloads a Bundle: with a URL for every file in artifact
|
|
24
|
+
* protocol v1, or in v2 with only the Hermes patch, asking `filesUrl` for the
|
|
25
|
+
* files it downloads one by one.
|
|
21
26
|
*/
|
|
22
|
-
export
|
|
27
|
+
export type ResolvedArtifact = {
|
|
23
28
|
readonly manifestUrl: string;
|
|
24
29
|
readonly manifestFileHash: string;
|
|
25
30
|
readonly archiveUrl?: string;
|
|
26
|
-
readonly assets:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
readonly
|
|
32
|
-
|
|
31
|
+
readonly assets: ArtifactInfo["assets"];
|
|
32
|
+
} | {
|
|
33
|
+
readonly manifestUrl: string;
|
|
34
|
+
readonly manifestFileHash: string;
|
|
35
|
+
readonly archiveUrl?: string;
|
|
36
|
+
readonly patch?: ChangedAssetPatch & {
|
|
37
|
+
assetPath: string;
|
|
38
|
+
};
|
|
39
|
+
readonly filesUrl: string;
|
|
40
|
+
};
|
|
33
41
|
export interface HotUpdaterHttpSession {
|
|
34
42
|
/** Resolves to null when the server says the scope has no catalog, so no update. */
|
|
35
43
|
fetchReleaseCatalog: (params: ReleaseCatalogRequest) => Promise<ReleaseCatalog | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,
|
|
1
|
+
{"version":3,"file":"httpClient.d.ts","sourceRoot":"","sources":["../../../src/httpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,YAAY,EAEjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAM/B,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;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC,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;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;CACzC,GACD;IACE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,GAAG;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEN,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,gBAAgB,CAAC,CAAC;CACzE;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrD;AA6JD,kEAAkE;AAClE,eAAO,MAAM,gBAAgB,YAClB,iBAAiB,eACb,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,KAClD,oBAGD,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type CatalogHighWater, type UpdateStatus, type PersistedSelectionReceipt } from "@hot-updater/protocol";
|
|
1
|
+
import { type CatalogHighWater, type ChangedAssetPatch, type UpdateStatus, type PersistedSelectionReceipt } from "@hot-updater/protocol";
|
|
2
2
|
import { HotUpdaterErrorCode, isHotUpdaterError } from "./error";
|
|
3
|
-
import { type UpdateBundleParams } from "./specs/NativeHotUpdater";
|
|
3
|
+
import { type InstallArtifactParams, type UpdateBundleParams } from "./specs/NativeHotUpdater";
|
|
4
4
|
export { HotUpdaterErrorCode, isHotUpdaterError };
|
|
5
5
|
type PersistedUpdateStrategy = "fingerprint" | "appVersion";
|
|
6
6
|
export interface ManifestAsset {
|
|
@@ -90,6 +90,20 @@ export type UpdateParams = UpdateBundleParams & {
|
|
|
90
90
|
status: UpdateStatus;
|
|
91
91
|
shouldSkipCurrentBundleIdCheck?: boolean;
|
|
92
92
|
};
|
|
93
|
+
/** How the update check stages a Bundle over artifact protocol v2. */
|
|
94
|
+
export type InstallArtifactUpdateParams = Omit<InstallArtifactParams, "patch"> & {
|
|
95
|
+
patch?: (ChangedAssetPatch & {
|
|
96
|
+
assetPath: string;
|
|
97
|
+
}) | null;
|
|
98
|
+
status: UpdateStatus;
|
|
99
|
+
shouldSkipCurrentBundleIdCheck?: boolean;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Whether native installs artifact protocol v2. Native built from an SDK
|
|
103
|
+
* older than protocol v2 has no `installArtifact`, and an OTA can bring this
|
|
104
|
+
* JavaScript to such native code, so the update check then asks for v1.
|
|
105
|
+
*/
|
|
106
|
+
export declare const supportsArtifactFiles: () => boolean;
|
|
93
107
|
export interface ActiveUpdateState {
|
|
94
108
|
readonly activeSelection: ActiveUpdateSelection | null;
|
|
95
109
|
readonly stableSelection: ActiveUpdateSelection | null;
|
|
@@ -142,7 +156,7 @@ export type BundleDelivery = {
|
|
|
142
156
|
*
|
|
143
157
|
* @throws {Error} Rejects with error.code from HotUpdaterErrorCode enum and error.message
|
|
144
158
|
*/
|
|
145
|
-
export declare function stageBundle(params: UpdateParams): Promise<BundleDelivery | null>;
|
|
159
|
+
export declare function stageBundle(params: UpdateParams | InstallArtifactUpdateParams): Promise<BundleDelivery | null>;
|
|
146
160
|
/**
|
|
147
161
|
* Downloads files and applies them to the app.
|
|
148
162
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/native.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const HOT_UPDATER_SDK_VERSION = "1.0.
|
|
1
|
+
export declare const HOT_UPDATER_SDK_VERSION = "1.0.8";
|
|
2
2
|
//# sourceMappingURL=sdkVersion.d.ts.map
|
|
@@ -13,21 +13,39 @@ export interface UpdateBundleParams {
|
|
|
13
13
|
manifestFileHash: string;
|
|
14
14
|
/** Optional tar.br URL; integrity and sizes come from the verified manifest. */
|
|
15
15
|
archiveUrl?: string | null;
|
|
16
|
-
/**
|
|
17
|
-
* Target file descriptors: every file with its URL in artifact protocol v1,
|
|
18
|
-
* or only the Hermes patch in v2, where native asks `filesUrl`.
|
|
19
|
-
*/
|
|
16
|
+
/** Every target file with its download URL and optional Hermes patch. */
|
|
20
17
|
assets: UnsafeObject;
|
|
21
18
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
19
|
+
* Legacy: JavaScript from the first artifact protocol v2 SDK sends these
|
|
20
|
+
* here, with only the Hermes patch in `assets`, and apps may pass them to
|
|
21
|
+
* `updateBundle` as that release documented. Native keeps accepting them so
|
|
22
|
+
* such OTA Bundles still install. The update check sends them to
|
|
23
|
+
* `installArtifact`.
|
|
24
24
|
*/
|
|
25
25
|
filesUrl?: string | null;
|
|
26
|
+
requestHeaders?: UnsafeObject | null;
|
|
27
|
+
requestTimeout?: number | null;
|
|
28
|
+
/** Full Release Catalog selection receipt committed with the staged Bundle. */
|
|
29
|
+
selection?: UnsafeObject | null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Artifact protocol v2: no URL per file. Native reuses local files, chooses
|
|
33
|
+
* the archive or files, and POSTs the paths it downloads one by one to
|
|
34
|
+
* `filesUrl` for their URLs.
|
|
35
|
+
*/
|
|
36
|
+
export interface InstallArtifactParams {
|
|
37
|
+
bundleId: string;
|
|
38
|
+
channel?: string;
|
|
39
|
+
manifestUrl: string;
|
|
40
|
+
manifestFileHash: string;
|
|
41
|
+
archiveUrl?: string | null;
|
|
42
|
+
/** The Hermes bytecode patch from the running Bundle, with its `assetPath`. */
|
|
43
|
+
patch?: UnsafeObject | null;
|
|
44
|
+
filesUrl: string;
|
|
26
45
|
/** Headers for the `filesUrl` request, as the update check sent them. */
|
|
27
46
|
requestHeaders?: UnsafeObject | null;
|
|
28
47
|
/** Milliseconds the `filesUrl` request may take, as the update check's. */
|
|
29
48
|
requestTimeout?: number | null;
|
|
30
|
-
/** Full Release Catalog selection receipt committed with the staged Bundle. */
|
|
31
49
|
selection?: UnsafeObject | null;
|
|
32
50
|
}
|
|
33
51
|
export interface Spec extends TurboModule {
|
|
@@ -85,6 +103,12 @@ export interface Spec extends TurboModule {
|
|
|
85
103
|
* "connection", "offline", or "cancelled".
|
|
86
104
|
*/
|
|
87
105
|
updateBundle(params: UpdateBundleParams): Promise<UnsafeObject>;
|
|
106
|
+
/**
|
|
107
|
+
* Stages a Bundle over artifact protocol v2 and resolves like
|
|
108
|
+
* `updateBundle`. Native built from an SDK older than protocol v2 lacks
|
|
109
|
+
* it, so JS checks for it before asking the server for v2.
|
|
110
|
+
*/
|
|
111
|
+
installArtifact(params: InstallArtifactParams): Promise<UnsafeObject>;
|
|
88
112
|
/** Accepts and durably advances the catalog high-water for a scope. */
|
|
89
113
|
acceptReleaseCatalog(params: UnsafeObject): boolean;
|
|
90
114
|
/** Reads active/stable selection receipts and catalog high-water state. */
|
|
@@ -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;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B
|
|
1
|
+
{"version":3,"file":"NativeHotUpdater.d.ts","sourceRoot":"","sources":["../../../../src/specs/NativeHotUpdater.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hot-updater/react-native",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "React Native OTA solution for self-hosted",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -124,9 +124,9 @@
|
|
|
124
124
|
},
|
|
125
125
|
"dependencies": {
|
|
126
126
|
"use-sync-external-store": "1.5.0",
|
|
127
|
-
"@hot-updater/
|
|
128
|
-
"@hot-updater/
|
|
129
|
-
"@hot-updater/plugin-remote-config": "1.0.
|
|
127
|
+
"@hot-updater/plugin-insights": "1.0.8",
|
|
128
|
+
"@hot-updater/protocol": "1.0.8",
|
|
129
|
+
"@hot-updater/plugin-remote-config": "1.0.8"
|
|
130
130
|
},
|
|
131
131
|
"scripts": {
|
|
132
132
|
"build": "node ./scripts/sync-sdk-version.mjs run -- bob build",
|
package/src/checkForUpdate.ts
CHANGED
|
@@ -35,6 +35,7 @@ import {
|
|
|
35
35
|
isReleaseSelectionCurrent,
|
|
36
36
|
isChannelSwitched,
|
|
37
37
|
stageBundle,
|
|
38
|
+
supportsArtifactFiles,
|
|
38
39
|
} from "./native";
|
|
39
40
|
import { hotUpdaterStore } from "./store";
|
|
40
41
|
import { classifyUpdateError, InvalidUpdateResponseError } from "./updateError";
|
|
@@ -378,6 +379,7 @@ async function checkForReleaseCatalogUpdate(input: {
|
|
|
378
379
|
}
|
|
379
380
|
|
|
380
381
|
const artifact = await session.resolveArtifact({
|
|
382
|
+
artifactProtocol: supportsArtifactFiles() ? 2 : 1,
|
|
381
383
|
currentBundleId: input.currentBundleId,
|
|
382
384
|
requestHeaders: options.requestHeaders,
|
|
383
385
|
requestTimeout: options.requestTimeout,
|
|
@@ -386,27 +388,30 @@ async function checkForReleaseCatalogUpdate(input: {
|
|
|
386
388
|
if (!isReleaseSelectionCurrent(guard)) {
|
|
387
389
|
throw new StaleReleaseCatalogError();
|
|
388
390
|
}
|
|
389
|
-
const
|
|
390
|
-
assets: artifact.assets,
|
|
391
|
+
const staging = {
|
|
391
392
|
bundleId: desired.bundleId,
|
|
392
393
|
channel: input.targetChannel,
|
|
393
394
|
manifestFileHash: artifact.manifestFileHash,
|
|
394
395
|
manifestUrl: artifact.manifestUrl,
|
|
395
396
|
...(artifact.archiveUrl ? { archiveUrl: artifact.archiveUrl } : {}),
|
|
396
|
-
|
|
397
|
+
selection: receipt,
|
|
398
|
+
shouldSkipCurrentBundleIdCheck: true,
|
|
399
|
+
status: desired.status,
|
|
400
|
+
};
|
|
401
|
+
const delivery = await stageBundle(
|
|
402
|
+
"filesUrl" in artifact
|
|
397
403
|
? {
|
|
404
|
+
...staging,
|
|
398
405
|
filesUrl: artifact.filesUrl,
|
|
406
|
+
...(artifact.patch ? { patch: artifact.patch } : {}),
|
|
399
407
|
...(options.requestHeaders
|
|
400
408
|
? { requestHeaders: options.requestHeaders }
|
|
401
409
|
: {}),
|
|
402
410
|
requestTimeout:
|
|
403
411
|
options.requestTimeout ?? DEFAULT_REQUEST_TIMEOUT_MS,
|
|
404
412
|
}
|
|
405
|
-
: {}
|
|
406
|
-
|
|
407
|
-
shouldSkipCurrentBundleIdCheck: true,
|
|
408
|
-
status: desired.status,
|
|
409
|
-
});
|
|
413
|
+
: { ...staging, assets: artifact.assets },
|
|
414
|
+
);
|
|
410
415
|
if (delivery !== null && desired.bundleId !== input.currentBundleId) {
|
|
411
416
|
options.emit("onBundleDownloaded", () => ({
|
|
412
417
|
channel: input.targetChannel,
|
package/src/httpClient.ts
CHANGED
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
canonicalizeAppVersion,
|
|
5
5
|
encodeChannelKey,
|
|
6
6
|
resolveBaseURL,
|
|
7
|
-
type ArtifactAssetFile,
|
|
8
7
|
type ArtifactInfo,
|
|
9
8
|
type ArtifactInfoV2,
|
|
10
9
|
type ChangedAssetPatch,
|
|
@@ -28,6 +27,11 @@ export interface ReleaseCatalogRequest {
|
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
export interface ArtifactRequest {
|
|
30
|
+
/**
|
|
31
|
+
* The newest artifact protocol native installs: 1 for native built from an
|
|
32
|
+
* SDK older than protocol v2. 2 by default.
|
|
33
|
+
*/
|
|
34
|
+
readonly artifactProtocol?: 1 | 2;
|
|
31
35
|
readonly targetBundleId: string;
|
|
32
36
|
readonly currentBundleId: string;
|
|
33
37
|
readonly requestHeaders?: Record<string, string>;
|
|
@@ -35,24 +39,24 @@ export interface ArtifactRequest {
|
|
|
35
39
|
}
|
|
36
40
|
|
|
37
41
|
/**
|
|
38
|
-
* How native downloads a Bundle
|
|
39
|
-
*
|
|
40
|
-
*
|
|
42
|
+
* How native downloads a Bundle: with a URL for every file in artifact
|
|
43
|
+
* protocol v1, or in v2 with only the Hermes patch, asking `filesUrl` for the
|
|
44
|
+
* files it downloads one by one.
|
|
41
45
|
*/
|
|
42
|
-
export
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{
|
|
49
|
-
readonly file?: ArtifactAssetFile;
|
|
50
|
-
readonly fileHash?: string;
|
|
51
|
-
readonly patch?: ChangedAssetPatch | null;
|
|
46
|
+
export type ResolvedArtifact =
|
|
47
|
+
| {
|
|
48
|
+
readonly manifestUrl: string;
|
|
49
|
+
readonly manifestFileHash: string;
|
|
50
|
+
readonly archiveUrl?: string;
|
|
51
|
+
readonly assets: ArtifactInfo["assets"];
|
|
52
52
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
| {
|
|
54
|
+
readonly manifestUrl: string;
|
|
55
|
+
readonly manifestFileHash: string;
|
|
56
|
+
readonly archiveUrl?: string;
|
|
57
|
+
readonly patch?: ChangedAssetPatch & { assetPath: string };
|
|
58
|
+
readonly filesUrl: string;
|
|
59
|
+
};
|
|
56
60
|
|
|
57
61
|
export interface HotUpdaterHttpSession {
|
|
58
62
|
/** Resolves to null when the server says the scope has no catalog, so no update. */
|
|
@@ -185,6 +189,18 @@ const createSession = (
|
|
|
185
189
|
requestHeaders: params.requestHeaders,
|
|
186
190
|
requestTimeout: params.requestTimeout,
|
|
187
191
|
};
|
|
192
|
+
// Legacy: artifact protocol v1, for native that predates v2 and for a
|
|
193
|
+
// server that predates it (404). Remove once neither is supported.
|
|
194
|
+
const resolveV1 = async (): Promise<ResolvedArtifact> =>
|
|
195
|
+
requireArtifactUrls(
|
|
196
|
+
requireArtifactProtocolV1(
|
|
197
|
+
await fetchJSON<ArtifactInfo>({
|
|
198
|
+
...request,
|
|
199
|
+
url: `${baseURL}/artifacts/v1/${route}`,
|
|
200
|
+
}),
|
|
201
|
+
),
|
|
202
|
+
);
|
|
203
|
+
if (params.artifactProtocol === 1) return resolveV1();
|
|
188
204
|
let info: ArtifactInfoV2;
|
|
189
205
|
try {
|
|
190
206
|
info = await fetchJSON<ArtifactInfoV2>({
|
|
@@ -192,28 +208,16 @@ const createSession = (
|
|
|
192
208
|
url: `${baseURL}/artifacts/v2/${route}`,
|
|
193
209
|
});
|
|
194
210
|
} catch (error) {
|
|
195
|
-
// Legacy: artifact protocol v1: a server older than v2 has no such route. Remove this
|
|
196
|
-
// fallback once no supported server predates v2.
|
|
197
211
|
if (!(error instanceof FetchJSONResponseError) || error.status !== 404) {
|
|
198
212
|
throw error;
|
|
199
213
|
}
|
|
200
|
-
return
|
|
201
|
-
requireArtifactProtocolV1(
|
|
202
|
-
await fetchJSON<ArtifactInfo>({
|
|
203
|
-
...request,
|
|
204
|
-
url: `${baseURL}/artifacts/v1/${route}`,
|
|
205
|
-
}),
|
|
206
|
-
),
|
|
207
|
-
);
|
|
214
|
+
return resolveV1();
|
|
208
215
|
}
|
|
209
216
|
const { archiveUrl, manifestFileHash, manifestUrl, patch } =
|
|
210
217
|
requireArtifactProtocolV2(info);
|
|
211
|
-
const { assetPath, ...assetPatch } = patch ?? { assetPath: undefined };
|
|
212
218
|
return {
|
|
213
219
|
...(archiveUrl ? { archiveUrl } : {}),
|
|
214
|
-
|
|
215
|
-
? { [assetPath]: { patch: assetPatch as ChangedAssetPatch } }
|
|
216
|
-
: {},
|
|
220
|
+
...(patch ? { patch } : {}),
|
|
217
221
|
filesUrl: `${baseURL}/artifacts/v2/${target}/files`,
|
|
218
222
|
manifestFileHash,
|
|
219
223
|
manifestUrl,
|