@capgo/capacitor-updater 6.14.0 → 6.14.3
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 +11 -11
- package/android/src/main/java/ee/forgr/capacitor_updater/BundleInfo.java +134 -194
- package/android/src/main/java/ee/forgr/capacitor_updater/BundleStatus.java +23 -23
- package/android/src/main/java/ee/forgr/capacitor_updater/Callback.java +1 -1
- package/android/src/main/java/ee/forgr/capacitor_updater/CapacitorUpdater.java +960 -1165
- package/android/src/main/java/ee/forgr/capacitor_updater/CapacitorUpdaterPlugin.java +1259 -1629
- package/android/src/main/java/ee/forgr/capacitor_updater/CryptoCipher.java +161 -197
- package/android/src/main/java/ee/forgr/capacitor_updater/CryptoCipherV2.java +202 -256
- package/android/src/main/java/ee/forgr/capacitor_updater/DataManager.java +16 -16
- package/android/src/main/java/ee/forgr/capacitor_updater/DelayCondition.java +44 -48
- package/android/src/main/java/ee/forgr/capacitor_updater/DelayUntilNext.java +4 -4
- package/android/src/main/java/ee/forgr/capacitor_updater/DownloadService.java +378 -467
- package/android/src/main/java/ee/forgr/capacitor_updater/DownloadWorkerManager.java +71 -83
- package/android/src/main/java/ee/forgr/capacitor_updater/InternalUtils.java +19 -28
- package/dist/docs.json +17 -17
- package/dist/esm/definitions.d.ts +13 -13
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/web.d.ts +2 -2
- package/dist/esm/web.js +43 -43
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +43 -43
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +43 -43
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/CapacitorUpdater.swift +8 -8
- package/ios/Plugin/CapacitorUpdaterPlugin.swift +1 -1
- package/package.json +5 -7
package/README.md
CHANGED
|
@@ -736,7 +736,7 @@ Remove all listeners for this plugin.
|
|
|
736
736
|
### addListener('download', ...)
|
|
737
737
|
|
|
738
738
|
```typescript
|
|
739
|
-
addListener(eventName:
|
|
739
|
+
addListener(eventName: 'download', listenerFunc: (state: DownloadEvent) => void) => Promise<PluginListenerHandle>
|
|
740
740
|
```
|
|
741
741
|
|
|
742
742
|
Listen for bundle download event in the App. Fires once a download has started, during downloading and when finished.
|
|
@@ -756,7 +756,7 @@ Listen for bundle download event in the App. Fires once a download has started,
|
|
|
756
756
|
### addListener('noNeedUpdate', ...)
|
|
757
757
|
|
|
758
758
|
```typescript
|
|
759
|
-
addListener(eventName:
|
|
759
|
+
addListener(eventName: 'noNeedUpdate', listenerFunc: (state: NoNeedEvent) => void) => Promise<PluginListenerHandle>
|
|
760
760
|
```
|
|
761
761
|
|
|
762
762
|
Listen for no need to update event, useful when you want force check every time the app is launched
|
|
@@ -776,7 +776,7 @@ Listen for no need to update event, useful when you want force check every time
|
|
|
776
776
|
### addListener('updateAvailable', ...)
|
|
777
777
|
|
|
778
778
|
```typescript
|
|
779
|
-
addListener(eventName:
|
|
779
|
+
addListener(eventName: 'updateAvailable', listenerFunc: (state: UpdateAvailableEvent) => void) => Promise<PluginListenerHandle>
|
|
780
780
|
```
|
|
781
781
|
|
|
782
782
|
Listen for available update event, useful when you want to force check every time the app is launched
|
|
@@ -796,7 +796,7 @@ Listen for available update event, useful when you want to force check every tim
|
|
|
796
796
|
### addListener('downloadComplete', ...)
|
|
797
797
|
|
|
798
798
|
```typescript
|
|
799
|
-
addListener(eventName:
|
|
799
|
+
addListener(eventName: 'downloadComplete', listenerFunc: (state: DownloadCompleteEvent) => void) => Promise<PluginListenerHandle>
|
|
800
800
|
```
|
|
801
801
|
|
|
802
802
|
Listen for downloadComplete events.
|
|
@@ -816,7 +816,7 @@ Listen for downloadComplete events.
|
|
|
816
816
|
### addListener('majorAvailable', ...)
|
|
817
817
|
|
|
818
818
|
```typescript
|
|
819
|
-
addListener(eventName:
|
|
819
|
+
addListener(eventName: 'majorAvailable', listenerFunc: (state: MajorAvailableEvent) => void) => Promise<PluginListenerHandle>
|
|
820
820
|
```
|
|
821
821
|
|
|
822
822
|
Listen for Major update event in the App, let you know when major update is blocked by setting disableAutoUpdateBreaking
|
|
@@ -836,7 +836,7 @@ Listen for Major update event in the App, let you know when major update is bloc
|
|
|
836
836
|
### addListener('updateFailed', ...)
|
|
837
837
|
|
|
838
838
|
```typescript
|
|
839
|
-
addListener(eventName:
|
|
839
|
+
addListener(eventName: 'updateFailed', listenerFunc: (state: UpdateFailedEvent) => void) => Promise<PluginListenerHandle>
|
|
840
840
|
```
|
|
841
841
|
|
|
842
842
|
Listen for update fail event in the App, let you know when update has fail to install at next app start
|
|
@@ -856,7 +856,7 @@ Listen for update fail event in the App, let you know when update has fail to in
|
|
|
856
856
|
### addListener('downloadFailed', ...)
|
|
857
857
|
|
|
858
858
|
```typescript
|
|
859
|
-
addListener(eventName:
|
|
859
|
+
addListener(eventName: 'downloadFailed', listenerFunc: (state: DownloadFailedEvent) => void) => Promise<PluginListenerHandle>
|
|
860
860
|
```
|
|
861
861
|
|
|
862
862
|
Listen for download fail event in the App, let you know when a bundle download has failed
|
|
@@ -876,7 +876,7 @@ Listen for download fail event in the App, let you know when a bundle download h
|
|
|
876
876
|
### addListener('appReloaded', ...)
|
|
877
877
|
|
|
878
878
|
```typescript
|
|
879
|
-
addListener(eventName:
|
|
879
|
+
addListener(eventName: 'appReloaded', listenerFunc: () => void) => Promise<PluginListenerHandle>
|
|
880
880
|
```
|
|
881
881
|
|
|
882
882
|
Listen for reload event in the App, let you know when reload has happened
|
|
@@ -896,7 +896,7 @@ Listen for reload event in the App, let you know when reload has happened
|
|
|
896
896
|
### addListener('appReady', ...)
|
|
897
897
|
|
|
898
898
|
```typescript
|
|
899
|
-
addListener(eventName:
|
|
899
|
+
addListener(eventName: 'appReady', listenerFunc: (state: AppReadyEvent) => void) => Promise<PluginListenerHandle>
|
|
900
900
|
```
|
|
901
901
|
|
|
902
902
|
Listen for app ready event in the App, let you know when app is ready to use
|
|
@@ -1223,12 +1223,12 @@ Returns null if no next bundle is set.
|
|
|
1223
1223
|
|
|
1224
1224
|
#### BundleStatus
|
|
1225
1225
|
|
|
1226
|
-
<code>
|
|
1226
|
+
<code>'success' | 'error' | 'pending' | 'downloading'</code>
|
|
1227
1227
|
|
|
1228
1228
|
|
|
1229
1229
|
#### DelayUntilNext
|
|
1230
1230
|
|
|
1231
|
-
<code>
|
|
1231
|
+
<code>'background' | 'kill' | 'nativeVersion' | 'date'</code>
|
|
1232
1232
|
|
|
1233
1233
|
</docgen-api>
|
|
1234
1234
|
|
|
@@ -17,198 +17,138 @@ import org.json.JSONTokener;
|
|
|
17
17
|
|
|
18
18
|
public class BundleInfo {
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
)
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
return this.isBuiltin() ? BundleStatus.SUCCESS : this.status;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
public BundleInfo setStatus(BundleStatus status) {
|
|
158
|
-
return new BundleInfo(
|
|
159
|
-
this.id,
|
|
160
|
-
this.version,
|
|
161
|
-
status,
|
|
162
|
-
this.downloaded,
|
|
163
|
-
this.checksum
|
|
164
|
-
);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
public static BundleInfo fromJSON(final JSObject json) throws JSONException {
|
|
168
|
-
return BundleInfo.fromJSON(json.toString());
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
public static BundleInfo fromJSON(final String jsonString)
|
|
172
|
-
throws JSONException {
|
|
173
|
-
JSONObject json = new JSONObject(new JSONTokener(jsonString));
|
|
174
|
-
return new BundleInfo(
|
|
175
|
-
json.has("id") ? json.getString("id") : "",
|
|
176
|
-
json.has("version")
|
|
177
|
-
? json.getString("version")
|
|
178
|
-
: BundleInfo.VERSION_UNKNOWN,
|
|
179
|
-
json.has("status")
|
|
180
|
-
? BundleStatus.fromString(json.getString("status"))
|
|
181
|
-
: BundleStatus.PENDING,
|
|
182
|
-
json.has("downloaded") ? json.getString("downloaded") : "",
|
|
183
|
-
json.has("checksum") ? json.getString("checksum") : ""
|
|
184
|
-
);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
public JSObject toJSON() {
|
|
188
|
-
final JSObject result = new JSObject();
|
|
189
|
-
result.put("id", this.getId());
|
|
190
|
-
result.put("version", this.getVersionName());
|
|
191
|
-
result.put("downloaded", this.getDownloaded());
|
|
192
|
-
result.put("checksum", this.getChecksum());
|
|
193
|
-
result.put("status", this.getStatus());
|
|
194
|
-
return result;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
@Override
|
|
198
|
-
public boolean equals(final Object o) {
|
|
199
|
-
if (this == o) return true;
|
|
200
|
-
if (!(o instanceof BundleInfo)) return false;
|
|
201
|
-
final BundleInfo that = (BundleInfo) o;
|
|
202
|
-
return this.getId().equals(that.getId());
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
@Override
|
|
206
|
-
public int hashCode() {
|
|
207
|
-
return Objects.hash(this.version);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
@Override
|
|
211
|
-
public String toString() {
|
|
212
|
-
return this.toJSON().toString();
|
|
213
|
-
}
|
|
20
|
+
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
|
|
21
|
+
|
|
22
|
+
public static final String ID_BUILTIN = "builtin";
|
|
23
|
+
public static final String VERSION_UNKNOWN = "unknown";
|
|
24
|
+
public static final String DOWNLOADED_BUILTIN = "1970-01-01T00:00:00.000Z";
|
|
25
|
+
|
|
26
|
+
private final String downloaded;
|
|
27
|
+
private final String id;
|
|
28
|
+
private final String version;
|
|
29
|
+
private final String checksum;
|
|
30
|
+
private final BundleStatus status;
|
|
31
|
+
|
|
32
|
+
static {
|
|
33
|
+
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public BundleInfo(final BundleInfo source) {
|
|
37
|
+
this(source.id, source.version, source.status, source.downloaded, source.checksum);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public BundleInfo(final String id, final String version, final BundleStatus status, final Date downloaded, final String checksum) {
|
|
41
|
+
this(id, version, status, sdf.format(downloaded), checksum);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public BundleInfo(final String id, final String version, final BundleStatus status, final String downloaded, final String checksum) {
|
|
45
|
+
this.downloaded = downloaded.trim();
|
|
46
|
+
this.id = id;
|
|
47
|
+
this.version = version;
|
|
48
|
+
this.checksum = checksum;
|
|
49
|
+
this.status = status;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public Boolean isBuiltin() {
|
|
53
|
+
return ID_BUILTIN.equals(this.id);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public Boolean isUnknown() {
|
|
57
|
+
return VERSION_UNKNOWN.equals(this.id);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public Boolean isErrorStatus() {
|
|
61
|
+
return BundleStatus.ERROR == this.status;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
public Boolean isDeleted() {
|
|
65
|
+
return BundleStatus.DELETED == this.status;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public boolean isDownloaded() {
|
|
69
|
+
return (!this.isBuiltin() && this.downloaded != null && !this.downloaded.isEmpty() && !this.isDeleted());
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
public String getDownloaded() {
|
|
73
|
+
return this.isBuiltin() ? DOWNLOADED_BUILTIN : this.downloaded;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
public BundleInfo setDownloaded(Date downloaded) {
|
|
77
|
+
return new BundleInfo(this.id, this.version, this.status, downloaded, this.checksum);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
public String getChecksum() {
|
|
81
|
+
return this.isBuiltin() ? "" : this.checksum;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public BundleInfo setChecksum(String checksum) {
|
|
85
|
+
return new BundleInfo(this.id, this.version, this.status, this.downloaded, checksum);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
public String getId() {
|
|
89
|
+
return this.isBuiltin() ? ID_BUILTIN : this.id;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public BundleInfo setId(String id) {
|
|
93
|
+
return new BundleInfo(id, this.version, this.status, this.downloaded, this.checksum);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public String getVersionName() {
|
|
97
|
+
return this.version == null ? ID_BUILTIN : this.version;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
public BundleInfo setVersionName(String version) {
|
|
101
|
+
return new BundleInfo(this.id, version, this.status, this.downloaded, this.checksum);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public BundleStatus getStatus() {
|
|
105
|
+
return this.isBuiltin() ? BundleStatus.SUCCESS : this.status;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
public BundleInfo setStatus(BundleStatus status) {
|
|
109
|
+
return new BundleInfo(this.id, this.version, status, this.downloaded, this.checksum);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
public static BundleInfo fromJSON(final JSObject json) throws JSONException {
|
|
113
|
+
return BundleInfo.fromJSON(json.toString());
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
public static BundleInfo fromJSON(final String jsonString) throws JSONException {
|
|
117
|
+
JSONObject json = new JSONObject(new JSONTokener(jsonString));
|
|
118
|
+
return new BundleInfo(
|
|
119
|
+
json.has("id") ? json.getString("id") : "",
|
|
120
|
+
json.has("version") ? json.getString("version") : BundleInfo.VERSION_UNKNOWN,
|
|
121
|
+
json.has("status") ? BundleStatus.fromString(json.getString("status")) : BundleStatus.PENDING,
|
|
122
|
+
json.has("downloaded") ? json.getString("downloaded") : "",
|
|
123
|
+
json.has("checksum") ? json.getString("checksum") : ""
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
public JSObject toJSON() {
|
|
128
|
+
final JSObject result = new JSObject();
|
|
129
|
+
result.put("id", this.getId());
|
|
130
|
+
result.put("version", this.getVersionName());
|
|
131
|
+
result.put("downloaded", this.getDownloaded());
|
|
132
|
+
result.put("checksum", this.getChecksum());
|
|
133
|
+
result.put("status", this.getStatus());
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
@Override
|
|
138
|
+
public boolean equals(final Object o) {
|
|
139
|
+
if (this == o) return true;
|
|
140
|
+
if (!(o instanceof BundleInfo)) return false;
|
|
141
|
+
final BundleInfo that = (BundleInfo) o;
|
|
142
|
+
return this.getId().equals(that.getId());
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@Override
|
|
146
|
+
public int hashCode() {
|
|
147
|
+
return Objects.hash(this.version);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@Override
|
|
151
|
+
public String toString() {
|
|
152
|
+
return this.toJSON().toString();
|
|
153
|
+
}
|
|
214
154
|
}
|
|
@@ -10,35 +10,35 @@ import java.util.HashMap;
|
|
|
10
10
|
import java.util.Map;
|
|
11
11
|
|
|
12
12
|
public enum BundleStatus {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
SUCCESS("success"),
|
|
14
|
+
ERROR("error"),
|
|
15
|
+
PENDING("pending"),
|
|
16
|
+
DELETED("deleted"),
|
|
17
|
+
DOWNLOADING("downloading");
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
public final String label;
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
private static final Map<String, BundleStatus> BY_LABEL = new HashMap<>();
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
static {
|
|
24
|
+
for (final BundleStatus e : values()) {
|
|
25
|
+
BY_LABEL.put(e.label, e);
|
|
26
|
+
}
|
|
26
27
|
}
|
|
27
|
-
}
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
BundleStatus(final String label) {
|
|
30
|
+
this.label = label;
|
|
31
|
+
}
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
@Override
|
|
34
|
+
public String toString() {
|
|
35
|
+
return this.label;
|
|
36
|
+
}
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
public static BundleStatus fromString(final String status) {
|
|
39
|
+
if (status == null || status.isEmpty()) {
|
|
40
|
+
return BundleStatus.PENDING;
|
|
41
|
+
}
|
|
42
|
+
return BundleStatus.BY_LABEL.get(status);
|
|
41
43
|
}
|
|
42
|
-
return BundleStatus.BY_LABEL.get(status);
|
|
43
|
-
}
|
|
44
44
|
}
|