Upgrade xplat/js + arvr/js to hermes-parser 0.16.0 (again) (#39819)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39819

Bump `hermes-parser` packages to the latest released version.

Changelog: https://github.com/facebook/hermes/blob/main/tools/hermes-parser/js/CHANGELOG.md

Notable changes:
- Upgraded to the lastest version of emscripten for the parser.
- The babel interop logic now more closely matches babel's AST.
  - The biggest change is we now add the `extra.raw` properties to literal nodes, which results in Babel more closely outputting literal sources. e.g. previously the following would happen `1.0` -> `1`, `'foo'` -> `"foo"` and `1n` -> `1` but now the raw source value is preserved.
- Upgraded `prettier-plugin-hermes-parser` to use the latest prettier formatting logic, which causes some minor formatting changes.
- `hermes-parser` no longer fails when the `component` name is used within a function type, e.g. `type Foo = (component: string) => void`.

Changelog: [Internal]

Reviewed By: SamChou19815

Differential Revision: D49935231

fbshipit-source-id: a905838396fdd7281442c211970e0caa773a1256
This commit is contained in:
Pieter Vanderwerff 2023-10-05 11:19:05 -07:00 коммит произвёл Facebook GitHub Bot
Родитель b58db61738
Коммит 48c542449c
4 изменённых файлов: 46 добавлений и 45 удалений

Просмотреть файл

@ -83,10 +83,10 @@
"eslint-plugin-react-native": "^4.0.0",
"eslint-plugin-redundant-undefined": "^0.4.0",
"eslint-plugin-relay": "^1.8.3",
"flow-api-translator": "0.15.0",
"flow-api-translator": "0.16.0",
"flow-bin": "^0.217.2",
"glob": "^7.1.1",
"hermes-eslint": "0.15.0",
"hermes-eslint": "0.16.0",
"inquirer": "^7.1.0",
"jest": "^29.6.3",
"jest-junit": "^10.0.0",
@ -98,7 +98,7 @@
"mock-fs": "^5.1.4",
"nullthrows": "^1.1.1",
"prettier": "2.8.8",
"prettier-plugin-hermes-parser": "0.14.0",
"prettier-plugin-hermes-parser": "0.16.0",
"react": "18.2.0",
"react-test-renderer": "18.2.0",
"rimraf": "^3.0.2",

Просмотреть файл

@ -17,7 +17,7 @@
"dependencies": {
"@babel/core": "^7.20.0",
"@react-native/babel-preset": "*",
"hermes-parser": "0.15.0",
"hermes-parser": "0.16.0",
"nullthrows": "^1.1.1"
},
"peerDependencies": {

Просмотреть файл

@ -202,12 +202,13 @@ const transform /*: BabelTransformer['transform'] */ = ({
// You get this behavior by default when using Babel's `transform` method directly.
cloneInputAst: false,
};
const sourceAst =
const sourceAst /*: BabelNodeFile */ =
isTypeScriptSource(filename) ||
isTSXSource(filename) ||
!options.hermesParser
? parseSync(src, babelConfig)
: require('hermes-parser').parse(src, {
: // $FlowFixMe[incompatible-exact]
require('hermes-parser').parse(src, {
babel: true,
sourceType: babelConfig.sourceType,
});

Просмотреть файл

@ -5025,18 +5025,18 @@ flatted@^3.1.0:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561"
integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==
flow-api-translator@0.15.0:
version "0.15.0"
resolved "https://registry.yarnpkg.com/flow-api-translator/-/flow-api-translator-0.15.0.tgz#3df5af2d45630251f12782679271dc2533bcf094"
integrity sha512-cH5Fo08kQO0vucJfcQqMAPc2De8ooVX/9AhBUiRDhe+Ob98HOSBJamaiFLgTmC9UVnSyIFRKgpG+RRopHWtjwg==
flow-api-translator@0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/flow-api-translator/-/flow-api-translator-0.16.0.tgz#c1f9a23ccf756d0b7cc7d168da1dc4203ee4fdc0"
integrity sha512-wIaR2K/NfIa9YllPHO2m6TQPabMFFL8u08ix+aohul0F23+sTQyePGtqOuqWGm63E16sBgh/uPYcsw+/xZoFWA==
dependencies:
"@babel/code-frame" "^7.16.0"
"@typescript-eslint/visitor-keys" "^5.42.0"
flow-enums-runtime "^0.0.6"
hermes-eslint "0.15.0"
hermes-estree "0.15.0"
hermes-parser "0.15.0"
hermes-transform "0.15.0"
hermes-eslint "0.16.0"
hermes-estree "0.16.0"
hermes-parser "0.16.0"
hermes-transform "0.16.0"
flow-bin@^0.217.2:
version "0.217.2"
@ -5420,31 +5420,24 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
hermes-eslint@0.15.0:
version "0.15.0"
resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.15.0.tgz#4d7495cb5e0e9275a1fb0b465b88fccf0b6d8840"
integrity sha512-Rd12uW9FZdOTDDwpVdYUxZGEApskUzBfKYy9RMtczm2uprX8yviPb9QVSVn2hl+xuRTA7Z0FnqDwOwXGiinsRQ==
hermes-eslint@0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.16.0.tgz#f377e7e0260c82d687f4efedff4ae1a4a193359f"
integrity sha512-8EFCiVY5Sv7fYaje31HgaUIpe5DrRlx8luQ6Cgj9wyVpNpSMoVeoXHsWS2MEA4CHuWKItM1mACB5E4snBQxV/g==
dependencies:
esrecurse "^4.3.0"
hermes-estree "0.15.0"
hermes-parser "0.15.0"
hermes-estree@0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.14.0.tgz#c663eea1400980802283338a09d0087c448729e7"
integrity sha512-L6M67+0/eSEbt6Ha2XOBFXL++7MR34EOJMgm+j7YCaI4L/jZqrVAg6zYQKzbs1ZCFDLvEQpOgLlapTX4gpFriA==
hermes-estree "0.16.0"
hermes-parser "0.16.0"
hermes-estree@0.15.0:
version "0.15.0"
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.15.0.tgz#e32f6210ab18c7b705bdcb375f7700f2db15d6ba"
integrity sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==
hermes-parser@0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.14.0.tgz#edb2e7172fce996d2c8bbba250d140b70cc1aaaf"
integrity sha512-pt+8uRiJhVlErY3fiXB3gKhZ72RxM6E1xRMpvfZ5n6Z5TQKQQXKorgRCRzoe02mmvLKBJFP5nPDGv75MWAgCTw==
dependencies:
hermes-estree "0.14.0"
hermes-estree@0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.16.0.tgz#e2c76a1e9d5a4d620790b9fe05fb01f2d53da07d"
integrity sha512-XCoTuBU8S+Jg8nFzaqgy6pNEYo0WYkbMmuJldb3svzpJ2SNUYJDg28b1ltoDMo7k3YlJwPRg7ZS3JTWV3DkDZA==
hermes-parser@0.15.0:
version "0.15.0"
@ -5453,6 +5446,13 @@ hermes-parser@0.15.0:
dependencies:
hermes-estree "0.15.0"
hermes-parser@0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.16.0.tgz#92d0a34ff4f9b7ffcb04511dfed0cc19df5038e0"
integrity sha512-tdJJntb45DUpv8j7ybHfq8NfIQgz8AgaD+PVFyfjK+O+v2N5zbsSDtlvQN2uxCghoTkQL86BEs9oi8IPrUE9Pg==
dependencies:
hermes-estree "0.16.0"
hermes-profile-transformer@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz#bd0f5ecceda80dd0ddaae443469ab26fb38fc27b"
@ -5460,17 +5460,17 @@ hermes-profile-transformer@^0.0.6:
dependencies:
source-map "^0.7.3"
hermes-transform@0.15.0:
version "0.15.0"
resolved "https://registry.yarnpkg.com/hermes-transform/-/hermes-transform-0.15.0.tgz#5509cf6993abafbdc32528098d287f5c91eef52c"
integrity sha512-ACGdssuE2mcu/qSwSfie1yWQs5IBRYy7yokPbdCkHd4M0jPqCiQbwrlRzQP0+XgyZPooINXWHxkhsI5Iffhppw==
hermes-transform@0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/hermes-transform/-/hermes-transform-0.16.0.tgz#f2ba027f558d5c59398f807683ade66adda37b69"
integrity sha512-8jckjt5WG+k/zIFSFe1VyTn4xnAJy9Hdej1/9vx0LUEwHXqCwHSasatwuZiF3oKjXX+q92lc33Nrpv1Ixl1gBw==
dependencies:
"@babel/code-frame" "^7.16.0"
esquery "^1.4.0"
flow-enums-runtime "^0.0.6"
hermes-eslint "0.15.0"
hermes-estree "0.15.0"
hermes-parser "0.15.0"
hermes-eslint "0.16.0"
hermes-estree "0.16.0"
hermes-parser "0.16.0"
homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1:
version "1.0.3"
@ -7756,14 +7756,14 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
prettier-plugin-hermes-parser@0.14.0:
version "0.14.0"
resolved "https://registry.yarnpkg.com/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.14.0.tgz#1b5122c14b949bfae96541bbeb39cdd15962a072"
integrity sha512-L3QtrNCVYUhN56oAvlkSYnwdOPgYxjBo1Fg+ApXTFUSk+b3uKcMlUqo6j0WZk4QKYtTtDwZcTT1Zl9VIF/7nDg==
prettier-plugin-hermes-parser@0.16.0:
version "0.16.0"
resolved "https://registry.yarnpkg.com/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.16.0.tgz#4393d43a4a6f4ed976493dccbbb93f62c44215c3"
integrity sha512-J4HdSmlxf3a0nVHVi0G6JJJ7sDVtSb5a+QR52LpiQonpQzMkqgIqyCg+Gt1sGMTJqn19Z0yTHxwCmUicVYXUVg==
dependencies:
hermes-estree "0.14.0"
hermes-parser "0.14.0"
prettier-plugin-hermes-parser "0.14.0"
hermes-estree "0.16.0"
hermes-parser "0.16.0"
prettier-plugin-hermes-parser "0.16.0"
prettier@2.8.8:
version "2.8.8"