@eslint-react/core
Advanced tools
+1
-50
@@ -112,51 +112,2 @@ import * as ast from "@eslint-react/ast"; | ||
| /** | ||
| * Unsafe check whether given node is a render function | ||
| * ```tsx | ||
| * const renderRow = () => <div /> | ||
| * ` ^^^^^^^^^^^^` | ||
| * _ = <Component renderRow={() => <div />} /> | ||
| * ` ^^^^^^^^^^^^^ ` | ||
| * ``` | ||
| * @param context The rule context | ||
| * @param node The AST node to check | ||
| * @returns `true` if node is a render function, `false` if not | ||
| */ | ||
| declare function isRenderFunctionLoose(context: RuleContext, node: TSESTree.Node): node is ast.TSESTreeFunction; | ||
| /** | ||
| * Unsafe check whether given JSXAttribute is a render prop | ||
| * ```tsx | ||
| * _ = <Component renderRow={() => <div />} /> | ||
| * ` ^^^^^^^^^^^^^^^^^^^^^^^^^ ` | ||
| * ``` | ||
| * @param context The rule context | ||
| * @param node The AST node to check | ||
| * @returns `true` if node is a render prop, `false` if not | ||
| */ | ||
| declare function isRenderPropLoose(context: RuleContext, node: TSESTree.JSXAttribute): boolean; | ||
| /** | ||
| * Unsafe check whether given node is declared directly inside a render property | ||
| * ```tsx | ||
| * const rows = { render: () => <div /> } | ||
| * ` ^^^^^^^^^^^^^ ` | ||
| * _ = <Component rows={ [{ render: () => <div /> }] } /> | ||
| * ` ^^^^^^^^^^^^^ ` | ||
| * ``` | ||
| * @internal | ||
| * @param node The AST node to check | ||
| * @returns `true` if component is declared inside a render property, `false` if not | ||
| */ | ||
| declare function isDirectValueOfRenderPropertyLoose(node: TSESTree.Node): boolean; | ||
| /** | ||
| * Unsafe check whether given node is declared inside a render prop | ||
| * ```tsx | ||
| * _ = <Component renderRow={"node"} /> | ||
| * ` ^^^^^^ ` | ||
| * _ = <Component rows={ [{ render: "node" }] } /> | ||
| * ` ^^^^^^ ` | ||
| * ``` | ||
| * @param node The AST node to check | ||
| * @returns `true` if component is declared inside a render prop, `false` if not | ||
| */ | ||
| declare function isDeclaredInRenderPropLoose(node: TSESTree.Node): boolean; | ||
| /** | ||
| * Determine if a function node represents a valid React component definition | ||
@@ -924,2 +875,2 @@ * | ||
| //#endregion | ||
| export { ClassComponentSemanticNode, ClientFunctionSemanticNode, ComponentDetectionHint, ComponentFlag, ComponentKind, ComponentSemanticNode, DEFAULT_COMPONENT_DETECTION_HINT, DEFAULT_JSX_DETECTION_HINT, FindEnclosingComponentOrHookFilter, FunctionComponentSemanticNode, FunctionKind, FunctionSemanticNode, HookSemanticNode, JsxAttributeValue, JsxConfig, JsxDetectionHint, JsxEmit, REACT_BUILTIN_HOOK_NAMES, SemanticFunc, SemanticNode, ServerFunctionSemanticNode, findEnclosingComponentOrHook, findParentJsxAttribute, getComponentFlagFromInitPath, getFunctionComponentId, getJsxAttribute, getJsxAttributeName, getJsxConfigFromAnnotation, getJsxConfigFromContext, getJsxElementType, getRefInit, isAssignmentToThisState, isCaptureOwnerStack, isCaptureOwnerStackCall, isChildrenCount, isChildrenCountCall, isChildrenForEach, isChildrenForEachCall, isChildrenMap, isChildrenMapCall, isChildrenOnly, isChildrenOnlyCall, isChildrenToArray, isChildrenToArrayCall, isClassComponent, isCloneElement, isCloneElementCall, isComponentDefinition, isComponentDidCatch, isComponentDidMount, isComponentDidMountCallback, isComponentDidUpdate, isComponentName, isComponentNameLoose, isComponentWillMount, isComponentWillReceiveProps, isComponentWillUnmount, isComponentWillUnmountCallback, isComponentWillUpdate, isComponentWrapperCall, isComponentWrapperCallLoose, isComponentWrapperCallback, isComponentWrapperCallbackLoose, isCreateContext, isCreateContextCall, isCreateElement, isCreateElementCall, isCreateRef, isCreateRefCall, isDeclaredInRenderPropLoose, isDirectValueOfRenderPropertyLoose, isForwardRef, isForwardRefCall, isFunctionWithLooseComponentName, isGetChildContext, isGetDefaultProps, isGetDerivedStateFromError, isGetDerivedStateFromProps, isGetInitialState, isGetSnapshotBeforeUpdate, isHook, isHookCall, isHookCallWithName, isHookId, isHookName, isInitializedFromReact, isInitializedFromReactNative, isInitializedFromRef, isInsideComponentOrHook, isJsxFragmentElement, isJsxHostElement, isJsxLike, isJsxText, isLazy, isLazyCall, isMemo, isMemoCall, isPureComponent, isReactAPI, isReactAPICall, isRefId, isRefLikeName, isRender, isRenderFunctionLoose, isRenderMethodCallback, isRenderMethodLike, isRenderPropLoose, isShouldComponentUpdate, isThisSetState, isUnsafeComponentWillMount, isUnsafeComponentWillReceiveProps, isUnsafeComponentWillUpdate, isUseActionStateCall, isUseCall, isUseCallbackCall, isUseContextCall, isUseDebugValueCall, isUseDeferredValueCall, isUseEffectCall, isUseEffectCleanupCallback, isUseEffectLikeCall, isUseEffectSetupCallback, isUseFormStatusCall, isUseIdCall, isUseImperativeHandleCall, isUseInsertionEffectCall, isUseLayoutEffectCall, isUseMemoCall, isUseOptimisticCall, isUseReducerCall, isUseRefCall, isUseStateCall, isUseStateLikeCall, isUseSyncExternalStoreCall, isUseTransitionCall, resolveJsxAttributeValue, stringifyJsx, useComponentCollector, useComponentCollectorLegacy, useHookCollector }; | ||
| export { ClassComponentSemanticNode, ClientFunctionSemanticNode, ComponentDetectionHint, ComponentFlag, ComponentKind, ComponentSemanticNode, DEFAULT_COMPONENT_DETECTION_HINT, DEFAULT_JSX_DETECTION_HINT, FindEnclosingComponentOrHookFilter, FunctionComponentSemanticNode, FunctionKind, FunctionSemanticNode, HookSemanticNode, JsxAttributeValue, JsxConfig, JsxDetectionHint, JsxEmit, REACT_BUILTIN_HOOK_NAMES, SemanticFunc, SemanticNode, ServerFunctionSemanticNode, findEnclosingComponentOrHook, findParentJsxAttribute, getComponentFlagFromInitPath, getFunctionComponentId, getJsxAttribute, getJsxAttributeName, getJsxConfigFromAnnotation, getJsxConfigFromContext, getJsxElementType, getRefInit, isAssignmentToThisState, isCaptureOwnerStack, isCaptureOwnerStackCall, isChildrenCount, isChildrenCountCall, isChildrenForEach, isChildrenForEachCall, isChildrenMap, isChildrenMapCall, isChildrenOnly, isChildrenOnlyCall, isChildrenToArray, isChildrenToArrayCall, isClassComponent, isCloneElement, isCloneElementCall, isComponentDefinition, isComponentDidCatch, isComponentDidMount, isComponentDidMountCallback, isComponentDidUpdate, isComponentName, isComponentNameLoose, isComponentWillMount, isComponentWillReceiveProps, isComponentWillUnmount, isComponentWillUnmountCallback, isComponentWillUpdate, isComponentWrapperCall, isComponentWrapperCallLoose, isComponentWrapperCallback, isComponentWrapperCallbackLoose, isCreateContext, isCreateContextCall, isCreateElement, isCreateElementCall, isCreateRef, isCreateRefCall, isForwardRef, isForwardRefCall, isFunctionWithLooseComponentName, isGetChildContext, isGetDefaultProps, isGetDerivedStateFromError, isGetDerivedStateFromProps, isGetInitialState, isGetSnapshotBeforeUpdate, isHook, isHookCall, isHookCallWithName, isHookId, isHookName, isInitializedFromReact, isInitializedFromReactNative, isInitializedFromRef, isInsideComponentOrHook, isJsxFragmentElement, isJsxHostElement, isJsxLike, isJsxText, isLazy, isLazyCall, isMemo, isMemoCall, isPureComponent, isReactAPI, isReactAPICall, isRefId, isRefLikeName, isRender, isRenderMethodCallback, isRenderMethodLike, isShouldComponentUpdate, isThisSetState, isUnsafeComponentWillMount, isUnsafeComponentWillReceiveProps, isUnsafeComponentWillUpdate, isUseActionStateCall, isUseCall, isUseCallbackCall, isUseContextCall, isUseDebugValueCall, isUseDeferredValueCall, isUseEffectCall, isUseEffectCleanupCallback, isUseEffectLikeCall, isUseEffectSetupCallback, isUseFormStatusCall, isUseIdCall, isUseImperativeHandleCall, isUseInsertionEffectCall, isUseLayoutEffectCall, isUseMemoCall, isUseOptimisticCall, isUseReducerCall, isUseRefCall, isUseStateCall, isUseStateLikeCall, isUseSyncExternalStoreCall, isUseTransitionCall, resolveJsxAttributeValue, stringifyJsx, useComponentCollector, useComponentCollectorLegacy, useHookCollector }; |
+1
-72
@@ -912,73 +912,2 @@ import { findImportSource, findProperty, findVariable, getVariableInitializer } from "@eslint-react/var"; | ||
| /** | ||
| * Unsafe check whether given node is a render function | ||
| * ```tsx | ||
| * const renderRow = () => <div /> | ||
| * ` ^^^^^^^^^^^^` | ||
| * _ = <Component renderRow={() => <div />} /> | ||
| * ` ^^^^^^^^^^^^^ ` | ||
| * ``` | ||
| * @param context The rule context | ||
| * @param node The AST node to check | ||
| * @returns `true` if node is a render function, `false` if not | ||
| */ | ||
| function isRenderFunctionLoose(context, node) { | ||
| if (!ast.isFunction(node)) return false; | ||
| const id = ast.getFunctionId(node); | ||
| switch (true) { | ||
| case id?.type === AST_NODE_TYPES.Identifier: return id.name.startsWith("render"); | ||
| case id?.type === AST_NODE_TYPES.MemberExpression && id.property.type === AST_NODE_TYPES.Identifier: return id.property.name.startsWith("render"); | ||
| case node.parent.type === AST_NODE_TYPES.JSXExpressionContainer && node.parent.parent.type === AST_NODE_TYPES.JSXAttribute && node.parent.parent.name.type === AST_NODE_TYPES.JSXIdentifier: return node.parent.parent.name.name.startsWith("render"); | ||
| } | ||
| return false; | ||
| } | ||
| /** | ||
| * Unsafe check whether given JSXAttribute is a render prop | ||
| * ```tsx | ||
| * _ = <Component renderRow={() => <div />} /> | ||
| * ` ^^^^^^^^^^^^^^^^^^^^^^^^^ ` | ||
| * ``` | ||
| * @param context The rule context | ||
| * @param node The AST node to check | ||
| * @returns `true` if node is a render prop, `false` if not | ||
| */ | ||
| function isRenderPropLoose(context, node) { | ||
| if (node.name.type !== AST_NODE_TYPES.JSXIdentifier) return false; | ||
| return node.name.name.startsWith("render") && node.value?.type === AST_NODE_TYPES.JSXExpressionContainer && isRenderFunctionLoose(context, node.value.expression); | ||
| } | ||
| /** | ||
| * Unsafe check whether given node is declared directly inside a render property | ||
| * ```tsx | ||
| * const rows = { render: () => <div /> } | ||
| * ` ^^^^^^^^^^^^^ ` | ||
| * _ = <Component rows={ [{ render: () => <div /> }] } /> | ||
| * ` ^^^^^^^^^^^^^ ` | ||
| * ``` | ||
| * @internal | ||
| * @param node The AST node to check | ||
| * @returns `true` if component is declared inside a render property, `false` if not | ||
| */ | ||
| function isDirectValueOfRenderPropertyLoose(node) { | ||
| const matching = (node) => { | ||
| return node.type === AST_NODE_TYPES.Property && node.key.type === AST_NODE_TYPES.Identifier && node.key.name.startsWith("render"); | ||
| }; | ||
| return matching(node) || node.parent != null && matching(node.parent); | ||
| } | ||
| /** | ||
| * Unsafe check whether given node is declared inside a render prop | ||
| * ```tsx | ||
| * _ = <Component renderRow={"node"} /> | ||
| * ` ^^^^^^ ` | ||
| * _ = <Component rows={ [{ render: "node" }] } /> | ||
| * ` ^^^^^^ ` | ||
| * ``` | ||
| * @param node The AST node to check | ||
| * @returns `true` if component is declared inside a render prop, `false` if not | ||
| */ | ||
| function isDeclaredInRenderPropLoose(node) { | ||
| if (isDirectValueOfRenderPropertyLoose(node)) return true; | ||
| const parent = ast.findParentNode(node, ast.is(AST_NODE_TYPES.JSXExpressionContainer))?.parent; | ||
| if (parent?.type !== AST_NODE_TYPES.JSXAttribute) return false; | ||
| return parent.name.type === AST_NODE_TYPES.JSXIdentifier && parent.name.name.startsWith("render"); | ||
| } | ||
| /** | ||
| * Check if a function node should be excluded based on provided detection hints | ||
@@ -1285,2 +1214,2 @@ * | ||
| //#endregion | ||
| export { ComponentDetectionHint, ComponentFlag, DEFAULT_COMPONENT_DETECTION_HINT, DEFAULT_JSX_DETECTION_HINT, JsxDetectionHint, JsxEmit, REACT_BUILTIN_HOOK_NAMES, findEnclosingComponentOrHook, findParentJsxAttribute, getComponentFlagFromInitPath, getFunctionComponentId, getJsxAttribute, getJsxAttributeName, getJsxConfigFromAnnotation, getJsxConfigFromContext, getJsxElementType, getRefInit, isAssignmentToThisState, isCaptureOwnerStack, isCaptureOwnerStackCall, isChildrenCount, isChildrenCountCall, isChildrenForEach, isChildrenForEachCall, isChildrenMap, isChildrenMapCall, isChildrenOnly, isChildrenOnlyCall, isChildrenToArray, isChildrenToArrayCall, isClassComponent, isCloneElement, isCloneElementCall, isComponentDefinition, isComponentDidCatch, isComponentDidMount, isComponentDidMountCallback, isComponentDidUpdate, isComponentName, isComponentNameLoose, isComponentWillMount, isComponentWillReceiveProps, isComponentWillUnmount, isComponentWillUnmountCallback, isComponentWillUpdate, isComponentWrapperCall, isComponentWrapperCallLoose, isComponentWrapperCallback, isComponentWrapperCallbackLoose, isCreateContext, isCreateContextCall, isCreateElement, isCreateElementCall, isCreateRef, isCreateRefCall, isDeclaredInRenderPropLoose, isDirectValueOfRenderPropertyLoose, isForwardRef, isForwardRefCall, isFunctionWithLooseComponentName, isGetChildContext, isGetDefaultProps, isGetDerivedStateFromError, isGetDerivedStateFromProps, isGetInitialState, isGetSnapshotBeforeUpdate, isHook, isHookCall, isHookCallWithName, isHookId, isHookName, isInitializedFromReact, isInitializedFromReactNative, isInitializedFromRef, isInsideComponentOrHook, isJsxFragmentElement, isJsxHostElement, isJsxLike, isJsxText, isLazy, isLazyCall, isMemo, isMemoCall, isPureComponent, isReactAPI, isReactAPICall, isRefId, isRefLikeName, isRender, isRenderFunctionLoose, isRenderMethodCallback, isRenderMethodLike, isRenderPropLoose, isShouldComponentUpdate, isThisSetState, isUnsafeComponentWillMount, isUnsafeComponentWillReceiveProps, isUnsafeComponentWillUpdate, isUseActionStateCall, isUseCall, isUseCallbackCall, isUseContextCall, isUseDebugValueCall, isUseDeferredValueCall, isUseEffectCall, isUseEffectCleanupCallback, isUseEffectLikeCall, isUseEffectSetupCallback, isUseFormStatusCall, isUseIdCall, isUseImperativeHandleCall, isUseInsertionEffectCall, isUseLayoutEffectCall, isUseMemoCall, isUseOptimisticCall, isUseReducerCall, isUseRefCall, isUseStateCall, isUseStateLikeCall, isUseSyncExternalStoreCall, isUseTransitionCall, resolveJsxAttributeValue, stringifyJsx, useComponentCollector, useComponentCollectorLegacy, useHookCollector }; | ||
| export { ComponentDetectionHint, ComponentFlag, DEFAULT_COMPONENT_DETECTION_HINT, DEFAULT_JSX_DETECTION_HINT, JsxDetectionHint, JsxEmit, REACT_BUILTIN_HOOK_NAMES, findEnclosingComponentOrHook, findParentJsxAttribute, getComponentFlagFromInitPath, getFunctionComponentId, getJsxAttribute, getJsxAttributeName, getJsxConfigFromAnnotation, getJsxConfigFromContext, getJsxElementType, getRefInit, isAssignmentToThisState, isCaptureOwnerStack, isCaptureOwnerStackCall, isChildrenCount, isChildrenCountCall, isChildrenForEach, isChildrenForEachCall, isChildrenMap, isChildrenMapCall, isChildrenOnly, isChildrenOnlyCall, isChildrenToArray, isChildrenToArrayCall, isClassComponent, isCloneElement, isCloneElementCall, isComponentDefinition, isComponentDidCatch, isComponentDidMount, isComponentDidMountCallback, isComponentDidUpdate, isComponentName, isComponentNameLoose, isComponentWillMount, isComponentWillReceiveProps, isComponentWillUnmount, isComponentWillUnmountCallback, isComponentWillUpdate, isComponentWrapperCall, isComponentWrapperCallLoose, isComponentWrapperCallback, isComponentWrapperCallbackLoose, isCreateContext, isCreateContextCall, isCreateElement, isCreateElementCall, isCreateRef, isCreateRefCall, isForwardRef, isForwardRefCall, isFunctionWithLooseComponentName, isGetChildContext, isGetDefaultProps, isGetDerivedStateFromError, isGetDerivedStateFromProps, isGetInitialState, isGetSnapshotBeforeUpdate, isHook, isHookCall, isHookCallWithName, isHookId, isHookName, isInitializedFromReact, isInitializedFromReactNative, isInitializedFromRef, isInsideComponentOrHook, isJsxFragmentElement, isJsxHostElement, isJsxLike, isJsxText, isLazy, isLazyCall, isMemo, isMemoCall, isPureComponent, isReactAPI, isReactAPICall, isRefId, isRefLikeName, isRender, isRenderMethodCallback, isRenderMethodLike, isShouldComponentUpdate, isThisSetState, isUnsafeComponentWillMount, isUnsafeComponentWillReceiveProps, isUnsafeComponentWillUpdate, isUseActionStateCall, isUseCall, isUseCallbackCall, isUseContextCall, isUseDebugValueCall, isUseDeferredValueCall, isUseEffectCall, isUseEffectCleanupCallback, isUseEffectLikeCall, isUseEffectSetupCallback, isUseFormStatusCall, isUseIdCall, isUseImperativeHandleCall, isUseInsertionEffectCall, isUseLayoutEffectCall, isUseMemoCall, isUseOptimisticCall, isUseReducerCall, isUseRefCall, isUseStateCall, isUseStateLikeCall, isUseSyncExternalStoreCall, isUseTransitionCall, resolveJsxAttributeValue, stringifyJsx, useComponentCollector, useComponentCollectorLegacy, useHookCollector }; |
+5
-5
| { | ||
| "name": "@eslint-react/core", | ||
| "version": "3.0.0-next.47", | ||
| "version": "3.0.0-next.48", | ||
| "description": "ESLint React's ESLint utility module for static analysis of React core APIs and patterns.", | ||
@@ -37,6 +37,6 @@ "homepage": "https://github.com/Rel1cx/eslint-react", | ||
| "ts-pattern": "^5.9.0", | ||
| "@eslint-react/ast": "3.0.0-next.47", | ||
| "@eslint-react/eff": "3.0.0-next.47", | ||
| "@eslint-react/shared": "3.0.0-next.47", | ||
| "@eslint-react/var": "3.0.0-next.47" | ||
| "@eslint-react/eff": "3.0.0-next.48", | ||
| "@eslint-react/ast": "3.0.0-next.48", | ||
| "@eslint-react/shared": "3.0.0-next.48", | ||
| "@eslint-react/var": "3.0.0-next.48" | ||
| }, | ||
@@ -43,0 +43,0 @@ "devDependencies": { |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
92142
-5.32%2063
-5.5%+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed