@lntvow/eslint-config 9.15.2 → 9.16.2
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/dist/index.cjs +1 -1
- package/dist/index.d.cts +2290 -1474
- package/dist/index.d.ts +2290 -1474
- package/dist/index.js +1 -1
- package/package.json +7 -5
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function b(e,r){return Object.fromEntries(Object.entries(e).map(([o,n])=>{for(let[a,s]of Object.entries(r))if(o.startsWith(`${a}/`))return[s+o.slice(a.length),n];return[o,n]}))}import Y from"@lntvow/eslint-plugin";async function I(){return[{name:"lntvow/custom",plugins:{lntvow:Y}}]}var u="?([cm])[jt]s?(x)",m="**/*.?([cm])[jt]s?(x)",Ee="**/*.?([cm])js",Be="**/*.?([cm])jsx",Ne="**/*.?([cm])ts",Re="**/*.?([cm])tsx",J="**/*.{c,le,sc}ss",qe="**/*.css",Ue="**/*.{p,post}css",Ae="**/*.less",Ve="**/*.scss",W="**/*.json",z="**/*.json5",Me="**/*.jsonc",L="**/*.md",$e="**/*.md/*.md",H="**/*.svelte",w="**/*.vue",Q="**/*.y?(a)ml",De="**/*.toml",Z="**/*.xml",ee="**/*.htm?(l)",Ke="**/*.astro",Xe="**/*.{g,graph}ql",Ye=`${L}/${m}`,P=[`**/__tests__/**/*.${u}`,`**/*.spec.${u}`,`**/*.test.${u}`,`**/*.bench.${u}`,`**/*.benchmark.${u}`],Je=[m,J,W,z,L,H,w,Q,Z,ee],j=["**/node_modules","**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb","**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/.vitepress/cache","**/.nuxt","**/.next","**/.svelte-kit","**/.vercel","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/vite.config.*.timestamp-*","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts"];async function k(){return[{files:[`scripts/${m}`],name:"lntvow/disables/scripts",rules:{"no-console":"off"}},{files:[`cli/${m}`,`cli.${u}`],name:"lntvow/disables/cli",rules:{"no-console":"off"}},{files:["**/*.d.?([cm])ts"],name:"lntvow/disables/dts",rules:{}},{files:["**/*.{test,spec}.([tj])s?(x)"],name:"lntvow/disables/test",rules:{"no-unused-expressions":"off"}},{files:["**/*.js","**/*.cjs"],name:"lntvow/disables/cjs",rules:{"ts/no-require-imports":"off"}}]}import ce from"fs";import y from"node:path";import re from"node:process";import oe from"node:path";import F,{promises as ir}from"node:fs";import{fileURLToPath as te}from"node:url";var G={directory:"isDirectory",file:"isFile"};function ne(e){if(!Object.hasOwnProperty.call(G,e))throw new Error(`Invalid type specified: ${e}`)}var se=(e,r)=>r[G[e]](),ie=e=>e instanceof URL?te(e):e;function h(e,{cwd:r=re.cwd(),type:o="file",allowSymlinks:n=!0}={}){ne(o),r=ie(r);let a=n?F.statSync:F.lstatSync;for(let s of e)try{let p=a(oe.resolve(r,s),{throwIfNoEntry:!1});if(!p)continue;if(se(o,p))return s}catch{}}import{fileURLToPath as ae}from"node:url";function O(e){return e instanceof URL?ae(e):e}var pe=Symbol("findUpStop");function fe(e,r={}){let o=y.resolve(O(r.cwd)??""),{root:n}=y.parse(o),a=y.resolve(o,O(r.stopAt)??n),s=r.limit??Number.POSITIVE_INFINITY,p=[e].flat(),c=i=>{if(typeof e!="function")return h(p,i);let t=e(i.cwd);return typeof t=="string"?h([t],i):t},l=[];for(;;){let i=c({...r,cwd:o});if(i===pe||(i&&l.push(y.resolve(o,i)),o===a||l.length>=s))break;o=y.dirname(o)}return l}function E(e,r={}){return fe(e,{...r,limit:1})[0]}import{castArray as le}from"@lntvow/utils";import ue from"parse-gitignore";async function B(e){let{name:r=".gitignore",root:o=!1,files:n=o?r:E(r)||[]}=e,a=le(n),s=[];for(let p of a)try{let c=ce.readFileSync(p,"utf8"),l=ue(c).globs();for(let i of l)i.type==="ignore"?s.push(...i.patterns):i.type==="unignore"&&s.push(...i.patterns.map(t=>`!${t}`))}catch{throw new Error(`Failed to read file: ${p}`)}return[{ignores:s}]}async function N(e=[]){return[{name:"lntvow/ignores",ignores:[...j,...e]}]}import me from"eslint-plugin-import-x";async function R(e){let{typescript:r}=e;return[{name:"lntvow/imports/rules",plugins:{import:me},rules:{"import/no-unresolved":"error","import/first":"error","import/newline-after-import":"error","import/no-duplicates":"error","import/order":"error"},settings:{"import-x/resolver":{alias:{map:[["@","./src"]],extensions:[".ts",".js",".jsx",".tsx",".d.ts"]},node:!0}}}]}import de from"@eslint/js";import T from"globals";async function q(e={}){let{overrides:r={}}=e;return[{name:"lntvow/javascript/rules",languageOptions:{ecmaVersion:2022,sourceType:"module",parserOptions:{ecmaVersion:2022,sourceType:"module",ecmaFeatures:{jsx:!0}},globals:{...T.browser,...T.es2021,...T.node,document:"readonly",navigator:"readonly",window:"readonly"}},linterOptions:{reportUnusedDisableDirectives:!0},rules:{...de.configs.recommended.rules,...ve,"no-unused-vars":"warn",...r}}]}var ve={"array-callback-return":"error","no-await-in-loop":"off","no-constructor-return":"error","no-duplicate-imports":"error","no-inner-declarations":"error","no-promise-executor-return":"error","no-self-compare":"error","no-template-curly-in-string":"error","no-unmodified-loop-condition":"error","no-unreachable-loop":"error","no-use-before-define":["error",{functions:!1,variables:!1}],"no-useless-assignment":"off","require-atomic-updates":"off","accessor-pairs":"error","arrow-body-style":"error","block-scoped-var":"error",camelcase:"warn","capitalized-comments":"off","class-methods-use-this":"error",complexity:"off","consistent-return":"off","consistent-this":"off",curly:["error","multi-line"],"default-case":"error","default-case-last":"error","default-param-last":"error","dot-notation":"error",eqeqeq:"error","func-name-matching":"error","func-names":"off","func-style":"off","grouped-accessor-pairs":"error","guard-for-in":"off","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","logical-assignment-operators":"error","max-classes-per-file":"off","max-depth":"off","max-lines":"off","max-lines-per-function":"off","max-nested-callbacks":"off","max-params":"off","max-statements":"off","new-cap":["error",{capIsNew:!1}],"no-alert":"error","no-array-constructor":"error","no-bitwise":"off","no-caller":"error","no-console":"warn","no-continue":"off","no-div-regex":"error","no-else-return":"error","no-empty-function":"error","no-eq-null":"error","no-eval":"error","no-extend-native":"error","no-extra-bind":"error","no-extra-label":"error","no-implicit-coercion":"error","no-implicit-globals":"error","no-implied-eval":"error","no-inline-comments":"off","no-invalid-this":"error","no-iterator":"error","no-label-var":"error","no-labels":"error","no-lone-blocks":"error","no-lonely-if":"error","no-loop-func":"error","no-magic-numbers":"off","no-multi-assign":"error","no-multi-str":"error","no-negated-condition":"off","no-nested-ternary":"off","no-new":"off","no-new-func":"error","no-new-wrappers":"error","no-object-constructor":"error","no-octal-escape":"error","no-param-reassign":"error","no-plusplus":"off","no-proto":"error","no-restricted-exports":"off","no-restricted-globals":["error",{message:"Use `globalThis` instead.",name:"global"},{message:"Use `globalThis` instead.",name:"self"}],"no-restricted-imports":"off","no-restricted-properties":["error",{message:"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",property:"__proto__"},{message:"Use `Object.defineProperty` instead.",property:"__defineGetter__"},{message:"Use `Object.defineProperty` instead.",property:"__defineSetter__"},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:"__lookupGetter__"},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:"__lookupSetter__"}],"no-restricted-syntax":"off","no-return-assign":"error","no-script-url":"error","no-sequences":"error","no-shadow":"error","no-ternary":"off","no-throw-literal":"off","no-undef-init":"error","no-undefined":"off","no-underscore-dangle":"off","no-unneeded-ternary":"error","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-useless-call":"error","no-useless-computed-key":"error","no-useless-concat":"error","no-useless-constructor":"error","no-useless-rename":"error","no-useless-return":"error","no-var":"error","no-void":"off","no-warning-comments":"off","object-shorthand":"error","one-var":"off","operator-assignment":"error","prefer-arrow-callback":"error","prefer-const":"error","prefer-destructuring":"off","prefer-exponentiation-operator":"error","prefer-named-capture-group":"off","prefer-numeric-literals":"off","prefer-object-has-own":"error","prefer-object-spread":"error","prefer-promise-reject-errors":"off","prefer-regex-literals":"off","prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error",radix:"off","require-await":"off","require-unicode-regexp":"off","sort-imports":"off","sort-keys":"off","sort-vars":"off",strict:"off","symbol-description":"error","vars-on-top":"error",yoda:"error","unicode-bom":"error"};import ye from"eslint-plugin-prettier";import ge from"eslint-config-prettier";async function U(){return[{name:"lntvow/prettier/rules",plugins:{prettier:ye},rules:{...ge.rules,"prettier/prettier":"warn"}}]}import{configs as A}from"eslint-plugin-regexp";async function V(e={}){let{overrides:r}=e,o=A["flat/recommended"].plugins.regexp,{rules:n}=A["flat/recommended"];return[{name:"lntvow/regexp/rules",plugins:{regexp:o},rules:{...n,...r}}]}import xe from"@stylistic/eslint-plugin";async function M(e={}){let{overrides:r={}}=e;return[{name:"lntvow/stylistic/rules",plugins:{style:xe},rules:{"style/spaced-comment":"error","style/padding-line-between-statements":["error",{blankLine:"always",prev:"*",next:"cjs-export"},{blankLine:"always",prev:"*",next:"export"},{blankLine:"always",prev:"*",next:"function"},{blankLine:"always",prev:"*",next:["interface","type"]},{blankLine:"never",prev:"function-overload",next:"function"}],"style/lines-around-comment":[2,{beforeBlockComment:!0,allowBlockStart:!0,allowObjectStart:!0,allowInterfaceStart:!0,allowTypeStart:!0,allowArrayStart:!0,allowClassStart:!0,allowModuleStart:!0}],...r}}]}import be from"eslint-plugin-vitest";async function $(e={}){let{overrides:r}=e;return[{name:"lntvow/test/setup",plugins:{test:be}},{name:"lntvow/test/rules",files:[...P],rules:{"lntvow/newline-before-describe-test":"error",...r}}]}import _ from"@typescript-eslint/eslint-plugin";import we from"@typescript-eslint/parser";async function D(e={}){let{componentExts:r=[],overrides:o={},parserOptions:n={}}=e,a=[m,...r.map(s=>`**/*.${s}`)];return[{name:"lntvow/typescript/setup",plugins:{ts:_}},{name:"lntvow/typescript/rules",languageOptions:{parser:we,parserOptions:{sourceType:"module"}},files:a,rules:{...b(_.configs["eslint-recommended"].overrides[0].rules,{"@typescript-eslint":"ts"}),...b(_.configs.strict.rules,{"@typescript-eslint":"ts"}),"ts/no-non-null-assertion":"off","ts/no-explicit-any":"off","ts/ban-ts-comment":"off","ts/no-unused-vars":"warn","no-use-before-define":"off","ts/no-use-before-define":["error",{functions:!1,variables:!1}],"no-unused-expressions":"off","ts/no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],...o}}]}import{getPackageInfoSync as he}from"local-pkg";import K from"@typescript-eslint/parser";import Oe from"vue-eslint-parser";import f from"eslint-plugin-vue";var Te={...f.configs["vue3-essential"].rules,...f.configs["vue3-strongly-recommended"].rules,...f.configs["vue3-recommended"].rules,"vue/block-lang":["error",{script:{lang:["ts","tsx"]}}],"vue/block-order":["error",{order:["script[setup]","template","style[scoped]"]}],"vue/component-api-style":"error","vue/no-deprecated-model-definition":"error"},_e={...f.configs.essential.rules,...f.configs["strongly-recommended"].rules,...f.configs.recommended.rules,"vue/block-lang":["error",{script:{allowNoLang:!0}}],"vue/block-order":["error",{order:[["script","template"],"style[scoped]"]}]};async function X(e={}){let{overrides:r={},vueVersion:o=Ce()}=e;return[{name:"lntvow/vue/setup",plugins:{vue:f}},{name:"lntvow/vue/rules",languageOptions:{parser:Oe,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:K,tsx:K},sourceType:"module"}},processor:f.processors[".vue"],files:[w],rules:{...f.configs.base.rules,...o===3?Te:_e,"vue/multi-word-component-names":"off","vue/attribute-hyphenation":"off","vue/html-indent":"off","vue/html-self-closing":["error",{html:{void:"always",normal:"always",component:"always"},svg:"always",math:"always"}],"vue/max-attributes-per-line":"off","vue/singleline-html-element-content-newline":"off","vue/v-on-event-hyphenation":"off","vue/block-tag-newline":"error","vue/component-name-in-template-casing":["error","PascalCase",{ignores:["/-/"]}],"vue/component-options-name-casing":"error","vue/custom-event-name-casing":"error","vue/define-emits-declaration":"error","vue/define-macros-order":"error","vue/define-props-declaration":"error","vue/enforce-style-attribute":"error","vue/html-button-has-type":"off","vue/html-comment-content-newline":"error","vue/html-comment-content-spacing":"error","vue/html-comment-indent":"off","vue/match-component-file-name":["error",{extensions:["jsx","tsx"],shouldMatchCase:!0}],"vue/match-component-import-name":"error","vue/max-lines-per-block":"off","vue/max-props":"off","vue/max-template-depth":"off","vue/new-line-between-multi-line-property":"off","vue/next-tick-style":"off","vue/no-bare-strings-in-template":"off","vue/no-boolean-default":"off","vue/no-deprecated-model-definition":"error","vue/no-duplicate-attr-inheritance":"error","vue/no-empty-component-block":"off","vue/no-multiple-objects-in-class":"error","vue/no-potential-component-option-typo":"error","vue/no-ref-object-reactivity-loss":"error","vue/no-required-prop-with-default":"error","vue/no-restricted-block":"off","vue/no-restricted-call-after-await":"off","vue/no-restricted-class":"off","vue/no-restricted-component-names":"off","vue/no-restricted-component-options":"off","vue/no-restricted-custom-event":"off","vue/no-restricted-html-elements":"off","vue/no-restricted-props":"off","vue/no-restricted-static-attribute":"off","vue/no-restricted-v-bind":"off","vue/no-root-v-if":"off","vue/no-setup-props-reactivity-loss":"error","vue/no-static-inline-styles":"error","vue/no-template-target-blank":"error","vue/no-this-in-before-route-enter":"error","vue/no-undef-components":"off","vue/no-undef-properties":"error","vue/no-unsupported-features":"off","vue/no-unused-emit-declarations":"error","vue/no-unused-properties":["warn",{groups:["props","data","computed","methods","setup"]}],"vue/no-unused-refs":"error","vue/no-use-v-else-with-v-for":"error","vue/no-useless-mustaches":"error","vue/no-useless-v-bind":"error","vue/no-v-text":"error","vue/padding-line-between-blocks":"error","vue/padding-line-between-tags":["error",[{blankLine:"never",prev:"*",next:"*"}]],"vue/padding-lines-in-component-definition":["error",{betweenOptions:"never"}],"vue/prefer-define-options":"error","vue/prefer-prop-type-boolean-first":"error","vue/prefer-separate-static-class":"error","vue/prefer-true-attribute-shorthand":"error","vue/require-default-export":"off","vue/require-direct-export":"error","vue/require-emit-validator":"off","vue/require-explicit-slots":"off","vue/require-expose":"error","vue/require-macro-variable-name":"error","vue/require-name-property":"off","vue/require-prop-comment":"off","vue/require-typed-object-prop":"error","vue/require-typed-ref":"error","vue/script-indent":"off","vue/sort-keys":"off","vue/static-class-names-order":"error","vue/v-for-delimiter-style":"error","vue/v-on-handler-style":"off","vue/valid-define-options":"error","vue/array-bracket-newline":"off","vue/array-bracket-spacing":"off","vue/array-element-newline":"off","vue/arrow-spacing":"off","vue/block-spacing":"off","vue/brace-style":"off","vue/camelcase":"error","vue/comma-dangle":"off","vue/comma-spacing":"off","vue/comma-style":"off","vue/dot-location":"off","vue/dot-notation":"error","vue/eqeqeq":"error","vue/func-call-spacing":"off","vue/key-spacing":"off","vue/keyword-spacing":"off","vue/max-len":"off","vue/multiline-ternary":"off","vue/no-console":"off","vue/no-constant-condition":"error","vue/no-extra-parens":"off","vue/no-empty-pattern":"error","vue/no-irregular-whitespace":"error","vue/no-loss-of-precision":"off","vue/no-restricted-syntax":"off","vue/no-sparse-arrays":"error","vue/no-useless-concat":"error","vue/object-curly-newline":"off","vue/object-curly-spacing":"off","vue/object-property-newline":"off","vue/object-shorthand":"error","vue/operator-linebreak":"off","vue/prefer-template":"error","vue/quote-props":"off","vue/space-in-parens":"off","vue/space-infix-ops":"off","vue/space-unary-ops":"off","vue/template-curly-spacing":"off",...r}}]}function Ce(){let e=he("vue",{paths:[process.cwd()]});return e&&e.version?Number(e.version[0]):3}import{FlatConfigComposer as Se}from"eslint-flat-config-utils";import{isBoolean as Ie}from"@lntvow/utils";import{isPackageExists as C}from"local-pkg";var Le=["name","files","ignores","languageOptions","linterOptions","processor","plugins","rules","settings"],Pe={"@stylistic":"style","@typescript-eslint":"typescript","import-x":"import",vitest:"test"};function je(e={},...r){if("files"in e)throw new Error('[@lntvow/eslint-config] The first argument should not contain the "files" property as the options are supposed to be global. Place it in the second or later config instead.');let{autoRenamePlugins:o=!0,componentExts:n=[],gitignore:a=!0,regexp:s=!0,typescript:p=C("typescript"),vue:c=["vue","nuxt","vitepress"].some(g=>C(g)),test:l=C("vitest"),stylistic:i=!0}=e,t=[];t.push(N(e.ignores),I(),q({...d(e,"javascript")}),R({typescript:!!p}),U()),a&&t.push(B({...d(e,"gitignore")})),c&&n.push("vue"),p&&t.push(D({...d(e,"typescript"),componentExts:n})),c&&t.push(X({...d(e,"vue")})),s&&t.push(V({...d(e,"regexp")})),l&&t.push($({...d(e,"test")})),i&&t.push(M({...d(e,"stylistic")})),t.push(k());let S=Le.reduce((g,x)=>(x in e&&(g[x]=e[x]),g),{});Object.keys(S).length&&t.push([S]);let v=new Se;return v=v.append(...t,...r),o&&(v=v.renamePlugins(Pe)),v}function d(e,r){return Ie(e[r])?{}:e[r]||{}}export{Je as GLOB_ALL_SRC,Ke as GLOB_ASTRO,qe as GLOB_CSS,j as GLOB_EXCLUDE,Xe as GLOB_GRAPHQL,ee as GLOB_HTML,Ee as GLOB_JS,W as GLOB_JSON,z as GLOB_JSON5,Me as GLOB_JSONC,Be as GLOB_JSX,Ae as GLOB_LESS,L as GLOB_MARKDOWN,Ye as GLOB_MARKDOWN_CODE,$e as GLOB_MARKDOWN_IN_MARKDOWN,Ue as GLOB_POSTCSS,Ve as GLOB_SCSS,m as GLOB_SRC,u as GLOB_SRC_EXT,J as GLOB_STYLE,H as GLOB_SVELTE,P as GLOB_TESTS,De as GLOB_TOML,Ne as GLOB_TS,Re as GLOB_TSX,w as GLOB_VUE,Z as GLOB_XML,Q as GLOB_YAML,I as custom,k as disables,Ce as getVueVersion,B as gitignore,N as ignores,R as imports,q as javascript,je as lntvow,ve as notInRecommendedRules,U as prettier,V as regexp,b as renameRules,M as stylistic,$ as test,D as typescript,X as vue};
|
|
1
|
+
function b(e,r){return Object.fromEntries(Object.entries(e).map(([o,n])=>{for(let[a,s]of Object.entries(r))if(o.startsWith(`${a}/`))return[s+o.slice(a.length),n];return[o,n]}))}import Y from"@lntvow/eslint-plugin";async function I(){return[{name:"lntvow/custom",plugins:{lntvow:Y}}]}var u="?([cm])[jt]s?(x)",m="**/*.?([cm])[jt]s?(x)",Ee="**/*.?([cm])js",Be="**/*.?([cm])jsx",Ne="**/*.?([cm])ts",Re="**/*.?([cm])tsx",J="**/*.{c,le,sc}ss",qe="**/*.css",Ue="**/*.{p,post}css",Ae="**/*.less",Ve="**/*.scss",W="**/*.json",z="**/*.json5",Me="**/*.jsonc",L="**/*.md",$e="**/*.md/*.md",H="**/*.svelte",h="**/*.vue",Q="**/*.y?(a)ml",De="**/*.toml",Z="**/*.xml",ee="**/*.htm?(l)",Ke="**/*.astro",Xe="**/*.{g,graph}ql",Ye=`${L}/${m}`,P=[`**/__tests__/**/*.${u}`,`**/*.spec.${u}`,`**/*.test.${u}`,`**/*.bench.${u}`,`**/*.benchmark.${u}`],Je=[m,J,W,z,L,H,h,Q,Z,ee],j=["**/node_modules","**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb","**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/.vitepress/cache","**/.nuxt","**/.next","**/.svelte-kit","**/.vercel","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/vite.config.*.timestamp-*","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts"];async function k(){return[{files:[`scripts/${m}`],name:"lntvow/disables/scripts",rules:{"no-console":"off"}},{files:[`cli/${m}`,`cli.${u}`],name:"lntvow/disables/cli",rules:{"no-console":"off"}},{files:["**/*.d.?([cm])ts"],name:"lntvow/disables/dts",rules:{}},{files:["**/*.{test,spec}.([tj])s?(x)"],name:"lntvow/disables/test",rules:{"no-unused-expressions":"off"}},{files:["**/*.js","**/*.cjs"],name:"lntvow/disables/cjs",rules:{"ts/no-require-imports":"off"}}]}import ce from"fs";import y from"node:path";import re from"node:process";import oe from"node:path";import F,{promises as ir}from"node:fs";import{fileURLToPath as te}from"node:url";var G={directory:"isDirectory",file:"isFile"};function ne(e){if(!Object.hasOwnProperty.call(G,e))throw new Error(`Invalid type specified: ${e}`)}var se=(e,r)=>r[G[e]](),ie=e=>e instanceof URL?te(e):e;function w(e,{cwd:r=re.cwd(),type:o="file",allowSymlinks:n=!0}={}){ne(o),r=ie(r);let a=n?F.statSync:F.lstatSync;for(let s of e)try{let p=a(oe.resolve(r,s),{throwIfNoEntry:!1});if(!p)continue;if(se(o,p))return s}catch{}}import{fileURLToPath as ae}from"node:url";function O(e){return e instanceof URL?ae(e):e}var pe=Symbol("findUpStop");function fe(e,r={}){let o=y.resolve(O(r.cwd)??""),{root:n}=y.parse(o),a=y.resolve(o,O(r.stopAt)??n),s=r.limit??Number.POSITIVE_INFINITY,p=[e].flat(),c=i=>{if(typeof e!="function")return w(p,i);let t=e(i.cwd);return typeof t=="string"?w([t],i):t},l=[];for(;;){let i=c({...r,cwd:o});if(i===pe||(i&&l.push(y.resolve(o,i)),o===a||l.length>=s))break;o=y.dirname(o)}return l}function E(e,r={}){return fe(e,{...r,limit:1})[0]}import{castArray as le}from"@lntvow/utils";import ue from"parse-gitignore";async function B(e){let{name:r=".gitignore",root:o=!1,files:n=o?r:E(r)||[]}=e,a=le(n),s=[];for(let p of a)try{let c=ce.readFileSync(p,"utf8"),l=ue(c).globs();for(let i of l)i.type==="ignore"?s.push(...i.patterns):i.type==="unignore"&&s.push(...i.patterns.map(t=>`!${t}`))}catch{throw new Error(`Failed to read file: ${p}`)}return[{ignores:s}]}async function N(e=[]){return[{name:"lntvow/ignores",ignores:[...j,...e]}]}import me from"eslint-plugin-import-x";async function R(e){let{typescript:r}=e;return[{name:"lntvow/imports/rules",plugins:{import:me},rules:{"import/no-unresolved":"error","import/first":"error","import/newline-after-import":"error","import/no-duplicates":"error","import/order":"error"},settings:{"import-x/resolver":{alias:{map:[["@","./src"]],extensions:[".ts",".js",".jsx",".tsx",".d.ts"]},node:!0}}}]}import de from"@eslint/js";import T from"globals";async function q(e={}){let{overrides:r={}}=e;return[{name:"lntvow/javascript/rules",languageOptions:{ecmaVersion:2022,sourceType:"module",parserOptions:{ecmaVersion:2022,sourceType:"module",ecmaFeatures:{jsx:!0}},globals:{...T.browser,...T.es2021,...T.node}},linterOptions:{reportUnusedDisableDirectives:!0},rules:{...de.configs.recommended.rules,...ve,"no-unused-vars":"warn",...r}}]}var ve={"array-callback-return":"error","no-await-in-loop":"off","no-constructor-return":"error","no-duplicate-imports":"error","no-inner-declarations":"error","no-promise-executor-return":"error","no-self-compare":"error","no-template-curly-in-string":"error","no-unmodified-loop-condition":"error","no-unreachable-loop":"error","no-use-before-define":["error",{functions:!1,variables:!1}],"no-useless-assignment":"off","require-atomic-updates":"off","accessor-pairs":"error","arrow-body-style":"error","block-scoped-var":"error",camelcase:"warn","capitalized-comments":"off","class-methods-use-this":"error",complexity:"off","consistent-return":"off","consistent-this":"off",curly:["error","multi-line"],"default-case":"error","default-case-last":"error","default-param-last":"error","dot-notation":"error",eqeqeq:"error","func-name-matching":"error","func-names":"off","func-style":"off","grouped-accessor-pairs":"error","guard-for-in":"off","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","logical-assignment-operators":"error","max-classes-per-file":"off","max-depth":"off","max-lines":"off","max-lines-per-function":"off","max-nested-callbacks":"off","max-params":"off","max-statements":"off","new-cap":["error",{capIsNew:!1}],"no-alert":"error","no-array-constructor":"error","no-bitwise":"off","no-caller":"error","no-console":"warn","no-continue":"off","no-div-regex":"error","no-else-return":"error","no-empty-function":"error","no-eq-null":"error","no-eval":"error","no-extend-native":"error","no-extra-bind":"error","no-extra-label":"error","no-implicit-coercion":"error","no-implicit-globals":"error","no-implied-eval":"error","no-inline-comments":"off","no-invalid-this":"error","no-iterator":"error","no-label-var":"error","no-labels":"error","no-lone-blocks":"error","no-lonely-if":"error","no-loop-func":"error","no-magic-numbers":"off","no-multi-assign":"error","no-multi-str":"error","no-negated-condition":"off","no-nested-ternary":"off","no-new":"off","no-new-func":"error","no-new-wrappers":"error","no-object-constructor":"error","no-octal-escape":"error","no-param-reassign":"error","no-plusplus":"off","no-proto":"error","no-restricted-exports":"off","no-restricted-globals":["error",{message:"Use `globalThis` instead.",name:"global"},{message:"Use `globalThis` instead.",name:"self"}],"no-restricted-imports":"off","no-restricted-properties":["error",{message:"Use `Object.getPrototypeOf` or `Object.setPrototypeOf` instead.",property:"__proto__"},{message:"Use `Object.defineProperty` instead.",property:"__defineGetter__"},{message:"Use `Object.defineProperty` instead.",property:"__defineSetter__"},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:"__lookupGetter__"},{message:"Use `Object.getOwnPropertyDescriptor` instead.",property:"__lookupSetter__"}],"no-restricted-syntax":"off","no-return-assign":"error","no-script-url":"error","no-sequences":"error","no-shadow":"error","no-ternary":"off","no-throw-literal":"off","no-undef-init":"error","no-undefined":"off","no-underscore-dangle":"off","no-unneeded-ternary":"error","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-useless-call":"error","no-useless-computed-key":"error","no-useless-concat":"error","no-useless-constructor":"error","no-useless-rename":"error","no-useless-return":"error","no-var":"error","no-void":"off","no-warning-comments":"off","object-shorthand":"error","one-var":"off","operator-assignment":"error","prefer-arrow-callback":"error","prefer-const":"error","prefer-destructuring":"off","prefer-exponentiation-operator":"error","prefer-named-capture-group":"off","prefer-numeric-literals":"off","prefer-object-has-own":"error","prefer-object-spread":"error","prefer-promise-reject-errors":"off","prefer-regex-literals":"off","prefer-rest-params":"error","prefer-spread":"error","prefer-template":"error",radix:"off","require-await":"off","require-unicode-regexp":"off","sort-imports":"off","sort-keys":"off","sort-vars":"off",strict:"off","symbol-description":"error","vars-on-top":"error",yoda:"error","unicode-bom":"error"};import ye from"eslint-plugin-prettier";import ge from"eslint-config-prettier";async function U(){return[{name:"lntvow/prettier/rules",plugins:{prettier:ye},rules:{...ge.rules,"prettier/prettier":"warn"}}]}import{configs as A}from"eslint-plugin-regexp";async function V(e={}){let{overrides:r}=e,o=A["flat/recommended"].plugins.regexp,{rules:n}=A["flat/recommended"];return[{name:"lntvow/regexp/rules",plugins:{regexp:o},rules:{...n,...r}}]}import xe from"@stylistic/eslint-plugin";async function M(e={}){let{overrides:r={}}=e;return[{name:"lntvow/stylistic/rules",plugins:{style:xe},rules:{"style/spaced-comment":"error","style/padding-line-between-statements":["error",{blankLine:"always",prev:"*",next:"cjs-export"},{blankLine:"always",prev:"*",next:"export"},{blankLine:"always",prev:"*",next:"function"},{blankLine:"always",prev:"*",next:["interface","type"]},{blankLine:"never",prev:"function-overload",next:"function"}],"style/lines-around-comment":[2,{beforeBlockComment:!0,allowBlockStart:!0,allowObjectStart:!0,allowInterfaceStart:!0,allowTypeStart:!0,allowArrayStart:!0,allowClassStart:!0,allowModuleStart:!0}],...r}}]}import be from"eslint-plugin-vitest";async function $(e={}){let{overrides:r}=e;return[{name:"lntvow/test/setup",plugins:{test:be}},{name:"lntvow/test/rules",files:[...P],rules:{"lntvow/newline-before-describe-test":"error",...r}}]}import _ from"@typescript-eslint/eslint-plugin";import he from"@typescript-eslint/parser";async function D(e={}){let{componentExts:r=[],overrides:o={},parserOptions:n={}}=e,a=[m,...r.map(s=>`**/*.${s}`)];return[{name:"lntvow/typescript/setup",plugins:{ts:_}},{name:"lntvow/typescript/rules",languageOptions:{parser:he,parserOptions:{sourceType:"module"}},files:a,rules:{...b(_.configs["eslint-recommended"].overrides[0].rules,{"@typescript-eslint":"ts"}),...b(_.configs.strict.rules,{"@typescript-eslint":"ts"}),"ts/no-non-null-assertion":"off","ts/no-explicit-any":"off","ts/ban-ts-comment":"off","ts/no-unused-vars":"warn","no-use-before-define":"off","ts/no-use-before-define":["error",{functions:!1,variables:!1}],"no-unused-expressions":"off","ts/no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],...o}}]}import{getPackageInfoSync as we}from"local-pkg";import K from"@typescript-eslint/parser";import Oe from"vue-eslint-parser";import f from"eslint-plugin-vue";var Te={...f.configs["vue3-essential"].rules,...f.configs["vue3-strongly-recommended"].rules,...f.configs["vue3-recommended"].rules,"vue/block-lang":["error",{script:{lang:["ts","tsx"]}}],"vue/block-order":["error",{order:["script[setup]","template","style[scoped]"]}],"vue/component-api-style":"error","vue/no-deprecated-model-definition":"error"},_e={...f.configs.essential.rules,...f.configs["strongly-recommended"].rules,...f.configs.recommended.rules,"vue/block-lang":["error",{script:{allowNoLang:!0}}],"vue/block-order":["error",{order:[["script","template"],"style[scoped]"]}]};async function X(e={}){let{overrides:r={},vueVersion:o=Ce()}=e;return[{name:"lntvow/vue/setup",plugins:{vue:f}},{name:"lntvow/vue/rules",languageOptions:{parser:Oe,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:K,tsx:K},sourceType:"module"}},processor:f.processors[".vue"],files:[h],rules:{...f.configs.base.rules,...o===3?Te:_e,"vue/multi-word-component-names":"off","vue/attribute-hyphenation":"off","vue/html-indent":"off","vue/html-self-closing":["error",{html:{void:"always",normal:"always",component:"always"},svg:"always",math:"always"}],"vue/max-attributes-per-line":"off","vue/singleline-html-element-content-newline":"off","vue/v-on-event-hyphenation":"off","vue/block-tag-newline":"error","vue/component-name-in-template-casing":["error","PascalCase",{ignores:["/-/"]}],"vue/component-options-name-casing":"error","vue/custom-event-name-casing":"error","vue/define-emits-declaration":"error","vue/define-macros-order":"error","vue/define-props-declaration":"error","vue/enforce-style-attribute":"error","vue/html-button-has-type":"off","vue/html-comment-content-newline":"error","vue/html-comment-content-spacing":"error","vue/html-comment-indent":"off","vue/match-component-file-name":["error",{extensions:["jsx","tsx"],shouldMatchCase:!0}],"vue/match-component-import-name":"error","vue/max-lines-per-block":"off","vue/max-props":"off","vue/max-template-depth":"off","vue/new-line-between-multi-line-property":"off","vue/next-tick-style":"off","vue/no-bare-strings-in-template":"off","vue/no-boolean-default":"off","vue/no-deprecated-model-definition":"error","vue/no-duplicate-attr-inheritance":"error","vue/no-empty-component-block":"off","vue/no-multiple-objects-in-class":"error","vue/no-potential-component-option-typo":"error","vue/no-ref-object-reactivity-loss":"error","vue/no-required-prop-with-default":"error","vue/no-restricted-block":"off","vue/no-restricted-call-after-await":"off","vue/no-restricted-class":"off","vue/no-restricted-component-names":"off","vue/no-restricted-component-options":"off","vue/no-restricted-custom-event":"off","vue/no-restricted-html-elements":"off","vue/no-restricted-props":"off","vue/no-restricted-static-attribute":"off","vue/no-restricted-v-bind":"off","vue/no-root-v-if":"off","vue/no-setup-props-reactivity-loss":"error","vue/no-static-inline-styles":"error","vue/no-template-target-blank":"error","vue/no-this-in-before-route-enter":"error","vue/no-undef-components":"off","vue/no-undef-properties":"error","vue/no-unsupported-features":"off","vue/no-unused-emit-declarations":"error","vue/no-unused-properties":["warn",{groups:["props","data","computed","methods","setup"]}],"vue/no-unused-refs":"error","vue/no-use-v-else-with-v-for":"error","vue/no-useless-mustaches":"error","vue/no-useless-v-bind":"error","vue/no-v-text":"error","vue/padding-line-between-blocks":"error","vue/padding-line-between-tags":["error",[{blankLine:"never",prev:"*",next:"*"}]],"vue/padding-lines-in-component-definition":["error",{betweenOptions:"never"}],"vue/prefer-define-options":"error","vue/prefer-prop-type-boolean-first":"error","vue/prefer-separate-static-class":"error","vue/prefer-true-attribute-shorthand":"error","vue/require-default-export":"off","vue/require-direct-export":"error","vue/require-emit-validator":"off","vue/require-explicit-slots":"off","vue/require-expose":"error","vue/require-macro-variable-name":"error","vue/require-name-property":"off","vue/require-prop-comment":"off","vue/require-typed-object-prop":"error","vue/require-typed-ref":"error","vue/script-indent":"off","vue/sort-keys":"off","vue/static-class-names-order":"error","vue/v-for-delimiter-style":"error","vue/v-on-handler-style":"off","vue/valid-define-options":"error","vue/array-bracket-newline":"off","vue/array-bracket-spacing":"off","vue/array-element-newline":"off","vue/arrow-spacing":"off","vue/block-spacing":"off","vue/brace-style":"off","vue/camelcase":"error","vue/comma-dangle":"off","vue/comma-spacing":"off","vue/comma-style":"off","vue/dot-location":"off","vue/dot-notation":"error","vue/eqeqeq":"error","vue/func-call-spacing":"off","vue/key-spacing":"off","vue/keyword-spacing":"off","vue/max-len":"off","vue/multiline-ternary":"off","vue/no-console":"off","vue/no-constant-condition":"error","vue/no-extra-parens":"off","vue/no-empty-pattern":"error","vue/no-irregular-whitespace":"error","vue/no-loss-of-precision":"off","vue/no-restricted-syntax":"off","vue/no-sparse-arrays":"error","vue/no-useless-concat":"error","vue/object-curly-newline":"off","vue/object-curly-spacing":"off","vue/object-property-newline":"off","vue/object-shorthand":"error","vue/operator-linebreak":"off","vue/prefer-template":"error","vue/quote-props":"off","vue/space-in-parens":"off","vue/space-infix-ops":"off","vue/space-unary-ops":"off","vue/template-curly-spacing":"off",...r}}]}function Ce(){let e=we("vue",{paths:[process.cwd()]});return e&&e.version?Number(e.version[0]):3}import{FlatConfigComposer as Se}from"eslint-flat-config-utils";import{isBoolean as Ie}from"@lntvow/utils";import{isPackageExists as C}from"local-pkg";var Le=["name","files","ignores","languageOptions","linterOptions","processor","plugins","rules","settings"],Pe={"@stylistic":"style","@typescript-eslint":"typescript","import-x":"import",vitest:"test"};function je(e={},...r){if("files"in e)throw new Error('[@lntvow/eslint-config] The first argument should not contain the "files" property as the options are supposed to be global. Place it in the second or later config instead.');let{autoRenamePlugins:o=!0,componentExts:n=[],gitignore:a=!0,regexp:s=!0,typescript:p=C("typescript"),vue:c=["vue","nuxt","vitepress"].some(g=>C(g)),test:l=C("vitest"),stylistic:i=!0}=e,t=[];t.push(N(e.ignores),I(),q({...d(e,"javascript")}),R({typescript:!!p}),U()),a&&t.push(B({...d(e,"gitignore")})),c&&n.push("vue"),p&&t.push(D({...d(e,"typescript"),componentExts:n})),c&&t.push(X({...d(e,"vue")})),s&&t.push(V({...d(e,"regexp")})),l&&t.push($({...d(e,"test")})),i&&t.push(M({...d(e,"stylistic")})),t.push(k());let S=Le.reduce((g,x)=>(x in e&&(g[x]=e[x]),g),{});Object.keys(S).length&&t.push([S]);let v=new Se;return v=v.append(...t,...r),o&&(v=v.renamePlugins(Pe)),v}function d(e,r){return Ie(e[r])?{}:e[r]||{}}export{Je as GLOB_ALL_SRC,Ke as GLOB_ASTRO,qe as GLOB_CSS,j as GLOB_EXCLUDE,Xe as GLOB_GRAPHQL,ee as GLOB_HTML,Ee as GLOB_JS,W as GLOB_JSON,z as GLOB_JSON5,Me as GLOB_JSONC,Be as GLOB_JSX,Ae as GLOB_LESS,L as GLOB_MARKDOWN,Ye as GLOB_MARKDOWN_CODE,$e as GLOB_MARKDOWN_IN_MARKDOWN,Ue as GLOB_POSTCSS,Ve as GLOB_SCSS,m as GLOB_SRC,u as GLOB_SRC_EXT,J as GLOB_STYLE,H as GLOB_SVELTE,P as GLOB_TESTS,De as GLOB_TOML,Ne as GLOB_TS,Re as GLOB_TSX,h as GLOB_VUE,Z as GLOB_XML,Q as GLOB_YAML,I as custom,k as disables,Ce as getVueVersion,B as gitignore,N as ignores,R as imports,q as javascript,je as lntvow,ve as notInRecommendedRules,U as prettier,V as regexp,b as renameRules,M as stylistic,$ as test,D as typescript,X as vue};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lntvow/eslint-config",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.16.2",
|
|
4
4
|
"description": "eslint-config",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -31,12 +31,12 @@
|
|
|
31
31
|
"prettier": ">=3.0.0"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@eslint/js": "^9.
|
|
35
|
-
"@lntvow/utils": "^3.2.
|
|
34
|
+
"@eslint/js": "^9.17.0",
|
|
35
|
+
"@lntvow/utils": "^3.2.2",
|
|
36
36
|
"@stylistic/eslint-plugin": "^2.10.1",
|
|
37
37
|
"@typescript-eslint/eslint-plugin": "^8.13.0",
|
|
38
38
|
"@typescript-eslint/parser": "^8.13.0",
|
|
39
|
-
"eslint": "^9.
|
|
39
|
+
"eslint": "^9.17.0",
|
|
40
40
|
"eslint-config-prettier": "^9.1.0",
|
|
41
41
|
"eslint-flat-config-utils": "^0.4.0",
|
|
42
42
|
"eslint-import-resolver-alias": "^1.1.2",
|
|
@@ -50,11 +50,13 @@
|
|
|
50
50
|
"parse-gitignore": "^2.0.0",
|
|
51
51
|
"typescript": "~5.6.3",
|
|
52
52
|
"vue-eslint-parser": "^9.4.3",
|
|
53
|
-
"@lntvow/eslint-plugin": "^9.
|
|
53
|
+
"@lntvow/eslint-plugin": "^9.16.2"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"dev": "pnpm build --format esm --watch",
|
|
57
57
|
"build": "pnpm -r build && tsup",
|
|
58
|
+
"postinstall": "npx simple-git-hooks",
|
|
59
|
+
"type-check": "vue-tsc --noEmit",
|
|
58
60
|
"commit": "git add . && git-cz",
|
|
59
61
|
"rimraf": "rimraf ./node_modules/",
|
|
60
62
|
"release": "git add . && bumpp package.json packages/*/package.json --all --commit --no-tag --push"
|