@js-toolkit/configs 3.101.2 → 3.101.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/eslint/common.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,n)}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var s=e(t),n=0;n<s.length;n++)"default"!==s[n]&&__createBinding(r,t,s[n]);return __setModuleDefault(r,t),r}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.create=create;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),globals_1=__importDefault(require("globals")),config_1=require("eslint/config"),js_1=__importDefault(require("@eslint/js")),compat_1=require("@eslint/compat"),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),hasBabelParser=!!(0,getInstalledPackage_1.getInstalledPackage)("@babel/eslint-parser"),hasPromisePlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-promise"),hasImportXPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import-x"),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import"),hasConfigStandard=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-standard"),hasConfigAirbnbBase=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb-base"),hasJsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsdoc"),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc"),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended"),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint"),hasImportResolverTypescript=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-import-resolver-typescript"),withFilteredStandardRules=()=>{const e=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-n");return{rules:Object.entries(require("eslint-config-standard").rules??{}).reduce((t,[r,s])=>(r.startsWith("import/")?hasImportPlugin&&!hasImportXPlugin?t[r]=s:hasImportXPlugin&&(t[r.replace("import/","import-x/")]=s):r.startsWith("n/")?e&&(t[r]=s):r.startsWith("promise/")?hasPromisePlugin&&(t[r]=s):t[r]=s,t),{})}},filterAirbnbRules=()=>{const e=require("eslint-config-airbnb-base").extends.map(e=>({rules:e.endsWith("imports.js")?hasImportXPlugin&&Object.entries(require(e).rules).reduce((e,[t,r])=>(e[t.replace("import/","import-x/")]=r,e),{})||hasImportPlugin&&require(e).rules||{}:require(e).rules}));return(0,compat_1.fixupConfigRules)(e)};function createTypeScriptImportResolver(e){return require("eslint-import-resolver-typescript").createTypeScriptImportResolver({extensions:paths_1.moduleExtensions,...e})}function create(e){const t=hasTypescriptEslintPlugin&&path_1.default.resolve(e,consts_1.eslintTsProject),r=t&&fs_1.default.existsSync(t)?t:path_1.default.resolve(e,"tsconfig.json");return[js_1.default.configs.recommended,...hasPromisePlugin?[require("eslint-plugin-promise").configs["flat/recommended"]]:[],...hasImportPlugin&&!hasImportXPlugin?require("eslint-plugin-import").flatConfigs.recommended:[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.recommended]:[],...hasConfigStandard?[withFilteredStandardRules()]:[],...hasJsDocPlugin?[{...require("eslint-plugin-jsdoc").configs["flat/recommended"],files:[(0,paths_1.getFilesGlob)((0,paths_1.getJSExtensions)())]}]:[],...hasConfigAirbnbBase?filterAirbnbRules():[],{languageOptions:{ecmaVersion:"latest",parserOptions:{ecmaVersion:"latest"},globals:{...globals_1.default.node},...hasBabelParser&&{parser:require("@babel/eslint-parser"),parserOptions:{requireConfigFile:!1}}},linterOptions:{reportUnusedDisableDirectives:!0},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":(0,paths_1.getJSExtensions)(),"import-x/extensions":(0,paths_1.getJSExtensions)(),"import/resolver":{node:{extensions:(0,paths_1.getJSExtensions)(),moduleDirectory:["node_modules",...paths_1.default.web.sources,...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)}},...hasBabelParser&&{"import/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}},...hasImportXPlugin&&{"import-x/resolver-next":[require("eslint-plugin-import-x").createNodeResolver({extensions:(0,paths_1.getJSExtensions)(),modules:["node_modules",...paths_1.default.web.sources,...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)})],...hasBabelParser&&{"import-x/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}}},rules:{"lines-between-class-members":["error","always",{exceptAfterSingleLine:!0}],"func-names":["warn","as-needed",{generators:"as-needed"}],"no-console":"off","no-unused-expressions":["error",{allowShortCircuit:!0}],"no-plusplus":["error",{allowForLoopAfterthoughts:!0}],"no-param-reassign":["error",{props:!1}],"no-promise-executor-return":["error",{allowVoid:!0}],"no-restricted-exports":["error",{restrictedNamedExports:["then"],restrictDefaultExports:{named:!0,namedFrom:!0,namespaceFrom:!0,defaultFrom:!1}}],"no-restricted-syntax":["error","ForInStatement","LabeledStatement","WithStatement","CallExpression[callee.name='setTimeout'][arguments.length!=2]","CallExpression[arguments.length!=2] > MemberExpression[object.name='window'][property.name='setTimeout']"],...(hasImportPlugin||hasImportXPlugin)&&Object.entries({"import/no-extraneous-dependencies":["error",{devDependencies:!0}],"import/extensions":["error","ignorePackages",paths_1.moduleExtensions.reduce((e,t)=>({...e,[t.substring(1)]:"never"}),{"":"never"})],"import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object"]}],"import/prefer-default-export":"off"}).reduce((e,[t,r])=>(hasImportXPlugin?e[t.replace("import/","import-x/")]=r:e[t]=r,e),{}),...hasPromisePlugin&&{"promise/always-return":"off","promise/catch-or-return":["error",{allowFinally:!0,allowThenStrict:!0}]}}},...hasTypescriptEslintPlugin?(()=>{const t=require("typescript-eslint");return(0,config_1.defineConfig)({extends:[...t.configs.strictTypeChecked,...t.configs.stylisticTypeChecked,...hasImportPlugin&&!hasImportXPlugin?require("eslint-plugin-import").flatConfigs.recommended:[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.typescript]:[]],files:[(0,paths_1.getFilesGlob)((0,paths_1.getTSExtensions)())],plugins:{...hasTsDocPlugin&&{tsdoc:require("eslint-plugin-tsdoc")}},languageOptions:{parserOptions:{tsconfigRootDir:e,projectService:{defaultProject:r,allowDefaultProject:["*.config.ts","*.config.mts","packages/*/*.config.ts","packages/*/*.config.mts"]}}},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":paths_1.moduleExtensions,"import/resolver":{node:{extensions:paths_1.moduleExtensions},typescript:{project:r}},"import/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}}},...hasImportXPlugin&&{"import-x/extensions":paths_1.moduleExtensions,"import-x/external-module-folders":["node_modules","node_modules/@types"],"import-x/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}},"import-x/resolver-next":[hasImportResolverTypescript?createTypeScriptImportResolver({project:r}):[],require("eslint-plugin-import-x").createNodeResolver({extensions:paths_1.moduleExtensions,tsconfig:{configFile:r}})]}},rules:{"no-useless-constructor":"off","no-void":["error",{allowAsStatement:!0}],"@typescript-eslint/explicit-member-accessibility":"off","@typescript-eslint/explicit-function-return-type":["warn",{allowExpressions:!0,allowTypedFunctionExpressions:!0,allowHigherOrderFunctions:!0,allowDirectConstAssertionInArrowFunctions:!0,allowConciseArrowFunctionExpressionsStartingWithVoid:!0}],"no-use-before-define":"off","@typescript-eslint/no-use-before-define":"error","no-shadow":"off","@typescript-eslint/no-shadow":["error",{ignoreTypeValueShadow:!0}],"no-empty-function":"off","@typescript-eslint/no-empty-function":["error",{allow:["private-constructors","protected-constructors","decoratedFunctions"]}],"@typescript-eslint/no-unused-expressions":["error",{allowShortCircuit:!0}],"@typescript-eslint/prefer-nullish-coalescing":["error",{ignorePrimitives:{string:!0},ignoreMixedLogicalExpressions:!0}],"@typescript-eslint/no-unnecessary-condition":["error",{checkTypePredicates:!0,allowConstantLoopConditions:"only-allowed-literals"}],"@typescript-eslint/no-confusing-void-expression":["error",{ignoreVoidReturningFunctions:!0}],...hasImportXPlugin&&{"import-x/named":"off"},...hasTsDocPlugin&&{"tsdoc/syntax":"warn"}}})})():[],...hasPrettierEslintPlugin?[require("eslint-plugin-prettier/recommended")]:[],{files:[(0,paths_1.getFilesGlob)([".d.ts"])],rules:{"max-classes-per-file":"off"}},{ignores:["node_modules","dist","build",".yarn"]}]}const config=create(process.cwd());module.exports=config,module.exports.create=create,module.exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.default=config;
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,r,s){void 0===s&&(s=r);var n=Object.getOwnPropertyDescriptor(t,r);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,s,n)}:function(e,t,r,s){void 0===s&&(s=r),e[s]=t[r]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(null!=t)for(var s=e(t),n=0;n<s.length;n++)"default"!==s[n]&&__createBinding(r,t,s[n]);return __setModuleDefault(r,t),r}}(),__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.create=create;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path")),globals_1=__importDefault(require("globals")),config_1=require("eslint/config"),js_1=__importDefault(require("@eslint/js")),compat_1=require("@eslint/compat"),paths_1=__importStar(require("../paths")),getInstalledPackage_1=require("../getInstalledPackage"),consts_1=require("./consts"),hasBabelParser=!!(0,getInstalledPackage_1.getInstalledPackage)("@babel/eslint-parser",{resolveFromCwd:!0}),hasPromisePlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-promise",{resolveFromCwd:!0}),hasImportXPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import-x",{resolveFromCwd:!0}),hasImportPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-import",{resolveFromCwd:!0}),hasConfigStandard=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-standard",{resolveFromCwd:!0}),hasConfigAirbnbBase=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb-base",{resolveFromCwd:!0}),hasJsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsdoc",{resolveFromCwd:!0}),hasTsDocPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-tsdoc",{resolveFromCwd:!0}),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended",{resolveFromCwd:!0}),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint",{resolveFromCwd:!0}),hasImportResolverTypescript=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-import-resolver-typescript",{resolveFromCwd:!0}),withFilteredStandardRules=()=>{const e=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-n",{resolveFromCwd:!0});return{rules:Object.entries(require("eslint-config-standard").rules??{}).reduce((t,[r,s])=>(r.startsWith("import/")?hasImportPlugin&&!hasImportXPlugin?t[r]=s:hasImportXPlugin&&(t[r.replace("import/","import-x/")]=s):r.startsWith("n/")?e&&(t[r]=s):r.startsWith("promise/")?hasPromisePlugin&&(t[r]=s):t[r]=s,t),{})}},filterAirbnbRules=()=>{const e=require("eslint-config-airbnb-base").extends.map(e=>({rules:e.endsWith("imports.js")?hasImportXPlugin&&Object.entries(require(e).rules).reduce((e,[t,r])=>(e[t.replace("import/","import-x/")]=r,e),{})||hasImportPlugin&&require(e).rules||{}:require(e).rules}));return(0,compat_1.fixupConfigRules)(e)};function createTypeScriptImportResolver(e){return require("eslint-import-resolver-typescript").createTypeScriptImportResolver({extensions:paths_1.moduleExtensions,...e})}function create(e){const t=hasTypescriptEslintPlugin&&path_1.default.resolve(e,consts_1.eslintTsProject),r=t&&fs_1.default.existsSync(t)?t:path_1.default.resolve(e,"tsconfig.json");return[js_1.default.configs.recommended,...hasPromisePlugin?[require("eslint-plugin-promise").configs["flat/recommended"]]:[],...hasImportPlugin&&!hasImportXPlugin?require("eslint-plugin-import").flatConfigs.recommended:[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.recommended]:[],...hasConfigStandard?[withFilteredStandardRules()]:[],...hasJsDocPlugin?[{...require("eslint-plugin-jsdoc").configs["flat/recommended"],files:[(0,paths_1.getFilesGlob)((0,paths_1.getJSExtensions)())]}]:[],...hasConfigAirbnbBase?filterAirbnbRules():[],{languageOptions:{ecmaVersion:"latest",parserOptions:{ecmaVersion:"latest"},globals:{...globals_1.default.node},...hasBabelParser&&{parser:require("@babel/eslint-parser"),parserOptions:{requireConfigFile:!1}}},linterOptions:{reportUnusedDisableDirectives:!0},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":(0,paths_1.getJSExtensions)(),"import-x/extensions":(0,paths_1.getJSExtensions)(),"import/resolver":{node:{extensions:(0,paths_1.getJSExtensions)(),moduleDirectory:["node_modules",...paths_1.default.web.sources,...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)}},...hasBabelParser&&{"import/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}},...hasImportXPlugin&&{"import-x/resolver-next":[require("eslint-plugin-import-x").createNodeResolver({extensions:(0,paths_1.getJSExtensions)(),modules:["node_modules",...paths_1.default.web.sources,...paths_1.default.node.sources,...paths_1.default.shared.sources].filter(e=>!!e)})],...hasBabelParser&&{"import-x/parsers":{"@babel/eslint-parser":(0,paths_1.getJSExtensions)()}}}},rules:{"lines-between-class-members":["error","always",{exceptAfterSingleLine:!0}],"func-names":["warn","as-needed",{generators:"as-needed"}],"no-console":"off","no-unused-expressions":["error",{allowShortCircuit:!0}],"no-plusplus":["error",{allowForLoopAfterthoughts:!0}],"no-param-reassign":["error",{props:!1}],"no-promise-executor-return":["error",{allowVoid:!0}],"no-restricted-exports":["error",{restrictedNamedExports:["then"],restrictDefaultExports:{named:!0,namedFrom:!0,namespaceFrom:!0,defaultFrom:!1}}],"no-restricted-syntax":["error","ForInStatement","LabeledStatement","WithStatement","CallExpression[callee.name='setTimeout'][arguments.length!=2]","CallExpression[arguments.length!=2] > MemberExpression[object.name='window'][property.name='setTimeout']"],...(hasImportPlugin||hasImportXPlugin)&&Object.entries({"import/no-extraneous-dependencies":["error",{devDependencies:!0}],"import/extensions":["error","ignorePackages",paths_1.moduleExtensions.reduce((e,t)=>({...e,[t.substring(1)]:"never"}),{"":"never"})],"import/order":["error",{groups:["builtin","external","internal","parent","sibling","index","object"]}],"import/prefer-default-export":"off"}).reduce((e,[t,r])=>(hasImportXPlugin?e[t.replace("import/","import-x/")]=r:e[t]=r,e),{}),...hasPromisePlugin&&{"promise/always-return":"off","promise/catch-or-return":["error",{allowFinally:!0,allowThenStrict:!0}]}}},...hasTypescriptEslintPlugin?(()=>{const t=require("typescript-eslint");return(0,config_1.defineConfig)({extends:[...t.configs.strictTypeChecked,...t.configs.stylisticTypeChecked,...hasImportPlugin&&!hasImportXPlugin?require("eslint-plugin-import").flatConfigs.recommended:[],...hasImportXPlugin?[require("eslint-plugin-import-x").flatConfigs.typescript]:[]],files:[(0,paths_1.getFilesGlob)((0,paths_1.getTSExtensions)())],plugins:{...hasTsDocPlugin&&{tsdoc:require("eslint-plugin-tsdoc")}},languageOptions:{parserOptions:{tsconfigRootDir:e,projectService:{defaultProject:r,allowDefaultProject:["*.config.ts","*.config.mts","packages/*/*.config.ts","packages/*/*.config.mts"]}}},settings:{...hasImportPlugin&&!hasImportXPlugin&&{"import/extensions":paths_1.moduleExtensions,"import/resolver":{node:{extensions:paths_1.moduleExtensions},typescript:{project:r}},"import/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}}},...hasImportXPlugin&&{"import-x/extensions":paths_1.moduleExtensions,"import-x/external-module-folders":["node_modules","node_modules/@types"],"import-x/parsers":{"@typescript-eslint/parser":paths_1.moduleExtensions,...hasBabelParser&&{"@babel/eslint-parser":[]}},"import-x/resolver-next":[hasImportResolverTypescript?createTypeScriptImportResolver({project:r}):[],require("eslint-plugin-import-x").createNodeResolver({extensions:paths_1.moduleExtensions,tsconfig:{configFile:r}})]}},rules:{"no-useless-constructor":"off","no-void":["error",{allowAsStatement:!0}],"@typescript-eslint/explicit-member-accessibility":"off","@typescript-eslint/explicit-function-return-type":["warn",{allowExpressions:!0,allowTypedFunctionExpressions:!0,allowHigherOrderFunctions:!0,allowDirectConstAssertionInArrowFunctions:!0,allowConciseArrowFunctionExpressionsStartingWithVoid:!0}],"no-use-before-define":"off","@typescript-eslint/no-use-before-define":"error","no-shadow":"off","@typescript-eslint/no-shadow":["error",{ignoreTypeValueShadow:!0}],"no-empty-function":"off","@typescript-eslint/no-empty-function":["error",{allow:["private-constructors","protected-constructors","decoratedFunctions"]}],"@typescript-eslint/no-unused-expressions":["error",{allowShortCircuit:!0}],"@typescript-eslint/prefer-nullish-coalescing":["error",{ignorePrimitives:{string:!0},ignoreMixedLogicalExpressions:!0}],"@typescript-eslint/no-unnecessary-condition":["error",{checkTypePredicates:!0,allowConstantLoopConditions:"only-allowed-literals"}],"@typescript-eslint/no-confusing-void-expression":["error",{ignoreVoidReturningFunctions:!0}],...hasImportXPlugin&&{"import-x/named":"off"},...hasTsDocPlugin&&{"tsdoc/syntax":"warn"}}})})():[],...hasPrettierEslintPlugin?[require("eslint-plugin-prettier/recommended")]:[],{files:[(0,paths_1.getFilesGlob)([".d.ts"])],rules:{"max-classes-per-file":"off"}},{ignores:["node_modules","dist","build",".yarn"]}]}const config=create(process.cwd());module.exports=config,module.exports.create=create,module.exports.createTypeScriptImportResolver=createTypeScriptImportResolver,exports.default=config;
package/eslint/web.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const globals_1=__importDefault(require("globals")),compat_1=require("@eslint/compat"),paths_1=require("../paths"),getInstalledPackage_1=require("../getInstalledPackage"),hasReactPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react"),hasReactA11yPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsx-a11y"),hasReactHooksPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react-hooks"),hasWCPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-wc"),hasLitPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-lit"),hasMobxPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-mobx"),hasConfigAirbnb=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb"),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint"),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended"),filterAirbnbRules=e=>(0,compat_1.fixupConfigRules)({rules:require(require("eslint-config-airbnb").extends.find(t=>t.endsWith(`${e}.js`))).rules}),config=[{languageOptions:{globals:{...globals_1.default.browser}}},...[hasReactPlugin&&require("eslint-plugin-react/configs/recommended"),...hasReactPlugin&&hasConfigAirbnb?filterAirbnbRules("react"):[],hasReactPlugin&&require("eslint-plugin-react/configs/jsx-runtime"),hasReactPlugin&&{settings:{react:{version:"detect"}},rules:{"react/jsx-props-no-spreading":"off","react/function-component-definition":["error",{namedComponents:"function-declaration",unnamedComponents:["arrow-function","function-expression"]}]}},hasReactA11yPlugin&&require("eslint-plugin-jsx-a11y").flatConfigs.recommended,...hasReactA11yPlugin&&hasConfigAirbnb?filterAirbnbRules("react-a11y"):[],hasReactA11yPlugin&&{rules:{"jsx-a11y/anchor-is-valid":["error",{specialLink:["to"]}],"jsx-a11y/label-has-for":["error",{allowChildren:!0}]}}].filter(Boolean).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getSXExtensions)())]})),...hasReactPlugin&&hasTypescriptEslintPlugin?[{files:[(0,paths_1.getFilesGlob)((0,paths_1.getTSXExtensions)())],rules:{"react/jsx-filename-extension":["error",{extensions:(0,paths_1.getSXExtensions)()}],"react/require-default-props":"off"}}]:[],...hasReactHooksPlugin?[require("eslint-plugin-react-hooks").configs.flat["recommended-latest"],{rules:{"react-hooks/exhaustive-deps":"error"}}]:[],...[hasWCPlugin&&require("eslint-plugin-wc").configs["flat/best-practice"],hasWCPlugin&&{settings:{wc:{elementBaseClasses:["HTMLElement"]}}},hasLitPlugin&&require("eslint-plugin-lit").configs["flat/recommended"],hasLitPlugin&&{settings:{lit:{elementBaseClasses:["LitElement"]}}}].filter(Boolean).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getNonSXExtensions)())]})),...hasPrettierEslintPlugin?[require("eslint-plugin-prettier/recommended")]:[],...hasMobxPlugin?[require("eslint-plugin-mobx").flatConfigs.recommended]:[]];module.exports=config,exports.default=config;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const globals_1=__importDefault(require("globals")),compat_1=require("@eslint/compat"),paths_1=require("../paths"),getInstalledPackage_1=require("../getInstalledPackage"),hasReactPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react",{resolveFromCwd:!0}),hasReactA11yPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-jsx-a11y",{resolveFromCwd:!0}),hasReactHooksPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-react-hooks",{resolveFromCwd:!0}),hasWCPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-wc",{resolveFromCwd:!0}),hasLitPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-lit",{resolveFromCwd:!0}),hasMobxPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-mobx",{resolveFromCwd:!0}),hasConfigAirbnb=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-config-airbnb",{resolveFromCwd:!0}),hasTypescriptEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("typescript-eslint",{resolveFromCwd:!0}),hasPrettierEslintPlugin=!!(0,getInstalledPackage_1.getInstalledPackage)("eslint-plugin-prettier/recommended",{resolveFromCwd:!0}),filterAirbnbRules=e=>(0,compat_1.fixupConfigRules)({rules:require(require("eslint-config-airbnb").extends.find(t=>t.endsWith(`${e}.js`))).rules}),config=[...(hasReactPlugin?(()=>{const e=require("eslint-plugin-react");return[e.configs.flat.recommended,e.configs.flat["jsx-runtime"],{languageOptions:{...e.configs.flat.recommended.languageOptions,globals:{...globals_1.default.browser}}},...hasConfigAirbnb?filterAirbnbRules("react"):[],{settings:{react:{version:"19"}},rules:{"react/jsx-props-no-spreading":"off","react/function-component-definition":["error",{namedComponents:"function-declaration",unnamedComponents:["arrow-function","function-expression"]}]}}]})():[{languageOptions:{globals:{...globals_1.default.browser}}}]).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getSXExtensions)())]})),...(hasReactA11yPlugin?[require("eslint-plugin-jsx-a11y").flatConfigs.recommended,...hasConfigAirbnb?filterAirbnbRules("react-a11y"):[],{rules:{"jsx-a11y/anchor-is-valid":["error",{specialLink:["to"]}],"jsx-a11y/label-has-for":["error",{allowChildren:!0}]}}]:[]).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getSXExtensions)())]})),...hasReactPlugin&&hasTypescriptEslintPlugin?[{files:[(0,paths_1.getFilesGlob)((0,paths_1.getTSXExtensions)())],rules:{"react/require-default-props":"off"}}]:[],...hasReactHooksPlugin?[require("eslint-plugin-react-hooks").configs.flat["recommended-latest"],{rules:{"react-hooks/exhaustive-deps":"error"}}]:[],...[hasWCPlugin&&require("eslint-plugin-wc").configs["flat/best-practice"],hasWCPlugin&&{settings:{wc:{elementBaseClasses:["HTMLElement"]}}},hasLitPlugin&&require("eslint-plugin-lit").configs["flat/recommended"],hasLitPlugin&&{settings:{lit:{elementBaseClasses:["LitElement"]}}}].filter(Boolean).map(e=>({...e,files:[...e.files??[],(0,paths_1.getFilesGlob)((0,paths_1.getNonSXExtensions)())]})),...hasPrettierEslintPlugin?[require("eslint-plugin-prettier/recommended")]:[],...hasMobxPlugin?[require("eslint-plugin-mobx").flatConfigs.recommended]:[]];module.exports=config,exports.default=config;
@@ -1 +1,14 @@
1
- export declare function getInstalledPackage(name: string, requireFn?: typeof require): string | undefined;
1
+ export interface GetInstalledPackageOptions {
2
+ requireFn?: typeof require;
3
+ resolveFromCwd?: boolean;
4
+ }
5
+ /**
6
+ * Resolves a package from the linted project's perspective (process.cwd()).
7
+ *
8
+ * - If the project has its own node_modules: only accept packages from
9
+ * cwd/node_modules (reject hoisted deps from root that the project doesn't have).
10
+ * - If the project has no node_modules (flat workspace): accept resolution from root.
11
+ *
12
+ * @param resolveFromCwd - when true, resolve from cwd; when false (default), use plain require.
13
+ */
14
+ export declare function getInstalledPackage(name: string, options?: GetInstalledPackageOptions): string | undefined;
@@ -1 +1 @@
1
- "use strict";function getInstalledPackage(e,t=require){try{return t(e),e}catch{return}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInstalledPackage=getInstalledPackage;
1
+ "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getInstalledPackage=getInstalledPackage;const fs_1=__importDefault(require("fs")),path_1=__importDefault(require("path"));function getInstalledPackage(e,t={}){const{requireFn:r=require,resolveFromCwd:s=!1}=t;try{if(!s)return r(e),e;const t=r.resolve(e,{paths:[process.cwd()]}),a=path_1.default.resolve(process.cwd(),"node_modules");if(!fs_1.default.existsSync(a))return e;return!path_1.default.relative(a,t).startsWith("..")?e:void 0}catch{return}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@js-toolkit/configs",
3
- "version": "3.101.2",
3
+ "version": "3.101.3",
4
4
  "description": "Preconfigured configurations",
5
5
  "author": "VZH",
6
6
  "license": "MIT",