diff --git a/package.json b/package.json index 6168e2890ca..58f7a2bbc51 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,6 @@ "jest-diff": "^29.7.0", "jest-junit": "^10.0.0", "jest-snapshot": "^29.7.0", - "jscodeshift": "^0.14.0", "metro-babel-register": "^0.82.0", "metro-memory-fs": "^0.82.0", "metro-transform-plugins": "^0.82.0", diff --git a/packages/babel-plugin-codegen/__tests__/__snapshots__/index-test.js.snap b/packages/babel-plugin-codegen/__tests__/__snapshots__/index-test.js.snap index 7ea01935ac3..94e334ad3da 100644 --- a/packages/babel-plugin-codegen/__tests__/__snapshots__/index-test.js.snap +++ b/packages/babel-plugin-codegen/__tests__/__snapshots__/index-test.js.snap @@ -30,18 +30,18 @@ const { } = require(\\"react-native/Libraries/ReactNative/RendererProxy\\"); let nativeComponentName = 'RCTModule'; export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'RCTModule', + uiViewClassName: \\"RCTModule\\", bubblingEventTypes: { topBubblingEventDefinedInlineNull: { phasedRegistrationNames: { - captured: 'onBubblingEventDefinedInlineNullCapture', - bubbled: 'onBubblingEventDefinedInlineNull' + captured: \\"onBubblingEventDefinedInlineNullCapture\\", + bubbled: \\"onBubblingEventDefinedInlineNull\\" } } }, directEventTypes: { topDirectEventDefinedInlineNull: { - registrationName: 'onDirectEventDefinedInlineNull' + registrationName: \\"onDirectEventDefinedInlineNull\\" } }, validAttributes: { @@ -93,18 +93,18 @@ const { } = require(\\"react-native/Libraries/ReactNative/RendererProxy\\"); let nativeComponentName = 'RCTModule'; export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'RCTModule', + uiViewClassName: \\"RCTModule\\", bubblingEventTypes: { topBubblingEventDefinedInlineNull: { phasedRegistrationNames: { - captured: 'onBubblingEventDefinedInlineNullCapture', - bubbled: 'onBubblingEventDefinedInlineNull' + captured: \\"onBubblingEventDefinedInlineNullCapture\\", + bubbled: \\"onBubblingEventDefinedInlineNull\\" } } }, directEventTypes: { topDirectEventDefinedInlineNull: { - registrationName: 'onDirectEventDefinedInlineNull' + registrationName: \\"onDirectEventDefinedInlineNull\\" } }, validAttributes: { diff --git a/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GenerateViewConfigJs-test.js.snap b/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GenerateViewConfigJs-test.js.snap index 9572af9c682..fcae1158c95 100644 --- a/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GenerateViewConfigJs-test.js.snap +++ b/packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GenerateViewConfigJs-test.js.snap @@ -19,21 +19,16 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ArrayPropsNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ArrayPropsNativeComponentView', - + uiViewClassName: \\"ArrayPropsNativeComponentView\\", validAttributes: { names: true, disableds: true, progress: true, radii: true, - colors: { - process: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/StyleSheet/processColorArray')), + process: (req => 'default' in req ? req.default : req)(require('react-native/Libraries/StyleSheet/processColorArray')) }, - srcs: true, points: true, edgeInsets: true, @@ -41,10 +36,9 @@ export const __INTERNAL_VIEW_CONFIG = { sizes: true, object: true, arrayOfObjects: true, - arrayOfMixed: true, - }, + arrayOfMixed: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -69,17 +63,13 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'BooleanPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'BooleanPropNativeComponentView', - + uiViewClassName: \\"BooleanPropNativeComponentView\\", validAttributes: { disabled: true, - disabledNullable: true, - }, + disabledNullable: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -104,18 +94,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ColorPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ColorPropNativeComponentView', - + uiViewClassName: \\"ColorPropNativeComponentView\\", validAttributes: { tintColor: { - process: require('react-native/Libraries/StyleSheet/processColor').default, - }, - }, + process: require('react-native/Libraries/StyleSheet/processColor').default + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -140,16 +126,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'DimensionPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'DimensionPropNativeComponentView', - + uiViewClassName: \\"DimensionPropNativeComponentView\\", validAttributes: { - marginBack: true, - }, + marginBack: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -174,13 +156,10 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'EdgeInsetsPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'EdgeInsetsPropNativeComponentView', - validAttributes: {}, + uiViewClassName: \\"EdgeInsetsPropNativeComponentView\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -205,17 +184,13 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'EnumPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'EnumPropNativeComponentView', - + uiViewClassName: \\"EnumPropNativeComponentView\\", validAttributes: { alignment: true, - intervals: true, - }, + intervals: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -241,29 +216,23 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore'); let nativeComponentName = 'EventNestedObjectPropsNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'EventNestedObjectPropsNativeComponentView', - + uiViewClassName: \\"EventNestedObjectPropsNativeComponentView\\", bubblingEventTypes: { topChange: { phasedRegistrationNames: { - captured: 'onChangeCapture', - bubbled: 'onChange', - }, - }, + captured: \\"onChangeCapture\\", + bubbled: \\"onChange\\" + } + } }, - validAttributes: { disabled: true, - ...ConditionallyIgnoredEventHandlers({ - onChange: true, - }), - }, + onChange: true + }) + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -289,62 +258,51 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore'); let nativeComponentName = 'EventPropsNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'EventPropsNativeComponentView', - + uiViewClassName: \\"EventPropsNativeComponentView\\", bubblingEventTypes: { topPaperDirectName: { phasedRegistrationNames: { - captured: 'onChangeCapture', - bubbled: 'onChange', - }, + captured: \\"onChangeCapture\\", + bubbled: \\"onChange\\" + } }, - topEnd: { phasedRegistrationNames: { - captured: 'onEndCapture', - bubbled: 'onEnd', - }, + captured: \\"onEndCapture\\", + bubbled: \\"onEnd\\" + } }, - topPaperBubblingName: { phasedRegistrationNames: { - captured: 'onEventBubblingWithPaperNameCapture', - bubbled: 'onEventBubblingWithPaperName', - }, - }, + captured: \\"onEventBubblingWithPaperNameCapture\\", + bubbled: \\"onEventBubblingWithPaperName\\" + } + } }, - directEventTypes: { topEventDirect: { - registrationName: 'onEventDirect', + registrationName: \\"onEventDirect\\" }, - topPaperDirectName: { - registrationName: 'onEventDirectWithPaperName', + registrationName: \\"onEventDirectWithPaperName\\" }, - topPaperBubblingName: { - registrationName: 'onOrientationChange', - }, + registrationName: \\"onOrientationChange\\" + } }, - validAttributes: { disabled: true, - ...ConditionallyIgnoredEventHandlers({ onChange: true, onEventDirect: true, onEventDirectWithPaperName: true, onOrientationChange: true, onEnd: true, - onEventBubblingWithPaperName: true, - }), - }, + onEventBubblingWithPaperName: true + }) + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -369,11 +327,8 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'FloatPropsNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'FloatPropsNativeComponentView', - + uiViewClassName: \\"FloatPropsNativeComponentView\\", validAttributes: { blurRadius: true, blurRadius2: true, @@ -381,10 +336,9 @@ export const __INTERNAL_VIEW_CONFIG = { blurRadius4: true, blurRadius5: true, blurRadius6: true, - blurRadiusNullable: true, - }, + blurRadiusNullable: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -409,18 +363,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ImagePropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ImagePropNativeComponentView', - + uiViewClassName: \\"ImagePropNativeComponentView\\", validAttributes: { thumbImage: { - process: require('react-native/Libraries/Image/resolveAssetSource'), - }, - }, + process: require('react-native/Libraries/Image/resolveAssetSource') + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -445,18 +395,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'IntegerPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'IntegerPropNativeComponentView', - + uiViewClassName: \\"IntegerPropNativeComponentView\\", validAttributes: { progress1: true, progress2: true, - progress3: true, - }, + progress3: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -482,29 +428,23 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore'); let nativeComponentName = 'RCTInterfaceOnlyComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'RCTInterfaceOnlyComponent', - + uiViewClassName: \\"RCTInterfaceOnlyComponent\\", bubblingEventTypes: { topChange: { phasedRegistrationNames: { - captured: 'onChangeCapture', - bubbled: 'onChange', - }, - }, + captured: \\"onChangeCapture\\", + bubbled: \\"onChange\\" + } + } }, - validAttributes: { title: true, - ...ConditionallyIgnoredEventHandlers({ - onChange: true, - }), - }, + onChange: true + }) + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -529,16 +469,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'MixedPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MixedPropNativeComponentView', - + uiViewClassName: \\"MixedPropNativeComponentView\\", validAttributes: { - mixedProp: true, - }, + mixedProp: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -563,30 +499,23 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'MultiNativePropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MultiNativePropNativeComponentView', - + uiViewClassName: \\"MultiNativePropNativeComponentView\\", validAttributes: { thumbImage: { - process: require('react-native/Libraries/Image/resolveAssetSource'), + process: require('react-native/Libraries/Image/resolveAssetSource') }, - color: { - process: require('react-native/Libraries/StyleSheet/processColor').default, + process: require('react-native/Libraries/StyleSheet/processColor').default }, - thumbTintColor: { - process: require('react-native/Libraries/StyleSheet/processColor').default, + process: require('react-native/Libraries/StyleSheet/processColor').default }, - point: { - diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')), - }, - }, + diff: (req => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')) + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -611,13 +540,10 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'NoPropsNoEventsNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'NoPropsNoEventsNativeComponentView', - validAttributes: {}, + uiViewClassName: \\"NoPropsNoEventsNativeComponentView\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -642,18 +568,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ObjectPropsNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ObjectPropsNativeComponent', - + uiViewClassName: \\"ObjectPropsNativeComponent\\", validAttributes: { objectProp: true, objectArrayProp: true, - objectPrimitiveRequiredProp: true, - }, + objectPrimitiveRequiredProp: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -678,18 +600,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'PointPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'PointPropNativeComponentView', - + uiViewClassName: \\"PointPropNativeComponentView\\", validAttributes: { startPoint: { - diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')), - }, - }, + diff: (req => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')) + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -714,17 +632,13 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'StringPropNativeComponentView'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'StringPropNativeComponentView', - + uiViewClassName: \\"StringPropNativeComponentView\\", validAttributes: { placeholder: true, - defaultValue: true, - }, + defaultValue: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } diff --git a/packages/react-native-codegen/package.json b/packages/react-native-codegen/package.json index c68809b586a..6b03013839d 100644 --- a/packages/react-native-codegen/package.json +++ b/packages/react-native-codegen/package.json @@ -29,24 +29,22 @@ "lib" ], "dependencies": { - "@babel/parser": "^7.25.3", "glob": "^7.1.1", "hermes-parser": "0.25.1", "invariant": "^2.2.4", - "jscodeshift": "^17.0.0", "nullthrows": "^1.1.1", "yargs": "^17.6.2" }, "devDependencies": { "@babel/core": "^7.25.2", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-class-properties": "^7.25.4", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/preset-env": "^7.25.3", "chalk": "^4.0.0", "hermes-estree": "0.25.1", @@ -55,6 +53,6 @@ "rimraf": "^3.0.2" }, "peerDependencies": { - "@babel/preset-env": "^7.1.6" + "@babel/core": "*" } } diff --git a/packages/react-native-codegen/src/generators/components/GenerateViewConfigJs.js b/packages/react-native-codegen/src/generators/components/GenerateViewConfigJs.js index 91cbc056423..171158cda9c 100644 --- a/packages/react-native-codegen/src/generators/components/GenerateViewConfigJs.js +++ b/packages/react-native-codegen/src/generators/components/GenerateViewConfigJs.js @@ -16,7 +16,8 @@ import type { } from '../../CodegenSchema'; import type {SchemaType} from '../../CodegenSchema'; -const j = require('jscodeshift'); +const core = require('@babel/core'); +const t = core.types; // File path -> contents type FilesOutput = Map; @@ -50,6 +51,10 @@ ${componentConfig} // this multiple times. const UIMANAGER_IMPORT = 'const {UIManager} = require("react-native")'; +function expression(input: string) { + return core.template.expression(input)(); +} + function getReactDiffProcessValue(typeAnnotation: PropTypeAnnotation) { switch (typeAnnotation.type) { case 'BooleanTypeAnnotation': @@ -61,25 +66,29 @@ function getReactDiffProcessValue(typeAnnotation: PropTypeAnnotation) { case 'StringEnumTypeAnnotation': case 'Int32EnumTypeAnnotation': case 'MixedTypeAnnotation': - return j.literal(true); + return t.booleanLiteral(true); case 'ReservedPropTypeAnnotation': switch (typeAnnotation.name) { case 'ColorPrimitive': - return j.template - .expression`{ process: require('react-native/Libraries/StyleSheet/processColor').default }`; + return expression( + `{ process: require('react-native/Libraries/StyleSheet/processColor').default }`, + ); case 'ImageSourcePrimitive': - return j.template - .expression`{ process: require('react-native/Libraries/Image/resolveAssetSource') }`; + return expression( + `{ process: require('react-native/Libraries/Image/resolveAssetSource') }`, + ); case 'ImageRequestPrimitive': throw new Error('ImageRequest should not be used in props'); case 'PointPrimitive': - return j.template - .expression`{ diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')) }`; + return expression( + `{ diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')) }`, + ); case 'EdgeInsetsPrimitive': - return j.template - .expression`{ diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/insetsDiffer')) }`; + return expression( + `{ diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/insetsDiffer')) }`, + ); case 'DimensionPrimitive': - return j.literal(true); + return t.booleanLiteral(true); default: (typeAnnotation.name: empty); throw new Error( @@ -90,20 +99,21 @@ function getReactDiffProcessValue(typeAnnotation: PropTypeAnnotation) { if (typeAnnotation.elementType.type === 'ReservedPropTypeAnnotation') { switch (typeAnnotation.elementType.name) { case 'ColorPrimitive': - return j.template - .expression`{ process: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/StyleSheet/processColorArray')) }`; + return expression( + `{ process: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/StyleSheet/processColorArray')) }`, + ); case 'ImageSourcePrimitive': case 'PointPrimitive': case 'EdgeInsetsPrimitive': case 'DimensionPrimitive': - return j.literal(true); + return t.booleanLiteral(true); default: throw new Error( `Received unknown array native typeAnnotation: "${typeAnnotation.elementType.name}"`, ); } } - return j.literal(true); + return t.booleanLiteral(true); default: (typeAnnotation: empty); throw new Error( @@ -134,7 +144,7 @@ ${ : '' } -export const __INTERNAL_VIEW_CONFIG = VIEW_CONFIG; +export const __INTERNAL_VIEW_CONFIG = %%VIEW_CONFIG%%; export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); `.trim(); @@ -180,13 +190,16 @@ function getValidAttributesForEvents( "const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore');", ); - const validAttributes = j.objectExpression( + const validAttributes = t.objectExpression( events.map(eventType => { - return j.property('init', j.identifier(eventType.name), j.literal(true)); + return t.objectProperty( + t.identifier(eventType.name), + t.booleanLiteral(true), + ); }), ); - return j.callExpression(j.identifier('ConditionallyIgnoredEventHandlers'), [ + return t.callExpression(t.identifier('ConditionallyIgnoredEventHandlers'), [ validAttributes, ]); } @@ -195,20 +208,20 @@ function generateBubblingEventInfo( event: EventTypeShape, nameOveride: void | string, ) { - return j.property( - 'init', - j.identifier(normalizeInputEventName(nameOveride || event.name)), - j.objectExpression([ - j.property( - 'init', - j.identifier('phasedRegistrationNames'), - j.objectExpression([ - j.property( - 'init', - j.identifier('captured'), - j.literal(`${event.name}Capture`), + return t.objectProperty( + t.identifier(normalizeInputEventName(nameOveride || event.name)), + t.objectExpression([ + t.objectProperty( + t.identifier('phasedRegistrationNames'), + t.objectExpression([ + t.objectProperty( + t.identifier('captured'), + t.stringLiteral(`${event.name}Capture`), + ), + t.objectProperty( + t.identifier('bubbled'), + t.stringLiteral(event.name), ), - j.property('init', j.identifier('bubbled'), j.literal(event.name)), ]), ), ]), @@ -219,14 +232,12 @@ function generateDirectEventInfo( event: EventTypeShape, nameOveride: void | string, ) { - return j.property( - 'init', - j.identifier(normalizeInputEventName(nameOveride || event.name)), - j.objectExpression([ - j.property( - 'init', - j.identifier('registrationName'), - j.literal(event.name), + return t.objectProperty( + t.identifier(normalizeInputEventName(nameOveride || event.name)), + t.objectExpression([ + t.objectProperty( + t.identifier('registrationName'), + t.stringLiteral(event.name), ), ]), ); @@ -261,20 +272,15 @@ function buildViewConfig( } }); - const validAttributes = j.objectExpression([ + const validAttributes = t.objectExpression([ ...componentProps.map(schemaProp => { - return j.property( - 'init', - j.identifier(schemaProp.name), + return t.objectProperty( + t.identifier(schemaProp.name), getReactDiffProcessValue(schemaProp.typeAnnotation), ); }), ...(componentEvents.length > 0 - ? [ - j.spreadProperty( - getValidAttributesForEvents(componentEvents, imports), - ), - ] + ? [t.spreadElement(getValidAttributesForEvents(componentEvents, imports))] : []), ]); @@ -294,15 +300,6 @@ function buildViewConfig( return bubblingEvents; }, []); - const bubblingEvents = - bubblingEventNames.length > 0 - ? j.property( - 'init', - j.identifier('bubblingEventTypes'), - j.objectExpression(bubblingEventNames), - ) - : null; - const directEventNames = component.events .filter(event => event.bubblingType === 'direct') .reduce((directEvents: Array, event) => { @@ -319,27 +316,34 @@ function buildViewConfig( return directEvents; }, []); - const directEvents = - directEventNames.length > 0 - ? j.property( - 'init', - j.identifier('directEventTypes'), - j.objectExpression(directEventNames), - ) - : null; - const properties = [ - j.property( - 'init', - j.identifier('uiViewClassName'), - j.literal(componentName), + t.objectProperty( + t.identifier('uiViewClassName'), + t.stringLiteral(componentName), ), - bubblingEvents, - directEvents, - j.property('init', j.identifier('validAttributes'), validAttributes), - ].filter(Boolean); + ]; - return j.objectExpression(properties); + if (bubblingEventNames.length > 0) { + properties.push( + t.objectProperty( + t.identifier('bubblingEventTypes'), + t.objectExpression(bubblingEventNames), + ), + ); + } + if (directEventNames.length > 0) { + properties.push( + t.objectProperty( + t.identifier('directEventTypes'), + t.objectExpression(directEventNames), + ), + ); + } + + properties.push( + t.objectProperty(t.identifier('validAttributes'), validAttributes), + ); + return t.objectExpression(properties); } function buildCommands( @@ -358,45 +362,32 @@ function buildCommands( 'const {dispatchCommand} = require("react-native/Libraries/ReactNative/RendererProxy");', ); - const properties = commands.map(command => { - const commandName = command.name; - const params = command.typeAnnotation.params; + const commandsObject = t.objectExpression( + commands.map(command => { + const commandName = command.name; + const params = command.typeAnnotation.params; - const commandNameLiteral = j.literal(commandName); - const commandNameIdentifier = j.identifier(commandName); - const arrayParams = j.arrayExpression( - params.map(param => { - return j.identifier(param.name); - }), - ); + const dispatchCommandCall = t.callExpression( + t.identifier('dispatchCommand'), + [ + t.identifier('ref'), + t.stringLiteral(commandName), + t.arrayExpression(params.map(param => t.identifier(param.name))), + ], + ); - const expression = j.template - .expression`dispatchCommand(ref, ${commandNameLiteral}, ${arrayParams})`; + return t.objectMethod( + 'method', + t.identifier(commandName), + [t.identifier('ref'), ...params.map(param => t.identifier(param.name))], + t.blockStatement([t.expressionStatement(dispatchCommandCall)]), + ); + }), + ); - const functionParams = params.map(param => { - return j.identifier(param.name); - }); - - const property = j.property( - 'init', - commandNameIdentifier, - j.functionExpression( - null, - [j.identifier('ref'), ...functionParams], - j.blockStatement([j.expressionStatement(expression)]), - ), - ); - property.method = true; - - return property; - }); - - return j.exportNamedDeclaration( - j.variableDeclaration('const', [ - j.variableDeclarator( - j.identifier('Commands'), - j.objectExpression(properties), - ), + return t.exportNamedDeclaration( + t.variableDeclaration('const', [ + t.variableDeclarator(t.identifier('Commands'), commandsObject), ]), ); } @@ -431,42 +422,40 @@ module.exports = { component.paperComponentNameDeprecated, }); - const replacedSourceRoot = j.withParser('flow')(replacedTemplate); - const paperComponentName = component.paperComponentName ?? componentName; - replacedSourceRoot - .find(j.Identifier, { - name: 'VIEW_CONFIG', - }) - .replaceWith( - buildViewConfig( - schema, - paperComponentName, - component, - imports, - ), - ); + const replacedSourceRoot = core.template.program( + replacedTemplate, + )({ + VIEW_CONFIG: buildViewConfig( + schema, + paperComponentName, + component, + imports, + ), + }); - const commands = buildCommands( + const commandsExport = buildCommands( schema, paperComponentName, component, imports, ); - if (commands) { - replacedSourceRoot - .find(j.ExportDefaultDeclaration) - .insertAfter(j(commands).toSource()); + if (commandsExport) { + replacedSourceRoot.body.push(commandsExport); } - const replacedSource: string = replacedSourceRoot.toSource({ - quote: 'single', - trailingComma: true, - }); - - return replacedSource; + const replacedSource = core.transformFromAstSync( + replacedSourceRoot, + undefined, + { + babelrc: false, + browserslistConfigFile: false, + configFile: false, + }, + ); + return replacedSource.code; }) .join('\n\n'); }) diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateViewConfigJs-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateViewConfigJs-test.js.snap index e687ec49198..0ac82e60010 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateViewConfigJs-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateViewConfigJs-test.js.snap @@ -19,21 +19,16 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ArrayPropsNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ArrayPropsNativeComponent', - + uiViewClassName: \\"ArrayPropsNativeComponent\\", validAttributes: { names: true, disableds: true, progress: true, radii: true, - colors: { - process: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/StyleSheet/processColorArray')), + process: (req => 'default' in req ? req.default : req)(require('react-native/Libraries/StyleSheet/processColorArray')) }, - srcs: true, points: true, dimensions: true, @@ -41,10 +36,9 @@ export const __INTERNAL_VIEW_CONFIG = { object: true, array: true, arrayOfArrayOfObject: true, - arrayOfMixed: true, - }, + arrayOfMixed: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -69,16 +63,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ArrayPropsNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ArrayPropsNativeComponent', - + uiViewClassName: \\"ArrayPropsNativeComponent\\", validAttributes: { - nativePrimitives: true, - }, + nativePrimitives: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -103,16 +93,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'BooleanPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'BooleanPropNativeComponent', - + uiViewClassName: \\"BooleanPropNativeComponent\\", validAttributes: { - disabled: true, - }, + disabled: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -137,18 +123,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ColorPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ColorPropNativeComponent', - + uiViewClassName: \\"ColorPropNativeComponent\\", validAttributes: { tintColor: { - process: require('react-native/Libraries/StyleSheet/processColor').default, - }, - }, + process: require('react-native/Libraries/StyleSheet/processColor').default + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -174,23 +156,18 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {dispatchCommand} = require(\\"react-native/Libraries/ReactNative/RendererProxy\\"); let nativeComponentName = 'CommandNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'CommandNativeComponent', - validAttributes: {}, + uiViewClassName: \\"CommandNativeComponent\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); - export const Commands = { - flashScrollIndicators(ref) { - dispatchCommand(ref, \\"flashScrollIndicators\\", []); - }, - - allTypes(ref, x, y, z, message, animated, locations) { - dispatchCommand(ref, \\"allTypes\\", [x, y, z, message, animated, locations]); - } + flashScrollIndicators(ref) { + dispatchCommand(ref, \\"flashScrollIndicators\\", []); + }, + allTypes(ref, x, y, z, message, animated, locations) { + dispatchCommand(ref, \\"allTypes\\", [x, y, z, message, animated, locations]); + } }; ", } @@ -216,30 +193,23 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {dispatchCommand} = require(\\"react-native/Libraries/ReactNative/RendererProxy\\"); let nativeComponentName = 'CommandNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'CommandNativeComponent', - + uiViewClassName: \\"CommandNativeComponent\\", validAttributes: { - accessibilityHint: true, - }, + accessibilityHint: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); - export const Commands = { - handleRootTag(ref, rootTag) { - dispatchCommand(ref, \\"handleRootTag\\", [rootTag]); - }, - - hotspotUpdate(ref, x, y) { - dispatchCommand(ref, \\"hotspotUpdate\\", [x, y]); - }, - - addItems(ref, items) { - dispatchCommand(ref, \\"addItems\\", [items]); - } + handleRootTag(ref, rootTag) { + dispatchCommand(ref, \\"handleRootTag\\", [rootTag]); + }, + hotspotUpdate(ref, x, y) { + dispatchCommand(ref, \\"hotspotUpdate\\", [x, y]); + }, + addItems(ref, items) { + dispatchCommand(ref, \\"addItems\\", [items]); + } }; ", } @@ -264,16 +234,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'DimensionPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'DimensionPropNativeComponent', - + uiViewClassName: \\"DimensionPropNativeComponent\\", validAttributes: { - marginBack: true, - }, + marginBack: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -298,21 +264,17 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'DoublePropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'DoublePropNativeComponent', - + uiViewClassName: \\"DoublePropNativeComponent\\", validAttributes: { blurRadius: true, blurRadius2: true, blurRadius3: true, blurRadius4: true, blurRadius5: true, - blurRadius6: true, - }, + blurRadius6: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -338,29 +300,23 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore'); let nativeComponentName = 'EventsNestedObjectNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'EventsNestedObjectNativeComponent', - + uiViewClassName: \\"EventsNestedObjectNativeComponent\\", bubblingEventTypes: { topChange: { phasedRegistrationNames: { - captured: 'onChangeCapture', - bubbled: 'onChange', - }, - }, + captured: \\"onChangeCapture\\", + bubbled: \\"onChange\\" + } + } }, - validAttributes: { disabled: true, - ...ConditionallyIgnoredEventHandlers({ - onChange: true, - }), - }, + onChange: true + }) + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -386,62 +342,51 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore'); let nativeComponentName = 'EventsNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'EventsNativeComponent', - + uiViewClassName: \\"EventsNativeComponent\\", bubblingEventTypes: { topChange: { phasedRegistrationNames: { - captured: 'onChangeCapture', - bubbled: 'onChange', - }, + captured: \\"onChangeCapture\\", + bubbled: \\"onChange\\" + } }, - topArrayEventType: { phasedRegistrationNames: { - captured: 'onArrayEventTypeCapture', - bubbled: 'onArrayEventType', - }, + captured: \\"onArrayEventTypeCapture\\", + bubbled: \\"onArrayEventType\\" + } }, - topEnd: { phasedRegistrationNames: { - captured: 'onEndCapture', - bubbled: 'onEnd', - }, - }, + captured: \\"onEndCapture\\", + bubbled: \\"onEnd\\" + } + } }, - directEventTypes: { topEventDirect: { - registrationName: 'onEventDirect', + registrationName: \\"onEventDirect\\" }, - topOrientationChange: { - registrationName: 'onOrientationChange', + registrationName: \\"onOrientationChange\\" }, - topEventWithMixedPropAttribute: { - registrationName: 'onEventWithMixedPropAttribute', - }, + registrationName: \\"onEventWithMixedPropAttribute\\" + } }, - validAttributes: { disabled: true, - ...ConditionallyIgnoredEventHandlers({ onChange: true, onArrayEventType: true, onEventDirect: true, onOrientationChange: true, onEnd: true, - onEventWithMixedPropAttribute: true, - }), - }, + onEventWithMixedPropAttribute: true + }) + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -467,34 +412,28 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore'); let nativeComponentName = 'RCTInterfaceOnlyComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'RCTInterfaceOnlyComponent', - + uiViewClassName: \\"RCTInterfaceOnlyComponent\\", bubblingEventTypes: { topPaperChange: { phasedRegistrationNames: { - captured: 'onChangeCapture', - bubbled: 'onChange', - }, - }, + captured: \\"onChangeCapture\\", + bubbled: \\"onChange\\" + } + } }, - directEventTypes: { topPaperDirectChange: { - registrationName: 'onDirectChange', - }, + registrationName: \\"onDirectChange\\" + } }, - validAttributes: { ...ConditionallyIgnoredEventHandlers({ onChange: true, - onDirectChange: true, - }), - }, + onDirectChange: true + }) + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -519,13 +458,10 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ExcludedAndroidComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ExcludedAndroidComponent', - validAttributes: {}, + uiViewClassName: \\"ExcludedAndroidComponent\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -550,13 +486,10 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ExcludedAndroidIosComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ExcludedAndroidIosComponent', - validAttributes: {}, + uiViewClassName: \\"ExcludedAndroidIosComponent\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -581,26 +514,19 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ExcludedIosComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ExcludedIosComponent', - validAttributes: {}, + uiViewClassName: \\"ExcludedIosComponent\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); let nativeComponentName = 'MultiFileIncludedNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MultiFileIncludedNativeComponent', - + uiViewClassName: \\"MultiFileIncludedNativeComponent\\", validAttributes: { - disabled: true, - }, + disabled: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -625,21 +551,17 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'FloatPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'FloatPropNativeComponent', - + uiViewClassName: \\"FloatPropNativeComponent\\", validAttributes: { blurRadius: true, blurRadius2: true, blurRadius3: true, blurRadius4: true, blurRadius5: true, - blurRadius6: true, - }, + blurRadius6: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -664,18 +586,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ImagePropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ImagePropNativeComponent', - + uiViewClassName: \\"ImagePropNativeComponent\\", validAttributes: { thumbImage: { - process: require('react-native/Libraries/Image/resolveAssetSource'), - }, - }, + process: require('react-native/Libraries/Image/resolveAssetSource') + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -700,18 +618,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'InsetsPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'InsetsPropNativeComponent', - + uiViewClassName: \\"InsetsPropNativeComponent\\", validAttributes: { contentInset: { - diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/insetsDiffer')), - }, - }, + diff: (req => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/insetsDiffer')) + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -736,16 +650,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'Int32EnumPropsNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'Int32EnumPropsNativeComponent', - + uiViewClassName: \\"Int32EnumPropsNativeComponent\\", validAttributes: { - maxInterval: true, - }, + maxInterval: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -770,18 +680,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'IntegerPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'IntegerPropNativeComponent', - + uiViewClassName: \\"IntegerPropNativeComponent\\", validAttributes: { progress1: true, progress2: true, - progress3: true, - }, + progress3: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -807,29 +713,23 @@ const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/ const {ConditionallyIgnoredEventHandlers} = require('react-native/Libraries/NativeComponent/ViewConfigIgnore'); let nativeComponentName = 'RCTInterfaceOnlyComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'RCTInterfaceOnlyComponent', - + uiViewClassName: \\"RCTInterfaceOnlyComponent\\", bubblingEventTypes: { topChange: { phasedRegistrationNames: { - captured: 'onChangeCapture', - bubbled: 'onChange', - }, - }, + captured: \\"onChangeCapture\\", + bubbled: \\"onChange\\" + } + } }, - validAttributes: { accessibilityHint: true, - ...ConditionallyIgnoredEventHandlers({ - onChange: true, - }), - }, + onChange: true + }) + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -854,16 +754,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'MixedPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MixedPropNativeComponent', - + uiViewClassName: \\"MixedPropNativeComponent\\", validAttributes: { - mixedProp: true, - }, + mixedProp: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -888,30 +784,23 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ImageColorPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ImageColorPropNativeComponent', - + uiViewClassName: \\"ImageColorPropNativeComponent\\", validAttributes: { thumbImage: { - process: require('react-native/Libraries/Image/resolveAssetSource'), + process: require('react-native/Libraries/Image/resolveAssetSource') }, - color: { - process: require('react-native/Libraries/StyleSheet/processColor').default, + process: require('react-native/Libraries/StyleSheet/processColor').default }, - thumbTintColor: { - process: require('react-native/Libraries/StyleSheet/processColor').default, + process: require('react-native/Libraries/StyleSheet/processColor').default }, - point: { - diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')), - }, - }, + diff: (req => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')) + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -936,13 +825,10 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'NoPropsNoEventsComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'NoPropsNoEventsComponent', - validAttributes: {}, + uiViewClassName: \\"NoPropsNoEventsComponent\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -967,16 +853,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'ObjectProps'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'ObjectProps', - + uiViewClassName: \\"ObjectProps\\", validAttributes: { - objectProp: true, - }, + objectProp: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -1001,18 +883,14 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'PointPropNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'PointPropNativeComponent', - + uiViewClassName: \\"PointPropNativeComponent\\", validAttributes: { startPoint: { - diff: ((req) => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')), - }, - }, + diff: (req => 'default' in req ? req.default : req)(require('react-native/Libraries/Utilities/differ/pointsDiffer')) + } + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -1037,16 +915,12 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'StringEnumPropsNativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'StringEnumPropsNativeComponent', - + uiViewClassName: \\"StringEnumPropsNativeComponent\\", validAttributes: { - alignment: true, - }, + alignment: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -1071,17 +945,13 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'StringPropComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'StringPropComponent', - + uiViewClassName: \\"StringPropComponent\\", validAttributes: { accessibilityHint: true, - accessibilityRole: true, - }, + accessibilityRole: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -1106,29 +976,21 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'MultiFile1NativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MultiFile1NativeComponent', - + uiViewClassName: \\"MultiFile1NativeComponent\\", validAttributes: { - disabled: true, - }, + disabled: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); let nativeComponentName = 'MultiFile2NativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MultiFile2NativeComponent', - + uiViewClassName: \\"MultiFile2NativeComponent\\", validAttributes: { - disabled: true, - }, + disabled: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -1153,29 +1015,21 @@ Map { const NativeComponentRegistry = require('react-native/Libraries/NativeComponent/NativeComponentRegistry'); let nativeComponentName = 'MultiComponent1NativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MultiComponent1NativeComponent', - + uiViewClassName: \\"MultiComponent1NativeComponent\\", validAttributes: { - disabled: true, - }, + disabled: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); let nativeComponentName = 'MultiComponent2NativeComponent'; - - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'MultiComponent2NativeComponent', - + uiViewClassName: \\"MultiComponent2NativeComponent\\", validAttributes: { - disabled: true, - }, + disabled: true + } }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } @@ -1208,12 +1062,10 @@ if (UIManager.hasViewManagerConfig('NativeComponentName')) { } else { throw new Error('Failed to find native component for either \\"NativeComponentName\\" or \\"DeprecatedNativeComponentName\\"'); } - export const __INTERNAL_VIEW_CONFIG = { - uiViewClassName: 'NativeComponentName', - validAttributes: {}, + uiViewClassName: \\"NativeComponentName\\", + validAttributes: {} }; - export default NativeComponentRegistry.get(nativeComponentName, () => __INTERNAL_VIEW_CONFIG); ", } diff --git a/yarn.lock b/yarn.lock index ea2cac91117..2994d2e3071 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,7 +23,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb" integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.23.9", "@babel/core@^7.24.7", "@babel/core@^7.25.2": +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9", "@babel/core@^7.25.2": version "7.25.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77" integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA== @@ -89,7 +89,7 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": +"@babel/helper-create-class-features-plugin@^7.24.7", "@babel/helper-create-class-features-plugin@^7.25.0", "@babel/helper-create-class-features-plugin@^7.25.4": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== @@ -155,7 +155,7 @@ dependencies: "@babel/types" "^7.24.7" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== @@ -191,7 +191,7 @@ "@babel/traverse" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.24.7": +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== @@ -241,7 +241,7 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.7", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3", "@babel/parser@^7.25.6": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.3", "@babel/parser@^7.25.6": version "7.25.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== @@ -287,14 +287,6 @@ "@babel/helper-plugin-utils" "^7.24.8" "@babel/traverse" "^7.25.0" -"@babel/plugin-proposal-class-properties@^7.13.0": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-proposal-export-default-from@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.24.7.tgz#0b539c46b8ac804f694e338f803c8354c0f788b6" @@ -311,23 +303,6 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.13.12": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" - integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" @@ -542,7 +517,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.24.8" -"@babel/plugin-transform-class-properties@^7.24.7", "@babel/plugin-transform-class-properties@^7.25.4": +"@babel/plugin-transform-class-properties@^7.25.4": version "7.25.4" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz#bae7dbfcdcc2e8667355cd1fb5eda298f05189fd" integrity sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g== @@ -696,7 +671,7 @@ "@babel/helper-module-transforms" "^7.24.7" "@babel/helper-plugin-utils" "^7.24.7" -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": +"@babel/plugin-transform-modules-commonjs@^7.24.7", "@babel/plugin-transform-modules-commonjs@^7.24.8": version "7.24.8" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== @@ -1047,7 +1022,7 @@ core-js-compat "^3.37.1" semver "^6.3.1" -"@babel/preset-flow@^7.13.13", "@babel/preset-flow@^7.24.7": +"@babel/preset-flow@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.24.7.tgz#eef5cb8e05e97a448fc50c16826f5612fe512c06" integrity sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ== @@ -1065,7 +1040,7 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/preset-typescript@^7.13.0", "@babel/preset-typescript@^7.24.7": +"@babel/preset-typescript@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== @@ -1076,7 +1051,7 @@ "@babel/plugin-transform-modules-commonjs" "^7.24.7" "@babel/plugin-transform-typescript" "^7.24.7" -"@babel/register@^7.13.16", "@babel/register@^7.24.6": +"@babel/register@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.24.6.tgz#59e21dcc79e1d04eed5377633b0f88029a6bef9e" integrity sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w== @@ -2607,20 +2582,6 @@ ast-types-flow@^0.0.8: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== -ast-types@0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" - integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== - dependencies: - tslib "^2.0.1" - -ast-types@^0.16.1: - version "0.16.1" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.16.1.tgz#7a9da1617c9081bc121faafe91711b4c8bb81da2" - integrity sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg== - dependencies: - tslib "^2.0.1" - astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -2686,11 +2647,6 @@ babel-code-frame@^6.22.0: esutils "^2.0.2" js-tokens "^3.0.2" -babel-core@^7.0.0-bridge.0: - version "7.0.0-bridge.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" - integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== - babel-helper-evaluate-path@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/babel-helper-evaluate-path/-/babel-helper-evaluate-path-0.5.0.tgz#a62fa9c4e64ff7ea5cea9353174ef023a900a67c" @@ -4132,7 +4088,7 @@ espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -4417,11 +4373,6 @@ flow-enums-runtime@^0.0.6: resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz#5bb0cd1b0a3e471330f4d109039b7eba5cb3e787" integrity sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw== -flow-parser@0.*: - version "0.245.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.245.0.tgz#d8ad7e706d280ce6d4189a206768c32f552b5099" - integrity sha512-xUBkkpIDfDZHAebnDEX65FCVitJUctab82KFmtP5SY4cGly1vbuYNe6Muyp0NLXrgmBChVdoC2T+3/RUHi4Mww== - flow-remove-types@^2.237.2: version "2.259.1" resolved "https://registry.yarnpkg.com/flow-remove-types/-/flow-remove-types-2.259.1.tgz#ee78962cbd73d85f0e94183b354c43399903c734" @@ -4710,7 +4661,7 @@ got@^11.8.3: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -5827,55 +5778,6 @@ jsc-safe-url@^0.2.2: resolved "https://registry.yarnpkg.com/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz#141c14fbb43791e88d5dc64e85a374575a83477a" integrity sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q== -jscodeshift@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.14.0.tgz#7542e6715d6d2e8bde0b4e883f0ccea358b46881" - integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== - dependencies: - "@babel/core" "^7.13.16" - "@babel/parser" "^7.13.16" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/preset-flow" "^7.13.13" - "@babel/preset-typescript" "^7.13.0" - "@babel/register" "^7.13.16" - babel-core "^7.0.0-bridge.0" - chalk "^4.1.2" - flow-parser "0.*" - graceful-fs "^4.2.4" - micromatch "^4.0.4" - neo-async "^2.5.0" - node-dir "^0.1.17" - recast "^0.21.0" - temp "^0.8.4" - write-file-atomic "^2.3.0" - -jscodeshift@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-17.0.0.tgz#a5a255b87cf9aab226133ddc02471e2ff7a88bd9" - integrity sha512-Af+MFsNwLSVO+t4kKjJdJKh6iNbNHfDfFGdyltJ2wUFN3furgbvHguJmB85iou+fY7wbHgI8eiEKpp6doGgtKg== - dependencies: - "@babel/core" "^7.24.7" - "@babel/parser" "^7.24.7" - "@babel/plugin-transform-class-properties" "^7.24.7" - "@babel/plugin-transform-modules-commonjs" "^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" - "@babel/plugin-transform-optional-chaining" "^7.24.7" - "@babel/plugin-transform-private-methods" "^7.24.7" - "@babel/preset-flow" "^7.24.7" - "@babel/preset-typescript" "^7.24.7" - "@babel/register" "^7.24.6" - flow-parser "0.*" - graceful-fs "^4.2.4" - micromatch "^4.0.7" - neo-async "^2.5.0" - picocolors "^1.0.1" - recast "^0.23.9" - temp "^0.9.4" - write-file-atomic "^5.0.1" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -6532,7 +6434,7 @@ metro@0.82.0, metro@^0.82.0: ws "^7.5.10" yargs "^17.6.2" -micromatch@^4.0.4, micromatch@^4.0.7: +micromatch@^4.0.4: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -6599,7 +6501,7 @@ minimatch@9.0.3: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -6685,11 +6587,6 @@ negotiator@0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== - nocache@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/nocache/-/nocache-3.0.4.tgz#5b37a56ec6e09fc7d401dceaed2eab40c8bfdf79" @@ -6700,13 +6597,6 @@ node-cleanup@^2.1.2: resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c" integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw== -node-dir@^0.1.17: - version "0.1.17" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg== - dependencies: - minimatch "^3.0.2" - node-fetch@^2.2.0, node-fetch@^2.6.7: version "2.7.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" @@ -7367,27 +7257,6 @@ readline-sync@^1.4.9: resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" integrity sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw== -recast@^0.21.0: - version "0.21.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.21.5.tgz#e8cd22bb51bcd6130e54f87955d33a2b2e57b495" - integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== - dependencies: - ast-types "0.15.2" - esprima "~4.0.0" - source-map "~0.6.1" - tslib "^2.0.1" - -recast@^0.23.9: - version "0.23.9" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.23.9.tgz#587c5d3a77c2cfcb0c18ccce6da4361528c2587b" - integrity sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q== - dependencies: - ast-types "^0.16.1" - esprima "~4.0.0" - source-map "~0.6.1" - tiny-invariant "^1.3.3" - tslib "^2.0.1" - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -7627,13 +7496,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -7872,7 +7734,7 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -signal-exit@^4.0.1, signal-exit@^4.1.0: +signal-exit@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== @@ -7950,7 +7812,7 @@ source-map@^0.5.6: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -8299,21 +8161,6 @@ tar@^6.1.11: mkdirp "^1.0.3" yallist "^4.0.0" -temp@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" - integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg== - dependencies: - rimraf "~2.6.2" - -temp@^0.9.4: - version "0.9.4" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.9.4.tgz#cd20a8580cb63635d0e4e9d4bd989d44286e7620" - integrity sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA== - dependencies: - mkdirp "^0.5.1" - rimraf "~2.6.2" - terser@^5.15.0: version "5.31.6" resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1" @@ -8348,11 +8195,6 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tiny-invariant@^1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" - integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== - tinybench@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-3.1.0.tgz#ec68451ff05233cf3de12c46f39f06011897109a" @@ -8420,7 +8262,7 @@ tslib@^1.8.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.1.0: +tslib@^2.1.0: version "2.7.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== @@ -8851,15 +8693,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^2.3.0: - version "2.4.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" - integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" @@ -8868,14 +8701,6 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -write-file-atomic@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" - integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^4.0.1" - ws@^6.2.3: version "6.2.3" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.3.tgz#ccc96e4add5fd6fedbc491903075c85c5a11d9ee"