Skip to content

[pull] main from expo:main#959

Merged
pull[bot] merged 3 commits into
code:mainfrom
expo:main
Jun 12, 2026
Merged

[pull] main from expo:main#959
pull[bot] merged 3 commits into
code:mainfrom
expo:main

Conversation

@pull

@pull pull Bot commented Jun 12, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

SJvaca30 and others added 3 commits June 12, 2026 09:11
## Why

Closes #38721.

Expo DevTools Network currently treats response bodies as text only when
the `Content-Type` header is exactly `application/json`. Valid headers
such as `application/json; charset=utf-8` are therefore sent to DevTools
as base64 and the Network panel reports that no response data is
available.

## How

- Normalize response MIME types by stripping `Content-Type` parameters
and lowercasing the MIME value before sending CDP response metadata.
- Reuse the same normalized content-type check when deciding whether
response bodies are text.
- Added focused iOS tests for MIME normalization and JSON/text detection
with charset parameters.

## Test Plan

- `git diff --check`
- `xcrun swiftc -parse
packages/expo-modules-core/ios/DevTools/CdpNetworkTypes.swift
packages/expo-modules-core/ios/DevTools/URLAuthenticationChallengeForwardSender.swift
packages/expo-modules-core/ios/DevTools/URLSessionSessionDelegateProxy.swift
packages/expo-modules-core/ios/DevTools/URLRequest+httpBodyData.swift
packages/expo-modules-core/ios/DevTools/ExpoRequestCdpInterceptor.swift
packages/expo-modules-core/ios/DevTools/ExpoRequestInterceptorProtocol.swift
packages/expo-modules-core/ios/Tests/ExpoRequestCdpInterceptorTests.swift`

# Checklist

- [x] Documentation is up to date to reflect these changes.
- [x] Conforms with the Documentation Writing Style Guide.

Co-authored-by: Tomasz Sapeta <tsapeta@expo.dev>
…se64()/write() (#46376)

# Why

Inspired by #44359, This could improve performance when reading/writing
multiple files with the async API at the same time for Android

# How

1. Apply `suspend`/`withContext(Dispatchers.IO)` to the async wrapper of
io related functions in `FileSystemModule.kt`
2. Replace `TypedArray` with `NativeArrayBuffer` for thread safety and
`ArrayBuffer` support

# Test Plan

1. `pnpm et check expo-file-system` passed
2. Filesystem related tests in `apps/bare-expo` passed on Android

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
# Why

The recently added stricter TypeScript config started flagging untyped and nullable variables as errors in the test suit.

# How

Added types and nullable checks.

# Test Plan

BareExpo ✅
@pull pull Bot locked and limited conversation to collaborators Jun 12, 2026
@pull pull Bot added the ⤵️ pull label Jun 12, 2026
@pull pull Bot merged commit ea8c92b into code:main Jun 12, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants