[0.79] refactor(react-native-codegen): Replace jscodeshift with @babel/core (#50031)

* Replace jscodeshift with @babel/core

* Rewrite GenerateViewConfigJs with @babel/core

* Update yarn.lock

* Update snapshots

* Remove unused devDependencies

* Remove jscodeshift from root

* Format with prettier

* Import changes (literal -> stringLiteral rather than identifier in some cases)

* Update snapshots

* Update snapshots for babel-plugin-codegen

* Disable babelrc since we're only stringifying

* Revert "Remove unused devDependencies"

This reverts commit f8defcf93d.
This commit is contained in:
Phil Pluckthun
2025-03-14 11:46:26 +00:00
committed by GitHub
parent 15451690c0
commit b63040fcce
7 changed files with 390 additions and 813 deletions
-1
View File
@@ -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",
@@ -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: {
@@ -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);
",
}
+5 -7
View File
@@ -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": "*"
}
}
@@ -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<string, string>;
@@ -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<any>, 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');
})
@@ -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);
",
}
+17 -192
View File
@@ -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"