chore(cli): delete @expo/dev-server (#24272)# Why - I tried this before but the logs endpoint was blocking it. - I forked the dev server when I wrote the original `expo/cli`, been meaning to d
chore(cli): delete @expo/dev-server (#24272)# Why - I tried this before but the logs endpoint was blocking it. - I forked the dev server when I wrote the original `expo/cli`, been meaning to delete the original for a while. The duplicate code and indirection is making the new server features harder to implement. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How - Copy/paste remaining code from `@expo/dev-server` in to `@expo/cli`. - Delete `@expo/dev-server`. - Drop unused `/logs` and json parser middleware. - Drop logging mocks. - Drop experimental Webpack native support. - Drop legacy react-native middleware support (no longer needed since everything is versioned). <!-- How did you build this feature or fix this bug and why? --> # Test Plan - Tests should keep passing. - Need to do some actual runs since there aren't any e2e tests for various parts of dev-server. <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # 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 `npx expo prebuild` & EAS Build (eg: updated a module plugin). --------- Co-authored-by: Expo Bot <[email protected]>
show more ...
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/pac
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected]
[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]>
feat(expo)!: drop logging endpoint (#18596)# Why - In the new versioned CLI we don't support the logging endpoint, instead favoring the logging WebSocket setup by `metro-runtime`. - Dropping s
feat(expo)!: drop logging endpoint (#18596)# Why - In the new versioned CLI we don't support the logging endpoint, instead favoring the logging WebSocket setup by `metro-runtime`. - Dropping support for `logUrl` will break logging in the legacy `expo-cli start` command, no logs will show up. - Drop `Logs` module: `import { Logs } from 'expo';`. - Drop stack trace filter that removes `react-native-logging.fx` since we no longer need it. - Also removes the "temporary workaround"s from 2018 that filter out warnings from the lottie package. - Drop direct dependency on `invariant`, `pretty-format`, `fbemitter` > This doesn't add breaking changes to the local Expo CLI, only the deprecated global CLI. # Test Plan - Copied the JS expo files into a new project and websockets continued to send logs. # 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). --------- Co-authored-by: Expo Bot <[email protected]>
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]b
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected]
fix(cli, dev-server): add `SYSTEMROOT` for `open` when opening browsers on Windows (#23287)# Why Fixes #23252 # How - `open` has a bug on Windows, where it [uses `process.env.SYSTEMROOT`]
fix(cli, dev-server): add `SYSTEMROOT` for `open` when opening browsers on Windows (#23287)# Why Fixes #23252 # How - `open` has a bug on Windows, where it [uses `process.env.SYSTEMROOT`](https://github.com/sindresorhus/open/blob/main/index.js#L173) instead of [`process.env.SystemRoot`](https://en.wikipedia.org/wiki/Environment_variable#:~:text=The%20%25SystemRoot%25%20variable%20is%20a,including%20the%20drive%20and%20path.) - This causes the executed command to run with `undefined\\...` - There has been no fix yet, and due to `open` being fully ESM now, we probably can't upgrade too > See various issues [#300](https://github.com/sindresorhus/open/issues/300), [#292](https://github.com/sindresorhus/open/issues/292), [#270](https://github.com/sindresorhus/open/issues/270), or [#205](https://github.com/sindresorhus/open/issues/205) This basically sets the missing `SYSTEMROOT` when trying to open a browser on Windows. It's fixed in both `@expo/cli` as well as `@expo/dev-server` (to open the Chrome DevTools). # Test Plan This has to be tested on Windows. - `$ yarn create expo ./test-browser -t tabs@beta` - `$ cd ./test-browser` - `$ yarn start` - Try pressing the following keys: - `j` -> to open the Chrome DevTools, after connecting a device. Should work as expected. - `w` -> to open the browser with Metro web. Should work as expected. # 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 `npx expo prebuild` & EAS Build (eg: updated a module plugin). --------- Co-authored-by: Expo Bot <[email protected]>
[dev-server] fix inconsistent false alarm for exporting on bare project (#23184)# Why fix `npx expo export` or `eas update` error on sdk 49 bare project ``` Error: JavaScript engine configur
[dev-server] fix inconsistent false alarm for exporting on bare project (#23184)# Why fix `npx expo export` or `eas update` error on sdk 49 bare project ``` Error: JavaScript engine configuration is inconsistent between app.json and Android native project. In app.json: Hermes is enabled In Android native project: Hermes is not enabled Please check the following files for inconsistencies: - /Users/kudo/sdk49/app.json - /Users/kudo/sdk49/android/gradle.properties - /Users/kudo/sdk49/android/app/build.gradle Learn more: https://expo.fyi/hermes-android-config ``` # How this is a regression from #21067. since we removed the `hermesEnabled` and `expo.jsEngine` in **android/app/build.gradle** entirely, we will hit the inconsistent case at https://github.com/expo/expo/blob/b1418cb83ffa82d94805adef977a8957b8ec6141/packages/%40expo/dev-server/src/HermesBundler.ts#L155-L166. the whole block is not necessary anymore. it is removed in this pr. since @expo/dev-server is in versioned-cli now, this pr also removes many legacy support checks, that would make the code easier to maintain. # Test Plan - ci passed - test the new @expo/dev-server from a bare project and run `npx expo export`
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected]expo-build-pr
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
Upgrade semver and json5 for remove security vulnerabilities (#23113)# Why Integrate Expo SDK in a bare flow project, creates new security vulnerabilities.  This PR upgrade the Libs to remove those vulnerabilities [CVE-2022-46175](https://www.mend.io/vulnerability-database/CVE-2022-46175) [CVE-2023-0842](https://www.mend.io/vulnerability-database/CVE-2023-0842) - It's already up to date [CVE-2022-25883](https://www.mend.io/vulnerability-database/CVE-2022-25883) [CVE-2022-25883](https://www.mend.io/vulnerability-database/CVE-2022-25883) <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How It's a simple non-break changes lib upgrades <!-- How did you build this feature or fix this bug and why? --> # Test Plan CI should pass <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [x] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [x] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [x] This diff will work correctly for `npx expo prebuild` & EAS Build (eg: updated a module plugin). --------- Co-authored-by: Brent Vatne <[email protected]>
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]babel-preset-ex
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected]
[templates][config-plugins][dev-server] aligned hermesEnabled property (#21067)# Why react-native 0.71 introduces `hermesEnabled` gradle property which is conflict with the original `expo.jsEngi
[templates][config-plugins][dev-server] aligned hermesEnabled property (#21067)# Why react-native 0.71 introduces `hermesEnabled` gradle property which is conflict with the original `expo.jsEngine` in gradle.properties. this pr tries to align the `hermesEnabled` as upstream. close ENG-7228 # How deprecate `expo.jsEngine` in **gradle.properties** and use `hermesEnabled` instead. # Test Plan ci passed
[cli][packages] unify the default dev server port to 8081 (#22880)# Why for historical reasons, when running `npx expo start` the dev-server listens to port 19000, and running `npx expo start --
[cli][packages] unify the default dev server port to 8081 (#22880)# Why for historical reasons, when running `npx expo start` the dev-server listens to port 19000, and running `npx expo start --dev-client` it listens to port 8081. since we are now on our effort to deprecate `--dev-client` option, it is better to unify the listening port. close ENG-8936 # How - update packages/**/*.ts for port 19000 -> 8081 - search more occurrences for 19000 to 8081 # Test Plan - ci passed - bare-expo - unversioned expo go + ncl
Publish packages[email protected][email protected][email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/prebuild-co
Publish packages[email protected][email protected][email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
[cli] fix typecheck from react-native 0.72 upgrade (#22766)# Why follow up #22588 which disabled the cli typecheck # How using types from metro and fix typing issues # Test Plan cli
[cli] fix typecheck from react-native 0.72 upgrade (#22766)# Why follow up #22588 which disabled the cli typecheck # How using types from metro and fix typing issues # Test Plan cli ci passed
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected]
[dev-server] rebuild js files
[dev-server] Fix hermes debugger failed to launch on powershell 7
[dev-server] fix debugger pause from devtools startup (#21807)# Why close ENG-7631 # How this is a side effect of #21265 where we enable full feature devtools. the `Debugger.pause` events
[dev-server] fix debugger pause from devtools startup (#21807)# Why close ENG-7631 # How this is a side effect of #21265 where we enable full feature devtools. the `Debugger.pause` events are sent by devtools frontend: https://github.com/ChromeDevTools/devtools-frontend/blob/e0d743c4f184589db10fb1d276b87dbe90498077/front_end/entrypoints/inspector_main/InspectorMain.ts#L62-L97. we reached the `waitForDebuggerInPage===true` case and then devtools frontend calls `debuggerModel.pause()`. to skip the call path, we could either set `targetType=tab` or not set `panel=sources`. i am kinda afraid to change targetType which may cause other side effects, so to change the panel instead. with this pr, the initial devtools tab would be the "console" tab. # Test Plan bare-expo + devtools + sending js `fetch` call
feat(cli)!: use Expo CLI to bundle production apps (#21396)# Why Most of our new Metro bundler features won't work unless we use Expo CLI for every bundler operation (ex: [aliases](https://git
feat(cli)!: use Expo CLI to bundle production apps (#21396)# Why Most of our new Metro bundler features won't work unless we use Expo CLI for every bundler operation (ex: [aliases](https://github.com/expo/expo/pull/21262)). Right now this is the case when building for production on both platforms or building for development on iOS. > Using `npx expo start` when building from Xcode will be added in another PR. # How This PR introduces a new "export:embed" command which is hidden from the `--help` prompt. `npx expo export:embed` accepts the same arguments as `npx react-native bundle` and passes them to the same internal function, but it ensures we use the correct variation of Metro before doing such. This change (and `start` PR) will add more steps for migrating to "Expo CLI" but it will also remove the need for us to generate the `metro.config.js` file in the project on `npx expo prebuild` since we can now reliably default to `@expo/metro-config`. The change should only apply to Metro bundler features (all application code could be affected), but it won't obstruct Expo Modules Core or using Expo CLI. <!-- How did you build this feature or fix this bug and why? --> # Test Plan - All of our existing E2E tests should use the new command, if they contain features like aliases then they'll work. - Copied the changes from `@expo/cli` into a new project's node_modules, added template changes: - Built for production from Android Studio and Xcode. <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # 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). --------- Co-authored-by: Expo Bot <[email protected]> Co-authored-by: James Ide <[email protected]>
[dev-server][dev-launcher] inspector network on ios (#21265)# Why close ENG-7464 close ENG-7492 # How - [dev-server] enable more devtools features rather than v8only - [dev-launcher] int
[dev-server][dev-launcher] inspector network on ios (#21265)# Why close ENG-7464 close ENG-7492 # How - [dev-server] enable more devtools features rather than v8only - [dev-launcher] intercept `URLSession` requests and send CDP network events through metro-inspector-proxy to devtools # Test Plan bare-expo + `useDevClient = YES` in AppDelegate.mm (this is to enable dev-launcher)
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected]
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
[packages] Commit build files [skip ci]
Publish packages@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected]expo-b
Publish packages@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]
feat: support Hermes debugger on native when Metro web is running. (#21068)# Why Hermes debugger doesn't work when Metro web is enabled because the endpoints are being intercepted by the histor
feat: support Hermes debugger on native when Metro web is running. (#21068)# Why Hermes debugger doesn't work when Metro web is enabled because the endpoints are being intercepted by the history fallback middleware. <!-- Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests. --> # How - Detect inspector proxy requests and skip returning the index.html. - Add better error handling for Apple script failing to launch Chrome (which can sometimes happen when using chrome for web). <!-- How did you build this feature or fix this bug and why? --> # Test Plan - Added tests for endpoint logic - `npx create-react-native-app -t with-router` `expo.jsEngine: hermes` -> open ios -> press `j` -> doesn't fail. <!-- Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction. --> # 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). --------- Co-authored-by: Expo Bot <[email protected]>
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/package-manager
Publish packages@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected]@expo/[email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected][email protected]@expo/[email protected][email protected][email protected][email protected][email protected]
12