@otakit/capacitor-updater 1.2.0 → 2.0.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/README.md +23 -18
- package/android/src/main/java/com/updatekit/updater/{StatsClient.java → DeviceEventClient.java} +30 -19
- package/android/src/main/java/com/updatekit/updater/HostedManifestKeys.java +5 -6
- package/android/src/main/java/com/updatekit/updater/ManifestClient.java +33 -47
- package/android/src/main/java/com/updatekit/updater/ManifestVerifier.java +1 -75
- package/android/src/main/java/com/updatekit/updater/UpdaterPlugin.java +160 -99
- package/dist/esm/definitions.d.ts +9 -25
- package/dist/esm/definitions.d.ts.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/web.d.ts +0 -4
- package/dist/esm/web.d.ts.map +1 -1
- package/dist/esm/web.js +0 -8
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +0 -10
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +0 -10
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/UpdaterPlugin/{StatsClient.swift → DeviceEventClient.swift} +21 -21
- package/ios/Sources/UpdaterPlugin/HostedManifestKeys.swift +5 -5
- package/ios/Sources/UpdaterPlugin/ManifestClient.swift +32 -52
- package/ios/Sources/UpdaterPlugin/ManifestVerifier.swift +2 -56
- package/ios/Sources/UpdaterPlugin/UpdaterPlugin.m +0 -2
- package/ios/Sources/UpdaterPlugin/UpdaterPlugin.swift +139 -99
- package/package.json +1 -1
|
@@ -36,15 +36,17 @@ public class UpdaterPlugin extends Plugin {
|
|
|
36
36
|
private int appReadyTimeoutMs = 10_000;
|
|
37
37
|
private boolean allowInsecureUrls = false;
|
|
38
38
|
private String updateMode = UPDATE_MODE_NEXT_LAUNCH;
|
|
39
|
-
private String
|
|
39
|
+
private String ingestUrl;
|
|
40
|
+
private String cdnUrl;
|
|
40
41
|
private String appId;
|
|
41
42
|
private String channel;
|
|
42
43
|
private String runtimeVersion;
|
|
43
44
|
private java.util.List<ManifestVerifier.KeyEntry> manifestKeys = new java.util.ArrayList<>();
|
|
44
45
|
private long checkIntervalMs = 600_000;
|
|
45
46
|
private final AtomicBoolean checkInProgress = new AtomicBoolean(false);
|
|
46
|
-
private static final String
|
|
47
|
-
private static final String
|
|
47
|
+
private static final String DEFAULT_INGEST_URL = "https://ingest.otakit.app/v1";
|
|
48
|
+
private static final String DEFAULT_CDN_URL = "https://cdn.otakit.app";
|
|
49
|
+
private static final String INGEST_PATH_SUFFIX = "/v1";
|
|
48
50
|
private static final String UPDATE_MODE_MANUAL = "manual";
|
|
49
51
|
private static final String UPDATE_MODE_NEXT_LAUNCH = "next-launch";
|
|
50
52
|
private static final String UPDATE_MODE_NEXT_RESUME = "next-resume";
|
|
@@ -72,9 +74,13 @@ public class UpdaterPlugin extends Plugin {
|
|
|
72
74
|
}
|
|
73
75
|
} catch (PackageManager.NameNotFoundException ignored) {}
|
|
74
76
|
|
|
75
|
-
this.
|
|
76
|
-
getConfig().getString("
|
|
77
|
-
System.getenv("
|
|
77
|
+
this.ingestUrl = resolveIngestUrl(
|
|
78
|
+
getConfig().getString("ingestUrl"),
|
|
79
|
+
System.getenv("OTAKIT_INGEST_URL")
|
|
80
|
+
);
|
|
81
|
+
this.cdnUrl = resolveCdnUrl(
|
|
82
|
+
getConfig().getString("cdnUrl"),
|
|
83
|
+
System.getenv("OTAKIT_CDN_URL")
|
|
78
84
|
);
|
|
79
85
|
this.appId = getConfig().getString("appId");
|
|
80
86
|
this.channel = trimToNull(getConfig().getString("channel"));
|
|
@@ -116,7 +122,7 @@ public class UpdaterPlugin extends Plugin {
|
|
|
116
122
|
manifestKeys.add(new ManifestVerifier.KeyEntry("_invalid_", new byte[0]));
|
|
117
123
|
}
|
|
118
124
|
|
|
119
|
-
if (manifestKeys.isEmpty() && HostedManifestKeys.
|
|
125
|
+
if (manifestKeys.isEmpty() && HostedManifestKeys.matchesManagedManifestUrl(cdnUrl)) {
|
|
120
126
|
manifestKeys.addAll(HostedManifestKeys.createDefaultKeys());
|
|
121
127
|
}
|
|
122
128
|
|
|
@@ -174,7 +180,15 @@ public class UpdaterPlugin extends Plugin {
|
|
|
174
180
|
}
|
|
175
181
|
}
|
|
176
182
|
|
|
177
|
-
if (shouldThrottleCheck()) return;
|
|
183
|
+
if (!UPDATE_MODE_IMMEDIATE.equals(updateMode) && shouldThrottleCheck()) return;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (
|
|
187
|
+
TRIGGER_LAUNCH.equals(trigger) &&
|
|
188
|
+
!UPDATE_MODE_IMMEDIATE.equals(updateMode) &&
|
|
189
|
+
shouldThrottleCheck()
|
|
190
|
+
) {
|
|
191
|
+
return;
|
|
178
192
|
}
|
|
179
193
|
|
|
180
194
|
// Acquire in-flight guard (submit-time)
|
|
@@ -185,7 +199,6 @@ public class UpdaterPlugin extends Plugin {
|
|
|
185
199
|
executor.execute(() -> {
|
|
186
200
|
try {
|
|
187
201
|
BundleInfo result = performCheckAndDownload(null, true);
|
|
188
|
-
recordCheckTimestamp();
|
|
189
202
|
if (result != null) {
|
|
190
203
|
activateStagedBundleForReload();
|
|
191
204
|
reloadWebView();
|
|
@@ -282,8 +295,7 @@ public class UpdaterPlugin extends Plugin {
|
|
|
282
295
|
|
|
283
296
|
@PluginMethod
|
|
284
297
|
public void check(PluginCall call) {
|
|
285
|
-
|
|
286
|
-
if (shouldThrottleCheck() || !checkInProgress.compareAndSet(false, true)) {
|
|
298
|
+
if (!checkInProgress.compareAndSet(false, true)) {
|
|
287
299
|
String stagedId = store.getStagedBundleId();
|
|
288
300
|
if (stagedId != null) {
|
|
289
301
|
BundleInfo staged = store.getBundle(stagedId);
|
|
@@ -311,10 +323,10 @@ public class UpdaterPlugin extends Plugin {
|
|
|
311
323
|
executor.execute(() -> {
|
|
312
324
|
try {
|
|
313
325
|
ManifestClient.LatestManifest latest = fetchLatest(targetChannel);
|
|
314
|
-
// check() does NOT record timestamp — only download() and automatic paths do.
|
|
315
|
-
// This keeps check() -> download() working without the throttle blocking download().
|
|
316
326
|
if (latest == null) {
|
|
317
327
|
call.resolve((JSObject) null);
|
|
328
|
+
} else if (isCurrentBundleLatest(latest, targetChannel)) {
|
|
329
|
+
call.resolve((JSObject) null);
|
|
318
330
|
} else {
|
|
319
331
|
BundleInfo staged = findMatchingStagedBundle(latest, targetChannel);
|
|
320
332
|
call.resolve(manifestToJSObject(latest, staged != null));
|
|
@@ -329,8 +341,7 @@ public class UpdaterPlugin extends Plugin {
|
|
|
329
341
|
|
|
330
342
|
@PluginMethod
|
|
331
343
|
public void download(PluginCall call) {
|
|
332
|
-
|
|
333
|
-
if (shouldThrottleCheck() || !checkInProgress.compareAndSet(false, true)) {
|
|
344
|
+
if (!checkInProgress.compareAndSet(false, true)) {
|
|
334
345
|
String stagedId = store.getStagedBundleId();
|
|
335
346
|
if (stagedId != null) {
|
|
336
347
|
BundleInfo staged = store.getBundle(stagedId);
|
|
@@ -345,7 +356,6 @@ public class UpdaterPlugin extends Plugin {
|
|
|
345
356
|
executor.execute(() -> {
|
|
346
357
|
try {
|
|
347
358
|
BundleInfo bundle = performCheckAndDownload(null, true);
|
|
348
|
-
recordCheckTimestamp();
|
|
349
359
|
if (bundle == null) {
|
|
350
360
|
call.resolve((JSObject) null);
|
|
351
361
|
} else {
|
|
@@ -359,42 +369,6 @@ public class UpdaterPlugin extends Plugin {
|
|
|
359
369
|
});
|
|
360
370
|
}
|
|
361
371
|
|
|
362
|
-
@PluginMethod
|
|
363
|
-
public void debugCheck(PluginCall call) {
|
|
364
|
-
String requestedChannel = call.getString("channel");
|
|
365
|
-
String targetChannel = resolveTargetChannel(requestedChannel);
|
|
366
|
-
executor.execute(() -> {
|
|
367
|
-
try {
|
|
368
|
-
ManifestClient.LatestManifest latest = fetchLatest(targetChannel);
|
|
369
|
-
if (latest == null) {
|
|
370
|
-
call.resolve((JSObject) null);
|
|
371
|
-
} else {
|
|
372
|
-
BundleInfo staged = findMatchingStagedBundle(latest, targetChannel);
|
|
373
|
-
call.resolve(manifestToJSObject(latest, staged != null));
|
|
374
|
-
}
|
|
375
|
-
} catch (Exception e) {
|
|
376
|
-
call.reject("debugCheck failed: " + e.getMessage());
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
@PluginMethod
|
|
382
|
-
public void debugDownload(PluginCall call) {
|
|
383
|
-
String requestedChannel = call.getString("channel");
|
|
384
|
-
executor.execute(() -> {
|
|
385
|
-
try {
|
|
386
|
-
BundleInfo bundle = performCheckAndDownload(requestedChannel, true);
|
|
387
|
-
if (bundle == null) {
|
|
388
|
-
call.resolve((JSObject) null);
|
|
389
|
-
} else {
|
|
390
|
-
call.resolve(bundle.toJSObject());
|
|
391
|
-
}
|
|
392
|
-
} catch (Exception e) {
|
|
393
|
-
call.reject("debugDownload failed: " + e.getMessage());
|
|
394
|
-
}
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
|
|
398
372
|
@PluginMethod
|
|
399
373
|
public void apply(PluginCall call) {
|
|
400
374
|
String stagedId = store.getStagedBundleId();
|
|
@@ -427,7 +401,14 @@ public class UpdaterPlugin extends Plugin {
|
|
|
427
401
|
BundleInfo updated = store.getBundle(current.id);
|
|
428
402
|
notifyListeners("appReady", updated != null ? updated.toJSObject() : current.toJSObject());
|
|
429
403
|
|
|
430
|
-
|
|
404
|
+
sendDeviceEvent(
|
|
405
|
+
"applied",
|
|
406
|
+
current.version,
|
|
407
|
+
current.runtimeVersion,
|
|
408
|
+
current.channel,
|
|
409
|
+
current.releaseId,
|
|
410
|
+
null
|
|
411
|
+
);
|
|
431
412
|
|
|
432
413
|
if (!oldFallback.isBuiltin() && !oldFallback.id.equals(current.id)) {
|
|
433
414
|
try {
|
|
@@ -512,16 +493,11 @@ public class UpdaterPlugin extends Plugin {
|
|
|
512
493
|
throw new IllegalStateException("Missing appId in plugin config");
|
|
513
494
|
}
|
|
514
495
|
|
|
515
|
-
BundleInfo current = store.getCurrentBundle();
|
|
516
|
-
|
|
517
496
|
return ManifestClient.fetchLatest(
|
|
518
|
-
|
|
497
|
+
cdnUrl,
|
|
519
498
|
appId,
|
|
520
499
|
channel,
|
|
521
|
-
current.version,
|
|
522
|
-
current.releaseId,
|
|
523
500
|
runtimeVersion,
|
|
524
|
-
"android",
|
|
525
501
|
allowInsecureUrls,
|
|
526
502
|
manifestKeys
|
|
527
503
|
);
|
|
@@ -543,6 +519,13 @@ public class UpdaterPlugin extends Plugin {
|
|
|
543
519
|
);
|
|
544
520
|
}
|
|
545
521
|
|
|
522
|
+
if (isCurrentBundleLatest(latest, targetChannel)) {
|
|
523
|
+
if (emitEvents) {
|
|
524
|
+
notifyListeners("noUpdateAvailable", new JSObject());
|
|
525
|
+
}
|
|
526
|
+
return null;
|
|
527
|
+
}
|
|
528
|
+
|
|
546
529
|
BundleInfo staged = findMatchingStagedBundle(latest, targetChannel);
|
|
547
530
|
if (emitEvents) {
|
|
548
531
|
notifyListeners("updateAvailable", manifestToJSObject(latest, staged != null));
|
|
@@ -612,7 +595,14 @@ public class UpdaterPlugin extends Plugin {
|
|
|
612
595
|
long requiredSpace = (long) (expectedSize * 2.5); // zip + extracted + buffer
|
|
613
596
|
long availableSpace = getFreeDiskSpace();
|
|
614
597
|
if (availableSpace < requiredSpace) {
|
|
615
|
-
|
|
598
|
+
sendDeviceEvent(
|
|
599
|
+
"download_error",
|
|
600
|
+
version,
|
|
601
|
+
runtimeVersion,
|
|
602
|
+
channel,
|
|
603
|
+
releaseId,
|
|
604
|
+
"insufficient_disk_space"
|
|
605
|
+
);
|
|
616
606
|
throw new IllegalStateException("Insufficient disk space");
|
|
617
607
|
}
|
|
618
608
|
}
|
|
@@ -665,14 +655,14 @@ public class UpdaterPlugin extends Plugin {
|
|
|
665
655
|
cleanupSupersededStagedBundle(previousStagedId, bundleId);
|
|
666
656
|
|
|
667
657
|
notifyListeners("downloadComplete", info.toJSObject());
|
|
668
|
-
|
|
658
|
+
sendDeviceEvent("downloaded", version, runtimeVersion, channel, releaseId, null);
|
|
669
659
|
return info;
|
|
670
660
|
} catch (Exception e) {
|
|
671
661
|
JSObject failed = new JSObject();
|
|
672
662
|
failed.put("version", version);
|
|
673
663
|
failed.put("error", e.getMessage());
|
|
674
664
|
notifyListeners("downloadFailed", failed);
|
|
675
|
-
|
|
665
|
+
sendDeviceEvent("download_error", version, runtimeVersion, channel, releaseId, e.getMessage());
|
|
676
666
|
throw e;
|
|
677
667
|
} finally {
|
|
678
668
|
if (downloadedZip != null && downloadedZip.exists()) {
|
|
@@ -826,7 +816,14 @@ public class UpdaterPlugin extends Plugin {
|
|
|
826
816
|
store.setFailedBundle(failed);
|
|
827
817
|
store.setStagedBundleId(null);
|
|
828
818
|
|
|
829
|
-
|
|
819
|
+
sendDeviceEvent(
|
|
820
|
+
"rollback",
|
|
821
|
+
current.version,
|
|
822
|
+
current.runtimeVersion,
|
|
823
|
+
current.channel,
|
|
824
|
+
current.releaseId,
|
|
825
|
+
reason
|
|
826
|
+
);
|
|
830
827
|
|
|
831
828
|
BundleInfo fallback = store.getFallbackBundle();
|
|
832
829
|
JSObject payload = new JSObject();
|
|
@@ -906,12 +903,58 @@ public class UpdaterPlugin extends Plugin {
|
|
|
906
903
|
if (latest.runtimeVersion != null) {
|
|
907
904
|
object.put("runtimeVersion", latest.runtimeVersion);
|
|
908
905
|
}
|
|
909
|
-
|
|
910
|
-
object.put("releaseId", latest.releaseId);
|
|
911
|
-
}
|
|
906
|
+
object.put("releaseId", latest.releaseId);
|
|
912
907
|
return object;
|
|
913
908
|
}
|
|
914
909
|
|
|
910
|
+
private boolean isCurrentBundleLatest(
|
|
911
|
+
ManifestClient.LatestManifest latest,
|
|
912
|
+
String targetChannel
|
|
913
|
+
) {
|
|
914
|
+
return doesBundleMatchLatest(store.getCurrentBundle(), latest, targetChannel);
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
private boolean doesBundleMatchLatest(
|
|
918
|
+
BundleInfo bundle,
|
|
919
|
+
ManifestClient.LatestManifest latest,
|
|
920
|
+
String targetChannel
|
|
921
|
+
) {
|
|
922
|
+
if (bundle == null) {
|
|
923
|
+
return false;
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
if (!java.util.Objects.equals(trimToNull(bundle.channel), targetChannel)) {
|
|
927
|
+
return false;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
if (
|
|
931
|
+
!java.util.Objects.equals(
|
|
932
|
+
trimToNull(bundle.runtimeVersion),
|
|
933
|
+
trimToNull(latest.runtimeVersion)
|
|
934
|
+
)
|
|
935
|
+
) {
|
|
936
|
+
return false;
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
if (
|
|
940
|
+
latest.releaseId != null &&
|
|
941
|
+
bundle.releaseId != null &&
|
|
942
|
+
latest.releaseId.equals(bundle.releaseId)
|
|
943
|
+
) {
|
|
944
|
+
return true;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
if (
|
|
948
|
+
latest.sha256 != null &&
|
|
949
|
+
bundle.sha256 != null &&
|
|
950
|
+
latest.sha256.equals(bundle.sha256)
|
|
951
|
+
) {
|
|
952
|
+
return true;
|
|
953
|
+
}
|
|
954
|
+
|
|
955
|
+
return latest.version != null && latest.version.equals(bundle.version);
|
|
956
|
+
}
|
|
957
|
+
|
|
915
958
|
private BundleInfo findMatchingStagedBundle(
|
|
916
959
|
ManifestClient.LatestManifest latest,
|
|
917
960
|
String targetChannel
|
|
@@ -935,24 +978,7 @@ public class UpdaterPlugin extends Plugin {
|
|
|
935
978
|
return null;
|
|
936
979
|
}
|
|
937
980
|
|
|
938
|
-
|
|
939
|
-
latest.releaseId != null &&
|
|
940
|
-
staged.releaseId != null &&
|
|
941
|
-
latest.releaseId.equals(staged.releaseId)
|
|
942
|
-
) {
|
|
943
|
-
return staged;
|
|
944
|
-
}
|
|
945
|
-
|
|
946
|
-
if (
|
|
947
|
-
latest.version != null &&
|
|
948
|
-
latest.version.equals(staged.version) &&
|
|
949
|
-
latest.sha256 != null &&
|
|
950
|
-
latest.sha256.equals(staged.sha256)
|
|
951
|
-
) {
|
|
952
|
-
return staged;
|
|
953
|
-
}
|
|
954
|
-
|
|
955
|
-
return null;
|
|
981
|
+
return doesBundleMatchLatest(staged, latest, targetChannel) ? staged : null;
|
|
956
982
|
}
|
|
957
983
|
|
|
958
984
|
private void moveDirectory(File source, File destination) throws Exception {
|
|
@@ -1035,26 +1061,44 @@ public class UpdaterPlugin extends Plugin {
|
|
|
1035
1061
|
return normalized + "-" + suffix;
|
|
1036
1062
|
}
|
|
1037
1063
|
|
|
1038
|
-
private String
|
|
1064
|
+
private String resolveIngestUrl(String configured, String env) {
|
|
1065
|
+
String configuredValue = trimToNull(configured);
|
|
1066
|
+
if (configuredValue != null) {
|
|
1067
|
+
return normalizeIngestUrl(configuredValue);
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
String envValue = trimToNull(env);
|
|
1071
|
+
if (envValue != null) {
|
|
1072
|
+
return normalizeIngestUrl(envValue);
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
return DEFAULT_INGEST_URL;
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1078
|
+
private String resolveCdnUrl(String configured, String env) {
|
|
1039
1079
|
String configuredValue = trimToNull(configured);
|
|
1040
1080
|
if (configuredValue != null) {
|
|
1041
|
-
return
|
|
1081
|
+
return normalizeCdnUrl(configuredValue);
|
|
1042
1082
|
}
|
|
1043
1083
|
|
|
1044
1084
|
String envValue = trimToNull(env);
|
|
1045
1085
|
if (envValue != null) {
|
|
1046
|
-
return
|
|
1086
|
+
return normalizeCdnUrl(envValue);
|
|
1047
1087
|
}
|
|
1048
1088
|
|
|
1049
|
-
return
|
|
1089
|
+
return DEFAULT_CDN_URL;
|
|
1050
1090
|
}
|
|
1051
1091
|
|
|
1052
|
-
private String
|
|
1092
|
+
private String normalizeIngestUrl(String raw) {
|
|
1053
1093
|
String trimmed = raw.trim().replaceAll("/+$", "");
|
|
1054
|
-
if (trimmed.toLowerCase(java.util.Locale.ROOT).endsWith(
|
|
1094
|
+
if (trimmed.toLowerCase(java.util.Locale.ROOT).endsWith(INGEST_PATH_SUFFIX)) {
|
|
1055
1095
|
return trimmed;
|
|
1056
1096
|
}
|
|
1057
|
-
return trimmed +
|
|
1097
|
+
return trimmed + INGEST_PATH_SUFFIX;
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
private String normalizeCdnUrl(String raw) {
|
|
1101
|
+
return raw.trim().replaceAll("/+$", "");
|
|
1058
1102
|
}
|
|
1059
1103
|
|
|
1060
1104
|
private String trimToNull(String value) {
|
|
@@ -1071,26 +1115,43 @@ public class UpdaterPlugin extends Plugin {
|
|
|
1071
1115
|
return resolved != null ? resolved : this.channel;
|
|
1072
1116
|
}
|
|
1073
1117
|
|
|
1074
|
-
private void
|
|
1118
|
+
private void sendDeviceEvent(
|
|
1075
1119
|
String action,
|
|
1076
1120
|
String bundleVersion,
|
|
1121
|
+
String runtimeVersion,
|
|
1077
1122
|
String channel,
|
|
1078
1123
|
String releaseId,
|
|
1079
|
-
String
|
|
1124
|
+
String detail
|
|
1080
1125
|
) {
|
|
1081
1126
|
if (appId == null) {
|
|
1082
1127
|
return;
|
|
1083
1128
|
}
|
|
1084
|
-
|
|
1085
|
-
|
|
1129
|
+
String normalizedBundleVersion = trimToNull(bundleVersion);
|
|
1130
|
+
if (normalizedBundleVersion == null) {
|
|
1131
|
+
android.util.Log.w("UpdateKit", "Skipping device event without bundleVersion");
|
|
1132
|
+
return;
|
|
1133
|
+
}
|
|
1134
|
+
String normalizedReleaseId = trimToNull(releaseId);
|
|
1135
|
+
if (normalizedReleaseId == null) {
|
|
1136
|
+
android.util.Log.w("UpdateKit", "Skipping device event without releaseId");
|
|
1137
|
+
return;
|
|
1138
|
+
}
|
|
1139
|
+
String nativeBuild = trimToNull(store.getNativeBuild());
|
|
1140
|
+
if (nativeBuild == null) {
|
|
1141
|
+
android.util.Log.w("UpdateKit", "Skipping device event without nativeBuild");
|
|
1142
|
+
return;
|
|
1143
|
+
}
|
|
1144
|
+
DeviceEventClient.send(
|
|
1145
|
+
ingestUrl,
|
|
1086
1146
|
appId,
|
|
1087
1147
|
"android",
|
|
1088
1148
|
action,
|
|
1089
|
-
|
|
1149
|
+
normalizedBundleVersion,
|
|
1090
1150
|
channel,
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1151
|
+
trimToNull(runtimeVersion),
|
|
1152
|
+
normalizedReleaseId,
|
|
1153
|
+
nativeBuild,
|
|
1154
|
+
detail
|
|
1094
1155
|
);
|
|
1095
1156
|
}
|
|
1096
1157
|
|
|
@@ -46,7 +46,7 @@ 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
|
|
49
|
+
releaseId: string;
|
|
50
50
|
}
|
|
51
51
|
export interface BundleListResult {
|
|
52
52
|
bundles: BundleInfo[];
|
|
@@ -68,7 +68,7 @@ export interface OtaKitManifestKey {
|
|
|
68
68
|
* Plugin configuration for capacitor.config.ts.
|
|
69
69
|
*/
|
|
70
70
|
export interface OtaKitConfig {
|
|
71
|
-
/** OtaKit app ID used for manifest and
|
|
71
|
+
/** OtaKit app ID used for manifest fetches and event ingest. */
|
|
72
72
|
appId: string;
|
|
73
73
|
/** Optional named release track. Omit to use the base channel. */
|
|
74
74
|
channel?: string;
|
|
@@ -78,34 +78,24 @@ export interface OtaKitConfig {
|
|
|
78
78
|
updateMode?: OtaKitUpdateMode;
|
|
79
79
|
/**
|
|
80
80
|
* Minimum milliseconds between automatic update checks.
|
|
81
|
-
* Applies to
|
|
82
|
-
*
|
|
81
|
+
* Applies only to automatic checks in `next-launch` and `next-resume`.
|
|
82
|
+
* Manual APIs and `immediate` mode bypass this throttle. Defaults to 600000 (10 min).
|
|
83
83
|
*/
|
|
84
84
|
checkInterval?: number;
|
|
85
85
|
/** Milliseconds to wait for notifyAppReady(). Defaults to 10000. */
|
|
86
86
|
appReadyTimeout?: number;
|
|
87
|
-
/** Custom
|
|
87
|
+
/** Custom event ingest base URL. Hosted default: https://ingest.otakit.app/v1 */
|
|
88
|
+
ingestUrl?: string;
|
|
89
|
+
/** Optional control-plane API base URL used by self-host tooling such as the CLI. The native runtime does not use it. */
|
|
88
90
|
serverUrl?: string;
|
|
91
|
+
/** Custom CDN base URL for manifest and bundle delivery. */
|
|
92
|
+
cdnUrl?: string;
|
|
89
93
|
/** Custom manifest verification keys for self-hosted or custom trust. */
|
|
90
94
|
manifestKeys?: OtaKitManifestKey[];
|
|
91
95
|
/** Allow HTTP only for localhost development. Defaults to false. */
|
|
92
96
|
allowInsecureUrls?: boolean;
|
|
93
97
|
}
|
|
94
98
|
export interface OtaKitDebugApi {
|
|
95
|
-
/**
|
|
96
|
-
* Check the server for a newer version without downloading it.
|
|
97
|
-
* You can optionally pass { channel } for a one-off debug override.
|
|
98
|
-
*/
|
|
99
|
-
check(options?: {
|
|
100
|
-
channel?: string;
|
|
101
|
-
}): Promise<LatestVersion | null>;
|
|
102
|
-
/**
|
|
103
|
-
* Check the server and download the latest bundle if available.
|
|
104
|
-
* Ensures the latest bundle is staged for later activation.
|
|
105
|
-
*/
|
|
106
|
-
download(options?: {
|
|
107
|
-
channel?: string;
|
|
108
|
-
}): Promise<BundleInfo | null>;
|
|
109
99
|
/**
|
|
110
100
|
* Reset to the builtin bundle and reload the WebView.
|
|
111
101
|
*
|
|
@@ -206,12 +196,6 @@ export interface OtaKitBridgePlugin {
|
|
|
206
196
|
apply(): Promise<void>;
|
|
207
197
|
notifyAppReady(): Promise<void>;
|
|
208
198
|
debugGetState(): Promise<OtaKitDebugState>;
|
|
209
|
-
debugCheck(options?: {
|
|
210
|
-
channel?: string;
|
|
211
|
-
}): Promise<LatestVersion | null>;
|
|
212
|
-
debugDownload(options?: {
|
|
213
|
-
channel?: string;
|
|
214
|
-
}): Promise<BundleInfo | null>;
|
|
215
199
|
debugReset(): Promise<void>;
|
|
216
200
|
debugListBundles(): Promise<BundleListResult>;
|
|
217
201
|
debugDeleteBundle(options: {
|
|
@@ -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,EAKb,MAAM,eAAe,CAAC;AA6EvB,QAAA,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,YAAY,EAKb,MAAM,eAAe,CAAC;AA6EvB,QAAA,MAAM,MAAM,EAAE,YAgBb,CAAC;AAEF,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -70,8 +70,6 @@ const OtaKit = {
|
|
|
70
70
|
update,
|
|
71
71
|
notifyAppReady: () => NativeOtaKit.notifyAppReady(),
|
|
72
72
|
debug: {
|
|
73
|
-
check: async (options) => normalizeNullable(await NativeOtaKit.debugCheck(options)),
|
|
74
|
-
download: async (options) => normalizeNullable(await NativeOtaKit.debugDownload(options)),
|
|
75
73
|
reset: () => NativeOtaKit.debugReset(),
|
|
76
74
|
listBundles: () => NativeOtaKit.debugListBundles(),
|
|
77
75
|
deleteBundle: (options) => NativeOtaKit.debugDeleteBundle(options),
|
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;AAWjD,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,SAAS,aAAa,CAAC,KAAuB;IAC5C,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,cAAc,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ;IACrB,OAAO,aAAa,CAAC,MAAM,YAAY,CAAC,aAAa,EAAE,CAAC,CAAC;AAC3D,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,KAAK,EAAE;QACL,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/web.d.ts
CHANGED
|
@@ -10,10 +10,6 @@ export declare class OtaKitWeb extends WebPlugin implements OtaKitBridgePlugin {
|
|
|
10
10
|
check(): Promise<LatestVersion | null>;
|
|
11
11
|
download(): Promise<BundleInfo | null>;
|
|
12
12
|
apply(): Promise<void>;
|
|
13
|
-
debugCheck(): Promise<LatestVersion | null>;
|
|
14
|
-
debugDownload(_options?: {
|
|
15
|
-
channel?: string;
|
|
16
|
-
}): Promise<BundleInfo | null>;
|
|
17
13
|
notifyAppReady(): Promise<void>;
|
|
18
14
|
debugReset(): Promise<void>;
|
|
19
15
|
debugListBundles(): Promise<BundleListResult>;
|
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,gBAAgB,EAChB,aAAa,EAEb,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,qBAAa,SAAU,SAAQ,SAAU,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAI7B;IAEI,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS1C,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,
|
|
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,gBAAgB,EAChB,aAAa,EAEb,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,qBAAa,SAAU,SAAQ,SAAU,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAI7B;IAEI,aAAa,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAS1C,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,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAI7C,iBAAiB,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhE,mBAAmB,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAGxD"}
|
package/dist/esm/web.js
CHANGED
|
@@ -29,14 +29,6 @@ export class OtaKitWeb extends WebPlugin {
|
|
|
29
29
|
console.warn('OtaKit.apply() is not supported on web');
|
|
30
30
|
throw new Error('OtaKit.apply() is not supported on web');
|
|
31
31
|
}
|
|
32
|
-
async debugCheck() {
|
|
33
|
-
console.warn('OtaKit.debug.check() is not supported on web');
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
async debugDownload(_options) {
|
|
37
|
-
console.warn('OtaKit.debug.download() is not supported on web');
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
32
|
async notifyAppReady() {
|
|
41
33
|
// No-op on web, but don't warn - apps should call this unconditionally
|
|
42
34
|
}
|
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;AAW5C;;;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,aAAa;QACjB,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,
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAW5C;;;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,aAAa;QACjB,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,UAAU;QACd,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAA8B;QACpD,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/dist/plugin.cjs.js
CHANGED
|
@@ -90,8 +90,6 @@ const OtaKit = {
|
|
|
90
90
|
update,
|
|
91
91
|
notifyAppReady: () => NativeOtaKit.notifyAppReady(),
|
|
92
92
|
debug: {
|
|
93
|
-
check: async (options) => normalizeNullable(await NativeOtaKit.debugCheck(options)),
|
|
94
|
-
download: async (options) => normalizeNullable(await NativeOtaKit.debugDownload(options)),
|
|
95
93
|
reset: () => NativeOtaKit.debugReset(),
|
|
96
94
|
listBundles: () => NativeOtaKit.debugListBundles(),
|
|
97
95
|
deleteBundle: (options) => NativeOtaKit.debugDeleteBundle(options),
|
|
@@ -131,14 +129,6 @@ class OtaKitWeb extends core.WebPlugin {
|
|
|
131
129
|
console.warn('OtaKit.apply() is not supported on web');
|
|
132
130
|
throw new Error('OtaKit.apply() is not supported on web');
|
|
133
131
|
}
|
|
134
|
-
async debugCheck() {
|
|
135
|
-
console.warn('OtaKit.debug.check() is not supported on web');
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
async debugDownload(_options) {
|
|
139
|
-
console.warn('OtaKit.debug.download() is not supported on web');
|
|
140
|
-
return null;
|
|
141
|
-
}
|
|
142
132
|
async notifyAppReady() {
|
|
143
133
|
// No-op on web, but don't warn - apps should call this unconditionally
|
|
144
134
|
}
|