[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with th
[lint] Upgrade to Prettier v3, typescript-eslint to v6 (#23544)Why --- Prettier 3 is out. Add support for it with this linter config. **Note for reviewer:** the first commit is the one with the actual changes. The rest of this PR are changes to get the linter passing (mostly autofix). How --- Update eslint-config-prettier and eslint-plugin-prettier. To address deprecation warnings, also update typescript-eslint/parser and typescript-eslint/eslint-plugin. Because of an update to typescript-eslint/parser, we need to suppress deprecation warnings (documented in a comment). Regenerated test snapshots. Due to the upgraded dependencies, typecasts and optional chaining are now auto-fixable by lint. This converts warnings into autofixes. Test Plan --- `yarn test` in the linter config. Run `expotools check --all --fix-lint --no-build --no-test --no-uniformity-check` to try this config on the whole repo. --------- Co-authored-by: Expo Bot <[email protected]>
show more ...
feat(cli): improve ios multi-scheme resolution (#21240)# Why - Building app clips onto a native device will fail because the protocol appears to be unimplemented natively on-device. - When an
feat(cli): improve ios multi-scheme resolution (#21240)# Why - Building app clips onto a native device will fail because the protocol appears to be unimplemented natively on-device. - When an iOS project has multiple schemes, the default scheme should be the first application scheme if available. This prevents the addition of something like App Clips from breaking the default behavior. --------- Co-authored-by: Expo Bot <[email protected]>
fix(cli): auto-detect the TLS version based on current node version (#21169)# Why After debugging this issue https://github.com/byCedric/expo-monorepo-example/issues/84, it seems that we are h
fix(cli): auto-detect the TLS version based on current node version (#21169)# Why After debugging this issue https://github.com/byCedric/expo-monorepo-example/issues/84, it seems that we are having trouble with the internals of `expo run:ios`. What's happening here are two major things: 1. Node 17+ is throwing an internal OpenSSL error when establishing a secure TLS connection to the iOS device. This is caused by the explicit `secureProtocol` option, which is set to `TLSv1_method`. 2. We don't have any error event handlers when opening (secure) sockets to iOS devices. These two issues together result in `expo run:ios` not-installing the app on the device. Luckily, it does build the app. But, due to the missing error handlers, we are swallowing the underlying error and the installation part is [stuck on a promise](https://github.com/expo/expo/blob/main/packages/%40expo/cli/src/run/ios/appleDevice/AppleDevice.ts#L143) that will never be resolved. Here is the chain that's getting blocked by issue 2 (caused by issue 1) - `clientManager.getMobileImageMounterClient` - `this.getServiceClient('com.apple.mobile.mobile_image_mounter', MobileImageMounterClient)` - `lockdowndClient.startService(name)` is invoked (from `MobileImageMounterClient`) - `LockdownProtocolClient.sendMessage` is invoked (with `StartService`, `com.apple.mobile.mobile_image_mounter`) - `ProtocolClient.sendMessage` is invoked - Socket TLS handshake fails, but the `socket.on('error')` is not set. So the error is never received. # How - Removed the explicit `TLSv1_method` from `tls.createSecureContext` - Added error handlers to surface underlying errors After removing the fixed TLS method, it seems to use TLSv1.2 by default. # Test Plan Test `main` on Node 17+, while adding `enableTrace: true` and `socket.on('error', (error) => console.log(error));` to the changes I made > This should fail with an internal socket/openssl error Test this PR on Node 16, and Node 18 > This should NOT fail # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
[cli] fix getting UDID for network connected iOS devices (#20279)
feat(cli): disable prompts in non interactive processes (#18300)* feat(cli): disable prompts in non interactive processes * Update packages/@expo/cli/CHANGELOG.md Co-authored-by: Expo Bot <34
feat(cli): disable prompts in non interactive processes (#18300)* feat(cli): disable prompts in non interactive processes * Update packages/@expo/cli/CHANGELOG.md Co-authored-by: Expo Bot <[email protected]> * Update startAsync.ts * fix tests Co-authored-by: Expo Bot <[email protected]>
feat(cli): add `run:ios` command (#16662)* [wip] Added expo run:ios command * Clean up run:ios * feat(cli): add headless server mode * fix(cli): fix run:ios logic issues * Update CHANGE
feat(cli): add `run:ios` command (#16662)* [wip] Added expo run:ios command * Clean up run:ios * feat(cli): add headless server mode * fix(cli): fix run:ios logic issues * Update CHANGELOG.md * Update packages/expo/CHANGELOG.md Co-authored-by: Expo Bot <[email protected]> * clean up * refine fixture * refactor and test code signing * Update resolveOptionsAsync.ts * fix merge * added new impl * Update AppleDevice.ts * Added more tests * fixed e2e tests * lint fix * Update index-test.ts Co-authored-by: Expo Bot <[email protected]>