@otakit/capacitor-updater 2.0.0 → 2.1.0
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/{UpdatekitUpdater.podspec → OtaKitUpdater.podspec} +1 -1
- package/README.md +5 -8
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/{updatekit → otakit}/updater/BundleInfo.java +1 -1
- package/android/src/main/java/com/{updatekit → otakit}/updater/BundleStatus.java +1 -1
- package/android/src/main/java/com/{updatekit → otakit}/updater/BundleStore.java +1 -1
- package/android/src/main/java/com/{updatekit → otakit}/updater/DateUtils.java +1 -1
- package/android/src/main/java/com/{updatekit/updater/StatsClient.java → otakit/updater/DeviceEventClient.java} +31 -20
- package/android/src/main/java/com/{updatekit → otakit}/updater/HashUtils.java +1 -1
- package/android/src/main/java/com/{updatekit → otakit}/updater/HostedManifestKeys.java +1 -1
- package/android/src/main/java/com/{updatekit → otakit}/updater/ManifestClient.java +19 -9
- package/android/src/main/java/com/{updatekit → otakit}/updater/ManifestVerifier.java +1 -1
- package/android/src/main/java/com/{updatekit → otakit}/updater/UpdaterPlugin.java +74 -105
- package/android/src/main/java/com/{updatekit → otakit}/updater/ZipUtils.java +1 -1
- package/dist/esm/definitions.d.ts +12 -42
- package/dist/esm/definitions.d.ts.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -14
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/web.d.ts +4 -9
- package/dist/esm/web.d.ts.map +1 -1
- package/dist/esm/web.js +3 -12
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +5 -26
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +5 -26
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/UpdaterPlugin/{StatsClient.swift → DeviceEventClient.swift} +21 -21
- package/ios/Sources/UpdaterPlugin/Downloader.swift +1 -1
- package/ios/Sources/UpdaterPlugin/ManifestClient.swift +7 -3
- package/ios/Sources/UpdaterPlugin/UpdaterPlugin.m +2 -5
- package/ios/Sources/UpdaterPlugin/UpdaterPlugin.swift +67 -104
- package/package.json +2 -2
|
@@ -46,19 +46,14 @@ export interface LatestVersion {
|
|
|
46
46
|
/** True when this exact update is already staged locally. */
|
|
47
47
|
downloaded?: boolean;
|
|
48
48
|
/** Release history ID associated with this manifest */
|
|
49
|
-
releaseId
|
|
50
|
-
}
|
|
51
|
-
export interface BundleListResult {
|
|
52
|
-
bundles: BundleInfo[];
|
|
49
|
+
releaseId: string;
|
|
53
50
|
}
|
|
54
51
|
export interface OtaKitState {
|
|
55
52
|
current: BundleInfo;
|
|
53
|
+
fallback: BundleInfo;
|
|
56
54
|
staged: BundleInfo | null;
|
|
57
55
|
builtinVersion: string;
|
|
58
56
|
}
|
|
59
|
-
export interface OtaKitDebugState extends OtaKitState {
|
|
60
|
-
fallback: BundleInfo;
|
|
61
|
-
}
|
|
62
57
|
export type OtaKitUpdateMode = 'manual' | 'next-launch' | 'next-resume' | 'immediate';
|
|
63
58
|
export interface OtaKitManifestKey {
|
|
64
59
|
kid: string;
|
|
@@ -68,7 +63,7 @@ export interface OtaKitManifestKey {
|
|
|
68
63
|
* Plugin configuration for capacitor.config.ts.
|
|
69
64
|
*/
|
|
70
65
|
export interface OtaKitConfig {
|
|
71
|
-
/** OtaKit app ID used for manifest and
|
|
66
|
+
/** OtaKit app ID used for manifest fetches and event ingest. */
|
|
72
67
|
appId: string;
|
|
73
68
|
/** Optional named release track. Omit to use the base channel. */
|
|
74
69
|
channel?: string;
|
|
@@ -84,7 +79,9 @@ export interface OtaKitConfig {
|
|
|
84
79
|
checkInterval?: number;
|
|
85
80
|
/** Milliseconds to wait for notifyAppReady(). Defaults to 10000. */
|
|
86
81
|
appReadyTimeout?: number;
|
|
87
|
-
/** Custom
|
|
82
|
+
/** Custom event ingest base URL. Hosted default: https://ingest.otakit.app/v1 */
|
|
83
|
+
ingestUrl?: string;
|
|
84
|
+
/** Optional control-plane API base URL used by self-host tooling such as the CLI. The native runtime does not use it. */
|
|
88
85
|
serverUrl?: string;
|
|
89
86
|
/** Custom CDN base URL for manifest and bundle delivery. */
|
|
90
87
|
cdnUrl?: string;
|
|
@@ -93,33 +90,10 @@ export interface OtaKitConfig {
|
|
|
93
90
|
/** Allow HTTP only for localhost development. Defaults to false. */
|
|
94
91
|
allowInsecureUrls?: boolean;
|
|
95
92
|
}
|
|
96
|
-
export interface OtaKitDebugApi {
|
|
97
|
-
/**
|
|
98
|
-
* Reset to the builtin bundle and reload the WebView.
|
|
99
|
-
*
|
|
100
|
-
* **WARNING: TERMINAL OPERATION**
|
|
101
|
-
* Code after this call may not execute. The WebView will reload.
|
|
102
|
-
*/
|
|
103
|
-
reset(): Promise<void>;
|
|
104
|
-
/**
|
|
105
|
-
* List downloaded OTA bundles stored on the device.
|
|
106
|
-
*/
|
|
107
|
-
listBundles(): Promise<BundleListResult>;
|
|
108
|
-
/**
|
|
109
|
-
* Delete a downloaded bundle that is not active or protected by rollback.
|
|
110
|
-
*/
|
|
111
|
-
deleteBundle(options: {
|
|
112
|
-
bundleId: string;
|
|
113
|
-
}): Promise<void>;
|
|
114
|
-
/**
|
|
115
|
-
* Get the most recent failed update information for diagnostics.
|
|
116
|
-
*/
|
|
117
|
-
getLastFailure(): Promise<BundleInfo | null>;
|
|
118
|
-
}
|
|
119
93
|
export type OtaKitEvent = 'downloadStarted' | 'downloadComplete' | 'downloadFailed' | 'updateAvailable' | 'noUpdateAvailable' | 'appReady' | 'rollback';
|
|
120
94
|
export interface OtaKitPlugin {
|
|
121
95
|
/**
|
|
122
|
-
* Inspect the current updater state
|
|
96
|
+
* Inspect the current updater state.
|
|
123
97
|
*/
|
|
124
98
|
getState(): Promise<OtaKitState>;
|
|
125
99
|
/**
|
|
@@ -161,9 +135,10 @@ export interface OtaKitPlugin {
|
|
|
161
135
|
*/
|
|
162
136
|
notifyAppReady(): Promise<void>;
|
|
163
137
|
/**
|
|
164
|
-
*
|
|
138
|
+
* Get the most recent failed update information for diagnostics.
|
|
139
|
+
* Returns null if no failure has occurred.
|
|
165
140
|
*/
|
|
166
|
-
|
|
141
|
+
getLastFailure(): Promise<BundleInfo | null>;
|
|
167
142
|
/**
|
|
168
143
|
* Add listener for update events
|
|
169
144
|
*/
|
|
@@ -189,17 +164,12 @@ export interface OtaKitPlugin {
|
|
|
189
164
|
removeAllListeners(): Promise<void>;
|
|
190
165
|
}
|
|
191
166
|
export interface OtaKitBridgePlugin {
|
|
167
|
+
getState(): Promise<OtaKitState>;
|
|
192
168
|
check(): Promise<LatestVersion | null>;
|
|
193
169
|
download(): Promise<BundleInfo | null>;
|
|
194
170
|
apply(): Promise<void>;
|
|
195
171
|
notifyAppReady(): Promise<void>;
|
|
196
|
-
|
|
197
|
-
debugReset(): Promise<void>;
|
|
198
|
-
debugListBundles(): Promise<BundleListResult>;
|
|
199
|
-
debugDeleteBundle(options: {
|
|
200
|
-
bundleId: string;
|
|
201
|
-
}): Promise<void>;
|
|
202
|
-
debugGetLastFailure(): Promise<BundleInfo | null>;
|
|
172
|
+
getLastFailure(): Promise<BundleInfo | null>;
|
|
203
173
|
addListener(event: 'downloadStarted', callback: (data: {
|
|
204
174
|
version: string;
|
|
205
175
|
}) => void): Promise<PluginListenerHandle>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,oBAAY,YAAY;IACtB,+BAA+B;IAC/B,OAAO,YAAY;IACnB,iDAAiD;IACjD,OAAO,YAAY;IACnB,mCAAmC;IACnC,KAAK,UAAU;IACf,wBAAwB;IACxB,OAAO,YAAY;IACnB,yDAAyD;IACzD,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,MAAM,EAAE,YAAY,CAAC;IACrB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,SAAS,
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,YAAY,EAIb,MAAM,eAAe,CAAC;AAqEvB,QAAA,MAAM,MAAM,EAAE,YAWb,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -15,15 +15,8 @@ function isEmptyObject(obj) {
|
|
|
15
15
|
function normalizeNullable(value) {
|
|
16
16
|
return isEmptyObject(value) ? null : value;
|
|
17
17
|
}
|
|
18
|
-
function toPublicState(value) {
|
|
19
|
-
return {
|
|
20
|
-
current: value.current,
|
|
21
|
-
staged: value.staged,
|
|
22
|
-
builtinVersion: value.builtinVersion,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
18
|
async function getState() {
|
|
26
|
-
return
|
|
19
|
+
return NativeOtaKit.getState();
|
|
27
20
|
}
|
|
28
21
|
async function check() {
|
|
29
22
|
return normalizeNullable(await NativeOtaKit.check());
|
|
@@ -69,12 +62,7 @@ const OtaKit = {
|
|
|
69
62
|
apply,
|
|
70
63
|
update,
|
|
71
64
|
notifyAppReady: () => NativeOtaKit.notifyAppReady(),
|
|
72
|
-
|
|
73
|
-
reset: () => NativeOtaKit.debugReset(),
|
|
74
|
-
listBundles: () => NativeOtaKit.debugListBundles(),
|
|
75
|
-
deleteBundle: (options) => NativeOtaKit.debugDeleteBundle(options),
|
|
76
|
-
getLastFailure: async () => normalizeNullable(await NativeOtaKit.debugGetLastFailure()),
|
|
77
|
-
},
|
|
65
|
+
getLastFailure: async () => normalizeNullable(await NativeOtaKit.getLastFailure()),
|
|
78
66
|
addListener: NativeOtaKit.addListener.bind(NativeOtaKit),
|
|
79
67
|
removeAllListeners: () => NativeOtaKit.removeAllListeners(),
|
|
80
68
|
};
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAUjD,MAAM,YAAY,GAAG,cAAc,CAAqB,QAAQ,EAAE;IAChE,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;CAC1D,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AAClF,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAI,KAAQ;IACpC,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7C,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,OAAO,YAAY,CAAC,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,OAAO,iBAAiB,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,OAAO,iBAAiB,CAAC,MAAM,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,KAAK;IACZ,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,MAAM;IACnB,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAE/B,IAAI,MAA4B,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,KAAK,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,KAAK,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,EAAE,CAAC;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAiB;IAC3B,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE;IACnD,cAAc,EAAE,KAAK,IAAgC,EAAE,CACrD,iBAAiB,CAAC,MAAM,YAAY,CAAC,cAAc,EAAE,CAAC;IACxD,WAAW,EAAE,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAgC;IACvF,kBAAkB,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE;CAC5D,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/esm/web.d.ts
CHANGED
|
@@ -1,21 +1,16 @@
|
|
|
1
1
|
import { WebPlugin } from '@capacitor/core';
|
|
2
|
-
import type { OtaKitBridgePlugin, BundleInfo,
|
|
2
|
+
import type { OtaKitBridgePlugin, BundleInfo, LatestVersion, OtaKitState } from './definitions';
|
|
3
3
|
/**
|
|
4
4
|
* Web implementation of the native bridge.
|
|
5
|
-
* Most methods are no-ops since OTA updates don't apply to web
|
|
5
|
+
* Most methods are no-ops since OTA updates don't apply to web.
|
|
6
6
|
*/
|
|
7
7
|
export declare class OtaKitWeb extends WebPlugin implements OtaKitBridgePlugin {
|
|
8
8
|
private readonly BUILTIN_BUNDLE;
|
|
9
|
-
|
|
9
|
+
getState(): Promise<OtaKitState>;
|
|
10
10
|
check(): Promise<LatestVersion | null>;
|
|
11
11
|
download(): Promise<BundleInfo | null>;
|
|
12
12
|
apply(): Promise<void>;
|
|
13
13
|
notifyAppReady(): Promise<void>;
|
|
14
|
-
|
|
15
|
-
debugListBundles(): Promise<BundleListResult>;
|
|
16
|
-
debugDeleteBundle(_options: {
|
|
17
|
-
bundleId: string;
|
|
18
|
-
}): Promise<void>;
|
|
19
|
-
debugGetLastFailure(): Promise<BundleInfo | null>;
|
|
14
|
+
getLastFailure(): Promise<BundleInfo | null>;
|
|
20
15
|
}
|
|
21
16
|
//# sourceMappingURL=web.d.ts.map
|
package/dist/esm/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,aAAa,EAEb,WAAW,EACZ,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,qBAAa,SAAU,SAAQ,SAAU,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAI7B;IAEI,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAShC,KAAK,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAKtC,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAKtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,cAAc,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAGnD"}
|
package/dist/esm/web.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WebPlugin } from '@capacitor/core';
|
|
2
2
|
/**
|
|
3
3
|
* Web implementation of the native bridge.
|
|
4
|
-
* Most methods are no-ops since OTA updates don't apply to web
|
|
4
|
+
* Most methods are no-ops since OTA updates don't apply to web.
|
|
5
5
|
*/
|
|
6
6
|
export class OtaKitWeb extends WebPlugin {
|
|
7
7
|
BUILTIN_BUNDLE = {
|
|
@@ -9,7 +9,7 @@ export class OtaKitWeb extends WebPlugin {
|
|
|
9
9
|
version: '0.0.0',
|
|
10
10
|
status: 'builtin',
|
|
11
11
|
};
|
|
12
|
-
async
|
|
12
|
+
async getState() {
|
|
13
13
|
return {
|
|
14
14
|
current: this.BUILTIN_BUNDLE,
|
|
15
15
|
fallback: this.BUILTIN_BUNDLE,
|
|
@@ -32,16 +32,7 @@ export class OtaKitWeb extends WebPlugin {
|
|
|
32
32
|
async notifyAppReady() {
|
|
33
33
|
// No-op on web, but don't warn - apps should call this unconditionally
|
|
34
34
|
}
|
|
35
|
-
async
|
|
36
|
-
console.warn('OtaKit.debug.reset() is not supported on web');
|
|
37
|
-
}
|
|
38
|
-
async debugListBundles() {
|
|
39
|
-
return { bundles: [] };
|
|
40
|
-
}
|
|
41
|
-
async debugDeleteBundle(_options) {
|
|
42
|
-
console.warn('OtaKit.debug.deleteBundle() is not supported on web');
|
|
43
|
-
}
|
|
44
|
-
async debugGetLastFailure() {
|
|
35
|
+
async getLastFailure() {
|
|
45
36
|
return null;
|
|
46
37
|
}
|
|
47
38
|
}
|
package/dist/esm/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAU5C;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,SAAS;IACrB,cAAc,GAAe;QAC5C,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,SAAyB;KAClC,CAAC;IAEF,KAAK,CAAC,QAAQ;QACZ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,cAAc;YAC5B,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,MAAM,EAAE,IAAI;YACZ,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,uEAAuE;IACzE,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -35,15 +35,8 @@ function isEmptyObject(obj) {
|
|
|
35
35
|
function normalizeNullable(value) {
|
|
36
36
|
return isEmptyObject(value) ? null : value;
|
|
37
37
|
}
|
|
38
|
-
function toPublicState(value) {
|
|
39
|
-
return {
|
|
40
|
-
current: value.current,
|
|
41
|
-
staged: value.staged,
|
|
42
|
-
builtinVersion: value.builtinVersion,
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
38
|
async function getState() {
|
|
46
|
-
return
|
|
39
|
+
return NativeOtaKit.getState();
|
|
47
40
|
}
|
|
48
41
|
async function check() {
|
|
49
42
|
return normalizeNullable(await NativeOtaKit.check());
|
|
@@ -89,19 +82,14 @@ const OtaKit = {
|
|
|
89
82
|
apply,
|
|
90
83
|
update,
|
|
91
84
|
notifyAppReady: () => NativeOtaKit.notifyAppReady(),
|
|
92
|
-
|
|
93
|
-
reset: () => NativeOtaKit.debugReset(),
|
|
94
|
-
listBundles: () => NativeOtaKit.debugListBundles(),
|
|
95
|
-
deleteBundle: (options) => NativeOtaKit.debugDeleteBundle(options),
|
|
96
|
-
getLastFailure: async () => normalizeNullable(await NativeOtaKit.debugGetLastFailure()),
|
|
97
|
-
},
|
|
85
|
+
getLastFailure: async () => normalizeNullable(await NativeOtaKit.getLastFailure()),
|
|
98
86
|
addListener: NativeOtaKit.addListener.bind(NativeOtaKit),
|
|
99
87
|
removeAllListeners: () => NativeOtaKit.removeAllListeners(),
|
|
100
88
|
};
|
|
101
89
|
|
|
102
90
|
/**
|
|
103
91
|
* Web implementation of the native bridge.
|
|
104
|
-
* Most methods are no-ops since OTA updates don't apply to web
|
|
92
|
+
* Most methods are no-ops since OTA updates don't apply to web.
|
|
105
93
|
*/
|
|
106
94
|
class OtaKitWeb extends core.WebPlugin {
|
|
107
95
|
BUILTIN_BUNDLE = {
|
|
@@ -109,7 +97,7 @@ class OtaKitWeb extends core.WebPlugin {
|
|
|
109
97
|
version: '0.0.0',
|
|
110
98
|
status: 'builtin',
|
|
111
99
|
};
|
|
112
|
-
async
|
|
100
|
+
async getState() {
|
|
113
101
|
return {
|
|
114
102
|
current: this.BUILTIN_BUNDLE,
|
|
115
103
|
fallback: this.BUILTIN_BUNDLE,
|
|
@@ -132,16 +120,7 @@ class OtaKitWeb extends core.WebPlugin {
|
|
|
132
120
|
async notifyAppReady() {
|
|
133
121
|
// No-op on web, but don't warn - apps should call this unconditionally
|
|
134
122
|
}
|
|
135
|
-
async
|
|
136
|
-
console.warn('OtaKit.debug.reset() is not supported on web');
|
|
137
|
-
}
|
|
138
|
-
async debugListBundles() {
|
|
139
|
-
return { bundles: [] };
|
|
140
|
-
}
|
|
141
|
-
async debugDeleteBundle(_options) {
|
|
142
|
-
console.warn('OtaKit.debug.deleteBundle() is not supported on web');
|
|
143
|
-
}
|
|
144
|
-
async debugGetLastFailure() {
|
|
123
|
+
async getLastFailure() {
|
|
145
124
|
return null;
|
|
146
125
|
}
|
|
147
126
|
}
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["/**\n * Bundle status enum.\n */\nexport var BundleStatus;\n(function (BundleStatus) {\n /** Factory-installed bundle */\n BundleStatus[\"BUILTIN\"] = \"builtin\";\n /** Downloaded and staged, awaiting activation */\n BundleStatus[\"PENDING\"] = \"pending\";\n /** Active but not yet confirmed */\n BundleStatus[\"TRIAL\"] = \"trial\";\n /** Confirmed working */\n BundleStatus[\"SUCCESS\"] = \"success\";\n /** Failed (hash mismatch, extraction error, rollback) */\n BundleStatus[\"ERROR\"] = \"error\";\n})(BundleStatus || (BundleStatus = {}));\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst NativeOtaKit = registerPlugin('OtaKit', {\n web: () => import('./web').then((m) => new m.OtaKitWeb()),\n});\n/**\n * Check if result is an empty object (iOS returns {} instead of null)\n */\nfunction isEmptyObject(obj) {\n return obj !== null && typeof obj === 'object' && Object.keys(obj).length === 0;\n}\n/**\n * Wrapped plugin that normalizes null returns from native code.\n * iOS call.resolve() without arguments returns {} instead of null.\n */\nfunction normalizeNullable(value) {\n return isEmptyObject(value) ? null : value;\n}\
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["/**\n * Bundle status enum.\n */\nexport var BundleStatus;\n(function (BundleStatus) {\n /** Factory-installed bundle */\n BundleStatus[\"BUILTIN\"] = \"builtin\";\n /** Downloaded and staged, awaiting activation */\n BundleStatus[\"PENDING\"] = \"pending\";\n /** Active but not yet confirmed */\n BundleStatus[\"TRIAL\"] = \"trial\";\n /** Confirmed working */\n BundleStatus[\"SUCCESS\"] = \"success\";\n /** Failed (hash mismatch, extraction error, rollback) */\n BundleStatus[\"ERROR\"] = \"error\";\n})(BundleStatus || (BundleStatus = {}));\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst NativeOtaKit = registerPlugin('OtaKit', {\n web: () => import('./web').then((m) => new m.OtaKitWeb()),\n});\n/**\n * Check if result is an empty object (iOS returns {} instead of null)\n */\nfunction isEmptyObject(obj) {\n return obj !== null && typeof obj === 'object' && Object.keys(obj).length === 0;\n}\n/**\n * Wrapped plugin that normalizes null returns from native code.\n * iOS call.resolve() without arguments returns {} instead of null.\n */\nfunction normalizeNullable(value) {\n return isEmptyObject(value) ? null : value;\n}\nasync function getState() {\n return NativeOtaKit.getState();\n}\nasync function check() {\n return normalizeNullable(await NativeOtaKit.check());\n}\nasync function download() {\n return normalizeNullable(await NativeOtaKit.download());\n}\nfunction apply() {\n return NativeOtaKit.apply();\n}\nasync function update() {\n const state = await getState();\n let latest;\n try {\n latest = await check();\n }\n catch (error) {\n if (state.staged) {\n await apply();\n return;\n }\n throw error;\n }\n if (latest) {\n if (latest.downloaded) {\n await apply();\n return;\n }\n const bundle = await download();\n if (bundle) {\n await apply();\n }\n return;\n }\n if (state.staged) {\n await apply();\n }\n}\nconst OtaKit = {\n getState,\n check,\n download,\n apply,\n update,\n notifyAppReady: () => NativeOtaKit.notifyAppReady(),\n getLastFailure: async () => normalizeNullable(await NativeOtaKit.getLastFailure()),\n addListener: NativeOtaKit.addListener.bind(NativeOtaKit),\n removeAllListeners: () => NativeOtaKit.removeAllListeners(),\n};\nexport * from './definitions';\nexport { OtaKit };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\n/**\n * Web implementation of the native bridge.\n * Most methods are no-ops since OTA updates don't apply to web.\n */\nexport class OtaKitWeb extends WebPlugin {\n BUILTIN_BUNDLE = {\n id: 'builtin',\n version: '0.0.0',\n status: 'builtin',\n };\n async getState() {\n return {\n current: this.BUILTIN_BUNDLE,\n fallback: this.BUILTIN_BUNDLE,\n staged: null,\n builtinVersion: this.BUILTIN_BUNDLE.version,\n };\n }\n async check() {\n console.warn('OtaKit.check() is not supported on web');\n return null;\n }\n async download() {\n console.warn('OtaKit.download() is not supported on web');\n return null;\n }\n async apply() {\n console.warn('OtaKit.apply() is not supported on web');\n throw new Error('OtaKit.apply() is not supported on web');\n }\n async notifyAppReady() {\n // No-op on web, but don't warn - apps should call this unconditionally\n }\n async getLastFailure() {\n return null;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["BundleStatus","registerPlugin","WebPlugin"],"mappings":"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"}
|
package/dist/plugin.js
CHANGED
|
@@ -34,15 +34,8 @@ var capacitorUpdater = (function (exports, core) {
|
|
|
34
34
|
function normalizeNullable(value) {
|
|
35
35
|
return isEmptyObject(value) ? null : value;
|
|
36
36
|
}
|
|
37
|
-
function toPublicState(value) {
|
|
38
|
-
return {
|
|
39
|
-
current: value.current,
|
|
40
|
-
staged: value.staged,
|
|
41
|
-
builtinVersion: value.builtinVersion,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
37
|
async function getState() {
|
|
45
|
-
return
|
|
38
|
+
return NativeOtaKit.getState();
|
|
46
39
|
}
|
|
47
40
|
async function check() {
|
|
48
41
|
return normalizeNullable(await NativeOtaKit.check());
|
|
@@ -88,19 +81,14 @@ var capacitorUpdater = (function (exports, core) {
|
|
|
88
81
|
apply,
|
|
89
82
|
update,
|
|
90
83
|
notifyAppReady: () => NativeOtaKit.notifyAppReady(),
|
|
91
|
-
|
|
92
|
-
reset: () => NativeOtaKit.debugReset(),
|
|
93
|
-
listBundles: () => NativeOtaKit.debugListBundles(),
|
|
94
|
-
deleteBundle: (options) => NativeOtaKit.debugDeleteBundle(options),
|
|
95
|
-
getLastFailure: async () => normalizeNullable(await NativeOtaKit.debugGetLastFailure()),
|
|
96
|
-
},
|
|
84
|
+
getLastFailure: async () => normalizeNullable(await NativeOtaKit.getLastFailure()),
|
|
97
85
|
addListener: NativeOtaKit.addListener.bind(NativeOtaKit),
|
|
98
86
|
removeAllListeners: () => NativeOtaKit.removeAllListeners(),
|
|
99
87
|
};
|
|
100
88
|
|
|
101
89
|
/**
|
|
102
90
|
* Web implementation of the native bridge.
|
|
103
|
-
* Most methods are no-ops since OTA updates don't apply to web
|
|
91
|
+
* Most methods are no-ops since OTA updates don't apply to web.
|
|
104
92
|
*/
|
|
105
93
|
class OtaKitWeb extends core.WebPlugin {
|
|
106
94
|
BUILTIN_BUNDLE = {
|
|
@@ -108,7 +96,7 @@ var capacitorUpdater = (function (exports, core) {
|
|
|
108
96
|
version: '0.0.0',
|
|
109
97
|
status: 'builtin',
|
|
110
98
|
};
|
|
111
|
-
async
|
|
99
|
+
async getState() {
|
|
112
100
|
return {
|
|
113
101
|
current: this.BUILTIN_BUNDLE,
|
|
114
102
|
fallback: this.BUILTIN_BUNDLE,
|
|
@@ -131,16 +119,7 @@ var capacitorUpdater = (function (exports, core) {
|
|
|
131
119
|
async notifyAppReady() {
|
|
132
120
|
// No-op on web, but don't warn - apps should call this unconditionally
|
|
133
121
|
}
|
|
134
|
-
async
|
|
135
|
-
console.warn('OtaKit.debug.reset() is not supported on web');
|
|
136
|
-
}
|
|
137
|
-
async debugListBundles() {
|
|
138
|
-
return { bundles: [] };
|
|
139
|
-
}
|
|
140
|
-
async debugDeleteBundle(_options) {
|
|
141
|
-
console.warn('OtaKit.debug.deleteBundle() is not supported on web');
|
|
142
|
-
}
|
|
143
|
-
async debugGetLastFailure() {
|
|
122
|
+
async getLastFailure() {
|
|
144
123
|
return null;
|
|
145
124
|
}
|
|
146
125
|
}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["/**\n * Bundle status enum.\n */\nexport var BundleStatus;\n(function (BundleStatus) {\n /** Factory-installed bundle */\n BundleStatus[\"BUILTIN\"] = \"builtin\";\n /** Downloaded and staged, awaiting activation */\n BundleStatus[\"PENDING\"] = \"pending\";\n /** Active but not yet confirmed */\n BundleStatus[\"TRIAL\"] = \"trial\";\n /** Confirmed working */\n BundleStatus[\"SUCCESS\"] = \"success\";\n /** Failed (hash mismatch, extraction error, rollback) */\n BundleStatus[\"ERROR\"] = \"error\";\n})(BundleStatus || (BundleStatus = {}));\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst NativeOtaKit = registerPlugin('OtaKit', {\n web: () => import('./web').then((m) => new m.OtaKitWeb()),\n});\n/**\n * Check if result is an empty object (iOS returns {} instead of null)\n */\nfunction isEmptyObject(obj) {\n return obj !== null && typeof obj === 'object' && Object.keys(obj).length === 0;\n}\n/**\n * Wrapped plugin that normalizes null returns from native code.\n * iOS call.resolve() without arguments returns {} instead of null.\n */\nfunction normalizeNullable(value) {\n return isEmptyObject(value) ? null : value;\n}\
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["/**\n * Bundle status enum.\n */\nexport var BundleStatus;\n(function (BundleStatus) {\n /** Factory-installed bundle */\n BundleStatus[\"BUILTIN\"] = \"builtin\";\n /** Downloaded and staged, awaiting activation */\n BundleStatus[\"PENDING\"] = \"pending\";\n /** Active but not yet confirmed */\n BundleStatus[\"TRIAL\"] = \"trial\";\n /** Confirmed working */\n BundleStatus[\"SUCCESS\"] = \"success\";\n /** Failed (hash mismatch, extraction error, rollback) */\n BundleStatus[\"ERROR\"] = \"error\";\n})(BundleStatus || (BundleStatus = {}));\n//# sourceMappingURL=definitions.js.map","import { registerPlugin } from '@capacitor/core';\nconst NativeOtaKit = registerPlugin('OtaKit', {\n web: () => import('./web').then((m) => new m.OtaKitWeb()),\n});\n/**\n * Check if result is an empty object (iOS returns {} instead of null)\n */\nfunction isEmptyObject(obj) {\n return obj !== null && typeof obj === 'object' && Object.keys(obj).length === 0;\n}\n/**\n * Wrapped plugin that normalizes null returns from native code.\n * iOS call.resolve() without arguments returns {} instead of null.\n */\nfunction normalizeNullable(value) {\n return isEmptyObject(value) ? null : value;\n}\nasync function getState() {\n return NativeOtaKit.getState();\n}\nasync function check() {\n return normalizeNullable(await NativeOtaKit.check());\n}\nasync function download() {\n return normalizeNullable(await NativeOtaKit.download());\n}\nfunction apply() {\n return NativeOtaKit.apply();\n}\nasync function update() {\n const state = await getState();\n let latest;\n try {\n latest = await check();\n }\n catch (error) {\n if (state.staged) {\n await apply();\n return;\n }\n throw error;\n }\n if (latest) {\n if (latest.downloaded) {\n await apply();\n return;\n }\n const bundle = await download();\n if (bundle) {\n await apply();\n }\n return;\n }\n if (state.staged) {\n await apply();\n }\n}\nconst OtaKit = {\n getState,\n check,\n download,\n apply,\n update,\n notifyAppReady: () => NativeOtaKit.notifyAppReady(),\n getLastFailure: async () => normalizeNullable(await NativeOtaKit.getLastFailure()),\n addListener: NativeOtaKit.addListener.bind(NativeOtaKit),\n removeAllListeners: () => NativeOtaKit.removeAllListeners(),\n};\nexport * from './definitions';\nexport { OtaKit };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\n/**\n * Web implementation of the native bridge.\n * Most methods are no-ops since OTA updates don't apply to web.\n */\nexport class OtaKitWeb extends WebPlugin {\n BUILTIN_BUNDLE = {\n id: 'builtin',\n version: '0.0.0',\n status: 'builtin',\n };\n async getState() {\n return {\n current: this.BUILTIN_BUNDLE,\n fallback: this.BUILTIN_BUNDLE,\n staged: null,\n builtinVersion: this.BUILTIN_BUNDLE.version,\n };\n }\n async check() {\n console.warn('OtaKit.check() is not supported on web');\n return null;\n }\n async download() {\n console.warn('OtaKit.download() is not supported on web');\n return null;\n }\n async apply() {\n console.warn('OtaKit.apply() is not supported on web');\n throw new Error('OtaKit.apply() is not supported on web');\n }\n async notifyAppReady() {\n // No-op on web, but don't warn - apps should call this unconditionally\n }\n async getLastFailure() {\n return null;\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["BundleStatus","registerPlugin","WebPlugin"],"mappings":"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"}
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
|
|
3
|
-
enum
|
|
3
|
+
enum DeviceEventAction: String {
|
|
4
4
|
case downloaded
|
|
5
5
|
case applied
|
|
6
6
|
case downloadError = "download_error"
|
|
7
7
|
case rollback
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
enum
|
|
10
|
+
enum DeviceEventClient {
|
|
11
11
|
static func send(
|
|
12
|
-
|
|
12
|
+
ingestUrl: String,
|
|
13
13
|
appId: String,
|
|
14
14
|
platform: String,
|
|
15
|
-
action:
|
|
16
|
-
bundleVersion: String
|
|
15
|
+
action: DeviceEventAction,
|
|
16
|
+
bundleVersion: String,
|
|
17
17
|
channel: String?,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
runtimeVersion: String?,
|
|
19
|
+
releaseId: String,
|
|
20
|
+
nativeBuild: String,
|
|
21
|
+
detail: String?
|
|
21
22
|
) {
|
|
22
|
-
let sanitizedBase =
|
|
23
|
+
let sanitizedBase = ingestUrl.replacingOccurrences(
|
|
23
24
|
of: "/+$",
|
|
24
25
|
with: "",
|
|
25
26
|
options: .regularExpression
|
|
26
27
|
)
|
|
27
28
|
|
|
28
|
-
guard let url = URL(string: "\(sanitizedBase)/
|
|
29
|
+
guard let url = URL(string: "\(sanitizedBase)/events") else {
|
|
29
30
|
return
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
var payload: [String: Any] = [
|
|
34
|
+
"eventId": UUID().uuidString.lowercased(),
|
|
35
|
+
"sentAt": ISO8601DateFormatter().string(from: Date()),
|
|
33
36
|
"platform": platform,
|
|
34
37
|
"action": action.rawValue,
|
|
38
|
+
"bundleVersion": bundleVersion,
|
|
39
|
+
"releaseId": releaseId,
|
|
40
|
+
"nativeBuild": nativeBuild,
|
|
35
41
|
]
|
|
36
|
-
if let bundleVersion {
|
|
37
|
-
payload["bundleVersion"] = bundleVersion
|
|
38
|
-
}
|
|
39
42
|
if let channel, !channel.isEmpty {
|
|
40
43
|
payload["channel"] = channel
|
|
41
44
|
}
|
|
42
|
-
if let
|
|
43
|
-
payload["
|
|
44
|
-
}
|
|
45
|
-
if let nativeBuild {
|
|
46
|
-
payload["nativeBuild"] = nativeBuild
|
|
45
|
+
if let runtimeVersion, !runtimeVersion.isEmpty {
|
|
46
|
+
payload["runtimeVersion"] = runtimeVersion
|
|
47
47
|
}
|
|
48
|
-
if let
|
|
49
|
-
payload["
|
|
48
|
+
if let detail {
|
|
49
|
+
payload["detail"] = String(detail.prefix(500))
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
guard let body = try? JSONSerialization.data(withJSONObject: payload) else {
|
|
@@ -60,7 +60,7 @@ enum StatsClient {
|
|
|
60
60
|
request.httpBody = body
|
|
61
61
|
request.timeoutInterval = 10
|
|
62
62
|
|
|
63
|
-
//
|
|
63
|
+
// Device events are best-effort and should never block the update flow.
|
|
64
64
|
URLSession.shared.dataTask(with: request).resume()
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -78,7 +78,7 @@ private final class DownloadDelegate: NSObject, URLSessionDownloadDelegate {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
let temporaryZip = FileManager.default.temporaryDirectory
|
|
81
|
-
.appendingPathComponent("
|
|
81
|
+
.appendingPathComponent("otakit-\(UUID().uuidString).zip")
|
|
82
82
|
|
|
83
83
|
do {
|
|
84
84
|
try FileManager.default.moveItem(at: location, to: temporaryZip)
|
|
@@ -9,7 +9,7 @@ struct LatestManifest {
|
|
|
9
9
|
let sha256: String
|
|
10
10
|
let size: Int
|
|
11
11
|
let runtimeVersion: String?
|
|
12
|
-
let releaseId: String
|
|
12
|
+
let releaseId: String
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
struct ManifestSignature {
|
|
@@ -102,7 +102,11 @@ enum ManifestClient {
|
|
|
102
102
|
.nilIfEmpty
|
|
103
103
|
|
|
104
104
|
let signature = parseSignature(object["signature"])
|
|
105
|
-
let releaseId = object["releaseId"] as? String
|
|
105
|
+
guard let releaseId = (object["releaseId"] as? String)?
|
|
106
|
+
.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
107
|
+
.nilIfEmpty else {
|
|
108
|
+
throw ManifestClientError.invalidResponse
|
|
109
|
+
}
|
|
106
110
|
|
|
107
111
|
guard let dlURL = URL(string: downloadUrl) else {
|
|
108
112
|
throw ManifestClientError.invalidURL
|
|
@@ -110,7 +114,7 @@ enum ManifestClient {
|
|
|
110
114
|
try requireHTTPS(url: dlURL, allowInsecure: allowInsecureUrls)
|
|
111
115
|
|
|
112
116
|
if manifestKeys.isEmpty {
|
|
113
|
-
print("[
|
|
117
|
+
print("[OtaKit] WARNING: No manifest signing keys configured — signature verification is disabled for this request.")
|
|
114
118
|
}
|
|
115
119
|
|
|
116
120
|
if !manifestKeys.isEmpty {
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
#import <Capacitor/Capacitor.h>
|
|
2
2
|
|
|
3
3
|
CAP_PLUGIN(UpdaterPlugin, "OtaKit",
|
|
4
|
+
CAP_PLUGIN_METHOD(getState, CAPPluginReturnPromise);
|
|
4
5
|
CAP_PLUGIN_METHOD(check, CAPPluginReturnPromise);
|
|
5
6
|
CAP_PLUGIN_METHOD(download, CAPPluginReturnPromise);
|
|
6
7
|
CAP_PLUGIN_METHOD(apply, CAPPluginReturnPromise);
|
|
7
|
-
CAP_PLUGIN_METHOD(debugGetState, CAPPluginReturnPromise);
|
|
8
8
|
CAP_PLUGIN_METHOD(notifyAppReady, CAPPluginReturnPromise);
|
|
9
|
-
CAP_PLUGIN_METHOD(
|
|
10
|
-
CAP_PLUGIN_METHOD(debugListBundles, CAPPluginReturnPromise);
|
|
11
|
-
CAP_PLUGIN_METHOD(debugDeleteBundle, CAPPluginReturnPromise);
|
|
12
|
-
CAP_PLUGIN_METHOD(debugGetLastFailure, CAPPluginReturnPromise);
|
|
9
|
+
CAP_PLUGIN_METHOD(getLastFailure, CAPPluginReturnPromise);
|
|
13
10
|
)
|