eslint-plugin-import-next 2.8.9 → 2.8.11
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.8.
|
|
3
|
+
"version": "2.8.11",
|
|
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",
|
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.8.9"},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","prefer-top-level"],"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-top-level"]}},"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.8.11"},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","prefer-top-level"],"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-top-level"]}},"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;
|
package/src/rules/no-commonjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noCommonjs=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const eslint_devkit_2=require("@interlace/eslint-devkit");exports.noCommonjs=(0,eslint_devkit_1.createRule)({name:"no-commonjs",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-import-next/docs/rules/no-commonjs.md",description:"Prevents CommonJS require/module.exports"},hasSuggestions:true,messages:{commonjsRequire:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"CommonJS Require",description:"CommonJS require() call detected",severity:"MEDIUM",fix:"Use ES6 import syntax instead of require()",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"}),commonjsExport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"CommonJS Export",description:"CommonJS module.exports detected",severity:"MEDIUM",fix:"Use ES6 export default or export {} syntax",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"}),commonjsModule:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"CommonJS Module",description:"CommonJS exports.* pattern detected",severity:"MEDIUM",fix:"Use ES6 named export syntax",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"}),preferES6:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Prefer ES6 Modules",description:"Legacy CommonJS module system detected",severity:"LOW",fix:"Migrate to ES6 import/export for better static analysis and tree-shaking",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"})},schema:[{type:"object",properties:{allowRequire:{type:"boolean",default:false,description:"Allow require() calls."},allowModuleExports:{type:"boolean",default:false,description:"Allow module.exports."},allowExports:{type:"boolean",default:false,description:"Allow exports.* patterns."},allowInFiles:{type:"array",items:{type:"string"},description:"Allow CommonJS in specific files."},suggestES6:{type:"boolean",default:true,description:"Suggest ES6 alternatives."}},additionalProperties:false}]},defaultOptions:[{allowRequire:false,allowModuleExports:false,allowExports:false,allowInFiles:[],suggestES6:true}],create(context){const[options]=context.options;const{allowRequire=false,allowModuleExports=false,allowExports=false,allowInFiles=[],suggestES6=true}=options||{};const filename=context.filename;function shouldAllow(){if(!filename){return false}return allowInFiles.some(pattern=>{if(pattern.includes("*")){const regex=new RegExp(pattern.replace(/\*/g,".*"));return regex.test(filename)}return filename.includes(pattern)})}function generateES6Suggestion(node){if(node.type==="CallExpression"&&node.callee.type==="Identifier"&&node.callee.name==="require"){const arg=node.arguments[0];if(arg?.type==="Literal"&&typeof arg.value==="string"){return`// Convert to: import * as moduleName from '${arg.value}';`}}if(node.type==="AssignmentExpression"){const left=node.left;const right=node.right;if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="module"&&(0,eslint_devkit_1.propertyName)(left)==="exports"){if(right.type==="Identifier"){return`// Convert to: export default ${right.name};`}else{return`// Convert to: export default ${context.sourceCode.getText(right)};`}}if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="exports"&&left.property.type==="Identifier"){const propertyName=left.property.name;if(right.type==="Identifier"){return`// Convert to: export const ${propertyName} = ${right.name};`}else{return`// Convert to: export const ${propertyName} = ${context.sourceCode.getText(right)};`}}}return"// Convert to ES6 import/export syntax"}return{CallExpression(node){if(shouldAllow()||allowRequire){return}if(node.callee.type==="Identifier"&&node.callee.name==="require"){context.report({node:node.callee,messageId:"commonjsRequire",data:{functionName:"require",currentFile:filename,suggestion:"Use import statement at the top of the file"},suggest:suggestES6?[{messageId:"commonjsRequire",fix(fixer){const suggestion=generateES6Suggestion(node);return fixer.insertTextBefore(node,suggestion+"\n")}}]:void 0})}},AssignmentExpression(node){if(shouldAllow()){return}const left=node.left;if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="module"&&(0,eslint_devkit_1.propertyName)(left)==="exports"&&!allowModuleExports){context.report({node:left,messageId:"commonjsExport",data:{pattern:"module.exports",currentFile:filename,suggestion:"Use export default or export {} syntax"},suggest:suggestES6?[{messageId:"commonjsExport",fix(fixer){const suggestion=generateES6Suggestion(node);return fixer.insertTextBefore(node,suggestion+"\n")}}]:void 0})}else if(left.type==="MemberExpression"&&left.object.type==="MemberExpression"&&left.object.object.type==="Identifier"&&left.object.object.name==="module"&&(0,eslint_devkit_1.propertyName)(left.object)==="exports"&&!allowModuleExports){context.report({node:left,messageId:"commonjsModule",data:{pattern:"module.exports.*",currentFile:filename,suggestion:"Use named export syntax"},suggest:suggestES6?[{messageId:"commonjsModule",fix(fixer){return fixer.insertTextBefore(node,"// Convert to: export const propertyName = value;\n")}}]:void 0})}else if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="exports"&&!allowExports){context.report({node:left,messageId:"commonjsModule",data:{pattern:"exports.*",currentFile:filename,suggestion:"Use named export syntax"},suggest:suggestES6?[{messageId:"commonjsModule",fix(fixer){const suggestion=generateES6Suggestion(node);return fixer.insertTextBefore(node,suggestion+"\n")}}]:void 0})}},TSImportEqualsDeclaration(node){if(shouldAllow()||allowRequire){return}if(node.moduleReference.type==="TSExternalModuleReference"){context.report({node,messageId:"commonjsRequire",data:{functionName:"require",currentFile:filename,suggestion:"Use ES6 import statement"},suggest:suggestES6?[{messageId:"commonjsRequire",fix(fixer){const modulePath=node.moduleReference.type==="TSExternalModuleReference"&&node.moduleReference.expression.type==="Literal"?node.moduleReference.expression.value:"unknown";return fixer.replaceText(node,`import ${node.id.name} from '${modulePath}';`)}}]:void 0})}},Identifier(node){if(shouldAllow()){return}if(node.name==="__dirname"||node.name==="__filename"){context.report({node,messageId:"preferES6",data:{pattern:node.name,currentFile:filename,suggestion:"Use import.meta.url or path resolution functions"}})}}}}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noCommonjs=void 0;const eslint_devkit_1=require("@interlace/eslint-devkit");const eslint_devkit_2=require("@interlace/eslint-devkit");exports.noCommonjs=(0,eslint_devkit_1.createRule)({name:"no-commonjs",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-import-next/docs/rules/no-commonjs.md",description:"Prevents CommonJS require/module.exports"},hasSuggestions:true,messages:{commonjsRequire:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"CommonJS Require",description:"CommonJS require() call detected",severity:"MEDIUM",fix:"Use ES6 import syntax instead of require()",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"}),commonjsExport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"CommonJS Export",description:"CommonJS module.exports detected",severity:"MEDIUM",fix:"Use ES6 export default or export {} syntax",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"}),commonjsModule:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"CommonJS Module",description:"CommonJS exports.* pattern detected",severity:"MEDIUM",fix:"Use ES6 named export syntax",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"}),preferES6:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Prefer ES6 Modules",description:"Legacy CommonJS module system detected",severity:"LOW",fix:"Migrate to ES6 import/export for better static analysis and tree-shaking",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-commonjs.md"})},schema:[{type:"object",properties:{allowRequire:{type:"boolean",default:false,description:"Allow require() calls."},allowModuleExports:{type:"boolean",default:false,description:"Allow module.exports."},allowExports:{type:"boolean",default:false,description:"Allow exports.* patterns."},allowInFiles:{type:"array",items:{type:"string"},description:"Allow CommonJS in specific files."},suggestES6:{type:"boolean",default:true,description:"Suggest ES6 alternatives."}},additionalProperties:false}]},defaultOptions:[{allowRequire:false,allowModuleExports:false,allowExports:false,allowInFiles:[],suggestES6:true}],create(context){const[options]=context.options;const{allowRequire=false,allowModuleExports=false,allowExports=false,allowInFiles=[],suggestES6=true}=options||{};const filename=context.filename;function shouldAllow(){if(!filename){return false}return allowInFiles.some(pattern=>{if(pattern.includes("*")){const regex=new RegExp(pattern.replace(/\*/g,".*"));return regex.test(filename)}return filename.includes(pattern)})}function generateES6Suggestion(node){if(node.type==="CallExpression"&&node.callee.type==="Identifier"&&node.callee.name==="require"){const arg=node.arguments[0];if(arg?.type==="Literal"&&typeof arg.value==="string"){return`// Convert to: import * as moduleName from '${arg.value}';`}}if(node.type==="AssignmentExpression"){const left=node.left;const right=node.right;if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="module"&&(0,eslint_devkit_1.propertyName)(left)==="exports"){if(right.type==="Identifier"){return`// Convert to: export default ${right.name};`}else{return`// Convert to: export default ${context.sourceCode.getText(right)};`}}if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="exports"&&left.property.type==="Identifier"){const propertyName=left.property.name;if(right.type==="Identifier"){return`// Convert to: export const ${propertyName} = ${right.name};`}else{return`// Convert to: export const ${propertyName} = ${context.sourceCode.getText(right)};`}}}return"// Convert to ES6 import/export syntax"}return{CallExpression(node){if(shouldAllow()||allowRequire){return}if(node.callee.type==="Identifier"&&node.callee.name==="require"){context.report({node:node.callee,messageId:"commonjsRequire",data:{functionName:"require",currentFile:filename,suggestion:"Use import statement at the top of the file"},suggest:suggestES6?[{messageId:"commonjsRequire",fix(fixer){const suggestion=generateES6Suggestion(node);return fixer.insertTextBefore(node,suggestion+"\n")}}]:void 0})}},AssignmentExpression(node){if(shouldAllow()){return}const left=node.left;if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="module"&&(0,eslint_devkit_1.propertyName)(left)==="exports"&&!allowModuleExports){context.report({node:left,messageId:"commonjsExport",data:{pattern:"module.exports",currentFile:filename,suggestion:"Use export default or export {} syntax"},suggest:suggestES6?[{messageId:"commonjsExport",fix(fixer){const suggestion=generateES6Suggestion(node);return fixer.insertTextBefore(node,suggestion+"\n")}}]:void 0})}else if(left.type==="MemberExpression"&&left.object.type==="MemberExpression"&&left.object.object.type==="Identifier"&&left.object.object.name==="module"&&(0,eslint_devkit_1.propertyName)(left.object)==="exports"&&!allowModuleExports){context.report({node:left,messageId:"commonjsModule",data:{pattern:"module.exports.*",currentFile:filename,suggestion:"Use named export syntax"},suggest:suggestES6?[{messageId:"commonjsModule",fix(fixer){return fixer.insertTextBefore(node,"// Convert to: export const propertyName = value;\n")}}]:void 0})}else if(left.type==="MemberExpression"&&left.object.type==="Identifier"&&left.object.name==="exports"&&!allowExports){context.report({node:left,messageId:"commonjsModule",data:{pattern:"exports.*",currentFile:filename,suggestion:"Use named export syntax"},suggest:suggestES6?[{messageId:"commonjsModule",fix(fixer){const suggestion=generateES6Suggestion(node);return fixer.insertTextBefore(node,suggestion+"\n")}}]:void 0})}},TSImportEqualsDeclaration(node){if(shouldAllow()||allowRequire){return}if(node.moduleReference.type==="TSExternalModuleReference"){const usedAsCallee=(context.sourceCode.getDeclaredVariables(node)[0]?.references??[]).some(ref=>{const parent=ref.identifier.parent;return(parent.type==="CallExpression"||parent.type==="NewExpression")&&parent.callee===ref.identifier||parent.type==="TaggedTemplateExpression"&&parent.tag===ref.identifier});context.report({node,messageId:"commonjsRequire",data:{functionName:"require",currentFile:filename,suggestion:"Use ES6 import statement"},suggest:suggestES6&&!usedAsCallee&&node.parent.type!=="ExportNamedDeclaration"?[{messageId:"commonjsRequire",fix(fixer){const modulePath=node.moduleReference.type==="TSExternalModuleReference"&&node.moduleReference.expression.type==="Literal"?node.moduleReference.expression.value:"unknown";const typeOnly=node.importKind==="type"?"type ":"";return fixer.replaceText(node,`import ${typeOnly}* as ${node.id.name} from '${modulePath}';`)}}]:void 0})}},Identifier(node){if(shouldAllow()){return}if(node.name==="__dirname"||node.name==="__filename"){context.report({node,messageId:"preferES6",data:{pattern:node.name,currentFile:filename,suggestion:"Use import.meta.url or path resolution functions"}})}}}}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noNodejsModules=void 0;const node_module_1=require("node:module");const eslint_devkit_1=require("@interlace/eslint-devkit");const eslint_devkit_2=require("@interlace/eslint-devkit");const NODEJS_BUILTINS=new Set(["assert","buffer","child_process","cluster","crypto","dgram","dns","domain","events","fs","http","https","net","os","path","punycode","querystring","readline","stream","string_decoder","timers","tls","tty","url","util","v8","vm","zlib","constants","module","process"]);const BUILTIN_ALTERNATIVES={fs:"Use platform-specific file APIs or isomorphic libraries",path:"Use URL constructor or path utilities from your bundler",crypto:"Use Web Crypto API (crypto.subtle) or crypto libraries",buffer:"Use Uint8Array or ArrayBuffer for binary data",child_process:"Use Web Workers or platform-specific APIs",os:"Use navigator.userAgent or platform detection libraries",http:"Use fetch() API or HTTP client libraries",https:"Use fetch() API or HTTP client libraries",stream:"Use ReadableStream/WriteableStream or streaming libraries",events:"Use DOM events or event libraries",util:"Use utility libraries or built-in language features",url:"Use URL constructor and URLSearchParams",querystring:"Use URLSearchParams or query parsing libraries",timers:"Use setTimeout/setInterval or timer libraries"};exports.noNodejsModules=(0,eslint_devkit_1.createRule)({name:"no-nodejs-modules",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-import-next/docs/rules/no-nodejs-modules.md",description:"Prevents Node.js builtin imports"},messages:{nodejsBuiltinImport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Node.js Builtin Import",description:"Node.js builtin module import detected",severity:"HIGH",fix:"Replace with browser-compatible alternative or conditional import",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md"}),nodejsBuiltinRequire:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Node.js Builtin Require",description:"Node.js builtin module require() detected",severity:"HIGH",fix:"Replace with browser-compatible alternative or conditional require",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md"}),nodejsBuiltinDynamic:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Node.js Builtin Dynamic Import",description:"Node.js builtin module dynamic import detected",severity:"HIGH",fix:"Use conditional dynamic import with browser-compatible fallback",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md"})},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"},description:"Node.js builtins to allow."},additionalBuiltins:{type:"array",items:{type:"string"},description:"Additional modules to treat as builtins."},suggestAlternatives:{type:"boolean",default:true,description:"Suggest browser-compatible alternatives."}},additionalProperties:false}]},defaultOptions:[{allow:[],additionalBuiltins:[],suggestAlternatives:true}],create(context){const[options]=context.options;const{allow=[],additionalBuiltins=[],suggestAlternatives=true}=options||{};const allBuiltins=new Set([...NODEJS_BUILTINS,...node_module_1.builtinModules,...additionalBuiltins]);const allowedBuiltins=new Set(allow);function isNodejsBuiltin(moduleName){const bare=moduleName.startsWith("node:")?moduleName.slice(5):moduleName;const slash=bare.indexOf("/");const base=bare.startsWith("@")||slash===-1?bare:bare.slice(0,slash);if(!allBuiltins.has(bare)&&!allBuiltins.has(base)){return false}return!allowedBuiltins.has(moduleName)&&!allowedBuiltins.has(bare)&&!allowedBuiltins.has(base)&&!allowedBuiltins.has(`node:${base}`)}function getBuiltinName(moduleName){if(moduleName.startsWith("node:")){return moduleName.slice(5)}return moduleName}function generateAlternativeSuggestion(builtinName){if(!suggestAlternatives){return""}const alternative=BUILTIN_ALTERNATIVES[builtinName];
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.noNodejsModules=void 0;const node_module_1=require("node:module");const eslint_devkit_1=require("@interlace/eslint-devkit");const eslint_devkit_2=require("@interlace/eslint-devkit");const NODEJS_BUILTINS=new Set(["assert","buffer","child_process","cluster","crypto","dgram","dns","domain","events","fs","http","https","net","os","path","punycode","querystring","readline","stream","string_decoder","timers","tls","tty","url","util","v8","vm","zlib","constants","module","process"]);const BUILTIN_ALTERNATIVES={fs:"Use platform-specific file APIs or isomorphic libraries",path:"Use URL constructor or path utilities from your bundler",crypto:"Use Web Crypto API (crypto.subtle) or crypto libraries",buffer:"Use Uint8Array or ArrayBuffer for binary data",child_process:"Use Web Workers or platform-specific APIs",os:"Use navigator.userAgent or platform detection libraries",http:"Use fetch() API or HTTP client libraries",https:"Use fetch() API or HTTP client libraries",stream:"Use ReadableStream/WriteableStream or streaming libraries",events:"Use DOM events or event libraries",util:"Use utility libraries or built-in language features",url:"Use URL constructor and URLSearchParams",querystring:"Use URLSearchParams or query parsing libraries",timers:"Use setTimeout/setInterval or timer libraries"};exports.noNodejsModules=(0,eslint_devkit_1.createRule)({name:"no-nodejs-modules",meta:{type:"problem",docs:{url:"https://github.com/ofri-peretz/eslint/blob/main/packages/eslint-plugin-import-next/docs/rules/no-nodejs-modules.md",description:"Prevents Node.js builtin imports"},messages:{nodejsBuiltinImport:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Node.js Builtin Import",description:"Node.js builtin module import detected",severity:"HIGH",fix:"Replace with browser-compatible alternative or conditional import{{alternative}}",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md"}),nodejsBuiltinRequire:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Node.js Builtin Require",description:"Node.js builtin module require() detected",severity:"HIGH",fix:"Replace with browser-compatible alternative or conditional require{{alternative}}",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md"}),nodejsBuiltinDynamic:(0,eslint_devkit_2.formatLLMMessage)({icon:eslint_devkit_2.MessageIcons.DEVELOPMENT,issueName:"Node.js Builtin Dynamic Import",description:"Node.js builtin module dynamic import detected",severity:"HIGH",fix:"Use conditional dynamic import with browser-compatible fallback{{alternative}}",documentationLink:"https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-nodejs-modules.md"})},schema:[{type:"object",properties:{allow:{type:"array",items:{type:"string"},description:"Node.js builtins to allow."},additionalBuiltins:{type:"array",items:{type:"string"},description:"Additional modules to treat as builtins."},suggestAlternatives:{type:"boolean",default:true,description:"Suggest browser-compatible alternatives."}},additionalProperties:false}]},defaultOptions:[{allow:[],additionalBuiltins:[],suggestAlternatives:true}],create(context){const[options]=context.options;const{allow=[],additionalBuiltins=[],suggestAlternatives=true}=options||{};const allBuiltins=new Set([...NODEJS_BUILTINS,...node_module_1.builtinModules,...additionalBuiltins]);const allowedBuiltins=new Set(allow);function isNodejsBuiltin(moduleName){const bare=moduleName.startsWith("node:")?moduleName.slice(5):moduleName;const slash=bare.indexOf("/");const base=bare.startsWith("@")||slash===-1?bare:bare.slice(0,slash);if(!allBuiltins.has(bare)&&!allBuiltins.has(base)){return false}return!allowedBuiltins.has(moduleName)&&!allowedBuiltins.has(bare)&&!allowedBuiltins.has(base)&&!allowedBuiltins.has(`node:${base}`)}function getBuiltinName(moduleName){if(moduleName.startsWith("node:")){return moduleName.slice(5)}return moduleName}function generateAlternativeSuggestion(builtinName){if(!suggestAlternatives){return""}const alternative=BUILTIN_ALTERNATIVES[builtinName];return alternative?` (${alternative})`:""}function reportBuiltin(node,moduleName,importType){const builtinName=getBuiltinName(moduleName);const alternative=generateAlternativeSuggestion(builtinName);let messageId;let fixSuggestion;switch(importType){case"static":messageId="nodejsBuiltinImport";fixSuggestion="Use conditional import or browser-compatible alternative";break;case"require":messageId="nodejsBuiltinRequire";fixSuggestion="Use dynamic import with fallback or browser-compatible alternative";break;case"dynamic":messageId="nodejsBuiltinDynamic";fixSuggestion="Add browser-compatible fallback in dynamic import";break}context.report({node,messageId,data:{moduleName,builtinName,currentFile:context.filename,alternative,suggestion:fixSuggestion}})}return{ImportDeclaration(node){const moduleName=(0,eslint_devkit_1.staticString)(node.source);if(typeof moduleName==="string"&&isNodejsBuiltin(moduleName)){reportBuiltin(node.source,moduleName,"static")}},CallExpression(node){if(node.callee.type==="Identifier"&&node.callee.name==="require"&&node.arguments.length===1){const arg=node.arguments[0];const staticText1=(0,eslint_devkit_1.staticString)(arg);if(staticText1!==null){const moduleName=staticText1;if(isNodejsBuiltin(moduleName)){reportBuiltin(arg,moduleName,"require")}}}},ImportExpression(node){const source=node.source;const staticText2=(0,eslint_devkit_1.staticString)(source);if(staticText2!==null){const moduleName=staticText2;if(isNodejsBuiltin(moduleName)){reportBuiltin(source,moduleName,"dynamic")}}},TSImportEqualsDeclaration(node){if(node.moduleReference.type==="TSExternalModuleReference"&&node.moduleReference.expression.type==="Literal"&&typeof node.moduleReference.expression.value==="string"){const moduleName=node.moduleReference.expression.value;if(isNodejsBuiltin(moduleName)){reportBuiltin(node.moduleReference,moduleName,"require")}}}}}});
|