eslint-plugin-import-next 2.7.2 → 2.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-plugin-import-next",
3
- "version": "2.7.2",
3
+ "version": "2.7.3",
4
4
  "description": "ESLint plugin for imports and module boundaries — drop-in replacement for eslint-plugin-import, 3.1x faster end-to-end, zero-config migration.",
5
5
  "type": "commonjs",
6
6
  "main": "./src/index.js",
@@ -76,7 +76,7 @@
76
76
  "typescript": "^4.8.4 || ^5.0.0 || ^6.0.0"
77
77
  },
78
78
  "dependencies": {
79
- "@interlace/eslint-devkit": "^1.19.0",
79
+ "@interlace/eslint-devkit": "^1.19.2",
80
80
  "oxc-resolver": "^11.24.2"
81
81
  },
82
82
  "funding": {
@@ -87,5 +87,11 @@
87
87
  "typescript": {
88
88
  "optional": true
89
89
  }
90
+ },
91
+ "interlace": {
92
+ "surface": {
93
+ "kind": "language",
94
+ "note": "The ES module system — specifiers, cycles, resolution. `typescript` is a peer this plugin USES for type-aware resolution, not a surface it analyses."
95
+ }
90
96
  }
91
97
  }
package/src/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.clearCircularDependencyCache=exports.configs=exports.plugin=exports.rules=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const no_cycle_1=require("./rules/no-cycle");Object.defineProperty(exports,"clearCircularDependencyCache",{enumerable:true,get:function(){return no_cycle_1.clearCircularDependencyCache}});exports.rules={get"no-duplicates"(){return require("./rules/no-duplicates").noDuplicates},get named(){return require("./rules/named").named},get default(){return require("./rules/default").defaultRule},get namespace(){return require("./rules/namespace").namespace},get extensions(){return require("./rules/extensions").extensions},get"no-self-import"(){return require("./rules/no-self-import").noSelfImport},get"no-unresolved"(){return require("./rules/no-unresolved").noUnresolved},get"no-absolute-path"(){return require("./rules/no-absolute-path").noAbsolutePath},get"no-dynamic-require"(){return require("./rules/no-dynamic-require").noDynamicRequire},get"no-relative-packages"(){return require("./rules/no-relative-packages").noRelativePackages},get"no-useless-path-segments"(){return require("./rules/no-useless-path-segments").noUselessPathSegments},get"no-amd"(){return require("./rules/no-amd").noAmd},get"no-commonjs"(){return require("./rules/no-commonjs").noCommonjs},get"no-nodejs-modules"(){return require("./rules/no-nodejs-modules").noNodejsModules},get"no-import-module-exports"(){return require("./rules/no-import-module-exports").noImportModuleExports},get unambiguous(){return require("./rules/unambiguous").unambiguous},get"no-cycle"(){return require("./rules/no-cycle").noCycle},get"no-internal-modules"(){return require("./rules/no-internal-modules").noInternalModules},get"no-cross-domain-imports"(){return require("./rules/no-cross-domain-imports").noCrossDomainImports},get"enforce-dependency-direction"(){return require("./rules/enforce-dependency-direction").enforceDependencyDirection},get"no-restricted-paths"(){return require("./rules/no-restricted-paths").noRestrictedPaths},get"no-relative-parent-imports"(){return require("./rules/no-relative-parent-imports").noRelativeParentImports},get export(){return require("./rules/export").exportRule},get"no-default-export"(){return require("./rules/no-default-export").noDefaultExport},get"no-named-export"(){return require("./rules/no-named-export").noNamedExport},get"prefer-default-export"(){return require("./rules/prefer-default-export").preferDefaultExport},get"no-anonymous-default-export"(){return require("./rules/no-anonymous-default-export").noAnonymousDefaultExport},get"no-mutable-exports"(){return require("./rules/no-mutable-exports").noMutableExports},get"no-deprecated"(){return require("./rules/no-deprecated").noDeprecated},get"exports-last"(){return require("./rules/exports-last").exportsLast},get"group-exports"(){return require("./rules/group-exports").groupExports},get"enforce-import-order"(){return require("./rules/enforce-import-order").enforceImportOrder},get order(){return require("./rules/enforce-import-order").enforceImportOrder},get"no-unassigned-import"(){return require("./rules/no-unassigned-import").noUnassignedImport},get first(){return require("./rules/first").first},get"newline-after-import"(){return require("./rules/newline-after-import").newlineAfterImport},get"no-empty-named-blocks"(){return require("./rules/no-empty-named-blocks").noEmptyNamedBlocks},get"no-named-as-default"(){return require("./rules/no-named-as-default").noNamedAsDefault},get"no-named-as-default-member"(){return require("./rules/no-named-as-default-member").noNamedAsDefaultMember},get"no-named-default"(){return require("./rules/no-named-default").noNamedDefault},get"no-namespace"(){return require("./rules/no-namespace").noNamespace},get"consistent-type-specifier-style"(){return require("./rules/consistent-type-specifier-style").consistentTypeSpecifierStyle},get"dynamic-import-chunkname"(){return require("./rules/dynamic-import-chunkname").dynamicImportChunkname},get"no-extraneous-dependencies"(){return require("./rules/no-extraneous-dependencies").noExtraneousDependencies},get"no-unused-modules"(){return require("./rules/no-unused-modules").noUnusedModules},get"max-dependencies"(){return require("./rules/max-dependencies").maxDependencies},get"prefer-node-protocol"(){return require("./rules/prefer-node-protocol").preferNodeProtocol},get"no-barrel-file"(){return require("./rules/no-barrel-file").noBarrelFile},get"no-barrel-import"(){return require("./rules/no-barrel-import").noBarrelImport},get"prefer-tree-shakeable-imports"(){return require("./rules/prefer-tree-shakeable-imports").preferTreeShakeableImports},get"prefer-direct-import"(){return require("./rules/prefer-direct-import").preferDirectImport},get"no-full-package-import"(){return require("./rules/no-full-package-import").noFullPackageImport},get"enforce-team-boundaries"(){return require("./rules/enforce-team-boundaries").enforceTeamBoundaries},get"no-legacy-imports"(){return require("./rules/no-legacy-imports").noLegacyImports},get"require-import-approval"(){return require("./rules/require-import-approval").requireImportApproval},get"prefer-modern-api"(){return require("./rules/prefer-modern-api").preferModernApi}};(0,eslint_devkit_1.withCanonicalDocsUrls)("plugin-import-next",exports.rules);exports.plugin={meta:{name:"eslint-plugin-import-next",version:"2.7.2"},rules:exports.rules};exports.configs={flagship:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-cycle":"error"}},recommended:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"warn","import-next/no-duplicates":"error","import-next/export":"error","import-next/no-cycle":"error","import-next/no-self-import":"error","import-next/no-named-as-default":"warn","import-next/no-named-as-default-member":"warn","import-next/no-amd":"warn","import-next/no-empty-named-blocks":"warn","import-next/no-extraneous-dependencies":"warn"}},strict:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"error","import-next/extensions":"error","import-next/no-self-import":"error","import-next/no-duplicates":"error","import-next/no-absolute-path":"error","import-next/no-dynamic-require":"error","import-next/no-useless-path-segments":"error","import-next/export":"error","import-next/no-amd":"error","import-next/no-commonjs":"error","import-next/no-nodejs-modules":"error","import-next/no-import-module-exports":"error","import-next/unambiguous":"error","import-next/no-cycle":"error","import-next/no-internal-modules":"error","import-next/no-cross-domain-imports":"error","import-next/enforce-dependency-direction":"error","import-next/no-restricted-paths":"error","import-next/no-relative-parent-imports":"error","import-next/no-relative-packages":"error","import-next/no-anonymous-default-export":"error","import-next/no-mutable-exports":"error","import-next/no-deprecated":"error","import-next/exports-last":"error","import-next/group-exports":"error","import-next/order":"error","import-next/no-unassigned-import":"error","import-next/first":"error","import-next/newline-after-import":"error","import-next/no-empty-named-blocks":"error","import-next/no-named-as-default":"error","import-next/no-named-as-default-member":"error","import-next/no-named-default":"error","import-next/no-namespace":"error","import-next/consistent-type-specifier-style":"error","import-next/no-extraneous-dependencies":"error","import-next/no-unused-modules":"error","import-next/max-dependencies":"error","import-next/prefer-node-protocol":"error"}},typescript:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"off","import-next/default":"error","import-next/namespace":"error","import-next/export":"error","import-next/no-cycle":"error","import-next/no-duplicates":"error","import-next/order":"warn","import-next/first":"warn","import-next/newline-after-import":"warn","import-next/consistent-type-specifier-style":["warn","prefer-inline"]}},"module-resolution":{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"error","import-next/extensions":"warn","import-next/no-self-import":"error","import-next/no-duplicates":"error","import-next/no-absolute-path":"error","import-next/no-useless-path-segments":"warn"}},"import-style":{plugins:{"import-next":exports.plugin},rules:{"import-next/order":"error","import-next/first":"error","import-next/newline-after-import":"error","import-next/no-duplicates":"error","import-next/no-unassigned-import":"warn","import-next/no-empty-named-blocks":"error","import-next/no-namespace":"warn"}},esm:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-amd":"error","import-next/no-commonjs":"error","import-next/no-import-module-exports":"error","import-next/unambiguous":"error","import-next/prefer-node-protocol":"error"}},architecture:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-cycle":"error","import-next/no-internal-modules":"error","import-next/no-cross-domain-imports":"error","import-next/enforce-dependency-direction":"error","import-next/no-restricted-paths":"error","import-next/no-relative-parent-imports":"warn","import-next/no-relative-packages":"error"}},errors:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"error","import-next/export":"error"}},warnings:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-named-as-default":"warn","import-next/no-named-as-default-member":"warn","import-next/no-duplicates":"warn"}},performance:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-barrel-file":"error","import-next/no-barrel-import":"warn","import-next/prefer-tree-shakeable-imports":"warn","import-next/prefer-direct-import":"warn","import-next/no-full-package-import":"warn","import-next/no-cycle":"error"}},enterprise:{plugins:{"import-next":exports.plugin},rules:{"import-next/enforce-team-boundaries":"off","import-next/no-legacy-imports":"off","import-next/no-cross-domain-imports":"warn","import-next/enforce-dependency-direction":"warn","import-next/no-internal-modules":"warn"}}};exports.default=exports.plugin;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.clearCircularDependencyCache=exports.configs=exports.plugin=exports.rules=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const no_cycle_1=require("./rules/no-cycle");Object.defineProperty(exports,"clearCircularDependencyCache",{enumerable:true,get:function(){return no_cycle_1.clearCircularDependencyCache}});exports.rules={get"no-duplicates"(){return require("./rules/no-duplicates").noDuplicates},get named(){return require("./rules/named").named},get default(){return require("./rules/default").defaultRule},get namespace(){return require("./rules/namespace").namespace},get extensions(){return require("./rules/extensions").extensions},get"no-self-import"(){return require("./rules/no-self-import").noSelfImport},get"no-unresolved"(){return require("./rules/no-unresolved").noUnresolved},get"no-absolute-path"(){return require("./rules/no-absolute-path").noAbsolutePath},get"no-dynamic-require"(){return require("./rules/no-dynamic-require").noDynamicRequire},get"no-relative-packages"(){return require("./rules/no-relative-packages").noRelativePackages},get"no-useless-path-segments"(){return require("./rules/no-useless-path-segments").noUselessPathSegments},get"no-amd"(){return require("./rules/no-amd").noAmd},get"no-commonjs"(){return require("./rules/no-commonjs").noCommonjs},get"no-nodejs-modules"(){return require("./rules/no-nodejs-modules").noNodejsModules},get"no-import-module-exports"(){return require("./rules/no-import-module-exports").noImportModuleExports},get unambiguous(){return require("./rules/unambiguous").unambiguous},get"no-cycle"(){return require("./rules/no-cycle").noCycle},get"no-internal-modules"(){return require("./rules/no-internal-modules").noInternalModules},get"no-cross-domain-imports"(){return require("./rules/no-cross-domain-imports").noCrossDomainImports},get"enforce-dependency-direction"(){return require("./rules/enforce-dependency-direction").enforceDependencyDirection},get"no-restricted-paths"(){return require("./rules/no-restricted-paths").noRestrictedPaths},get"no-relative-parent-imports"(){return require("./rules/no-relative-parent-imports").noRelativeParentImports},get export(){return require("./rules/export").exportRule},get"no-default-export"(){return require("./rules/no-default-export").noDefaultExport},get"no-named-export"(){return require("./rules/no-named-export").noNamedExport},get"prefer-default-export"(){return require("./rules/prefer-default-export").preferDefaultExport},get"no-anonymous-default-export"(){return require("./rules/no-anonymous-default-export").noAnonymousDefaultExport},get"no-mutable-exports"(){return require("./rules/no-mutable-exports").noMutableExports},get"no-deprecated"(){return require("./rules/no-deprecated").noDeprecated},get"exports-last"(){return require("./rules/exports-last").exportsLast},get"group-exports"(){return require("./rules/group-exports").groupExports},get"enforce-import-order"(){return require("./rules/enforce-import-order").enforceImportOrder},get order(){return require("./rules/enforce-import-order").enforceImportOrder},get"no-unassigned-import"(){return require("./rules/no-unassigned-import").noUnassignedImport},get first(){return require("./rules/first").first},get"newline-after-import"(){return require("./rules/newline-after-import").newlineAfterImport},get"no-empty-named-blocks"(){return require("./rules/no-empty-named-blocks").noEmptyNamedBlocks},get"no-named-as-default"(){return require("./rules/no-named-as-default").noNamedAsDefault},get"no-named-as-default-member"(){return require("./rules/no-named-as-default-member").noNamedAsDefaultMember},get"no-named-default"(){return require("./rules/no-named-default").noNamedDefault},get"no-namespace"(){return require("./rules/no-namespace").noNamespace},get"consistent-type-specifier-style"(){return require("./rules/consistent-type-specifier-style").consistentTypeSpecifierStyle},get"dynamic-import-chunkname"(){return require("./rules/dynamic-import-chunkname").dynamicImportChunkname},get"no-extraneous-dependencies"(){return require("./rules/no-extraneous-dependencies").noExtraneousDependencies},get"no-unused-modules"(){return require("./rules/no-unused-modules").noUnusedModules},get"max-dependencies"(){return require("./rules/max-dependencies").maxDependencies},get"prefer-node-protocol"(){return require("./rules/prefer-node-protocol").preferNodeProtocol},get"no-barrel-file"(){return require("./rules/no-barrel-file").noBarrelFile},get"no-barrel-import"(){return require("./rules/no-barrel-import").noBarrelImport},get"prefer-tree-shakeable-imports"(){return require("./rules/prefer-tree-shakeable-imports").preferTreeShakeableImports},get"prefer-direct-import"(){return require("./rules/prefer-direct-import").preferDirectImport},get"no-full-package-import"(){return require("./rules/no-full-package-import").noFullPackageImport},get"enforce-team-boundaries"(){return require("./rules/enforce-team-boundaries").enforceTeamBoundaries},get"no-legacy-imports"(){return require("./rules/no-legacy-imports").noLegacyImports},get"require-import-approval"(){return require("./rules/require-import-approval").requireImportApproval},get"prefer-modern-api"(){return require("./rules/prefer-modern-api").preferModernApi}};(0,eslint_devkit_1.withCanonicalDocsUrls)("plugin-import-next",exports.rules);exports.plugin={meta:{name:"eslint-plugin-import-next",version:"2.7.3"},rules:exports.rules};exports.configs={flagship:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-cycle":"error"}},recommended:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"warn","import-next/no-duplicates":"error","import-next/export":"error","import-next/no-cycle":"error","import-next/no-self-import":"error","import-next/no-named-as-default":"warn","import-next/no-named-as-default-member":"warn","import-next/no-amd":"warn","import-next/no-empty-named-blocks":"warn","import-next/no-extraneous-dependencies":"warn"}},strict:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"error","import-next/extensions":"error","import-next/no-self-import":"error","import-next/no-duplicates":"error","import-next/no-absolute-path":"error","import-next/no-dynamic-require":"error","import-next/no-useless-path-segments":"error","import-next/export":"error","import-next/no-amd":"error","import-next/no-commonjs":"error","import-next/no-nodejs-modules":"error","import-next/no-import-module-exports":"error","import-next/unambiguous":"error","import-next/no-cycle":"error","import-next/no-internal-modules":"error","import-next/no-cross-domain-imports":"error","import-next/enforce-dependency-direction":"error","import-next/no-restricted-paths":"error","import-next/no-relative-parent-imports":"error","import-next/no-relative-packages":"error","import-next/no-anonymous-default-export":"error","import-next/no-mutable-exports":"error","import-next/no-deprecated":"error","import-next/exports-last":"error","import-next/group-exports":"error","import-next/order":"error","import-next/no-unassigned-import":"error","import-next/first":"error","import-next/newline-after-import":"error","import-next/no-empty-named-blocks":"error","import-next/no-named-as-default":"error","import-next/no-named-as-default-member":"error","import-next/no-named-default":"error","import-next/no-namespace":"error","import-next/consistent-type-specifier-style":"error","import-next/no-extraneous-dependencies":"error","import-next/no-unused-modules":"error","import-next/max-dependencies":"error","import-next/prefer-node-protocol":"error"}},typescript:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"off","import-next/default":"error","import-next/namespace":"error","import-next/export":"error","import-next/no-cycle":"error","import-next/no-duplicates":"error","import-next/order":"warn","import-next/first":"warn","import-next/newline-after-import":"warn","import-next/consistent-type-specifier-style":["warn","prefer-inline"]}},"module-resolution":{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"error","import-next/extensions":"warn","import-next/no-self-import":"error","import-next/no-duplicates":"error","import-next/no-absolute-path":"error","import-next/no-useless-path-segments":"warn"}},"import-style":{plugins:{"import-next":exports.plugin},rules:{"import-next/order":"error","import-next/first":"error","import-next/newline-after-import":"error","import-next/no-duplicates":"error","import-next/no-unassigned-import":"warn","import-next/no-empty-named-blocks":"error","import-next/no-namespace":"warn"}},esm:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-amd":"error","import-next/no-commonjs":"error","import-next/no-import-module-exports":"error","import-next/unambiguous":"error","import-next/prefer-node-protocol":"error"}},architecture:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-cycle":"error","import-next/no-internal-modules":"error","import-next/no-cross-domain-imports":"error","import-next/enforce-dependency-direction":"error","import-next/no-restricted-paths":"error","import-next/no-relative-parent-imports":"warn","import-next/no-relative-packages":"error"}},errors:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-unresolved":"error","import-next/named":"error","import-next/default":"error","import-next/namespace":"error","import-next/export":"error"}},warnings:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-named-as-default":"warn","import-next/no-named-as-default-member":"warn","import-next/no-duplicates":"warn"}},performance:{plugins:{"import-next":exports.plugin},rules:{"import-next/no-barrel-file":"error","import-next/no-barrel-import":"warn","import-next/prefer-tree-shakeable-imports":"warn","import-next/prefer-direct-import":"warn","import-next/no-full-package-import":"warn","import-next/no-cycle":"error"}},enterprise:{plugins:{"import-next":exports.plugin},rules:{"import-next/enforce-team-boundaries":"off","import-next/no-legacy-imports":"off","import-next/no-cross-domain-imports":"warn","import-next/enforce-dependency-direction":"warn","import-next/no-internal-modules":"warn"}}};exports.default=exports.plugin;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noDeprecated=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const eslint_devkit_2=require("@interlace/eslint-devkit");exports.noDeprecated=(0,eslint_devkit_1.createRule)({name:"no-deprecated",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-import-next/docs/rules/no-deprecated.md",description:"Forbid imported names marked with @deprecated documentation tag"},hasSuggestions:true,messages:{deprecatedImport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.WARNING,issueName:"Deprecated Import",description:"Importing deprecated API that should be avoided",severity:"MEDIUM",fix:"Replace with recommended alternative or remove if no longer needed",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md"}),deprecatedExport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.WARNING,issueName:"Deprecated Export Usage",description:"Using deprecated exported member",severity:"MEDIUM",fix:"Update to use the recommended replacement API",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md"}),deprecatedUsage:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.WARNING,issueName:"Deprecated API Usage",description:"Using deprecated function or method",severity:"MEDIUM",fix:"Migrate to the recommended modern API",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md"})},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"},description:"List of deprecated items that are allowed (for migration periods)"},deprecationMarkers:{type:"array",items:{type:"string"},default:["@deprecated"],description:"Custom deprecation markers to look for in comments"},checkJSDoc:{type:"boolean",default:true,description:"Check for @deprecated in JSDoc comments"},checkDecorators:{type:"boolean",default:true,description:"Check for @deprecated decorator in TypeScript"}},additionalProperties:false}]},defaultOptions:[{allow:[],deprecationMarkers:["@deprecated"],checkJSDoc:true,checkDecorators:true}],create(context){const[options]=context.options;const{allow=[],deprecationMarkers=["@deprecated"],checkJSDoc=true,checkDecorators=true}=options||{};const filename=context.filename;if(!filename){return{}}const deprecatedItems=new Map;function isAllowed(name){return allow.includes(name)}function parseJSDocDeprecated(comment){const lines=comment.split("\n");for(const line of lines){const trimmed=line.trim();for(const marker of deprecationMarkers){if(trimmed.includes(marker)){const afterMarker=trimmed.substring(trimmed.indexOf(marker)+marker.length).trim();let reason;let replacement;const insteadMatch=afterMarker.match(/(?:use|replaced by|see)\s+([^\s]+(?:\s+[^\s]+)*?)(?:\s|$)/i);if(insteadMatch){replacement=insteadMatch[1].trim().replace(/\s+instead$|\s+or$|\s+as$|\s+with$/i,"")}const reasonText=afterMarker.replace(/use\s+[^.]*[.]?/i,"").replace(/replaced by\s+[^.]*[.]?/i,"").trim();if(reasonText){reason=reasonText}return{deprecated:true,reason,replacement}}}}return{deprecated:false}}function checkComments(node,name){if(!checkJSDoc)return;const sourceCode=context.sourceCode;const comments=sourceCode.getCommentsBefore(node);const allComments=[...comments];if("leadingComments"in node&&Array.isArray(node.leadingComments)){allComments.push(...node.leadingComments)}for(const comment of allComments){if(comment.type==="Block"&&comment.value.includes("*")){const deprecationInfo=parseJSDocDeprecated(comment.value);if(deprecationInfo.deprecated){deprecatedItems.set(name,{location:node,reason:deprecationInfo.reason,replacement:deprecationInfo.replacement});break}}}}function checkDecoratorsForDeprecation(node,name){if(!checkDecorators)return;if("decorators"in node&&Array.isArray(node.decorators)){const decorators=node.decorators;for(const decorator of decorators){const dec=decorator;if(dec.expression.type==="CallExpression"&&dec.expression.callee.type==="Identifier"&&dec.expression.callee.name==="deprecated"||dec.expression.type==="Identifier"&&dec.expression.name==="deprecated"){deprecatedItems.set(name,{location:node,reason:"Marked with @deprecated decorator"});break}}}}function reportDeprecatedUsage(node,name,usage){if(isAllowed(name))return;const deprecationInfo=deprecatedItems.get(name);if(!deprecationInfo)return;const{replacement}=deprecationInfo;context.report({node,messageId:"deprecatedUsage",data:{name,usage,reason:deprecationInfo.reason||"This API is deprecated",replacement:deprecationInfo.replacement||"Check documentation for replacement",suggestion:deprecationInfo.replacement?`Replace with ${deprecationInfo.replacement}`:"Find modern replacement in documentation"},suggest:replacement?[{messageId:"deprecatedUsage",fix(fixer){return fixer.replaceText(node,replacement)},data:{replacement,suggestion:`Replace with ${replacement}`}}]:[]})}return{VariableDeclaration(node){node.declarations.forEach(decl=>{if(decl.id.type==="Identifier"){checkComments(node,decl.id.name);checkDecoratorsForDeprecation(node,decl.id.name)}})},FunctionDeclaration(node){if(node.id){checkComments(node,node.id.name);checkDecoratorsForDeprecation(node,node.id.name)}},ClassDeclaration(node){if(node.id){checkComments(node,node.id.name);checkDecoratorsForDeprecation(node,node.id.name)}},MethodDefinition(node){if(node.key.type==="Identifier"){checkComments(node,node.key.name);checkComments(node.key,node.key.name);checkDecoratorsForDeprecation(node,node.key.name)}},ExportNamedDeclaration(node){if(node.declaration){if(node.declaration.type==="VariableDeclaration"){node.declaration.declarations.forEach(decl=>{if(decl.id.type==="Identifier"){checkComments(node,decl.id.name);checkDecoratorsForDeprecation(node.declaration,decl.id.name)}})}else if(node.declaration.type==="FunctionDeclaration"&&node.declaration.id){checkComments(node,node.declaration.id.name);checkDecoratorsForDeprecation(node.declaration,node.declaration.id.name)}else if(node.declaration.type==="ClassDeclaration"&&node.declaration.id){checkComments(node,node.declaration.id.name);checkDecoratorsForDeprecation(node.declaration,node.declaration.id.name)}}if(node.specifiers){node.specifiers.forEach(specifier=>{if(specifier.exported.type==="Identifier"){checkComments(node,specifier.exported.name)}})}},ExportDefaultDeclaration(node){checkComments(node,"default");checkDecoratorsForDeprecation(node,"default")},ImportDeclaration(node){},MemberExpression(node){if(node.object.type==="Identifier"&&node.property.type==="Identifier"){reportDeprecatedUsage(node,node.object.name,`${node.object.name}.${node.property.name}`)}},CallExpression(node){if(node.callee.type==="Identifier"&&deprecatedItems.has(node.callee.name)){reportDeprecatedUsage(node,node.callee.name,`${node.callee.name}()`)}},NewExpression(node){if(node.callee.type==="Identifier"&&deprecatedItems.has(node.callee.name)){reportDeprecatedUsage(node,node.callee.name,`new ${node.callee.name}()`)}},Identifier(node){if(deprecatedItems.has(node.name)){const parent=node.parent;if(parent&&!["VariableDeclarator","FunctionDeclaration","ClassDeclaration","ImportSpecifier","ExportSpecifier","MethodDefinition"].includes(parent.type)){if(parent.type==="CallExpression"&&parent.callee===node){return}if(parent.type==="NewExpression"&&parent.callee===node){return}if(parent.type==="MemberExpression"&&parent.object===node){return}if(parent.type==="MemberExpression"&&parent.property===node){return}reportDeprecatedUsage(node,node.name,node.name)}}}}}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noDeprecated=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const eslint_devkit_2=require("@interlace/eslint-devkit");exports.noDeprecated=(0,eslint_devkit_1.createRule)({name:"no-deprecated",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-import-next/docs/rules/no-deprecated.md",description:"Forbid imported names marked with @deprecated documentation tag"},hasSuggestions:true,messages:{deprecatedImport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.WARNING,issueName:"Deprecated Import",description:"Importing deprecated API that should be avoided",severity:"MEDIUM",fix:"Replace with recommended alternative or remove if no longer needed",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md"}),deprecatedExport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.WARNING,issueName:"Deprecated Export Usage",description:"Using deprecated exported member",severity:"MEDIUM",fix:"Update to use the recommended replacement API",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md"}),deprecatedUsage:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.WARNING,issueName:"Deprecated API Usage",description:"Using deprecated function or method",severity:"MEDIUM",fix:"Migrate to the recommended modern API",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-deprecated.md"})},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"},description:"List of deprecated items that are allowed (for migration periods)"},deprecationMarkers:{type:"array",items:{type:"string"},default:["@deprecated"],description:"Custom deprecation markers to look for in comments"},checkJSDoc:{type:"boolean",default:true,description:"Check for @deprecated in JSDoc comments"},checkDecorators:{type:"boolean",default:true,description:"Check for @deprecated decorator in TypeScript"}},additionalProperties:false}]},defaultOptions:[{allow:[],deprecationMarkers:["@deprecated"],checkJSDoc:true,checkDecorators:true}],create(context){const[options]=context.options;const{allow=[],deprecationMarkers=["@deprecated"],checkJSDoc=true,checkDecorators=true}=options||{};const filename=context.filename;if(!filename){return{}}const deprecatedItems=new Map;function isAllowed(name){return allow.includes(name)}function parseJSDocDeprecated(comment){const lines=comment.split("\n");for(const line of lines){const trimmed=line.trim();for(const marker of deprecationMarkers){if(trimmed.includes(marker)){const afterMarker=trimmed.substring(trimmed.indexOf(marker)+marker.length).trim();let reason;let replacement;const insteadMatch=afterMarker.match(/(?:use|replaced by|see)\s+([^\s]+(?:\s+[^\s]+)*?)(?:\s|$)/i);if(insteadMatch){replacement=insteadMatch[1].trim().replace(/\s+instead$|\s+or$|\s+as$|\s+with$/i,"")}const reasonText=afterMarker.replace(/use\s+[^.]*[.]?/i,"").replace(/replaced by\s+[^.]*[.]?/i,"").trim();if(reasonText){reason=reasonText}return{deprecated:true,reason,replacement}}}}return{deprecated:false}}function checkComments(node,name){if(!checkJSDoc)return;const sourceCode=context.sourceCode;const comments=sourceCode.getCommentsBefore(node);const allComments=[...comments];if("leadingComments"in node&&Array.isArray(node.leadingComments)){allComments.push(...node.leadingComments)}for(const comment of allComments){if(comment.type==="Block"&&comment.value.includes("*")){const deprecationInfo=parseJSDocDeprecated(comment.value);if(deprecationInfo.deprecated){deprecatedItems.set(name,{location:node,reason:deprecationInfo.reason,replacement:deprecationInfo.replacement});break}}}}function checkDecoratorsForDeprecation(node,name){if(!checkDecorators)return;if("decorators"in node&&Array.isArray(node.decorators)){const decorators=node.decorators;for(const decorator of decorators){const dec=decorator;if(dec.expression.type==="CallExpression"&&dec.expression.callee.type==="Identifier"&&dec.expression.callee.name==="deprecated"||dec.expression.type==="Identifier"&&dec.expression.name==="deprecated"){deprecatedItems.set(name,{location:node,reason:"Marked with @deprecated decorator"});break}}}}function reportDeprecatedUsage(node,name,usage){if(isAllowed(name))return;const deprecationInfo=deprecatedItems.get(name);if(!deprecationInfo)return;const{replacement}=deprecationInfo;context.report({node,messageId:"deprecatedUsage",data:{name,usage,reason:deprecationInfo.reason||"This API is deprecated",replacement:deprecationInfo.replacement||"Check documentation for replacement",suggestion:deprecationInfo.replacement?`Replace with ${deprecationInfo.replacement}`:"Find modern replacement in documentation"},suggest:replacement?[{messageId:"deprecatedUsage",fix(fixer){return fixer.replaceText(node,replacement)},data:{replacement,suggestion:`Replace with ${replacement}`}}]:[]})}return{VariableDeclaration(node){node.declarations.forEach(decl=>{if(decl.id.type==="Identifier"){checkComments(node,decl.id.name);checkDecoratorsForDeprecation(node,decl.id.name)}})},FunctionDeclaration(node){if(node.id){checkComments(node,node.id.name);checkDecoratorsForDeprecation(node,node.id.name)}},ClassDeclaration(node){if(node.id){checkComments(node,node.id.name);checkDecoratorsForDeprecation(node,node.id.name)}},MethodDefinition(node){if(node.key.type==="Identifier"){checkComments(node,node.key.name);checkComments(node.key,node.key.name);checkDecoratorsForDeprecation(node,node.key.name)}},ExportNamedDeclaration(node){if(node.declaration){if(node.declaration.type==="VariableDeclaration"){node.declaration.declarations.forEach(decl=>{if(decl.id.type==="Identifier"){checkComments(node,decl.id.name);checkDecoratorsForDeprecation(node.declaration,decl.id.name)}})}else if(node.declaration.type==="FunctionDeclaration"&&node.declaration.id){checkComments(node,node.declaration.id.name);checkDecoratorsForDeprecation(node.declaration,node.declaration.id.name)}else if(node.declaration.type==="ClassDeclaration"&&node.declaration.id){checkComments(node,node.declaration.id.name);checkDecoratorsForDeprecation(node.declaration,node.declaration.id.name)}}if(node.specifiers){node.specifiers.forEach(specifier=>{if(specifier.exported.type==="Identifier"){checkComments(node,specifier.exported.name)}})}},ExportDefaultDeclaration(node){checkComments(node,"default");checkDecoratorsForDeprecation(node,"default")},ImportDeclaration(node){},MemberExpression(node){const member=node.object.type==="Identifier"?(0,eslint_devkit_1.propertyName)(node):null;if(member!==null){reportDeprecatedUsage(node,node.object.name,`${node.object.name}.${member}`)}},CallExpression(node){if(node.callee.type==="Identifier"&&deprecatedItems.has(node.callee.name)){reportDeprecatedUsage(node,node.callee.name,`${node.callee.name}()`)}},NewExpression(node){if(node.callee.type==="Identifier"&&deprecatedItems.has(node.callee.name)){reportDeprecatedUsage(node,node.callee.name,`new ${node.callee.name}()`)}},Identifier(node){if(deprecatedItems.has(node.name)){const parent=node.parent;if(parent&&!["VariableDeclarator","FunctionDeclaration","ClassDeclaration","ImportSpecifier","ExportSpecifier","MethodDefinition"].includes(parent.type)){if(parent.type==="CallExpression"&&parent.callee===node){return}if(parent.type==="NewExpression"&&parent.callee===node){return}if(parent.type==="MemberExpression"&&parent.object===node){return}if(parent.type==="MemberExpression"&&parent.property===node){return}reportDeprecatedUsage(node,node.name,node.name)}}}}}});