[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 ...
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).
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]>