@capawesome/capacitor-live-update 6.8.0 → 6.9.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.
Files changed (56) hide show
  1. package/CapawesomeCapacitorLiveUpdate.podspec +2 -2
  2. package/README.md +429 -20
  3. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdate.java +851 -261
  4. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdateConfig.java +35 -0
  5. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdateHttpClient.java +56 -11
  6. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdatePlugin.java +273 -38
  7. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdatePreferences.java +52 -3
  8. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/api/GetChannelsResponseItem.java +28 -0
  9. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/api/GetLatestBundleResponse.java +11 -2
  10. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/events/DownloadBundleProgressEvent.java +32 -0
  11. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/events/NextBundleSetEvent.java +26 -0
  12. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/options/FetchChannelsOptions.java +38 -0
  13. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/options/SetConfigOptions.java +19 -0
  14. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/options/SyncOptions.java +4 -0
  15. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/ChannelResult.java +28 -0
  16. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/FetchChannelsResult.java +28 -0
  17. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/FetchLatestBundleResult.java +8 -0
  18. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/GetBlockedBundlesResult.java +27 -0
  19. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/GetConfigResult.java +40 -0
  20. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/GetDownloadedBundlesResult.java +27 -0
  21. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/IsSyncingResult.java +26 -0
  22. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/ReadyResult.java +32 -0
  23. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/interfaces/DownloadProgressCallback.java +5 -0
  24. package/dist/docs.json +853 -50
  25. package/dist/esm/definitions.d.ts +411 -1
  26. package/dist/esm/definitions.js.map +1 -1
  27. package/dist/esm/web.d.ts +10 -2
  28. package/dist/esm/web.js +24 -0
  29. package/dist/esm/web.js.map +1 -1
  30. package/dist/plugin.cjs.js +24 -0
  31. package/dist/plugin.cjs.js.map +1 -1
  32. package/dist/plugin.js +24 -0
  33. package/dist/plugin.js.map +1 -1
  34. package/ios/Plugin/Classes/Events/DownloadBundleProgressEvent.swift +25 -0
  35. package/ios/Plugin/Classes/Events/NextBundleSetEvent.swift +16 -0
  36. package/ios/Plugin/Classes/Options/FetchChannelsOptions.swift +26 -0
  37. package/ios/Plugin/Classes/Options/SetConfigOptions.swift +14 -0
  38. package/ios/Plugin/Classes/Options/SyncOptions.swift +4 -0
  39. package/ios/Plugin/Classes/Results/ChannelResult.swift +19 -0
  40. package/ios/Plugin/Classes/Results/FetchChannelsResult.swift +16 -0
  41. package/ios/Plugin/Classes/Results/{FetchLatestBundle.swift → FetchLatestBundleResult.swift} +6 -1
  42. package/ios/Plugin/Classes/Results/GetBlockedBundlesResult.swift +16 -0
  43. package/ios/Plugin/Classes/Results/GetConfigResult.swift +19 -0
  44. package/ios/Plugin/Classes/Results/GetDownloadedBundlesResult.swift +16 -0
  45. package/ios/Plugin/Classes/Results/IsSyncingResult.swift +16 -0
  46. package/ios/Plugin/Classes/Results/ReadyResult.swift +22 -0
  47. package/ios/Plugin/LiveUpdate.swift +423 -145
  48. package/ios/Plugin/LiveUpdateConfig.swift +3 -0
  49. package/ios/Plugin/LiveUpdateHttpClient.swift +21 -4
  50. package/ios/Plugin/LiveUpdatePlugin.swift +174 -14
  51. package/ios/Plugin/LiveUpdatePreferences.swift +54 -12
  52. package/ios/Plugin/Protocols/Api/GetChannelsResponseItem.swift +4 -0
  53. package/ios/Plugin/Protocols/Api/GetLatestBundleResponse.swift +1 -0
  54. package/package.json +5 -5
  55. package/ios/Plugin/LiveUpdatePlugin.h +0 -10
  56. package/ios/Plugin/LiveUpdatePlugin.m +0 -27
@@ -19,6 +19,9 @@ public class GetLatestBundleResponse {
19
19
  @Nullable
20
20
  private String checksum;
21
21
 
22
+ @Nullable
23
+ private JSONObject customProperties;
24
+
22
25
  @Nullable
23
26
  private String signature;
24
27
 
@@ -33,8 +36,9 @@ public class GetLatestBundleResponse {
33
36
  this.artifactType = ArtifactType.ZIP;
34
37
  }
35
38
  this.bundleId = responseJson.optString("bundleId");
36
- this.checksum = responseJson.optString("checksum");
37
- this.signature = responseJson.optString("signature");
39
+ this.checksum = responseJson.isNull("checksum") ? null : responseJson.optString("checksum");
40
+ this.customProperties = responseJson.optJSONObject("customProperties");
41
+ this.signature = responseJson.isNull("signature") ? null : responseJson.optString("signature");
38
42
  this.url = responseJson.optString("url");
39
43
  }
40
44
 
@@ -48,6 +52,11 @@ public class GetLatestBundleResponse {
48
52
  return bundleId;
49
53
  }
50
54
 
55
+ @Nullable
56
+ public JSONObject getCustomProperties() {
57
+ return customProperties;
58
+ }
59
+
51
60
  @Nullable
52
61
  public String getChecksum() {
53
62
  return checksum;
@@ -0,0 +1,32 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.events;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSObject;
5
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
6
+
7
+ public class DownloadBundleProgressEvent implements Result {
8
+
9
+ @NonNull
10
+ private final String bundleId;
11
+
12
+ private final long downloadedBytes;
13
+ private final long totalBytes;
14
+ private final double progress;
15
+
16
+ public DownloadBundleProgressEvent(@NonNull String bundleId, long downloadedBytes, long totalBytes) {
17
+ this.bundleId = bundleId;
18
+ this.downloadedBytes = downloadedBytes;
19
+ this.totalBytes = totalBytes;
20
+ this.progress = (double) downloadedBytes / (double) totalBytes;
21
+ }
22
+
23
+ @NonNull
24
+ public JSObject toJSObject() {
25
+ JSObject result = new JSObject();
26
+ result.put("bundleId", bundleId);
27
+ result.put("downloadedBytes", downloadedBytes);
28
+ result.put("progress", progress);
29
+ result.put("totalBytes", totalBytes);
30
+ return result;
31
+ }
32
+ }
@@ -0,0 +1,26 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.events;
2
+
3
+ import androidx.annotation.Nullable;
4
+ import com.getcapacitor.JSObject;
5
+ import org.json.JSONObject;
6
+
7
+ public class NextBundleSetEvent {
8
+
9
+ @Nullable
10
+ private final String bundleId;
11
+
12
+ public NextBundleSetEvent(@Nullable String bundleId) {
13
+ this.bundleId = bundleId;
14
+ }
15
+
16
+ @Nullable
17
+ public String getBundleId() {
18
+ return bundleId;
19
+ }
20
+
21
+ public JSObject toJSObject() {
22
+ JSObject result = new JSObject();
23
+ result.put("bundleId", bundleId == null ? JSONObject.NULL : bundleId);
24
+ return result;
25
+ }
26
+ }
@@ -0,0 +1,38 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.options;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import androidx.annotation.Nullable;
5
+ import com.getcapacitor.PluginCall;
6
+
7
+ public class FetchChannelsOptions {
8
+
9
+ @Nullable
10
+ private final Integer limit;
11
+
12
+ @Nullable
13
+ private final Integer offset;
14
+
15
+ @Nullable
16
+ private final String query;
17
+
18
+ public FetchChannelsOptions(@NonNull PluginCall call) {
19
+ this.limit = call.getInt("limit");
20
+ this.offset = call.getInt("offset");
21
+ this.query = call.getString("query");
22
+ }
23
+
24
+ @Nullable
25
+ public Integer getLimit() {
26
+ return limit;
27
+ }
28
+
29
+ @Nullable
30
+ public Integer getOffset() {
31
+ return offset;
32
+ }
33
+
34
+ @Nullable
35
+ public String getQuery() {
36
+ return query;
37
+ }
38
+ }
@@ -0,0 +1,19 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.options;
2
+
3
+ import androidx.annotation.Nullable;
4
+ import com.getcapacitor.PluginCall;
5
+
6
+ public class SetConfigOptions {
7
+
8
+ @Nullable
9
+ private final String appId;
10
+
11
+ public SetConfigOptions(PluginCall call) {
12
+ this.appId = call.getString("appId");
13
+ }
14
+
15
+ @Nullable
16
+ public String getAppId() {
17
+ return appId;
18
+ }
19
+ }
@@ -13,6 +13,10 @@ public class SyncOptions {
13
13
  this.channel = call.getString("channel", null);
14
14
  }
15
15
 
16
+ public SyncOptions(@Nullable String channel) {
17
+ this.channel = channel;
18
+ }
19
+
16
20
  @Nullable
17
21
  public String getChannel() {
18
22
  return channel;
@@ -0,0 +1,28 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.results;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSObject;
5
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
6
+
7
+ public class ChannelResult implements Result {
8
+
9
+ @NonNull
10
+ private final String id;
11
+
12
+ @NonNull
13
+ private final String name;
14
+
15
+ public ChannelResult(@NonNull String id, @NonNull String name) {
16
+ this.id = id;
17
+ this.name = name;
18
+ }
19
+
20
+ @NonNull
21
+ @Override
22
+ public JSObject toJSObject() {
23
+ JSObject result = new JSObject();
24
+ result.put("id", id);
25
+ result.put("name", name);
26
+ return result;
27
+ }
28
+ }
@@ -0,0 +1,28 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.results;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSArray;
5
+ import com.getcapacitor.JSObject;
6
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
7
+
8
+ public class FetchChannelsResult implements Result {
9
+
10
+ @NonNull
11
+ private final ChannelResult[] channels;
12
+
13
+ public FetchChannelsResult(@NonNull ChannelResult[] channels) {
14
+ this.channels = channels;
15
+ }
16
+
17
+ @NonNull
18
+ @Override
19
+ public JSObject toJSObject() {
20
+ JSObject result = new JSObject();
21
+ JSArray channelsArray = new JSArray();
22
+ for (ChannelResult channel : channels) {
23
+ channelsArray.put(channel.toJSObject());
24
+ }
25
+ result.put("channels", channelsArray);
26
+ return result;
27
+ }
28
+ }
@@ -18,6 +18,9 @@ public class FetchLatestBundleResult implements Result {
18
18
  @Nullable
19
19
  private final String checksum;
20
20
 
21
+ @Nullable
22
+ private final JSONObject customProperties;
23
+
21
24
  @Nullable
22
25
  private final String downloadUrl;
23
26
 
@@ -28,12 +31,14 @@ public class FetchLatestBundleResult implements Result {
28
31
  @Nullable ArtifactType artifactType,
29
32
  @Nullable String bundleId,
30
33
  @Nullable String checksum,
34
+ @Nullable JSONObject customProperties,
31
35
  @Nullable String downloadUrl,
32
36
  @Nullable String signature
33
37
  ) {
34
38
  this.artifactType = artifactType;
35
39
  this.bundleId = bundleId;
36
40
  this.checksum = checksum;
41
+ this.customProperties = customProperties;
37
42
  this.downloadUrl = downloadUrl;
38
43
  this.signature = signature;
39
44
  }
@@ -50,6 +55,9 @@ public class FetchLatestBundleResult implements Result {
50
55
  if (checksum != null) {
51
56
  result.put("checksum", checksum);
52
57
  }
58
+ if (customProperties != null) {
59
+ result.put("customProperties", customProperties);
60
+ }
53
61
  if (downloadUrl != null) {
54
62
  result.put("downloadUrl", downloadUrl);
55
63
  }
@@ -0,0 +1,27 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.results;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSArray;
5
+ import com.getcapacitor.JSObject;
6
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
7
+
8
+ public class GetBlockedBundlesResult implements Result {
9
+
10
+ @NonNull
11
+ private String[] bundleIds;
12
+
13
+ public GetBlockedBundlesResult(@NonNull String[] bundleIds) {
14
+ this.bundleIds = bundleIds;
15
+ }
16
+
17
+ public JSObject toJSObject() {
18
+ JSArray bundleIdsResult = new JSArray();
19
+ for (String bundleId : bundleIds) {
20
+ bundleIdsResult.put(bundleId);
21
+ }
22
+
23
+ JSObject result = new JSObject();
24
+ result.put("bundleIds", bundleIdsResult);
25
+ return result;
26
+ }
27
+ }
@@ -0,0 +1,40 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.results;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import androidx.annotation.Nullable;
5
+ import com.getcapacitor.JSObject;
6
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
7
+ import org.json.JSONObject;
8
+
9
+ public class GetConfigResult implements Result {
10
+
11
+ @Nullable
12
+ private final String appId;
13
+
14
+ @NonNull
15
+ private final String autoUpdateStrategy;
16
+
17
+ public GetConfigResult(@Nullable String appId, @NonNull String autoUpdateStrategy) {
18
+ this.appId = appId;
19
+ this.autoUpdateStrategy = autoUpdateStrategy;
20
+ }
21
+
22
+ @Nullable
23
+ public String getAppId() {
24
+ return appId;
25
+ }
26
+
27
+ @NonNull
28
+ public String getAutoUpdateStrategy() {
29
+ return autoUpdateStrategy;
30
+ }
31
+
32
+ @Override
33
+ @NonNull
34
+ public JSObject toJSObject() {
35
+ JSObject result = new JSObject();
36
+ result.put("appId", appId == null ? JSONObject.NULL : appId);
37
+ result.put("autoUpdateStrategy", autoUpdateStrategy);
38
+ return result;
39
+ }
40
+ }
@@ -0,0 +1,27 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.results;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSArray;
5
+ import com.getcapacitor.JSObject;
6
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
7
+
8
+ public class GetDownloadedBundlesResult implements Result {
9
+
10
+ @NonNull
11
+ private String[] bundleIds;
12
+
13
+ public GetDownloadedBundlesResult(@NonNull String[] bundleIds) {
14
+ this.bundleIds = bundleIds;
15
+ }
16
+
17
+ public JSObject toJSObject() {
18
+ JSArray bundleIdsResult = new JSArray();
19
+ for (String bundleId : bundleIds) {
20
+ bundleIdsResult.put(bundleId);
21
+ }
22
+
23
+ JSObject result = new JSObject();
24
+ result.put("bundleIds", bundleIdsResult);
25
+ return result;
26
+ }
27
+ }
@@ -0,0 +1,26 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.results;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSObject;
5
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
6
+
7
+ public class IsSyncingResult implements Result {
8
+
9
+ private final boolean syncing;
10
+
11
+ public IsSyncingResult(boolean syncing) {
12
+ this.syncing = syncing;
13
+ }
14
+
15
+ public boolean getSyncing() {
16
+ return syncing;
17
+ }
18
+
19
+ @Override
20
+ @NonNull
21
+ public JSObject toJSObject() {
22
+ JSObject result = new JSObject();
23
+ result.put("syncing", syncing);
24
+ return result;
25
+ }
26
+ }
@@ -0,0 +1,32 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.classes.results;
2
+
3
+ import androidx.annotation.Nullable;
4
+ import com.getcapacitor.JSObject;
5
+ import io.capawesome.capacitorjs.plugins.liveupdate.LiveUpdate;
6
+ import io.capawesome.capacitorjs.plugins.liveupdate.interfaces.Result;
7
+ import org.json.JSONObject;
8
+
9
+ public class ReadyResult implements Result {
10
+
11
+ @Nullable
12
+ private String currentBundleId;
13
+
14
+ @Nullable
15
+ private String previousBundleId;
16
+
17
+ private boolean rollback;
18
+
19
+ public ReadyResult(@Nullable String currentBundleId, @Nullable String previousBundleId, boolean rollback) {
20
+ this.currentBundleId = currentBundleId;
21
+ this.previousBundleId = previousBundleId;
22
+ this.rollback = rollback;
23
+ }
24
+
25
+ public JSObject toJSObject() {
26
+ JSObject result = new JSObject();
27
+ result.put("currentBundleId", currentBundleId == null ? JSONObject.NULL : currentBundleId);
28
+ result.put("previousBundleId", previousBundleId == null ? JSONObject.NULL : previousBundleId);
29
+ result.put("rollback", rollback);
30
+ return result;
31
+ }
32
+ }
@@ -0,0 +1,5 @@
1
+ package io.capawesome.capacitorjs.plugins.liveupdate.interfaces;
2
+
3
+ public interface DownloadProgressCallback {
4
+ void onProgress(long downloadedBytes, long totalBytes);
5
+ }