expo-updates 29.1.0-canary-20251120-e46b3cc → 29.1.0-canary-20251205-756eb7a

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
@@ -15,11 +15,25 @@
15
15
 
16
16
  - [Android] Migrated from `kotlinOptions` to `compilerOptions` DSL. ([#39794](https://github.com/expo/expo/pull/39794) by [@huextrat](https://github.com/huextrat))
17
17
  - [android] Remove references to reactNativeHost ([#40182](https://github.com/expo/expo/pull/40182) by [@gabrieldonadel](https://github.com/gabrieldonadel))
18
+ - Reverted "Removed Detox testing workaround code on Android." ([#41204](https://github.com/expo/expo/pull/41204) by [@kudo](https://github.com/kudo))
19
+ - Remove unused `js-yaml` dependency. ([#41202](https://github.com/expo/expo/pull/41202) by [@kudo](https://github.com/kudo))
18
20
 
19
21
  ### ⚠️ Notices
20
22
 
21
23
  - Added support for React Native 0.82.x. ([#39678](https://github.com/expo/expo/pull/39678) by [@gabrieldonadel](https://github.com/gabrieldonadel))
22
24
 
25
+ ## 29.0.14 - 2025-12-04
26
+
27
+ ### 💡 Others
28
+
29
+ - Update to `glob@^13.0.0` ([#41079](https://github.com/expo/expo/pull/41079) by [@kitten](https://github.com/kitten))
30
+
31
+ ## 29.0.13 - 2025-11-21
32
+
33
+ ### 🐛 Bug fixes
34
+
35
+ - [Android] Fix issue where launch is called twice on the same database instance. ([#41152](https://github.com/expo/expo/pull/41152) by [@alanjhughes](https://github.com/alanjhughes))
36
+
23
37
  ## 29.0.11 - 2025-09-18
24
38
 
25
39
  ### 🐛 Bug fixes
@@ -42,7 +42,7 @@ expoModule {
42
42
  }
43
43
 
44
44
  group = 'host.exp.exponent'
45
- version = '29.1.0-canary-20251120-e46b3cc'
45
+ version = '29.1.0-canary-20251205-756eb7a'
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 '29.1.0-canary-20251120-e46b3cc'
92
+ versionName '29.1.0-canary-20251205-756eb7a'
93
93
  consumerProguardFiles("proguard-rules.pro")
94
94
  testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
95
95
 
@@ -1,5 +1,6 @@
1
1
  package expo.modules.updates
2
2
 
3
+ import android.app.Application
3
4
  import android.content.Context
4
5
  import androidx.annotation.UiThread
5
6
  import androidx.annotation.WorkerThread
@@ -7,6 +8,7 @@ import com.facebook.react.ReactActivity
7
8
  import com.facebook.react.ReactHost
8
9
  import com.facebook.react.bridge.ReactContext
9
10
  import com.facebook.react.devsupport.interfaces.DevSupportManager
11
+ import expo.modules.core.interfaces.ApplicationLifecycleListener
10
12
  import expo.modules.core.interfaces.Package
11
13
  import expo.modules.core.interfaces.ReactActivityHandler
12
14
  import expo.modules.core.interfaces.ReactNativeHostHandler
@@ -92,6 +94,30 @@ class UpdatesPackage : Package {
92
94
  return listOf(handler)
93
95
  }
94
96
 
97
+ override fun createApplicationLifecycleListeners(context: Context): List<ApplicationLifecycleListener> {
98
+ val handler = object : ApplicationLifecycleListener {
99
+ override fun onCreate(application: Application) {
100
+ super.onCreate(application)
101
+ if (isRunningAndroidTest()) {
102
+ // Preload updates to prevent Detox ANR
103
+ UpdatesController.initialize(context)
104
+ UpdatesController.instance.launchAssetFile
105
+ }
106
+ }
107
+ }
108
+
109
+ return listOf(handler)
110
+ }
111
+
112
+ private fun isRunningAndroidTest(): Boolean {
113
+ try {
114
+ Class.forName("androidx.test.espresso.Espresso")
115
+ return true
116
+ } catch (_: ClassNotFoundException) {
117
+ }
118
+ return false
119
+ }
120
+
95
121
  companion object {
96
122
  private val TAG = UpdatesPackage::class.java.simpleName
97
123
  val isUsingNativeDebug = BuildConfig.EX_UPDATES_NATIVE_DEBUG
@@ -296,14 +296,13 @@ class LoaderTask(
296
296
  ) {
297
297
  try {
298
298
  val embeddedLoader = EmbeddedLoader(context, configuration, logger, database, directory)
299
- val result = embeddedLoader.load { updateResponse ->
299
+ embeddedLoader.load { _ ->
300
300
  Loader.OnUpdateResponseLoadedResult(shouldDownloadManifestIfPresentInResponse = true)
301
301
  }
302
- launcher.launch(database)
303
302
  } catch (e: Exception) {
304
303
  logger.error("Unexpected error copying embedded update", e, UpdatesErrorCode.Unknown)
305
- launcher.launch(database)
306
304
  }
305
+ launcher.launch(database)
307
306
  } else {
308
307
  launcher.launch(database)
309
308
  }
@@ -99,5 +99,12 @@ export declare class ExpoUpdatesModule extends NativeModule<UpdatesEvents> imple
99
99
  } | {
100
100
  manifest: Manifest;
101
101
  })) | UpdateFetchResultFailure | UpdateFetchResultRollBackToEmbedded>;
102
+ setUpdateURLAndRequestHeadersOverride: (configOverride: {
103
+ updateUrl: string;
104
+ requestHeaders: Record<string, string> | null;
105
+ } | null) => void;
106
+ setUpdateRequestHeadersOverride: (requestHeaders: Record<string, string> | null) => void;
107
+ showReloadScreen: (options?: ReloadScreenOptions | null) => Promise<void>;
108
+ hideReloadScreen: () => Promise<void>;
102
109
  }
103
110
  //# sourceMappingURL=ExpoUpdatesModule.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoUpdatesModule.types.d.ts","sourceRoot":"","sources":["../src/ExpoUpdatesModule.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExpoUpdatesModule.types.d.ts","sourceRoot":"","sources":["../src/ExpoUpdatesModule.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpoUpdatesModule.types.js","sourceRoot":"","sources":["../src/ExpoUpdatesModule.types.ts"],"names":[],"mappings":"","sourcesContent":["import { NativeModule } from 'expo-modules-core';\n\nimport {\n Manifest,\n UpdateCheckResultAvailable,\n UpdateCheckResultNotAvailable,\n UpdateCheckResultRollBack,\n UpdateFetchResultRollBackToEmbedded,\n UpdateFetchResultFailure,\n UpdateFetchResultSuccess,\n UpdatesLogEntry,\n UpdatesNativeStateMachineContext,\n ReloadScreenOptions,\n} from './Updates.types';\n\nexport type UpdatesEvents = {\n 'Expo.nativeUpdatesStateChangeEvent': (params: any) => void;\n};\n\nexport type UpdatesCheckAutomaticallyNativeValue =\n | 'ALWAYS'\n | 'ERROR_RECOVERY_ONLY'\n | 'NEVER'\n | 'WIFI_ONLY';\n\n/**\n * Common interface for all native module implementations (android, ios, web).\n *\n * @internal\n */\nexport interface UpdatesModuleInterface {\n isEmergencyLaunch: boolean;\n emergencyLaunchReason: string | null;\n launchDuration: number | null;\n isEmbeddedLaunch: boolean;\n isEnabled: boolean;\n isUsingEmbeddedAssets?: boolean;\n /**\n * Can be empty string\n */\n runtimeVersion: string;\n checkAutomatically: UpdatesCheckAutomaticallyNativeValue;\n /**\n * Can be empty string\n */\n channel: string;\n shouldDeferToNativeForAPIMethodAvailabilityInDevelopment: boolean;\n updateId?: string;\n commitTime?: string;\n /**\n * @platform android\n */\n manifestString?: string;\n /**\n * @platform ios\n */\n manifest?: Manifest;\n localAssets?: Record<string, string>;\n\n initialContext: UpdatesNativeStateMachineContext & {\n latestManifestString?: string;\n downloadedManifestString?: string;\n lastCheckForUpdateTimeString?: string;\n rollbackString?: string;\n };\n\n reload: () => Promise<void>;\n checkForUpdateAsync: () => Promise<\n | UpdateCheckResultRollBack\n | (Omit<UpdateCheckResultAvailable, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateCheckResultNotAvailable\n >;\n getExtraParamsAsync: () => Promise<Record<string, string>>;\n setExtraParamAsync: (key: string, value: string | null) => Promise<void>;\n readLogEntriesAsync: (maxAge: number) => Promise<UpdatesLogEntry[]>;\n clearLogEntriesAsync: () => Promise<void>;\n fetchUpdateAsync: () => Promise<\n | (Omit<UpdateFetchResultSuccess, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateFetchResultFailure\n | UpdateFetchResultRollBackToEmbedded\n >;\n}\n\n/**\n * @internal\n */\nexport declare class ExpoUpdatesModule\n extends NativeModule<UpdatesEvents>\n implements UpdatesModuleInterface\n{\n isEmergencyLaunch: boolean;\n emergencyLaunchReason: string | null;\n launchDuration: number | null;\n isEmbeddedLaunch: boolean;\n isEnabled: boolean;\n isUsingEmbeddedAssets?: boolean;\n runtimeVersion: string;\n checkAutomatically: UpdatesCheckAutomaticallyNativeValue;\n channel: string;\n shouldDeferToNativeForAPIMethodAvailabilityInDevelopment: boolean;\n updateId?: string;\n commitTime?: string;\n manifestString?: string;\n manifest?: Manifest;\n localAssets?: Record<string, string>;\n\n initialContext: UpdatesNativeStateMachineContext & {\n latestManifestString?: string;\n downloadedManifestString?: string;\n lastCheckForUpdateTimeString?: string;\n rollbackString?: string;\n };\n\n reload: (options?: ReloadScreenOptions | null) => Promise<void>;\n checkForUpdateAsync: () => Promise<\n | UpdateCheckResultRollBack\n | (Omit<UpdateCheckResultAvailable, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateCheckResultNotAvailable\n >;\n getExtraParamsAsync: () => Promise<Record<string, string>>;\n setExtraParamAsync: (key: string, value: string | null) => Promise<void>;\n readLogEntriesAsync: (maxAge: number) => Promise<UpdatesLogEntry[]>;\n clearLogEntriesAsync: () => Promise<void>;\n fetchUpdateAsync: () => Promise<\n | (Omit<UpdateFetchResultSuccess, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateFetchResultFailure\n | UpdateFetchResultRollBackToEmbedded\n >;\n}\n"]}
1
+ {"version":3,"file":"ExpoUpdatesModule.types.js","sourceRoot":"","sources":["../src/ExpoUpdatesModule.types.ts"],"names":[],"mappings":"","sourcesContent":["import { NativeModule } from 'expo-modules-core';\n\nimport {\n Manifest,\n UpdateCheckResultAvailable,\n UpdateCheckResultNotAvailable,\n UpdateCheckResultRollBack,\n UpdateFetchResultRollBackToEmbedded,\n UpdateFetchResultFailure,\n UpdateFetchResultSuccess,\n UpdatesLogEntry,\n UpdatesNativeStateMachineContext,\n ReloadScreenOptions,\n} from './Updates.types';\n\nexport type UpdatesEvents = {\n 'Expo.nativeUpdatesStateChangeEvent': (params: any) => void;\n};\n\nexport type UpdatesCheckAutomaticallyNativeValue =\n | 'ALWAYS'\n | 'ERROR_RECOVERY_ONLY'\n | 'NEVER'\n | 'WIFI_ONLY';\n\n/**\n * Common interface for all native module implementations (android, ios, web).\n *\n * @internal\n */\nexport interface UpdatesModuleInterface {\n isEmergencyLaunch: boolean;\n emergencyLaunchReason: string | null;\n launchDuration: number | null;\n isEmbeddedLaunch: boolean;\n isEnabled: boolean;\n isUsingEmbeddedAssets?: boolean;\n /**\n * Can be empty string\n */\n runtimeVersion: string;\n checkAutomatically: UpdatesCheckAutomaticallyNativeValue;\n /**\n * Can be empty string\n */\n channel: string;\n shouldDeferToNativeForAPIMethodAvailabilityInDevelopment: boolean;\n updateId?: string;\n commitTime?: string;\n /**\n * @platform android\n */\n manifestString?: string;\n /**\n * @platform ios\n */\n manifest?: Manifest;\n localAssets?: Record<string, string>;\n\n initialContext: UpdatesNativeStateMachineContext & {\n latestManifestString?: string;\n downloadedManifestString?: string;\n lastCheckForUpdateTimeString?: string;\n rollbackString?: string;\n };\n\n reload: () => Promise<void>;\n checkForUpdateAsync: () => Promise<\n | UpdateCheckResultRollBack\n | (Omit<UpdateCheckResultAvailable, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateCheckResultNotAvailable\n >;\n getExtraParamsAsync: () => Promise<Record<string, string>>;\n setExtraParamAsync: (key: string, value: string | null) => Promise<void>;\n readLogEntriesAsync: (maxAge: number) => Promise<UpdatesLogEntry[]>;\n clearLogEntriesAsync: () => Promise<void>;\n fetchUpdateAsync: () => Promise<\n | (Omit<UpdateFetchResultSuccess, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateFetchResultFailure\n | UpdateFetchResultRollBackToEmbedded\n >;\n}\n\n/**\n * @internal\n */\nexport declare class ExpoUpdatesModule\n extends NativeModule<UpdatesEvents>\n implements UpdatesModuleInterface\n{\n isEmergencyLaunch: boolean;\n emergencyLaunchReason: string | null;\n launchDuration: number | null;\n isEmbeddedLaunch: boolean;\n isEnabled: boolean;\n isUsingEmbeddedAssets?: boolean;\n runtimeVersion: string;\n checkAutomatically: UpdatesCheckAutomaticallyNativeValue;\n channel: string;\n shouldDeferToNativeForAPIMethodAvailabilityInDevelopment: boolean;\n updateId?: string;\n commitTime?: string;\n manifestString?: string;\n manifest?: Manifest;\n localAssets?: Record<string, string>;\n\n initialContext: UpdatesNativeStateMachineContext & {\n latestManifestString?: string;\n downloadedManifestString?: string;\n lastCheckForUpdateTimeString?: string;\n rollbackString?: string;\n };\n\n reload: (options?: ReloadScreenOptions | null) => Promise<void>;\n checkForUpdateAsync: () => Promise<\n | UpdateCheckResultRollBack\n | (Omit<UpdateCheckResultAvailable, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateCheckResultNotAvailable\n >;\n getExtraParamsAsync: () => Promise<Record<string, string>>;\n setExtraParamAsync: (key: string, value: string | null) => Promise<void>;\n readLogEntriesAsync: (maxAge: number) => Promise<UpdatesLogEntry[]>;\n clearLogEntriesAsync: () => Promise<void>;\n fetchUpdateAsync: () => Promise<\n | (Omit<UpdateFetchResultSuccess, 'manifest'> &\n ({ manifestString: string } | { manifest: Manifest }))\n | UpdateFetchResultFailure\n | UpdateFetchResultRollBackToEmbedded\n >;\n\n setUpdateURLAndRequestHeadersOverride: (\n configOverride: {\n updateUrl: string;\n requestHeaders: Record<string, string> | null;\n } | null\n ) => void;\n setUpdateRequestHeadersOverride: (requestHeaders: Record<string, string> | null) => void;\n\n showReloadScreen: (options?: ReloadScreenOptions | null) => Promise<void>;\n hideReloadScreen: () => Promise<void>;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-updates",
3
- "version": "29.1.0-canary-20251120-e46b3cc",
3
+ "version": "29.1.0-canary-20251205-756eb7a",
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",
@@ -39,37 +39,35 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@expo/code-signing-certificates": "0.0.5",
42
- "@expo/plist": "0.4.8-canary-20251120-e46b3cc",
42
+ "@expo/plist": "0.4.9-canary-20251205-756eb7a",
43
43
  "@expo/spawn-async": "^1.7.2",
44
44
  "arg": "4.1.0",
45
45
  "chalk": "^4.1.2",
46
46
  "debug": "^4.3.4",
47
- "expo-eas-client": "1.0.8-canary-20251120-e46b3cc",
48
- "expo-manifests": "1.0.10-canary-20251120-e46b3cc",
49
- "expo-structured-headers": "5.0.1-canary-20251120-e46b3cc",
50
- "expo-updates-interface": "2.0.1-canary-20251120-e46b3cc",
47
+ "expo-eas-client": "1.0.9-canary-20251205-756eb7a",
48
+ "expo-manifests": "1.0.11-canary-20251205-756eb7a",
49
+ "expo-structured-headers": "5.0.1-canary-20251205-756eb7a",
50
+ "expo-updates-interface": "2.0.1-canary-20251205-756eb7a",
51
51
  "getenv": "^2.0.0",
52
- "glob": "^10.4.2",
52
+ "glob": "^13.0.0",
53
53
  "ignore": "^5.3.1",
54
54
  "resolve-from": "^5.0.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/jest": "^29.2.1",
58
- "@types/js-yaml": "^4.0.9",
59
58
  "@types/node": "^22.14.0",
60
59
  "@types/node-forge": "^1.0.0",
61
60
  "@types/picomatch": "^4.0.0",
62
61
  "@vercel/ncc": "^0.38.3",
63
- "expo-module-scripts": "5.1.0-canary-20251120-e46b3cc",
62
+ "expo-module-scripts": "5.1.0-canary-20251205-756eb7a",
64
63
  "express": "^5.1.0",
65
64
  "form-data": "^4.0.4",
66
- "js-yaml": "^4.1.0",
67
65
  "memfs": "^3.2.0",
68
66
  "picomatch": "^4.0.2",
69
67
  "xstate": "^4.37.2"
70
68
  },
71
69
  "peerDependencies": {
72
- "expo": "55.0.0-canary-20251120-e46b3cc",
70
+ "expo": "55.0.0-canary-20251205-756eb7a",
73
71
  "react": "*",
74
72
  "react-native": "*"
75
73
  }
@@ -130,4 +130,15 @@ export declare class ExpoUpdatesModule
130
130
  | UpdateFetchResultFailure
131
131
  | UpdateFetchResultRollBackToEmbedded
132
132
  >;
133
+
134
+ setUpdateURLAndRequestHeadersOverride: (
135
+ configOverride: {
136
+ updateUrl: string;
137
+ requestHeaders: Record<string, string> | null;
138
+ } | null
139
+ ) => void;
140
+ setUpdateRequestHeadersOverride: (requestHeaders: Record<string, string> | null) => void;
141
+
142
+ showReloadScreen: (options?: ReloadScreenOptions | null) => Promise<void>;
143
+ hideReloadScreen: () => Promise<void>;
133
144
  }