expo 54.0.0-preview.14 → 54.0.0-preview.16
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/android/build.gradle +2 -2
- package/android/src/main/java/expo/modules/fetch/NativeRequest.kt +14 -1
- package/build/Expo.d.ts +0 -1
- package/build/Expo.d.ts.map +1 -1
- package/bundledNativeModules.json +12 -12
- package/expo-module.config.json +1 -1
- package/package.json +7 -7
- package/src/Expo.ts +0 -1
- package/template.tgz +0 -0
- package/build/environment/isLiquidGlassAvailable.d.ts +0 -13
- package/build/environment/isLiquidGlassAvailable.d.ts.map +0 -1
- package/build/environment/isLiquidGlassAvailable.ios.d.ts +0 -13
- package/build/environment/isLiquidGlassAvailable.ios.d.ts.map +0 -1
- package/ios/ExpoLiquidGlassConstantsModule.swift +0 -21
- package/src/environment/isLiquidGlassAvailable.ios.ts +0 -23
- package/src/environment/isLiquidGlassAvailable.ts +0 -14
package/android/build.gradle
CHANGED
|
@@ -32,7 +32,7 @@ buildscript {
|
|
|
32
32
|
def reactNativeVersion = project.extensions.getByType(ExpoModuleExtension).reactNativeVersion
|
|
33
33
|
|
|
34
34
|
group = 'host.exp.exponent'
|
|
35
|
-
version = '54.0.0-preview.
|
|
35
|
+
version = '54.0.0-preview.16'
|
|
36
36
|
|
|
37
37
|
expoModule {
|
|
38
38
|
// We can't prebuild the module because it depends on the generated files.
|
|
@@ -43,7 +43,7 @@ android {
|
|
|
43
43
|
namespace "expo.core"
|
|
44
44
|
defaultConfig {
|
|
45
45
|
versionCode 1
|
|
46
|
-
versionName "54.0.0-preview.
|
|
46
|
+
versionName "54.0.0-preview.16"
|
|
47
47
|
consumerProguardFiles("proguard-rules.pro")
|
|
48
48
|
}
|
|
49
49
|
testOptions {
|
|
@@ -14,6 +14,8 @@ import java.net.URL
|
|
|
14
14
|
|
|
15
15
|
private data class RequestHolder(var request: Request?)
|
|
16
16
|
|
|
17
|
+
internal val METHODS_REQUIRING_BODY = arrayOf("POST", "PUT", "PATCH")
|
|
18
|
+
|
|
17
19
|
internal class NativeRequest(appContext: AppContext, internal val response: NativeResponse) :
|
|
18
20
|
SharedObject(appContext) {
|
|
19
21
|
private val requestHolder = RequestHolder(null)
|
|
@@ -34,9 +36,20 @@ internal class NativeRequest(appContext: AppContext, internal val response: Nati
|
|
|
34
36
|
|
|
35
37
|
val headers = requestInit.headers.toHeaders()
|
|
36
38
|
val mediaType = headers["Content-Type"]?.toMediaTypeOrNull()
|
|
39
|
+
val reqBody = requestBody?.toRequestBody(mediaType) ?: run {
|
|
40
|
+
// OkHttp requires a non-null body for POST, PATCH, and PUT requests.
|
|
41
|
+
// WinterTC fetch, however, does not have this limitation.
|
|
42
|
+
// Provide an empty body to make OkHttp behave like WinterTC fetch.
|
|
43
|
+
// Ref: https://github.com/expo/expo/issues/35950#issuecomment-3245173248
|
|
44
|
+
if (requestInit.method in METHODS_REQUIRING_BODY) {
|
|
45
|
+
byteArrayOf(0).toRequestBody(mediaType)
|
|
46
|
+
} else {
|
|
47
|
+
null
|
|
48
|
+
}
|
|
49
|
+
}
|
|
37
50
|
val request = Request.Builder()
|
|
38
51
|
.headers(headers)
|
|
39
|
-
.method(requestInit.method,
|
|
52
|
+
.method(requestInit.method, reqBody)
|
|
40
53
|
.url(OkHttpFileUrlInterceptor.handleFileUrl(url))
|
|
41
54
|
.build()
|
|
42
55
|
this.requestHolder.request = request
|
package/build/Expo.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import './Expo.fx';
|
|
|
2
2
|
export { disableErrorHandling } from './errors/ExpoErrorManager';
|
|
3
3
|
export { default as registerRootComponent } from './launch/registerRootComponent';
|
|
4
4
|
export { isRunningInExpoGo, getExpoGoProjectConfig } from './environment/ExpoGo';
|
|
5
|
-
export { isLiquidGlassAvailable } from './environment/isLiquidGlassAvailable';
|
|
6
5
|
export { EventEmitter, SharedObject, SharedRef, NativeModule, requireNativeModule, requireOptionalNativeModule, requireNativeViewManager as requireNativeView, registerWebModule, reloadAppAsync, } from 'expo-modules-core';
|
|
7
6
|
export type {
|
|
8
7
|
/** @deprecated Move to `SharedRef` with a type-only import instead */
|
package/build/Expo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expo.d.ts","sourceRoot":"","sources":["../src/Expo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"Expo.d.ts","sourceRoot":"","sources":["../src/Expo.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjF,OAAO,EAEL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,YAAY,EAGZ,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,IAAI,iBAAiB,EAC7C,iBAAiB,EACjB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY;AACV,sEAAsE;AACtE,SAAS,IAAI,aAAa;AAC1B,yEAAyE;AACzE,YAAY,IAAI,gBAAgB;AAChC,yEAAyE;AACzE,YAAY,IAAI,gBAAgB;AAChC,yEAAyE;AACzE,YAAY,IAAI,gBAAgB,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"expo-apple-authentication": "~8.0.6",
|
|
20
20
|
"expo-application": "~7.0.6",
|
|
21
21
|
"expo-asset": "~12.0.7",
|
|
22
|
-
"expo-audio": "~1.0.
|
|
22
|
+
"expo-audio": "~1.0.10",
|
|
23
23
|
"expo-auth-session": "~7.0.7",
|
|
24
24
|
"expo-av": "~16.0.6",
|
|
25
25
|
"expo-background-fetch": "~14.0.6",
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
"expo-constants": "~18.0.7",
|
|
37
37
|
"expo-contacts": "~15.0.7",
|
|
38
38
|
"expo-crypto": "~15.0.6",
|
|
39
|
-
"expo-dev-client": "~6.0.
|
|
39
|
+
"expo-dev-client": "~6.0.10",
|
|
40
40
|
"expo-device": "~8.0.6",
|
|
41
41
|
"expo-document-picker": "~14.0.6",
|
|
42
|
-
"expo-file-system": "~19.0.
|
|
42
|
+
"expo-file-system": "~19.0.10",
|
|
43
43
|
"expo-font": "~14.0.7",
|
|
44
44
|
"expo-gl": "~16.0.6",
|
|
45
45
|
"expo-google-app-auth": "~8.3.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"expo-image": "~3.0.7",
|
|
48
48
|
"expo-image-loader": "~6.0.0",
|
|
49
49
|
"expo-image-manipulator": "~14.0.6",
|
|
50
|
-
"expo-image-picker": "~17.0.
|
|
50
|
+
"expo-image-picker": "~17.0.7",
|
|
51
51
|
"expo-intent-launcher": "~13.0.6",
|
|
52
52
|
"expo-insights": "~0.10.6",
|
|
53
53
|
"expo-keep-awake": "~15.0.6",
|
|
@@ -59,16 +59,16 @@
|
|
|
59
59
|
"expo-mail-composer": "~15.0.6",
|
|
60
60
|
"expo-manifests": "~1.0.7",
|
|
61
61
|
"expo-maps": "~0.12.6",
|
|
62
|
-
"expo-media-library": "~18.0
|
|
62
|
+
"expo-media-library": "~18.1.0",
|
|
63
63
|
"expo-mesh-gradient": "~0.4.6",
|
|
64
|
-
"expo-module-template": "~11.0.
|
|
65
|
-
"expo-modules-core": "~3.0.
|
|
64
|
+
"expo-module-template": "~11.0.10",
|
|
65
|
+
"expo-modules-core": "~3.0.14",
|
|
66
66
|
"expo-navigation-bar": "~5.0.7",
|
|
67
67
|
"expo-network": "~8.0.6",
|
|
68
|
-
"expo-notifications": "~0.32.
|
|
68
|
+
"expo-notifications": "~0.32.10",
|
|
69
69
|
"expo-print": "~15.0.6",
|
|
70
70
|
"expo-live-photo": "~1.0.6",
|
|
71
|
-
"expo-router": "~6.0.0-preview.
|
|
71
|
+
"expo-router": "~6.0.0-preview.16",
|
|
72
72
|
"expo-screen-capture": "~8.0.6",
|
|
73
73
|
"expo-screen-orientation": "~9.0.6",
|
|
74
74
|
"expo-secure-store": "~15.0.6",
|
|
@@ -86,9 +86,9 @@
|
|
|
86
86
|
"expo-tracking-transparency": "~6.0.6",
|
|
87
87
|
"expo-updates": "~29.0.8",
|
|
88
88
|
"expo-video-thumbnails": "~10.0.6",
|
|
89
|
-
"expo-video": "~3.0.
|
|
89
|
+
"expo-video": "~3.0.10",
|
|
90
90
|
"expo-web-browser": "~15.0.6",
|
|
91
|
-
"jest-expo": "~54.0.
|
|
91
|
+
"jest-expo": "~54.0.8",
|
|
92
92
|
"lottie-react-native": "~7.3.1",
|
|
93
93
|
"react": "19.1.0",
|
|
94
94
|
"react-dom": "19.1.0",
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
"react-native-pager-view": "6.9.1",
|
|
102
102
|
"react-native-worklets": "~0.5.0",
|
|
103
103
|
"react-native-reanimated": "~4.1.0",
|
|
104
|
-
"react-native-screens": "~4.
|
|
104
|
+
"react-native-screens": "~4.16.0",
|
|
105
105
|
"react-native-safe-area-context": "~5.6.0",
|
|
106
106
|
"react-native-svg": "15.12.1",
|
|
107
107
|
"react-native-view-shot": "4.0.3",
|
package/expo-module.config.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo",
|
|
3
|
-
"version": "54.0.0-preview.
|
|
3
|
+
"version": "54.0.0-preview.16",
|
|
4
4
|
"description": "The Expo SDK",
|
|
5
5
|
"main": "src/Expo.ts",
|
|
6
6
|
"module": "src/Expo.ts",
|
|
@@ -75,23 +75,23 @@
|
|
|
75
75
|
"homepage": "https://github.com/expo/expo/tree/main/packages/expo",
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@babel/runtime": "^7.20.0",
|
|
78
|
-
"@expo/cli": "0.26.
|
|
78
|
+
"@expo/cli": "0.26.9",
|
|
79
79
|
"@expo/config": "~12.0.7",
|
|
80
80
|
"@expo/config-plugins": "~11.0.7",
|
|
81
81
|
"@expo/devtools": "0.1.6",
|
|
82
82
|
"@expo/fingerprint": "0.14.6",
|
|
83
83
|
"@expo/metro": "~0.1.1",
|
|
84
|
-
"@expo/metro-config": "0.21.
|
|
84
|
+
"@expo/metro-config": "0.21.11",
|
|
85
85
|
"@expo/vector-icons": "^15.0.2",
|
|
86
86
|
"@ungap/structured-clone": "^1.3.0",
|
|
87
87
|
"babel-preset-expo": "~14.0.6",
|
|
88
88
|
"expo-asset": "~12.0.7",
|
|
89
89
|
"expo-constants": "~18.0.7",
|
|
90
|
-
"expo-file-system": "~19.0.
|
|
90
|
+
"expo-file-system": "~19.0.10",
|
|
91
91
|
"expo-font": "~14.0.7",
|
|
92
92
|
"expo-keep-awake": "~15.0.6",
|
|
93
|
-
"expo-modules-autolinking": "3.0.
|
|
94
|
-
"expo-modules-core": "3.0.
|
|
93
|
+
"expo-modules-autolinking": "3.0.8",
|
|
94
|
+
"expo-modules-core": "3.0.14",
|
|
95
95
|
"pretty-format": "^29.7.0",
|
|
96
96
|
"react-refresh": "^0.14.2",
|
|
97
97
|
"whatwg-url-without-unicode": "8.0.0-3"
|
|
@@ -124,5 +124,5 @@
|
|
|
124
124
|
"optional": true
|
|
125
125
|
}
|
|
126
126
|
},
|
|
127
|
-
"gitHead": "
|
|
127
|
+
"gitHead": "d087a2182086089f23bcee65e27434f21db50128"
|
|
128
128
|
}
|
package/src/Expo.ts
CHANGED
|
@@ -4,7 +4,6 @@ export { disableErrorHandling } from './errors/ExpoErrorManager';
|
|
|
4
4
|
export { default as registerRootComponent } from './launch/registerRootComponent';
|
|
5
5
|
|
|
6
6
|
export { isRunningInExpoGo, getExpoGoProjectConfig } from './environment/ExpoGo';
|
|
7
|
-
export { isLiquidGlassAvailable } from './environment/isLiquidGlassAvailable';
|
|
8
7
|
|
|
9
8
|
export {
|
|
10
9
|
// Core classes
|
package/template.tgz
CHANGED
|
Binary file
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
3
|
-
* Liquid Glass components are available in the app.
|
|
4
|
-
*
|
|
5
|
-
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
6
|
-
* accessibility settings that limit the Liquid Glass effect.
|
|
7
|
-
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
8
|
-
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
9
|
-
*
|
|
10
|
-
* @platform ios
|
|
11
|
-
*/
|
|
12
|
-
export declare function isLiquidGlassAvailable(): boolean;
|
|
13
|
-
//# sourceMappingURL=isLiquidGlassAvailable.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isLiquidGlassAvailable.d.ts","sourceRoot":"","sources":["../../src/environment/isLiquidGlassAvailable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
3
|
-
* Liquid Glass components are available in the app.
|
|
4
|
-
*
|
|
5
|
-
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
6
|
-
* accessibility settings that limit the Liquid Glass effect.
|
|
7
|
-
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
8
|
-
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
9
|
-
*
|
|
10
|
-
* @platform ios
|
|
11
|
-
*/
|
|
12
|
-
export declare function isLiquidGlassAvailable(): boolean;
|
|
13
|
-
//# sourceMappingURL=isLiquidGlassAvailable.ios.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isLiquidGlassAvailable.ios.d.ts","sourceRoot":"","sources":["../../src/environment/isLiquidGlassAvailable.ios.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAOhD"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import ExpoModulesCore
|
|
2
|
-
|
|
3
|
-
public class ExpoLiquidGlassConstantsModule: Module {
|
|
4
|
-
public func definition() -> ModuleDefinition {
|
|
5
|
-
Name("ExpoLiquidGlassConstants")
|
|
6
|
-
|
|
7
|
-
Constant("isLiquidGlassAvailable") {
|
|
8
|
-
#if compiler(>=6.2) // Xcode 26
|
|
9
|
-
if #available(iOS 26.0, tvOS 26.0, macOS 26.0, *) { // iOS 26
|
|
10
|
-
if let infoPlist = Bundle.main.infoDictionary,
|
|
11
|
-
let requiresCompatibility = infoPlist["UIDesignRequiresCompatibility"] as? Bool {
|
|
12
|
-
// TODO(@uabx): Add a check for maximum SDK version when apple disables this flag
|
|
13
|
-
return !requiresCompatibility // If the app requires compatibility then it will not use liquid glass
|
|
14
|
-
}
|
|
15
|
-
return true
|
|
16
|
-
}
|
|
17
|
-
#endif
|
|
18
|
-
return false
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { requireNativeModule } from 'expo-modules-core';
|
|
2
|
-
|
|
3
|
-
let IS_LIQUID_GLASS_AVAILABLE: boolean | undefined;
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
7
|
-
* Liquid Glass components are available in the app.
|
|
8
|
-
*
|
|
9
|
-
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
10
|
-
* accessibility settings that limit the Liquid Glass effect.
|
|
11
|
-
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
12
|
-
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
13
|
-
*
|
|
14
|
-
* @platform ios
|
|
15
|
-
*/
|
|
16
|
-
export function isLiquidGlassAvailable(): boolean {
|
|
17
|
-
if (IS_LIQUID_GLASS_AVAILABLE === undefined) {
|
|
18
|
-
IS_LIQUID_GLASS_AVAILABLE = requireNativeModule(
|
|
19
|
-
'ExpoLiquidGlassConstants'
|
|
20
|
-
).isLiquidGlassAvailable;
|
|
21
|
-
}
|
|
22
|
-
return !!IS_LIQUID_GLASS_AVAILABLE;
|
|
23
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Indicates whether the app is using the Liquid Glass design. The value will be `true` when the
|
|
3
|
-
* Liquid Glass components are available in the app.
|
|
4
|
-
*
|
|
5
|
-
* This only checks for component availability. The value may also be `true` if the user has enabled
|
|
6
|
-
* accessibility settings that limit the Liquid Glass effect.
|
|
7
|
-
* To check if the user has disabled the Liquid Glass effect via accessibility settings, use
|
|
8
|
-
* [`AccessibilityInfo.isReduceTransparencyEnabled()`](https://reactnative.dev/docs/accessibilityinfo#isreducetransparencyenabled-ios).
|
|
9
|
-
*
|
|
10
|
-
* @platform ios
|
|
11
|
-
*/
|
|
12
|
-
export function isLiquidGlassAvailable(): boolean {
|
|
13
|
-
return false;
|
|
14
|
-
}
|