@capawesome/capacitor-live-update 7.2.2 → 7.4.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 (37) hide show
  1. package/README.md +284 -26
  2. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdate.java +623 -220
  3. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdateConfig.java +23 -0
  4. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdateHttpClient.java +33 -5
  5. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdatePlugin.java +185 -15
  6. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/LiveUpdatePreferences.java +42 -0
  7. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/api/GetLatestBundleResponse.java +2 -2
  8. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/events/NextBundleSetEvent.java +26 -0
  9. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/options/SetConfigOptions.java +19 -0
  10. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/options/SyncOptions.java +4 -0
  11. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/GetBlockedBundlesResult.java +27 -0
  12. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/GetConfigResult.java +40 -0
  13. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/GetDownloadedBundlesResult.java +27 -0
  14. package/android/src/main/java/io/capawesome/capacitorjs/plugins/liveupdate/classes/results/IsSyncingResult.java +26 -0
  15. package/dist/docs.json +428 -1
  16. package/dist/esm/definitions.d.ts +230 -2
  17. package/dist/esm/definitions.js.map +1 -1
  18. package/dist/esm/web.d.ts +8 -1
  19. package/dist/esm/web.js +21 -0
  20. package/dist/esm/web.js.map +1 -1
  21. package/dist/plugin.cjs.js +21 -0
  22. package/dist/plugin.cjs.js.map +1 -1
  23. package/dist/plugin.js +21 -0
  24. package/dist/plugin.js.map +1 -1
  25. package/ios/Plugin/Classes/Events/NextBundleSetEvent.swift +16 -0
  26. package/ios/Plugin/Classes/Options/SetConfigOptions.swift +14 -0
  27. package/ios/Plugin/Classes/Options/SyncOptions.swift +4 -0
  28. package/ios/Plugin/Classes/Results/GetBlockedBundlesResult.swift +16 -0
  29. package/ios/Plugin/Classes/Results/GetConfigResult.swift +19 -0
  30. package/ios/Plugin/Classes/Results/GetDownloadedBundlesResult.swift +16 -0
  31. package/ios/Plugin/Classes/Results/IsSyncingResult.swift +16 -0
  32. package/ios/Plugin/LiveUpdate.swift +178 -4
  33. package/ios/Plugin/LiveUpdateConfig.swift +2 -0
  34. package/ios/Plugin/LiveUpdateHttpClient.swift +4 -2
  35. package/ios/Plugin/LiveUpdatePlugin.swift +106 -11
  36. package/ios/Plugin/LiveUpdatePreferences.swift +56 -0
  37. package/package.json +1 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@ Capacitor plugin that allows you to update your app remotely in real-time withou
4
4
 
5
5
  <div class="capawesome-z29o10a">
6
6
  <a href="https://cloud.capawesome.io/" target="_blank">
7
- <img alt="Deliver Live Updates to your Capacitor app with Capawesome Cloud" src="https://cloud.capawesome.io/assets/banners/cloud-deploy-real-time-app-updates.png?t=1" />
7
+ <img alt="Deliver Live Updates to your Capacitor app with Capawesome Cloud" src="https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1" />
8
8
  </a>
9
9
  </div>
10
10
 
@@ -17,16 +17,24 @@ We are proud to offer one of the most complete and feature-rich Capacitor plugin
17
17
  - 📦 **Bundle Management**: Download, set, and delete bundles.
18
18
  - ☁️ **Cloud Support**: Use the [Capawesome Cloud](https://cloud.capawesome.io/) to manage your app updates.
19
19
  - 📺 **Channel Support**: Set a channel for the app to manage different versions.
20
- - 🔄 **Auto Update**: Automatically download and set the latest bundle for the app.
20
+ - 🔄 **Auto Update**: Automatically download and set the latest bundle for the app with configurable background update strategy.
21
21
  - 🛟 **Rollback**: Reset the app to the default bundle if an incompatible bundle has been set.
22
22
  - 🚀 **Rollout**: Gradually roll out new bundles to gather valuable feedback.
23
23
  - 🔁 **Delta Updates**: Make your updates faster by only downloading changed files.
24
24
  - 🔒 **Security**: Verify the authenticity and integrity of the bundle using a public key.
25
- - ⚔️ **Battle-Tested**: Used in more than 500 projects to update apps on more than 10,000,000 devices.
25
+ - ⚔️ **Battle-Tested**: Used in more than 1,000 projects to update apps on more than 20,000,000 devices.
26
26
  - 🌐 **Open Source**: Licensed under the MIT License.
27
27
 
28
28
  Missing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!
29
29
 
30
+ ## Compatibility
31
+
32
+ | Plugin Version | Capacitor Version | Status |
33
+ | -------------- | ----------------- | -------------- |
34
+ | 7.x.x | >=7.x.x | Active support |
35
+ | 6.x.x | 6.x.x | Maintenance |
36
+ | 5.x.x | 5.x.x | Deprecated |
37
+
30
38
  ## Guides
31
39
 
32
40
  - [Announcing the Capacitor Live Update Plugin](https://capawesome.io/blog/announcing-the-capacitor-live-update-plugin/)
@@ -89,15 +97,17 @@ We recommend to declare [`CA92.1`](https://developer.apple.com/documentation/bun
89
97
  <docgen-config>
90
98
  <!--Update the source file JSDoc comments and rerun docgen to update the docs below-->
91
99
 
92
- | Prop | Type | Description | Default | Since |
93
- | ----------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ----- |
94
- | **`appId`** | <code>string</code> | The app ID is used to identify the app when using [Capawesome Cloud](https://capawesome.io/cloud/). This is **NOT** the same as the app identifier (e.g. `com.example.app`). This is a unique identifier generated by Capawesome Cloud (e.g. `6e351b4f-69a7-415e-a057-4567df7ffe94`). | | 5.0.0 |
95
- | **`autoDeleteBundles`** | <code>boolean</code> | Whether or not to automatically delete unused bundles. When enabled, the plugin will automatically delete unused bundles after calling `ready()`. | <code>false</code> | 5.0.0 |
96
- | **`defaultChannel`** | <code>string</code> | The default channel of the app. | | 6.3.0 |
97
- | **`httpTimeout`** | <code>number</code> | The timeout in milliseconds for HTTP requests. | <code>60000</code> | 6.4.0 |
98
- | **`publicKey`** | <code>string</code> | The public key to verify the integrity of the bundle. The public key must be a PEM-encoded RSA public key. | | 6.1.0 |
99
- | **`readyTimeout`** | <code>number</code> | The timeout in milliseconds to wait for the app to be ready before resetting to the default bundle. It is strongly **recommended** to configure this option so that the plugin can roll back to the default bundle in case of problems. If configured, the plugin will wait for the app to call the `ready()` method before resetting to the default bundle. Set to `0` to disable the timeout. | <code>0</code> | 5.0.0 |
100
- | **`serverDomain`** | <code>string</code> | The API domain of the [Capawesome Cloud](https://cloud.capawesome.io) server **without** scheme or path. | <code>'api.cloud.capawesome.io'</code> | 7.0.0 |
100
+ | Prop | Type | Description | Default | Since |
101
+ | -------------------------------- | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | ----- |
102
+ | **`appId`** | <code>string</code> | The app ID is used to identify the app when using [Capawesome Cloud](https://capawesome.io/cloud/). This is **NOT** the same as the app identifier (e.g. `com.example.app`). This is a unique identifier generated by Capawesome Cloud (e.g. `6e351b4f-69a7-415e-a057-4567df7ffe94`). | | 5.0.0 |
103
+ | **`autoBlockRolledBackBundles`** | <code>boolean</code> | Whether or not to automatically block bundles that have been rolled back. When enabled, the plugin will automatically block bundles that caused a rollback (up to 100 bundles). When the limit is reached, the oldest blocked bundle is unblocked. Blocked bundles will be skipped in future sync operations. **Attention**: This option has no effect if `readyTimeout` is set to `0`. Only available on Android and iOS. | <code>false</code> | 7.3.0 |
104
+ | **`autoDeleteBundles`** | <code>boolean</code> | Whether or not to automatically delete unused bundles. When enabled, the plugin will automatically delete unused bundles after calling `ready()`. | <code>false</code> | 5.0.0 |
105
+ | **`autoUpdateStrategy`** | <code>'none' \| 'background'</code> | The auto-update strategy for live updates. - `none`: Live updates will not be applied automatically. - `background`: Live updates will be automatically downloaded and applied in the background at app startup and when the app resumes (if the last check was more than 15 minutes ago). Only available on Android and iOS. | <code>'none'</code> | 7.3.0 |
106
+ | **`defaultChannel`** | <code>string</code> | The default channel of the app. | | 6.3.0 |
107
+ | **`httpTimeout`** | <code>number</code> | The timeout in milliseconds for HTTP requests. | <code>60000</code> | 6.4.0 |
108
+ | **`publicKey`** | <code>string</code> | The public key to verify the integrity of the bundle. The public key must be a PEM-encoded RSA public key. | | 6.1.0 |
109
+ | **`readyTimeout`** | <code>number</code> | The timeout in milliseconds to wait for the app to be ready before resetting to the default bundle. It is strongly **recommended** to configure this option (e.g. `10000` ms) so that the plugin can roll back to the default bundle in case of problems. If configured, the plugin will wait for the app to call the `ready()` method before resetting to the default bundle. Set to `0` to disable the timeout. | <code>0</code> | 5.0.0 |
110
+ | **`serverDomain`** | <code>string</code> | The API domain of the [Capawesome Cloud](https://cloud.capawesome.io) server **without** scheme or path. | <code>'api.cloud.capawesome.io'</code> | 7.0.0 |
101
111
 
102
112
  ### Examples
103
113
 
@@ -108,7 +118,9 @@ In `capacitor.config.json`:
108
118
  "plugins": {
109
119
  "LiveUpdate": {
110
120
  "appId": '6e351b4f-69a7-415e-a057-4567df7ffe94',
121
+ "autoBlockRolledBackBundles": undefined,
111
122
  "autoDeleteBundles": undefined,
123
+ "autoUpdateStrategy": 'background',
112
124
  "defaultChannel": 'production',
113
125
  "httpTimeout": undefined,
114
126
  "publicKey": '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDodf1SD0OOn6hIlDuKBza0Ed0OqtwyVJwiyjmE9BJaZ7y8ZUfcF+SKmd0l2cDPM45XIg2tAFux5n29uoKyHwSt+6tCi5CJA5Z1/1eZruRRqABLonV77KS3HUtvOgqRLDnKSV89dYZkM++NwmzOPgIF422mvc+VukcVOBfc8/AHQIDAQAB-----END PUBLIC KEY-----',
@@ -130,7 +142,9 @@ const config: CapacitorConfig = {
130
142
  plugins: {
131
143
  LiveUpdate: {
132
144
  appId: '6e351b4f-69a7-415e-a057-4567df7ffe94',
145
+ autoBlockRolledBackBundles: undefined,
133
146
  autoDeleteBundles: undefined,
147
+ autoUpdateStrategy: 'background',
134
148
  defaultChannel: 'production',
135
149
  httpTimeout: undefined,
136
150
  publicKey: '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDDodf1SD0OOn6hIlDuKBza0Ed0OqtwyVJwiyjmE9BJaZ7y8ZUfcF+SKmd0l2cDPM45XIg2tAFux5n29uoKyHwSt+6tCi5CJA5Z1/1eZruRRqABLonV77KS3HUtvOgqRLDnKSV89dYZkM++NwmzOPgIF422mvc+VukcVOBfc8/AHQIDAQAB-----END PUBLIC KEY-----',
@@ -145,20 +159,6 @@ export default config;
145
159
 
146
160
  </docgen-config>
147
161
 
148
- ## Starter templates
149
-
150
- The following starter templates are available:
151
-
152
- - [Ionstarter Angular Firebase](https://ionstarter.dev/)
153
- - [Ionstarter Angular SQLite](https://ionstarter.dev/)
154
-
155
- ## Guides
156
-
157
- - [Announcing the Capacitor Live Update Plugin](https://capawesome.io/blog/announcing-the-capacitor-live-update-plugin/)
158
- - [How Live Updates for Capacitor work](https://capawesome.io/blog/how-live-updates-for-capacitor-work/)
159
- - [How to restrict Capacitor Live Updates to Native Versions](https://capawesome.io/blog/how-to-restrict-capacitor-live-updates-to-native-versions/)
160
- - [How to gradually roll out Capacitor Live Updates](https://capawesome.io/blog/how-to-gradually-roll-out-capacitor-live-updates/)
161
-
162
162
  ## Usage
163
163
 
164
164
  ```typescript
@@ -273,25 +273,34 @@ const isNewBundleAvailable = async () => {
273
273
 
274
274
  <docgen-index>
275
275
 
276
+ * [`clearBlockedBundles()`](#clearblockedbundles)
276
277
  * [`deleteBundle(...)`](#deletebundle)
277
278
  * [`downloadBundle(...)`](#downloadbundle)
278
279
  * [`fetchLatestBundle(...)`](#fetchlatestbundle)
280
+ * [`getBlockedBundles()`](#getblockedbundles)
279
281
  * [`getBundles()`](#getbundles)
280
282
  * [`getChannel()`](#getchannel)
283
+ * [`getConfig()`](#getconfig)
284
+ * [`getDownloadedBundles()`](#getdownloadedbundles)
281
285
  * [`getCurrentBundle()`](#getcurrentbundle)
282
286
  * [`getCustomId()`](#getcustomid)
283
287
  * [`getDeviceId()`](#getdeviceid)
288
+ * [`isSyncing()`](#issyncing)
284
289
  * [`getNextBundle()`](#getnextbundle)
285
290
  * [`getVersionCode()`](#getversioncode)
286
291
  * [`getVersionName()`](#getversionname)
287
292
  * [`ready()`](#ready)
288
293
  * [`reload()`](#reload)
289
294
  * [`reset()`](#reset)
295
+ * [`resetConfig()`](#resetconfig)
290
296
  * [`setChannel(...)`](#setchannel)
297
+ * [`setConfig(...)`](#setconfig)
291
298
  * [`setCustomId(...)`](#setcustomid)
292
299
  * [`setNextBundle(...)`](#setnextbundle)
293
300
  * [`sync(...)`](#sync)
294
301
  * [`addListener('downloadBundleProgress', ...)`](#addlistenerdownloadbundleprogress-)
302
+ * [`addListener('nextBundleSet', ...)`](#addlistenernextbundleset-)
303
+ * [`addListener('reloaded', ...)`](#addlistenerreloaded-)
295
304
  * [`removeAllListeners()`](#removealllisteners)
296
305
  * [Interfaces](#interfaces)
297
306
  * [Type Aliases](#type-aliases)
@@ -301,6 +310,24 @@ const isNewBundleAvailable = async () => {
301
310
  <docgen-api>
302
311
  <!--Update the source file JSDoc comments and rerun docgen to update the docs below-->
303
312
 
313
+ ### clearBlockedBundles()
314
+
315
+ ```typescript
316
+ clearBlockedBundles() => Promise<void>
317
+ ```
318
+
319
+ Clear all blocked bundles from the blocked list.
320
+
321
+ This removes all bundle identifiers that were automatically blocked
322
+ due to rollbacks when `autoBlockRolledBackBundles` is enabled.
323
+
324
+ Only available on Android and iOS.
325
+
326
+ **Since:** 7.4.0
327
+
328
+ --------------------
329
+
330
+
304
331
  ### deleteBundle(...)
305
332
 
306
333
  ```typescript
@@ -360,6 +387,26 @@ Only available on Android and iOS.
360
387
  --------------------
361
388
 
362
389
 
390
+ ### getBlockedBundles()
391
+
392
+ ```typescript
393
+ getBlockedBundles() => Promise<GetBlockedBundlesResult>
394
+ ```
395
+
396
+ Get all blocked bundle identifiers.
397
+
398
+ Returns the list of bundle identifiers that were automatically blocked
399
+ due to rollbacks when `autoBlockRolledBackBundles` is enabled.
400
+
401
+ Only available on Android and iOS.
402
+
403
+ **Returns:** <code>Promise&lt;<a href="#getblockedbundlesresult">GetBlockedBundlesResult</a>&gt;</code>
404
+
405
+ **Since:** 7.4.0
406
+
407
+ --------------------
408
+
409
+
363
410
  ### getBundles()
364
411
 
365
412
  ```typescript
@@ -394,6 +441,43 @@ Only available on Android and iOS.
394
441
  --------------------
395
442
 
396
443
 
444
+ ### getConfig()
445
+
446
+ ```typescript
447
+ getConfig() => Promise<GetConfigResult>
448
+ ```
449
+
450
+ Get the runtime configuration.
451
+
452
+ Returns the current plugin configuration including any runtime
453
+ overrides set via `setConfig()`.
454
+
455
+ Only available on Android and iOS.
456
+
457
+ **Returns:** <code>Promise&lt;<a href="#getconfigresult">GetConfigResult</a>&gt;</code>
458
+
459
+ **Since:** 7.4.0
460
+
461
+ --------------------
462
+
463
+
464
+ ### getDownloadedBundles()
465
+
466
+ ```typescript
467
+ getDownloadedBundles() => Promise<GetDownloadedBundlesResult>
468
+ ```
469
+
470
+ Get all identifiers of bundles that have been downloaded.
471
+
472
+ Only available on Android and iOS.
473
+
474
+ **Returns:** <code>Promise&lt;<a href="#getdownloadedbundlesresult">GetDownloadedBundlesResult</a>&gt;</code>
475
+
476
+ **Since:** 7.4.0
477
+
478
+ --------------------
479
+
480
+
397
481
  ### getCurrentBundle()
398
482
 
399
483
  ```typescript
@@ -446,6 +530,23 @@ Only available on Android and iOS.
446
530
  --------------------
447
531
 
448
532
 
533
+ ### isSyncing()
534
+
535
+ ```typescript
536
+ isSyncing() => Promise<IsSyncingResult>
537
+ ```
538
+
539
+ Check whether a sync operation is currently in progress.
540
+
541
+ Only available on Android and iOS.
542
+
543
+ **Returns:** <code>Promise&lt;<a href="#issyncingresult">IsSyncingResult</a>&gt;</code>
544
+
545
+ **Since:** 7.4.0
546
+
547
+ --------------------
548
+
549
+
449
550
  ### getNextBundle()
450
551
 
451
552
  ```typescript
@@ -557,6 +658,24 @@ Only available on Android and iOS.
557
658
  --------------------
558
659
 
559
660
 
661
+ ### resetConfig()
662
+
663
+ ```typescript
664
+ resetConfig() => Promise<void>
665
+ ```
666
+
667
+ Reset the runtime configuration to the values from the Capacitor config file.
668
+
669
+ This clears any runtime configuration set via `setConfig()`.
670
+ The changes take effect immediately.
671
+
672
+ Only available on Android and iOS.
673
+
674
+ **Since:** 7.4.0
675
+
676
+ --------------------
677
+
678
+
560
679
  ### setChannel(...)
561
680
 
562
681
  ```typescript
@@ -576,6 +695,32 @@ Only available on Android and iOS.
576
695
  --------------------
577
696
 
578
697
 
698
+ ### setConfig(...)
699
+
700
+ ```typescript
701
+ setConfig(options: SetConfigOptions) => Promise<void>
702
+ ```
703
+
704
+ Set the runtime configuration.
705
+
706
+ This allows updating plugin configuration options at runtime.
707
+ The changes are persisted across app restarts and take effect immediately.
708
+
709
+ **Important:** Runtime configuration is automatically reset to default values
710
+ whenever the native app is updated to a new version. This ensures that
711
+ configuration from previous versions doesn't persist after an app update.
712
+
713
+ Only available on Android and iOS.
714
+
715
+ | Param | Type |
716
+ | ------------- | ------------------------------------------------------------- |
717
+ | **`options`** | <code><a href="#setconfigoptions">SetConfigOptions</a></code> |
718
+
719
+ **Since:** 7.4.0
720
+
721
+ --------------------
722
+
723
+
579
724
  ### setCustomId(...)
580
725
 
581
726
  ```typescript
@@ -661,6 +806,60 @@ Only available on Android and iOS.
661
806
  --------------------
662
807
 
663
808
 
809
+ ### addListener('nextBundleSet', ...)
810
+
811
+ ```typescript
812
+ addListener(eventName: 'nextBundleSet', listenerFunc: NextBundleSetListener) => Promise<PluginListenerHandle>
813
+ ```
814
+
815
+ Listen for when a bundle is set as the next bundle.
816
+
817
+ This event is triggered whenever a bundle is set to be used on the next app restart,
818
+ either through automatic updates or manual calls to `setNextBundle()`.
819
+
820
+ Only available on Android and iOS.
821
+
822
+ | Param | Type |
823
+ | ------------------ | ----------------------------------------------------------------------- |
824
+ | **`eventName`** | <code>'nextBundleSet'</code> |
825
+ | **`listenerFunc`** | <code><a href="#nextbundlesetlistener">NextBundleSetListener</a></code> |
826
+
827
+ **Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>
828
+
829
+ **Since:** 7.3.0
830
+
831
+ --------------------
832
+
833
+
834
+ ### addListener('reloaded', ...)
835
+
836
+ ```typescript
837
+ addListener(eventName: 'reloaded', listenerFunc: ReloadedListener) => Promise<PluginListenerHandle>
838
+ ```
839
+
840
+ Listen for when the app is reloaded.
841
+
842
+ This event is triggered after the `reload()` method is called
843
+ and the app has been reloaded.
844
+
845
+ **Note:** To verify whether an update was successfully applied after a reload,
846
+ use the `ready()` method instead. The `ready()` method provides detailed information
847
+ about the current bundle, previous bundle, and whether a rollback occurred.
848
+
849
+ Only available on Android and iOS.
850
+
851
+ | Param | Type |
852
+ | ------------------ | ------------------------------------------------------------- |
853
+ | **`eventName`** | <code>'reloaded'</code> |
854
+ | **`listenerFunc`** | <code><a href="#reloadedlistener">ReloadedListener</a></code> |
855
+
856
+ **Returns:** <code>Promise&lt;<a href="#pluginlistenerhandle">PluginListenerHandle</a>&gt;</code>
857
+
858
+ **Since:** 7.4.0
859
+
860
+ --------------------
861
+
862
+
664
863
  ### removeAllListeners()
665
864
 
666
865
  ```typescript
@@ -714,6 +913,13 @@ Remove all listeners for this plugin.
714
913
  | **`channel`** | <code>string</code> | The name of the channel where the latest bundle is fetched from. | 6.7.0 |
715
914
 
716
915
 
916
+ #### GetBlockedBundlesResult
917
+
918
+ | Prop | Type | Description | Since |
919
+ | --------------- | --------------------- | ------------------------------------------------------ | ----- |
920
+ | **`bundleIds`** | <code>string[]</code> | An array of unique identifiers of all blocked bundles. | 7.4.0 |
921
+
922
+
717
923
  #### GetBundlesResult
718
924
 
719
925
  | Prop | Type | Description | Since |
@@ -728,6 +934,21 @@ Remove all listeners for this plugin.
728
934
  | **`channel`** | <code>string \| null</code> | The channel name. If `null`, the app is using the default channel. | 5.0.0 |
729
935
 
730
936
 
937
+ #### GetConfigResult
938
+
939
+ | Prop | Type | Description | Since |
940
+ | ------------------------ | ----------------------------------- | ------------------------------------------------------------------------ | ----- |
941
+ | **`appId`** | <code>string \| null</code> | The app ID used to identify the app. If `null`, no app ID is configured. | 7.4.0 |
942
+ | **`autoUpdateStrategy`** | <code>'none' \| 'background'</code> | The auto-update strategy for live updates. | 7.4.0 |
943
+
944
+
945
+ #### GetDownloadedBundlesResult
946
+
947
+ | Prop | Type | Description | Since |
948
+ | --------------- | --------------------- | --------------------------------------------------------- | ----- |
949
+ | **`bundleIds`** | <code>string[]</code> | An array of unique identifiers of all downloaded bundles. | 7.4.0 |
950
+
951
+
731
952
  #### GetCurrentBundleResult
732
953
 
733
954
  | Prop | Type | Description | Since |
@@ -749,6 +970,13 @@ Remove all listeners for this plugin.
749
970
  | **`deviceId`** | <code>string</code> | The unique identifier of the device. On iOS, [`identifierForVendor`](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor) is used. The value of this property is the same for apps that come from the same vendor running on the same device. | 5.0.0 |
750
971
 
751
972
 
973
+ #### IsSyncingResult
974
+
975
+ | Prop | Type | Description | Since |
976
+ | ------------- | -------------------- | -------------------------------------------------- | ----- |
977
+ | **`syncing`** | <code>boolean</code> | Whether a sync operation is currently in progress. | 7.4.0 |
978
+
979
+
752
980
  #### GetNextBundleResult
753
981
 
754
982
  | Prop | Type | Description | Since |
@@ -786,6 +1014,13 @@ Remove all listeners for this plugin.
786
1014
  | **`channel`** | <code>string \| null</code> | The channel name. Set `null` to remove the channel. | 5.0.0 |
787
1015
 
788
1016
 
1017
+ #### SetConfigOptions
1018
+
1019
+ | Prop | Type | Description | Since |
1020
+ | ----------- | --------------------------- | ----------------------------------------------------------------------------------------------------- | ----- |
1021
+ | **`appId`** | <code>string \| null</code> | The app ID used to identify the app. Set `null` to reset to the value from the Capacitor config file. | 7.4.0 |
1022
+
1023
+
789
1024
  #### SetCustomIdOptions
790
1025
 
791
1026
  | Prop | Type | Description | Since |
@@ -833,6 +1068,15 @@ Event that is triggered when the download progress of a bundle changes.
833
1068
  | **`totalBytes`** | <code>number</code> | The total number of bytes to download. | 7.0.0 |
834
1069
 
835
1070
 
1071
+ #### NextBundleSetEvent
1072
+
1073
+ Event that is triggered when a bundle is set as the next bundle.
1074
+
1075
+ | Prop | Type | Description | Since |
1076
+ | -------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------- | ----- |
1077
+ | **`bundleId`** | <code>string \| null</code> | The unique identifier of the bundle that is set as the next bundle. If `null`, the default bundle will be used. | 7.3.0 |
1078
+
1079
+
836
1080
  ### Type Aliases
837
1081
 
838
1082
 
@@ -842,6 +1086,20 @@ Listener for the download progress of a bundle.
842
1086
 
843
1087
  <code>(event: <a href="#downloadbundleprogressevent">DownloadBundleProgressEvent</a>): void</code>
844
1088
 
1089
+
1090
+ #### NextBundleSetListener
1091
+
1092
+ Listener for when a bundle is set as the next bundle.
1093
+
1094
+ <code>(event: <a href="#nextbundlesetevent">NextBundleSetEvent</a>): void</code>
1095
+
1096
+
1097
+ #### ReloadedListener
1098
+
1099
+ Listener for when the app is reloaded.
1100
+
1101
+ <code>(): void</code>
1102
+
845
1103
  </docgen-api>
846
1104
 
847
1105
  ## Testing