expo-updates 57.0.8 → 57.0.9

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/CHANGELOG.md CHANGED
@@ -10,6 +10,12 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 57.0.9 — 2026-07-22
14
+
15
+ ### 🐛 Bug fixes
16
+
17
+ - Fix `isUpdatePending` incorrectly becoming `true` after a fetch or check that finds no new update to download. ([#47830](https://github.com/expo/expo/pull/47830) by [@kudo](https://github.com/kudo))
18
+
13
19
  ## 57.0.8 — 2026-07-17
14
20
 
15
21
  _This version does not introduce any user-facing changes._
@@ -42,7 +42,7 @@ expoModule {
42
42
  }
43
43
 
44
44
  group = 'host.exp.exponent'
45
- version = '57.0.8'
45
+ version = '57.0.9'
46
46
 
47
47
  // Utility method to derive boolean values from the environment or from Java properties,
48
48
  // and return them as strings to be used in BuildConfig fields
@@ -89,7 +89,7 @@ android {
89
89
  namespace "expo.modules.updates"
90
90
  defaultConfig {
91
91
  versionCode 31
92
- versionName '57.0.8'
92
+ versionName '57.0.9'
93
93
  consumerProguardFiles("proguard-rules.pro")
94
94
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
95
95
 
@@ -21,7 +21,10 @@ sealed class UpdatesStateEvent(val type: UpdatesStateEventType) {
21
21
  }
22
22
  class Download : UpdatesStateEvent(UpdatesStateEventType.Download)
23
23
  class DownloadProgress(val progress: Double) : UpdatesStateEvent(UpdatesStateEventType.DownloadProgress)
24
+
25
+ // download finished with no update available, so nothing is pending
24
26
  class DownloadComplete : UpdatesStateEvent(UpdatesStateEventType.DownloadComplete)
27
+
25
28
  class DownloadCompleteWithUpdate(val manifest: JSONObject) : UpdatesStateEvent(UpdatesStateEventType.DownloadComplete)
26
29
  class DownloadCompleteWithRollback : UpdatesStateEvent(UpdatesStateEventType.DownloadComplete)
27
30
  class DownloadError(private val errorMessage: String) : UpdatesStateEvent(UpdatesStateEventType.DownloadError) {
@@ -215,7 +215,7 @@ class UpdatesStateMachine(
215
215
  is UpdatesStateEvent.DownloadComplete -> context.copyAndIncrementSequenceNumber(
216
216
  isDownloading = false,
217
217
  downloadError = null,
218
- isUpdatePending = true,
218
+ isUpdatePending = false,
219
219
  downloadProgress = 1.0,
220
220
  downloadStartTime = null,
221
221
  downloadFinishTime = null
@@ -117,7 +117,7 @@ final class FetchUpdateProcedure: StateMachineProcedure {
117
117
 
118
118
  if didRollBackToEmbedded {
119
119
  self.successBlock(FetchUpdateResult.rollBackToEmbedded)
120
- procedureContext.processStateEvent(.downloadComplete)
120
+ procedureContext.processStateEvent(.downloadCompleteWithRollback)
121
121
  procedureContext.onComplete()
122
122
  return
123
123
  }
@@ -33,7 +33,10 @@ internal enum UpdatesStateEvent {
33
33
  case checkCompleteWithRollback(rollbackCommitTime: Date)
34
34
  case checkError(errorMessage: String)
35
35
  case download
36
+
37
+ // download finished with no update available, so nothing is pending
36
38
  case downloadComplete
39
+
37
40
  case downloadCompleteWithUpdate(manifest: [String: Any])
38
41
  case downloadCompleteWithRollback
39
42
  case downloadError(errorMessage: String)
@@ -497,7 +500,7 @@ internal class UpdatesStateMachine {
497
500
  return context.copyAndIncrementSequenceNumber {
498
501
  $0.isDownloading = false
499
502
  $0.downloadError = nil
500
- $0.isUpdatePending = true
503
+ $0.isUpdatePending = false
501
504
  $0.downloadProgress = 1.0
502
505
  $0.downloadStartTime = nil
503
506
  $0.downloadFinishTime = nil
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-updates",
3
- "version": "57.0.8",
3
+ "version": "57.0.9",
4
4
  "description": "Fetches and manages remotely-hosted assets and updates to your app's JS bundle.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -60,10 +60,10 @@
60
60
  "picomatch": "^4.0.4",
61
61
  "ts-node": "^10.9.2",
62
62
  "xstate": "^4.37.2",
63
- "@expo/metro-config": "57.0.6",
64
- "expo": "57.0.7",
65
- "expo-dev-client": "57.0.7",
66
- "expo-module-scripts": "56.0.3"
63
+ "@expo/metro-config": "57.0.7",
64
+ "expo-dev-client": "57.0.8",
65
+ "expo-module-scripts": "56.0.3",
66
+ "expo": "57.0.8"
67
67
  },
68
68
  "peerDependencies": {
69
69
  "expo": "*",
@@ -82,7 +82,7 @@
82
82
  "./scripts/with-node.sh"
83
83
  ]
84
84
  },
85
- "gitHead": "0dac79c8469fa00b76fb8f402c47ed61f3d6317e",
85
+ "gitHead": "a4789f1e53353f4929b0baddcfe5a7c622b99c71",
86
86
  "scripts": {
87
87
  "build": "expo-module build",
88
88
  "clean": "expo-module clean",