From 86bede9c608748d552258258efd01e10f8a7664c Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Tue, 15 Apr 2025 03:56:39 -0700 Subject: [PATCH] Update hermes-parser and related packages in fbsource to 0.28.0 (#50695) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50695 Bump hermes-parser and related packages to 0.28.0. Changelog: [Internal] Reviewed By: robhogan Differential Revision: D72693713 fbshipit-source-id: f529b78a933ae7a6497f67f1f616c1acb95995c3 --- package.json | 10 +- .../eslint-plugin-react-native/package.json | 4 +- packages/eslint-plugin-specs/package.json | 4 +- .../react-native-babel-preset/package.json | 2 +- .../package.json | 2 +- packages/react-native-codegen/package.json | 4 +- .../__snapshots__/public-api-test.js.snap | 205 +++++++++--------- packages/react-native/package.json | 2 +- .../replaceDefaultExportName-test.js | 1 + yarn.lock | 75 ++++--- 10 files changed, 169 insertions(+), 140 deletions(-) diff --git a/package.json b/package.json index 363498ae03b..aacc4d3febe 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "@typescript-eslint/parser": "^7.1.1", "ansi-styles": "^4.2.1", "babel-plugin-minify-dead-code-elimination": "^0.5.2", - "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-syntax-hermes-parser": "0.28.0", "babel-plugin-transform-define": "^2.1.4", "babel-plugin-transform-flow-enums": "^0.0.2", "chalk": "^4.0.0", @@ -80,11 +80,11 @@ "eslint-plugin-react-native": "^4.0.0", "eslint-plugin-redundant-undefined": "^0.4.0", "eslint-plugin-relay": "^1.8.3", - "flow-api-translator": "0.25.1", + "flow-api-translator": "0.28.0", "flow-bin": "^0.267.0", "glob": "^7.1.1", - "hermes-eslint": "0.25.1", - "hermes-transform": "0.25.1", + "hermes-eslint": "0.28.0", + "hermes-transform": "0.28.0", "inquirer": "^7.1.0", "jest": "^29.7.0", "jest-config": "^29.7.0", @@ -100,7 +100,7 @@ "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", "prettier": "2.8.8", - "prettier-plugin-hermes-parser": "0.25.1", + "prettier-plugin-hermes-parser": "0.28.0", "react": "19.0.0", "react-test-renderer": "19.0.0", "rimraf": "^3.0.2", diff --git a/packages/eslint-plugin-react-native/package.json b/packages/eslint-plugin-react-native/package.json index ec5162c63d7..015cf9fb823 100644 --- a/packages/eslint-plugin-react-native/package.json +++ b/packages/eslint-plugin-react-native/package.json @@ -18,8 +18,8 @@ "bugs": "https://github.com/facebook/react-native/issues", "main": "index.js", "devDependencies": { - "babel-plugin-syntax-hermes-parser": "0.25.1", - "hermes-eslint": "0.25.1" + "babel-plugin-syntax-hermes-parser": "0.28.0", + "hermes-eslint": "0.28.0" }, "engines": { "node": ">=18" diff --git a/packages/eslint-plugin-specs/package.json b/packages/eslint-plugin-specs/package.json index 780fe734e68..638e46e5285 100644 --- a/packages/eslint-plugin-specs/package.json +++ b/packages/eslint-plugin-specs/package.json @@ -32,8 +32,8 @@ "source-map-support": "0.5.0" }, "devDependencies": { - "babel-plugin-syntax-hermes-parser": "0.25.1", - "hermes-eslint": "0.25.1" + "babel-plugin-syntax-hermes-parser": "0.28.0", + "hermes-eslint": "0.28.0" }, "engines": { "node": ">=18" diff --git a/packages/react-native-babel-preset/package.json b/packages/react-native-babel-preset/package.json index 01049efe44a..31b618aa4b4 100644 --- a/packages/react-native-babel-preset/package.json +++ b/packages/react-native-babel-preset/package.json @@ -56,7 +56,7 @@ "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/template": "^7.25.0", "@react-native/babel-plugin-codegen": "0.80.0-main", - "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-syntax-hermes-parser": "0.28.0", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" }, diff --git a/packages/react-native-babel-transformer/package.json b/packages/react-native-babel-transformer/package.json index 22f3dc03fcf..b5eb205ef75 100644 --- a/packages/react-native-babel-transformer/package.json +++ b/packages/react-native-babel-transformer/package.json @@ -17,7 +17,7 @@ "dependencies": { "@babel/core": "^7.25.2", "@react-native/babel-preset": "0.80.0-main", - "hermes-parser": "0.25.1", + "hermes-parser": "0.28.0", "nullthrows": "^1.1.1" }, "peerDependencies": { diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index 5029e1d60f0..1eb6c371491 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -30,7 +30,7 @@ ], "dependencies": { "glob": "^7.1.1", - "hermes-parser": "0.25.1", + "hermes-parser": "0.28.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "yargs": "^17.6.2" @@ -44,7 +44,7 @@ "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/preset-env": "^7.25.3", "chalk": "^4.0.0", - "hermes-estree": "0.25.1", + "hermes-estree": "0.28.0", "micromatch": "^4.0.4", "prettier": "2.8.8", "rimraf": "^3.0.2" diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index 0140776d525..c11275d1205 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -162,7 +162,7 @@ declare export default { get SectionList(): AnimatedSectionList, get Text(): AnimatedText, get View(): AnimatedView, - ...Animated, + ...typeof Animated, }; " `; @@ -192,25 +192,25 @@ export type { default as AnimatedMultiplication } from \\"./nodes/AnimatedMultip export type { default as AnimatedSubtraction } from \\"./nodes/AnimatedSubtraction\\"; export type { WithAnimatedValue } from \\"./createAnimatedComponent\\"; export type { AnimatedComponentType as AnimatedComponent } from \\"./createAnimatedComponent\\"; -declare export const add: $FlowFixMe; -declare export const attachNativeEvent: $FlowFixMe; -declare export const createAnimatedComponent: $FlowFixMe; -declare export const decay: $FlowFixMe; -declare export const delay: $FlowFixMe; -declare export const diffClamp: $FlowFixMe; -declare export const divide: $FlowFixMe; -declare export const event: $FlowFixMe; -declare export const forkEvent: $FlowFixMe; -declare export const loop: $FlowFixMe; -declare export const modulo: $FlowFixMe; -declare export const multiply: $FlowFixMe; -declare export const parallel: $FlowFixMe; -declare export const sequence: $FlowFixMe; -declare export const spring: $FlowFixMe; -declare export const stagger: $FlowFixMe; -declare export const subtract: $FlowFixMe; -declare export const timing: $FlowFixMe; -declare export const unforkEvent: $FlowFixMe; +declare export const add: typeof AnimatedImplementation.add; +declare export const attachNativeEvent: typeof AnimatedImplementation.attachNativeEvent; +declare export const createAnimatedComponent: typeof AnimatedImplementation.createAnimatedComponent; +declare export const decay: typeof AnimatedImplementation.decay; +declare export const delay: typeof AnimatedImplementation.delay; +declare export const diffClamp: typeof AnimatedImplementation.diffClamp; +declare export const divide: typeof AnimatedImplementation.divide; +declare export const event: typeof AnimatedImplementation.event; +declare export const forkEvent: typeof AnimatedImplementation.forkEvent; +declare export const loop: typeof AnimatedImplementation.loop; +declare export const modulo: typeof AnimatedImplementation.modulo; +declare export const multiply: typeof AnimatedImplementation.multiply; +declare export const parallel: typeof AnimatedImplementation.parallel; +declare export const sequence: typeof AnimatedImplementation.sequence; +declare export const spring: typeof AnimatedImplementation.spring; +declare export const stagger: typeof AnimatedImplementation.stagger; +declare export const subtract: typeof AnimatedImplementation.subtract; +declare export const timing: typeof AnimatedImplementation.timing; +declare export const unforkEvent: typeof AnimatedImplementation.unforkEvent; " `; @@ -278,7 +278,7 @@ type LoopAnimationConfig = { }; declare const loop: ( animation: CompositeAnimation, - LoopAnimationConfig + $$PARAM_1$$?: LoopAnimationConfig ) => CompositeAnimation; declare function forkEvent( event: ?AnimatedEvent | ?Function, @@ -303,31 +303,31 @@ type AnimatedNumeric = | AnimatedValue; export type { AnimatedNumeric as Numeric }; declare export default { - Value: AnimatedValue, - ValueXY: AnimatedValueXY, - Color: AnimatedColor, - Interpolation: AnimatedInterpolation, - Node: AnimatedNode, - decay: decay, - timing: timing, - spring: spring, - add: add, - subtract: subtract, - divide: divide, - multiply: multiply, - modulo: modulo, - diffClamp: diffClamp, - delay: delay, - sequence: sequence, - parallel: parallel, - stagger: stagger, - loop: loop, - event: event, - createAnimatedComponent: createAnimatedComponent, - attachNativeEvent: attachNativeEvent, - forkEvent: forkEvent, - unforkEvent: unforkEvent, - Event: AnimatedEvent, + Value: typeof AnimatedValue, + ValueXY: typeof AnimatedValueXY, + Color: typeof AnimatedColor, + Interpolation: typeof AnimatedInterpolation, + Node: typeof AnimatedNode, + decay: typeof decay, + timing: typeof timing, + spring: typeof spring, + add: typeof add, + subtract: typeof subtract, + divide: typeof divide, + multiply: typeof multiply, + modulo: typeof modulo, + diffClamp: typeof diffClamp, + delay: typeof delay, + sequence: typeof sequence, + parallel: typeof parallel, + stagger: typeof stagger, + loop: typeof loop, + event: typeof event, + createAnimatedComponent: typeof createAnimatedComponent, + attachNativeEvent: typeof attachNativeEvent, + forkEvent: typeof forkEvent, + unforkEvent: typeof unforkEvent, + Event: typeof AnimatedEvent, }; " `; @@ -362,8 +362,8 @@ declare const EasingStatic: { sin(t: number): number, circle(t: number): number, exp(t: number): number, - elastic(bounciness: number): EasingFunction, - back(s: number): EasingFunction, + elastic(bounciness?: number): EasingFunction, + back(s?: number): EasingFunction, bounce(t: number): number, bezier(x1: number, y1: number, x2: number, y2: number): EasingFunction, in(easing: EasingFunction): EasingFunction, @@ -1187,7 +1187,7 @@ declare export default typeof NativeModules; exports[`public API should not change unintentionally Libraries/Blob/Blob.js 1`] = ` "declare class Blob { - constructor(parts: Array, options?: BlobOptions): void; + constructor(parts?: Array, options?: BlobOptions): void; set data(data: ?BlobData): void; get data(): BlobData; slice(start?: number, end?: number, contentType?: string): Blob; @@ -1270,7 +1270,7 @@ declare class FileReader extends EventTarget { constructor(): void; readAsArrayBuffer(blob: ?Blob): void; readAsDataURL(blob: ?Blob): void; - readAsText(blob: ?Blob, encoding: string): void; + readAsText(blob: ?Blob, encoding?: string): void; abort(): void; get readyState(): ReadyState; get error(): ?Error; @@ -3057,17 +3057,17 @@ declare function registerInput(textField: HostInstance): void; declare function unregisterInput(textField: HostInstance): void; declare function isTextInput(textField: HostInstance): boolean; declare const TextInputState: { - currentlyFocusedInput: currentlyFocusedInput, - focusInput: focusInput, - blurInput: blurInput, - currentlyFocusedField: currentlyFocusedField, - focusField: focusField, - blurField: blurField, - focusTextInput: focusTextInput, - blurTextInput: blurTextInput, - registerInput: registerInput, - unregisterInput: unregisterInput, - isTextInput: isTextInput, + currentlyFocusedInput: typeof currentlyFocusedInput, + focusInput: typeof focusInput, + blurInput: typeof blurInput, + currentlyFocusedField: typeof currentlyFocusedField, + focusField: typeof focusField, + blurField: typeof blurField, + focusTextInput: typeof focusTextInput, + blurTextInput: typeof blurTextInput, + registerInput: typeof registerInput, + unregisterInput: typeof unregisterInput, + isTextInput: typeof isTextInput, }; declare export default typeof TextInputState; " @@ -3143,7 +3143,7 @@ declare const addPoolingTo: ( ... }; declare const PooledClass: { - addPoolingTo: addPoolingTo, + addPoolingTo: typeof addPoolingTo, oneArgumentPooler: Pooler, twoArgumentPooler: Pooler, threeArgumentPooler: Pooler, @@ -3217,8 +3217,8 @@ declare const TouchableMixinImpl: { withoutDefaultFocusAndBlur: { ... }, }; declare const TouchableImpl: { - Mixin: TouchableMixinImpl, - renderDebugView: ({ + Mixin: typeof TouchableMixinImpl, + renderDebugView: ($$PARAM_0$$: { color: ColorValue, hitSlop?: EdgeInsetsProp, ... @@ -3472,11 +3472,17 @@ exports[`public API should not change unintentionally Libraries/Components/View/ collapsable: true, collapsableChildren: true, needsOffscreenAlphaCompositing: true, - style: ReactNativeStyleAttributes, + style: typeof ReactNativeStyleAttributes, role: true, }; -declare const RCTView: { ...UIView, removeClippedSubviews: true }; -declare const ReactNativeViewAttributes: { UIView: UIView, RCTView: RCTView }; +declare const RCTView: { + ...typeof UIView, + removeClippedSubviews: true, +}; +declare const ReactNativeViewAttributes: { + UIView: typeof UIView, + RCTView: typeof RCTView, +}; declare export default typeof ReactNativeViewAttributes; " `; @@ -3934,11 +3940,11 @@ declare function unstable_setExceptionDecorator( declare function handleException(e: mixed, isFatal: boolean): void; declare function installConsoleErrorReporter(): void; declare const ExceptionsManager: { - decoratedExtraDataKey: decoratedExtraDataKey, - handleException: handleException, - installConsoleErrorReporter: installConsoleErrorReporter, - SyntheticError: SyntheticError, - unstable_setExceptionDecorator: unstable_setExceptionDecorator, + decoratedExtraDataKey: typeof decoratedExtraDataKey, + handleException: typeof handleException, + installConsoleErrorReporter: typeof installConsoleErrorReporter, + SyntheticError: typeof SyntheticError, + unstable_setExceptionDecorator: typeof unstable_setExceptionDecorator, }; declare export default typeof ExceptionsManager; " @@ -3992,7 +3998,7 @@ exports[`public API should not change unintentionally Libraries/Core/ReactFiberE ... }; declare const ReactFiberErrorDialog: { - showErrorDialog(CapturedError): boolean, + showErrorDialog($$PARAM_0$$: CapturedError): boolean, }; declare export default typeof ReactFiberErrorDialog; " @@ -4176,7 +4182,7 @@ exports[`public API should not change unintentionally Libraries/Image/AssetRegis registerAsset: (asset: PackagerAsset) => number, getAssetByID: (assetId: number) => PackagerAsset, }; -declare module.exports: AssetRegistry; +declare module.exports: typeof AssetRegistry; " `; @@ -4549,7 +4555,7 @@ declare export default typeof NativeImageStoreIOS; exports[`public API should not change unintentionally Libraries/Image/RelativeImageStub.js 1`] = ` "declare const RelativeImageStub: number; -declare module.exports: RelativeImageStub; +declare module.exports: typeof RelativeImageStub; " `; @@ -4671,7 +4677,7 @@ declare const JSEventLoopWatchdog: { getStats: () => Object, reset: () => void, addHandler: (handler: Handler) => void, - install: ({ thresholdMS: number, ... }) => void, + install: ($$PARAM_0$$: { thresholdMS: number, ... }) => void, }; declare export default typeof JSEventLoopWatchdog; " @@ -4755,7 +4761,7 @@ export type PromiseTask = { }; export type Task = SimpleTask | PromiseTask | (() => void); declare class TaskQueue { - constructor({ onMoreTasks: () => void, ... }): void; + constructor($$PARAM_0$$: { onMoreTasks: () => void, ... }): void; enqueue(task: Task): void; enqueueTasks(tasks: Array): void; cancelTasks(tasksToCancel: Array): void; @@ -4830,16 +4836,16 @@ declare const Presets: { spring: LayoutAnimationConfig, }; declare const LayoutAnimation: { - configureNext: configureNext, - create: create, + configureNext: typeof configureNext, + create: typeof create, Types: LayoutAnimationTypes, Properties: LayoutAnimationProperties, checkConfig(...args: Array): void, - Presets: Presets, + Presets: typeof Presets, easeInEaseOut: (onAnimationDidEnd?: OnAnimationDidEndCallback) => void, linear: (onAnimationDidEnd?: OnAnimationDidEndCallback) => void, spring: (onAnimationDidEnd?: OnAnimationDidEndCallback) => void, - setEnabled: setEnabled, + setEnabled: typeof setEnabled, }; declare export default typeof LayoutAnimation; " @@ -4894,7 +4900,7 @@ declare export default typeof FillRateHelper; `; exports[`public API should not change unintentionally Libraries/Lists/FlatList.js 1`] = ` -"declare const VirtualizedList: $FlowFixMe; +"declare const VirtualizedList: typeof VirtualizedLists.VirtualizedList; type RequiredProps = { data: ?$ReadOnly<$ArrayLike>, }; @@ -4975,7 +4981,7 @@ declare export default typeof FlatList; `; exports[`public API should not change unintentionally Libraries/Lists/SectionList.js 1`] = ` -"declare const VirtualizedSectionList: $FlowFixMe; +"declare const VirtualizedSectionList: typeof VirtualizedLists.VirtualizedSectionList; type DefaultSectionT = { [key: string]: any, }; @@ -5376,7 +5382,7 @@ declare export default React.ComponentType<{}>; `; exports[`public API should not change unintentionally Libraries/LogBox/UI/AnsiHighlight.js 1`] = ` -"declare export default function Ansi({ +"declare export default function Ansi($$PARAM_0$$: { text: string, style: TextStyleProp, ... @@ -5657,7 +5663,10 @@ export type ModalProps = { type ModalRefProps = $ReadOnly<{ ref?: React.RefSetter, }>; -declare function Wrapper({ ...ModalRefProps, ...ModalProps }): React.Node; +declare function Wrapper($$PARAM_0$$: { + ...ModalRefProps, + ...ModalProps, +}): React.Node; declare export default typeof Wrapper; " `; @@ -6004,10 +6013,10 @@ declare export default typeof convertRequestBody; `; exports[`public API should not change unintentionally Libraries/Network/fetch.js 1`] = ` -"declare export const fetch: $FlowFixMe; -declare export const Headers: $FlowFixMe; -declare export const Request: $FlowFixMe; -declare export const Response: $FlowFixMe; +"declare export const fetch: typeof global.fetch; +declare export const Headers: typeof global.Headers; +declare export const Request: typeof global.Request; +declare export const Response: typeof global.Response; " `; @@ -6374,7 +6383,7 @@ declare export default typeof AppContainer; `; exports[`public API should not change unintentionally Libraries/ReactNative/AppContainer-dev.js 1`] = ` -"declare const AppContainer: (Props) => React.Node; +"declare const AppContainer: ($$PARAM_0$$: Props) => React.Node; export type AppContainerRootViewRef = React.RefObject | null>; @@ -6389,7 +6398,7 @@ declare export default typeof AppContainer; `; exports[`public API should not change unintentionally Libraries/ReactNative/AppContainer-prod.js 1`] = ` -"declare const AppContainer: (Props) => React.Node; +"declare const AppContainer: ($$PARAM_0$$: Props) => React.Node; declare export default typeof AppContainer; " `; @@ -6734,7 +6743,7 @@ declare export default typeof ReactNativeRuntimeDiagnostics; `; exports[`public API should not change unintentionally Libraries/ReactNative/RendererImplementation.js 1`] = ` -"declare export function renderElement({ +"declare export function renderElement($$PARAM_0$$: { element: React.MixedElement, rootTag: number, useFabric: boolean, @@ -7036,11 +7045,11 @@ declare const absoluteFill: { +top: 0, }; declare export default { - hairlineWidth: hairlineWidth, + hairlineWidth: typeof hairlineWidth, absoluteFill: any, - absoluteFillObject: absoluteFill, - compose: composeStyles, - flatten: flatten, + absoluteFillObject: typeof absoluteFill, + compose: typeof composeStyles, + flatten: typeof flatten, setStyleAttributePreprocessor( property: string, process: (nextProp: mixed) => mixed @@ -8589,7 +8598,7 @@ exports[`public API should not change unintentionally Libraries/Utilities/differ declare function deepDiffer( one: any, two: any, - maxDepthOrOptions: Options | number, + maxDepthOrOptions?: Options | number, maybeOptions?: Options ): boolean; declare export default typeof deepDiffer; @@ -9375,7 +9384,7 @@ exports[`public API should not change unintentionally src/private/webapis/dom/no } declare export function getBoundingClientRect( element: ReadOnlyElement, - { includeTransform: boolean } + $$PARAM_1$$: { includeTransform: boolean } ): DOMRect; " `; diff --git a/packages/react-native/package.json b/packages/react-native/package.json index c173703a82b..70a8c5ed430 100644 --- a/packages/react-native/package.json +++ b/packages/react-native/package.json @@ -118,7 +118,7 @@ "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-jest": "^29.7.0", - "babel-plugin-syntax-hermes-parser": "0.25.1", + "babel-plugin-syntax-hermes-parser": "0.28.0", "base64-js": "^1.5.1", "chalk": "^4.0.0", "commander": "^12.0.0", diff --git a/scripts/build-types/transforms/__tests__/replaceDefaultExportName-test.js b/scripts/build-types/transforms/__tests__/replaceDefaultExportName-test.js index 9b82301719d..f377ea86275 100644 --- a/scripts/build-types/transforms/__tests__/replaceDefaultExportName-test.js +++ b/scripts/build-types/transforms/__tests__/replaceDefaultExportName-test.js @@ -36,6 +36,7 @@ describe('replaceDefaultExportName', () => { const result = await translate(code, 'mock/path/to/module/Foo.js'); expect(result).toMatchInlineSnapshot(` "declare const Foo_DEFAULT: typeof Foo; + declare type Foo_DEFAULT = typeof Foo_DEFAULT; export default Foo_DEFAULT;" `); }); diff --git a/yarn.lock b/yarn.lock index afff84cc772..29870733033 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2715,6 +2715,13 @@ babel-plugin-syntax-hermes-parser@0.25.1: dependencies: hermes-parser "0.25.1" +babel-plugin-syntax-hermes-parser@0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-hermes-parser/-/babel-plugin-syntax-hermes-parser-0.28.0.tgz#452969a6f6db8f3a14fec33fe64e43cf578e0515" + integrity sha512-h0qGTPw3HffOouO9HdR4HKrBm+6wEa3kPbPmySb01KjlrJ4IruZ5pAYZP2D9kdAmdZbQ5CwFAPefMcI0ETK75Q== + dependencies: + hermes-parser "0.28.0" + babel-plugin-transform-define@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/babel-plugin-transform-define/-/babel-plugin-transform-define-2.1.4.tgz#8f7088211176a55a72788d584ceea9f691a021c1" @@ -4413,19 +4420,19 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== -flow-api-translator@0.25.1: - version "0.25.1" - resolved "https://registry.yarnpkg.com/flow-api-translator/-/flow-api-translator-0.25.1.tgz#5aaf89aecd37384ab8ebdc948fe3afe5f81a7373" - integrity sha512-PI2IXcDUdnEZ5yErIhai4Ipufw0GpnIm/mrNNlbz07l8Lkzr72l4ycbo9mZx98+SV+wl84QLn8Gpt4uKxrM/kQ== +flow-api-translator@0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/flow-api-translator/-/flow-api-translator-0.28.0.tgz#fa57bd99316e1e48a72a272e92c7f942aff87956" + integrity sha512-rkXDxno062ylQVIo/4KO+aK7CJjGd2uF8LiSzDOjsH8e7IYTKmuBe4EZMIzsuA6yubi3r3VI6tG+k64+g8eoxg== dependencies: "@babel/code-frame" "^7.16.0" "@typescript-eslint/parser" "7.2.0" "@typescript-eslint/visitor-keys" "7.2.0" flow-enums-runtime "^0.0.6" - hermes-eslint "0.25.1" - hermes-estree "0.25.1" - hermes-parser "0.25.1" - hermes-transform "0.25.1" + hermes-eslint "0.28.0" + hermes-estree "0.28.0" + hermes-parser "0.28.0" + hermes-transform "0.28.0" typescript "5.3.2" flow-bin@^0.267.0: @@ -4829,20 +4836,25 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: dependencies: function-bind "^1.1.2" -hermes-eslint@0.25.1: - version "0.25.1" - resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.25.1.tgz#e7d2d845256705d5e2d5cf69dc79032ac3921bb3" - integrity sha512-nPz9+oyejT1zsIwoJ2pWdUvLcN1i+tbaWCOD8PpNBYQtnHXaPXImZp/6zZHnm3bo/DoFcAgh8+SNcxLFxh7m/A== +hermes-eslint@0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/hermes-eslint/-/hermes-eslint-0.28.0.tgz#6174b444ee72ed2deb9f203a99adbfac731ec764" + integrity sha512-gVtpuC+MR4CLSfvX+emL46ET5PeCfAxsVP71kymP14g/hQtklXn24RkkwojfFlpTC67XwGDukeh6atMkxZjWdQ== dependencies: esrecurse "^4.3.0" - hermes-estree "0.25.1" - hermes-parser "0.25.1" + hermes-estree "0.28.0" + hermes-parser "0.28.0" hermes-estree@0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.25.1.tgz#6aeec17d1983b4eabf69721f3aa3eb705b17f480" integrity sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw== +hermes-estree@0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.28.0.tgz#00cb52c4ca1aa27fa662c9ee4a4281ad29136a1c" + integrity sha512-M5IFfnP4RCA2/Hv7VTIlZ1FV4qW33gresbv0SDaSBS/6lax23oV2sg4iE0fhYnpMeQL7Inob+jAeO+mV2T3bKA== + hermes-parser@0.25.1: version "0.25.1" resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.25.1.tgz#5be0e487b2090886c62bd8a11724cd766d5f54d1" @@ -4850,17 +4862,24 @@ hermes-parser@0.25.1: dependencies: hermes-estree "0.25.1" -hermes-transform@0.25.1: - version "0.25.1" - resolved "https://registry.yarnpkg.com/hermes-transform/-/hermes-transform-0.25.1.tgz#78a4e82605269447d68426dc3d003e24dca89b7f" - integrity sha512-KSFRTAygJPclP7DMdQrmNrJaUn/h/tA7WSvP8USNK77L5ZSiyFv0019XcrVtlnYUoiEAp4591yD9L8s1d8/qqQ== +hermes-parser@0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.28.0.tgz#2d06c1cb6b55f6094e262750240a167c39ed9457" + integrity sha512-PPtmoqyz4vv5SqVCYuvJLPKZt+SqCMviICVEygi6jHyfAvDd0cQTV2MfikDd8YXPOszR/9QvauWcGyluxej+rg== + dependencies: + hermes-estree "0.28.0" + +hermes-transform@0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/hermes-transform/-/hermes-transform-0.28.0.tgz#6d6b32e8e1fb2c5030f1e19eb517c0b2c7c0a62c" + integrity sha512-UK7NjoW9LcVYr5rpzOd2bHf7MTsYklYf1tc6DsiYRS7Ab9uyXVosRIHAHckXgCMlVw5Q9XpeMDDHhRn+NJCCvA== dependencies: "@babel/code-frame" "^7.16.0" esquery "^1.4.0" flow-enums-runtime "^0.0.6" - hermes-eslint "0.25.1" - hermes-estree "0.25.1" - hermes-parser "0.25.1" + hermes-eslint "0.28.0" + hermes-estree "0.28.0" + hermes-parser "0.28.0" string-width "4.2.3" homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: @@ -7535,14 +7554,14 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-plugin-hermes-parser@0.25.1: - version "0.25.1" - resolved "https://registry.yarnpkg.com/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.25.1.tgz#f7e82357f7fdcf5fcdf9e06dcc3bbafe03ed61eb" - integrity sha512-qVsgSt1ZLz7sxQyMmLM3b8JYIcUt4pkE+OCMEoUTe5G87ghNe9lluYMy7ptu1h0f3fAZ+zkifUV3JojMmQcKkg== +prettier-plugin-hermes-parser@0.28.0: + version "0.28.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-hermes-parser/-/prettier-plugin-hermes-parser-0.28.0.tgz#5e1bc55b92d3c411dfc25e83ad5dba381107e03f" + integrity sha512-FzGhMtClkawV6Qs9106MVm0XfBtA7KD1FP2rQOqIbES35y8495xVhPyPI41ambb0Fz8TxZPhbLM3UJZ8BLQrEA== dependencies: - hermes-estree "0.25.1" - hermes-parser "0.25.1" - prettier-plugin-hermes-parser "0.25.1" + hermes-estree "0.28.0" + hermes-parser "0.28.0" + prettier-plugin-hermes-parser "0.28.0" prettier@2.8.8: version "2.8.8"