@lntvow/eslint-config 9.9.4 → 9.10.0

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.js CHANGED
@@ -1 +1 @@
1
- function b(e,t){return Object.fromEntries(Object.entries(e).map(([r,n])=>{for(let[a,s]of Object.entries(t))if(r.startsWith(`${a}/`))return[s+r.slice(a.length),n];return[r,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)",Ge="**/*.?([cm])js",Ee="**/*.?([cm])jsx",Be="**/*.?([cm])ts",Ne="**/*.?([cm])tsx",J="**/*.{c,le,sc}ss",Re="**/*.css",qe="**/*.{p,post}css",Ue="**/*.less",Ae="**/*.scss",W="**/*.json",z="**/*.json5",Ve="**/*.jsonc",L="**/*.md",Me="**/*.md/*.md",H="**/*.svelte",h="**/*.vue",Q="**/*.y?(a)ml",$e="**/*.toml",Z="**/*.xml",ee="**/*.htm?(l)",De="**/*.astro",Ke="**/*.{g,graph}ql",Xe=`${L}/${m}`,P=[`**/__tests__/**/*.${u}`,`**/*.spec.${u}`,`**/*.test.${u}`,`**/*.bench.${u}`,`**/*.benchmark.${u}`],Ye=[m,J,W,z,L,H,h,Q,Z,ee],F=["**/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 j(){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 te from"node:process";import re from"node:path";import k,{promises as st}from"node:fs";import{fileURLToPath as oe}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,t)=>t[G[e]](),ie=e=>e instanceof URL?oe(e):e;function w(e,{cwd:t=te.cwd(),type:r="file",allowSymlinks:n=!0}={}){ne(r),t=ie(t);let a=n?k.statSync:k.lstatSync;for(let s of e)try{let p=a(re.resolve(t,s),{throwIfNoEntry:!1});if(!p)continue;if(se(r,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,t={}){let r=y.resolve(O(t.cwd)??""),{root:n}=y.parse(r),a=y.resolve(r,O(t.stopAt)??n),s=t.limit??Number.POSITIVE_INFINITY,p=[e].flat(),c=i=>{if(typeof e!="function")return w(p,i);let o=e(i.cwd);return typeof o=="string"?w([o],i):o},l=[];for(;;){let i=c({...t,cwd:r});if(i===pe||(i&&l.push(y.resolve(r,i)),r===a||l.length>=s))break;r=y.dirname(r)}return l}function E(e,t={}){return fe(e,{...t,limit:1})[0]}import{castArray as le}from"@lntvow/utils";import ue from"parse-gitignore";async function B(e){let{name:t=".gitignore",root:r=!1,files:n=r?t:E(t)||[]}=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(o=>`!${o}`))}catch{throw new Error(`Failed to read file: ${p}`)}return[{ignores:s}]}async function N(e=[]){return[{name:"lntvow/ignores",ignores:[...F,...e]}]}import me from"eslint-plugin-import-x";async function R(e){let{typescript:t}=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:t={}}=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.all.rules,"no-unused-vars":"warn","no-use-before-define":["error",{functions:!1,variables:!1}],"no-useless-assignment":"off","require-atomic-updates":"off",camelcase:"warn","capitalized-comments":"off","class-methods-use-this":"off",complexity:"off","consistent-return":"off",curly:["error","multi-line"],"func-names":"off","func-style":"off","guard-for-in":"off","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","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-bitwise":"off","no-case-declarations":"off","no-console":"warn","no-continue":"off","no-empty":["error",{allowEmptyCatch:!0}],"no-implicit-coercion":"off","no-implicit-globals":"off","no-magic-numbers":"off","no-nested-ternary":"off","no-new":"off","no-param-reassign":"off","no-plusplus":"off","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-shadow":"off","no-ternary":"off","no-throw-literal":"off","no-undefined":"off","no-underscore-dangle":"off","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-void":"off","no-warning-comments":"off","one-var":"off","prefer-destructuring":"off","prefer-exponentiation-operator":"off","prefer-promise-reject-errors":"off",radix:"off","require-await":"off","require-unicode-regexp":"off","sort-imports":"off","sort-keys":"off","sort-vars":"off",strict:"off",...t}}]}import ve from"eslint-plugin-prettier";import ye from"eslint-config-prettier";async function U(){return[{name:"lntvow/prettier/rules",plugins:{prettier:ve},rules:{...ye.rules,"prettier/prettier":"warn"}}]}import{configs as A}from"eslint-plugin-regexp";async function V(e={}){let{overrides:t}=e,r=A["flat/recommended"].plugins.regexp,{rules:n}=A["flat/recommended"];return[{name:"lntvow/regexp/rules",plugins:{regexp:r},rules:{...n,...t}}]}import ge from"@stylistic/eslint-plugin";async function M(e={}){let{overrides:t={}}=e;return[{name:"lntvow/stylistic/rules",plugins:{style:ge},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}],...t}}]}import xe from"eslint-plugin-vitest";async function $(e={}){let{overrides:t}=e;return[{name:"lntvow/test/setup",plugins:{test:xe}},{name:"lntvow/test/rules",files:[...P],rules:{"lntvow/newline-before-describe-test":"error",...t}}]}import _ from"@typescript-eslint/eslint-plugin";import be from"@typescript-eslint/parser";async function D(e={}){let{componentExts:t=[],overrides:r={},parserOptions:n={}}=e,a=[m,...t.map(s=>`**/*.${s}`)];return[{name:"lntvow/typescript/setup",plugins:{ts:_}},{name:"lntvow/typescript/rules",languageOptions:{parser:be,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}],...r}}]}import{getPackageInfoSync as he}from"local-pkg";import K from"@typescript-eslint/parser";import we from"vue-eslint-parser";import f from"eslint-plugin-vue";var Oe={...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"},Te={...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:t={},vueVersion:r=_e()}=e;return[{name:"lntvow/vue/setup",plugins:{vue:f}},{name:"lntvow/vue/rules",languageOptions:{parser:we,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:K,tsx:K},sourceType:"module"}},processor:f.processors[".vue"],files:[h],rules:{...f.configs.base.rules,...r===3?Oe:Te,"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",...t}}]}function _e(){let e=he("vue",{paths:[process.cwd()]});return e&&e.version?+e.version[0]:3}import{FlatConfigComposer as Ce}from"eslint-flat-config-utils";import{isBoolean as Se}from"@lntvow/utils";import{isPackageExists as C}from"local-pkg";var Ie=["name","files","ignores","languageOptions","linterOptions","processor","plugins","rules","settings"],Le={"@stylistic":"style","@typescript-eslint":"typescript","import-x":"import",vitest:"test"};function Pe(e={},...t){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:r=!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,o=[];o.push(N(e.ignores),I(),q({...d(e,"javascript")}),R({typescript:!!p})),a&&o.push(B({...d(e,"gitignore")})),c&&n.push("vue"),p&&o.push(D({...d(e,"typescript"),componentExts:n})),c&&o.push(X({...d(e,"vue")})),s&&o.push(V({...d(e,"regexp")})),l&&o.push($({...d(e,"test")})),i&&o.push(M({...d(e,"stylistic")})),o.push(j(),U());let S=Ie.reduce((g,x)=>(x in e&&(g[x]=e[x]),g),{});Object.keys(S).length&&o.push([S]);let v=new Ce;return v=v.append(...o,...t),r&&(v=v.renamePlugins(Le)),v}function d(e,t){return Se(e[t])?{}:e[t]||{}}export{Ye as GLOB_ALL_SRC,De as GLOB_ASTRO,Re as GLOB_CSS,F as GLOB_EXCLUDE,Ke as GLOB_GRAPHQL,ee as GLOB_HTML,Ge as GLOB_JS,W as GLOB_JSON,z as GLOB_JSON5,Ve as GLOB_JSONC,Ee as GLOB_JSX,Ue as GLOB_LESS,L as GLOB_MARKDOWN,Xe as GLOB_MARKDOWN_CODE,Me as GLOB_MARKDOWN_IN_MARKDOWN,qe as GLOB_POSTCSS,Ae as GLOB_SCSS,m as GLOB_SRC,u as GLOB_SRC_EXT,J as GLOB_STYLE,H as GLOB_SVELTE,P as GLOB_TESTS,$e as GLOB_TOML,Be as GLOB_TS,Ne as GLOB_TSX,h as GLOB_VUE,Z as GLOB_XML,Q as GLOB_YAML,I as custom,j as disables,_e as getVueVersion,B as gitignore,N as ignores,R as imports,q as javascript,Pe as lntvow,U as prettier,V as regexp,b as renameRules,M as stylistic,$ as test,D as typescript,X as vue};
1
+ "use strict";var Ce=Object.create;var b=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,Pe=Object.prototype.hasOwnProperty;var Fe=(e,t)=>{for(var r in t)b(e,r,{get:t[r],enumerable:!0})},Y=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ie(t))!Pe.call(e,n)&&n!==r&&b(e,n,{get:()=>t[n],enumerable:!(s=Se(t,n))||s.enumerable});return e};var o=(e,t,r)=>(r=e!=null?Ce(Le(e)):{},Y(t||!e||!e.__esModule?b(r,"default",{value:e,enumerable:!0}):r,e)),je=e=>Y(b({},"__esModule",{value:!0}),e);var rt={};Fe(rt,{GLOB_ALL_SRC:()=>Xe,GLOB_ASTRO:()=>$e,GLOB_CSS:()=>Ne,GLOB_EXCLUDE:()=>F,GLOB_GRAPHQL:()=>De,GLOB_HTML:()=>te,GLOB_JS:()=>ke,GLOB_JSON:()=>z,GLOB_JSON5:()=>H,GLOB_JSONC:()=>Ae,GLOB_JSX:()=>Ge,GLOB_LESS:()=>qe,GLOB_MARKDOWN:()=>L,GLOB_MARKDOWN_CODE:()=>Ke,GLOB_MARKDOWN_IN_MARKDOWN:()=>Ve,GLOB_POSTCSS:()=>Re,GLOB_SCSS:()=>Ue,GLOB_SRC:()=>u,GLOB_SRC_EXT:()=>l,GLOB_STYLE:()=>W,GLOB_SVELTE:()=>Q,GLOB_TESTS:()=>P,GLOB_TOML:()=>Me,GLOB_TS:()=>Ee,GLOB_TSX:()=>Be,GLOB_VUE:()=>w,GLOB_XML:()=>ee,GLOB_YAML:()=>Z,custom:()=>I,disables:()=>j,getVueVersion:()=>we,gitignore:()=>E,ignores:()=>B,imports:()=>N,javascript:()=>R,lntvow:()=>_e,prettier:()=>q,regexp:()=>A,renameRules:()=>h,stylistic:()=>V,test:()=>M,typescript:()=>$,vue:()=>K});module.exports=je(rt);function h(e,t){return Object.fromEntries(Object.entries(e).map(([r,s])=>{for(let[n,a]of Object.entries(t))if(r.startsWith(`${n}/`))return[a+r.slice(n.length),s];return[r,s]}))}var J=o(require("@lntvow/eslint-plugin"));async function I(){return[{name:"lntvow/custom",plugins:{lntvow:J.default}}]}var l="?([cm])[jt]s?(x)",u="**/*.?([cm])[jt]s?(x)",ke="**/*.?([cm])js",Ge="**/*.?([cm])jsx",Ee="**/*.?([cm])ts",Be="**/*.?([cm])tsx",W="**/*.{c,le,sc}ss",Ne="**/*.css",Re="**/*.{p,post}css",qe="**/*.less",Ue="**/*.scss",z="**/*.json",H="**/*.json5",Ae="**/*.jsonc",L="**/*.md",Ve="**/*.md/*.md",Q="**/*.svelte",w="**/*.vue",Z="**/*.y?(a)ml",Me="**/*.toml",ee="**/*.xml",te="**/*.htm?(l)",$e="**/*.astro",De="**/*.{g,graph}ql",Ke=`${L}/${u}`,P=[`**/__tests__/**/*.${l}`,`**/*.spec.${l}`,`**/*.test.${l}`,`**/*.bench.${l}`,`**/*.benchmark.${l}`],Xe=[u,W,z,H,L,Q,w,Z,ee,te],F=["**/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 j(){return[{files:[`scripts/${u}`],name:"lntvow/disables/scripts",rules:{"no-console":"off"}},{files:[`cli/${u}`,`cli.${l}`],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"}}]}var fe=o(require("fs"));var y=o(require("path"),1);var re=o(require("process"),1),oe=o(require("path"),1),O=o(require("fs"),1),ne=require("url");var se={directory:"isDirectory",file:"isFile"};function Ye(e){if(!Object.hasOwnProperty.call(se,e))throw new Error(`Invalid type specified: ${e}`)}var Je=(e,t)=>t[se[e]](),We=e=>e instanceof URL?(0,ne.fileURLToPath)(e):e;function k(e,{cwd:t=re.default.cwd(),type:r="file",allowSymlinks:s=!0}={}){Ye(r),t=We(t);let n=s?O.default.statSync:O.default.lstatSync;for(let a of e)try{let f=n(oe.default.resolve(t,a),{throwIfNoEntry:!1});if(!f)continue;if(Je(r,f))return a}catch{}}var ie=require("url");function G(e){return e instanceof URL?(0,ie.fileURLToPath)(e):e}var ae=o(require("fs"),1);var ze=Symbol("findUpStop");function He(e,t={}){let r=y.default.resolve(G(t.cwd)??""),{root:s}=y.default.parse(r),n=y.default.resolve(r,G(t.stopAt)??s),a=t.limit??Number.POSITIVE_INFINITY,f=[e].flat(),m=p=>{if(typeof e!="function")return k(f,p);let i=e(p.cwd);return typeof i=="string"?k([i],p):i},d=[];for(;;){let p=m({...t,cwd:r});if(p===ze||(p&&d.push(y.default.resolve(r,p)),r===n||d.length>=a))break;r=y.default.dirname(r)}return d}function pe(e,t={}){return He(e,{...t,limit:1})[0]}var ce=require("@lntvow/utils"),le=o(require("parse-gitignore"));async function E(e){let{name:t=".gitignore",root:r=!1,files:s=r?t:pe(t)||[]}=e,n=(0,ce.castArray)(s),a=[];for(let f of n)try{let m=fe.default.readFileSync(f,"utf8"),d=(0,le.default)(m).globs();for(let p of d)p.type==="ignore"?a.push(...p.patterns):p.type==="unignore"&&a.push(...p.patterns.map(i=>`!${i}`))}catch{throw new Error(`Failed to read file: ${f}`)}return[{ignores:a}]}async function B(e=[]){return[{name:"lntvow/ignores",ignores:[...F,...e]}]}var ue=o(require("eslint-plugin-import-x"));async function N(e){let{typescript:t}=e;return[{name:"lntvow/imports/rules",plugins:{import:ue.default},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}}}]}var me=o(require("@eslint/js")),T=o(require("globals"));async function R(e={}){let{overrides:t={}}=e;return[{name:"lntvow/javascript/rules",languageOptions:{ecmaVersion:2022,sourceType:"module",parserOptions:{ecmaVersion:2022,sourceType:"module",ecmaFeatures:{jsx:!0}},globals:{...T.default.browser,...T.default.es2021,...T.default.node,document:"readonly",navigator:"readonly",window:"readonly"}},linterOptions:{reportUnusedDisableDirectives:!0},rules:{...me.default.configs.all.rules,"no-unused-vars":"warn","no-use-before-define":["error",{functions:!1,variables:!1}],"no-useless-assignment":"off","require-atomic-updates":"off",camelcase:"warn","capitalized-comments":"off","class-methods-use-this":"off",complexity:"off","consistent-return":"off",curly:["error","multi-line"],"func-names":"off","func-style":"off","guard-for-in":"off","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","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-bitwise":"off","no-case-declarations":"off","no-console":"warn","no-continue":"off","no-empty":["error",{allowEmptyCatch:!0}],"no-implicit-coercion":"off","no-implicit-globals":"off","no-magic-numbers":"off","no-nested-ternary":"off","no-new":"off","no-param-reassign":"off","no-plusplus":"off","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-shadow":"off","no-ternary":"off","no-throw-literal":"off","no-undefined":"off","no-underscore-dangle":"off","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-void":"off","no-warning-comments":"off","one-var":"off","prefer-destructuring":"off","prefer-exponentiation-operator":"off","prefer-promise-reject-errors":"off",radix:"off","require-await":"off","require-unicode-regexp":"off","sort-imports":"off","sort-keys":"off","sort-vars":"off",strict:"off",...t}}]}var de=o(require("eslint-plugin-prettier")),ve=o(require("eslint-config-prettier"));async function q(){return[{name:"lntvow/prettier/rules",plugins:{prettier:de.default},rules:{...ve.default.rules,"prettier/prettier":"warn"}}]}var U=require("eslint-plugin-regexp");async function A(e={}){let{overrides:t}=e,r=U.configs["flat/recommended"].plugins.regexp,{rules:s}=U.configs["flat/recommended"];return[{name:"lntvow/regexp/rules",plugins:{regexp:r},rules:{...s,...t}}]}var ye=o(require("@stylistic/eslint-plugin"));async function V(e={}){let{overrides:t={}}=e;return[{name:"lntvow/stylistic/rules",plugins:{style:ye.default},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}],...t}}]}var ge=o(require("eslint-plugin-vitest"));async function M(e={}){let{overrides:t}=e;return[{name:"lntvow/test/setup",plugins:{test:ge.default}},{name:"lntvow/test/rules",files:[...P],rules:{"lntvow/newline-before-describe-test":"error",...t}}]}var _=o(require("@typescript-eslint/eslint-plugin")),xe=o(require("@typescript-eslint/parser"));async function $(e={}){let{componentExts:t=[],overrides:r={},parserOptions:s={}}=e,n=[u,...t.map(a=>`**/*.${a}`)];return[{name:"lntvow/typescript/setup",plugins:{ts:_.default}},{name:"lntvow/typescript/rules",languageOptions:{parser:xe.default,parserOptions:{sourceType:"module"}},files:n,rules:{...h(_.default.configs["eslint-recommended"].overrides[0].rules,{"@typescript-eslint":"ts"}),...h(_.default.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}],...r}}]}var be=require("local-pkg"),D=o(require("@typescript-eslint/parser")),he=o(require("vue-eslint-parser")),c=o(require("eslint-plugin-vue"));var Qe={...c.default.configs["vue3-essential"].rules,...c.default.configs["vue3-strongly-recommended"].rules,...c.default.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"},Ze={...c.default.configs.essential.rules,...c.default.configs["strongly-recommended"].rules,...c.default.configs.recommended.rules,"vue/block-lang":["error",{script:{allowNoLang:!0}}],"vue/block-order":["error",{order:[["script","template"],"style[scoped]"]}]};async function K(e={}){let{overrides:t={},vueVersion:r=we()}=e;return[{name:"lntvow/vue/setup",plugins:{vue:c.default}},{name:"lntvow/vue/rules",languageOptions:{parser:he.default,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:D.default,tsx:D.default},sourceType:"module"}},processor:c.default.processors[".vue"],files:[w],rules:{...c.default.configs.base.rules,...r===3?Qe:Ze,"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",...t}}]}function we(){let e=(0,be.getPackageInfoSync)("vue",{paths:[process.cwd()]});return e&&e.version?+e.version[0]:3}var Oe=require("eslint-flat-config-utils"),Te=require("@lntvow/utils"),C=require("local-pkg");var et=["name","files","ignores","languageOptions","linterOptions","processor","plugins","rules","settings"],tt={"@stylistic":"style","@typescript-eslint":"typescript","import-x":"import",vitest:"test"};function _e(e={},...t){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:r=!0,componentExts:s=[],gitignore:n=!0,regexp:a=!0,typescript:f=(0,C.isPackageExists)("typescript"),vue:m=["vue","nuxt","vitepress"].some(x=>(0,C.isPackageExists)(x)),test:d=(0,C.isPackageExists)("vitest"),stylistic:p=!0}=e,i=[];i.push(B(e.ignores),I(),R({...v(e,"javascript")}),N({typescript:!!f})),n&&i.push(E({...v(e,"gitignore")})),m&&s.push("vue"),f&&i.push($({...v(e,"typescript"),componentExts:s})),m&&i.push(K({...v(e,"vue")})),a&&i.push(A({...v(e,"regexp")})),d&&i.push(M({...v(e,"test")})),p&&i.push(V({...v(e,"stylistic")})),i.push(j(),q());let X=et.reduce((x,S)=>(S in e&&(x[S]=e[S]),x),{});Object.keys(X).length&&i.push([X]);let g=new Oe.FlatConfigComposer;return g=g.append(...i,...t),r&&(g=g.renamePlugins(tt)),g}function v(e,t){return(0,Te.isBoolean)(e[t])?{}:e[t]||{}}0&&(module.exports={GLOB_ALL_SRC,GLOB_ASTRO,GLOB_CSS,GLOB_EXCLUDE,GLOB_GRAPHQL,GLOB_HTML,GLOB_JS,GLOB_JSON,GLOB_JSON5,GLOB_JSONC,GLOB_JSX,GLOB_LESS,GLOB_MARKDOWN,GLOB_MARKDOWN_CODE,GLOB_MARKDOWN_IN_MARKDOWN,GLOB_POSTCSS,GLOB_SCSS,GLOB_SRC,GLOB_SRC_EXT,GLOB_STYLE,GLOB_SVELTE,GLOB_TESTS,GLOB_TOML,GLOB_TS,GLOB_TSX,GLOB_VUE,GLOB_XML,GLOB_YAML,custom,disables,getVueVersion,gitignore,ignores,imports,javascript,lntvow,prettier,regexp,renameRules,stylistic,test,typescript,vue});
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ function b(e,t){return Object.fromEntries(Object.entries(e).map(([r,n])=>{for(let[a,s]of Object.entries(t))if(r.startsWith(`${a}/`))return[s+r.slice(a.length),n];return[r,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)",Ge="**/*.?([cm])js",Ee="**/*.?([cm])jsx",Be="**/*.?([cm])ts",Ne="**/*.?([cm])tsx",J="**/*.{c,le,sc}ss",Re="**/*.css",qe="**/*.{p,post}css",Ue="**/*.less",Ae="**/*.scss",W="**/*.json",z="**/*.json5",Ve="**/*.jsonc",L="**/*.md",Me="**/*.md/*.md",H="**/*.svelte",h="**/*.vue",Q="**/*.y?(a)ml",$e="**/*.toml",Z="**/*.xml",ee="**/*.htm?(l)",De="**/*.astro",Ke="**/*.{g,graph}ql",Xe=`${L}/${m}`,P=[`**/__tests__/**/*.${u}`,`**/*.spec.${u}`,`**/*.test.${u}`,`**/*.bench.${u}`,`**/*.benchmark.${u}`],Ye=[m,J,W,z,L,H,h,Q,Z,ee],F=["**/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 j(){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 te from"node:process";import re from"node:path";import k,{promises as st}from"node:fs";import{fileURLToPath as oe}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,t)=>t[G[e]](),ie=e=>e instanceof URL?oe(e):e;function w(e,{cwd:t=te.cwd(),type:r="file",allowSymlinks:n=!0}={}){ne(r),t=ie(t);let a=n?k.statSync:k.lstatSync;for(let s of e)try{let p=a(re.resolve(t,s),{throwIfNoEntry:!1});if(!p)continue;if(se(r,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,t={}){let r=y.resolve(O(t.cwd)??""),{root:n}=y.parse(r),a=y.resolve(r,O(t.stopAt)??n),s=t.limit??Number.POSITIVE_INFINITY,p=[e].flat(),c=i=>{if(typeof e!="function")return w(p,i);let o=e(i.cwd);return typeof o=="string"?w([o],i):o},l=[];for(;;){let i=c({...t,cwd:r});if(i===pe||(i&&l.push(y.resolve(r,i)),r===a||l.length>=s))break;r=y.dirname(r)}return l}function E(e,t={}){return fe(e,{...t,limit:1})[0]}import{castArray as le}from"@lntvow/utils";import ue from"parse-gitignore";async function B(e){let{name:t=".gitignore",root:r=!1,files:n=r?t:E(t)||[]}=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(o=>`!${o}`))}catch{throw new Error(`Failed to read file: ${p}`)}return[{ignores:s}]}async function N(e=[]){return[{name:"lntvow/ignores",ignores:[...F,...e]}]}import me from"eslint-plugin-import-x";async function R(e){let{typescript:t}=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:t={}}=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.all.rules,"no-unused-vars":"warn","no-use-before-define":["error",{functions:!1,variables:!1}],"no-useless-assignment":"off","require-atomic-updates":"off",camelcase:"warn","capitalized-comments":"off","class-methods-use-this":"off",complexity:"off","consistent-return":"off",curly:["error","multi-line"],"func-names":"off","func-style":"off","guard-for-in":"off","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","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-bitwise":"off","no-case-declarations":"off","no-console":"warn","no-continue":"off","no-empty":["error",{allowEmptyCatch:!0}],"no-implicit-coercion":"off","no-implicit-globals":"off","no-magic-numbers":"off","no-nested-ternary":"off","no-new":"off","no-param-reassign":"off","no-plusplus":"off","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-shadow":"off","no-ternary":"off","no-throw-literal":"off","no-undefined":"off","no-underscore-dangle":"off","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-void":"off","no-warning-comments":"off","one-var":"off","prefer-destructuring":"off","prefer-exponentiation-operator":"off","prefer-promise-reject-errors":"off",radix:"off","require-await":"off","require-unicode-regexp":"off","sort-imports":"off","sort-keys":"off","sort-vars":"off",strict:"off",...t}}]}import ve from"eslint-plugin-prettier";import ye from"eslint-config-prettier";async function U(){return[{name:"lntvow/prettier/rules",plugins:{prettier:ve},rules:{...ye.rules,"prettier/prettier":"warn"}}]}import{configs as A}from"eslint-plugin-regexp";async function V(e={}){let{overrides:t}=e,r=A["flat/recommended"].plugins.regexp,{rules:n}=A["flat/recommended"];return[{name:"lntvow/regexp/rules",plugins:{regexp:r},rules:{...n,...t}}]}import ge from"@stylistic/eslint-plugin";async function M(e={}){let{overrides:t={}}=e;return[{name:"lntvow/stylistic/rules",plugins:{style:ge},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}],...t}}]}import xe from"eslint-plugin-vitest";async function $(e={}){let{overrides:t}=e;return[{name:"lntvow/test/setup",plugins:{test:xe}},{name:"lntvow/test/rules",files:[...P],rules:{"lntvow/newline-before-describe-test":"error",...t}}]}import _ from"@typescript-eslint/eslint-plugin";import be from"@typescript-eslint/parser";async function D(e={}){let{componentExts:t=[],overrides:r={},parserOptions:n={}}=e,a=[m,...t.map(s=>`**/*.${s}`)];return[{name:"lntvow/typescript/setup",plugins:{ts:_}},{name:"lntvow/typescript/rules",languageOptions:{parser:be,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}],...r}}]}import{getPackageInfoSync as he}from"local-pkg";import K from"@typescript-eslint/parser";import we from"vue-eslint-parser";import f from"eslint-plugin-vue";var Oe={...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"},Te={...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:t={},vueVersion:r=_e()}=e;return[{name:"lntvow/vue/setup",plugins:{vue:f}},{name:"lntvow/vue/rules",languageOptions:{parser:we,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:K,tsx:K},sourceType:"module"}},processor:f.processors[".vue"],files:[h],rules:{...f.configs.base.rules,...r===3?Oe:Te,"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",...t}}]}function _e(){let e=he("vue",{paths:[process.cwd()]});return e&&e.version?+e.version[0]:3}import{FlatConfigComposer as Ce}from"eslint-flat-config-utils";import{isBoolean as Se}from"@lntvow/utils";import{isPackageExists as C}from"local-pkg";var Ie=["name","files","ignores","languageOptions","linterOptions","processor","plugins","rules","settings"],Le={"@stylistic":"style","@typescript-eslint":"typescript","import-x":"import",vitest:"test"};function Pe(e={},...t){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:r=!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,o=[];o.push(N(e.ignores),I(),q({...d(e,"javascript")}),R({typescript:!!p})),a&&o.push(B({...d(e,"gitignore")})),c&&n.push("vue"),p&&o.push(D({...d(e,"typescript"),componentExts:n})),c&&o.push(X({...d(e,"vue")})),s&&o.push(V({...d(e,"regexp")})),l&&o.push($({...d(e,"test")})),i&&o.push(M({...d(e,"stylistic")})),o.push(j(),U());let S=Ie.reduce((g,x)=>(x in e&&(g[x]=e[x]),g),{});Object.keys(S).length&&o.push([S]);let v=new Ce;return v=v.append(...o,...t),r&&(v=v.renamePlugins(Le)),v}function d(e,t){return Se(e[t])?{}:e[t]||{}}export{Ye as GLOB_ALL_SRC,De as GLOB_ASTRO,Re as GLOB_CSS,F as GLOB_EXCLUDE,Ke as GLOB_GRAPHQL,ee as GLOB_HTML,Ge as GLOB_JS,W as GLOB_JSON,z as GLOB_JSON5,Ve as GLOB_JSONC,Ee as GLOB_JSX,Ue as GLOB_LESS,L as GLOB_MARKDOWN,Xe as GLOB_MARKDOWN_CODE,Me as GLOB_MARKDOWN_IN_MARKDOWN,qe as GLOB_POSTCSS,Ae as GLOB_SCSS,m as GLOB_SRC,u as GLOB_SRC_EXT,J as GLOB_STYLE,H as GLOB_SVELTE,P as GLOB_TESTS,$e as GLOB_TOML,Be as GLOB_TS,Ne as GLOB_TSX,h as GLOB_VUE,Z as GLOB_XML,Q as GLOB_YAML,I as custom,j as disables,_e as getVueVersion,B as gitignore,N as ignores,R as imports,q as javascript,Pe as lntvow,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,7 +1,6 @@
1
1
  {
2
2
  "name": "@lntvow/eslint-config",
3
- "version": "9.9.4",
4
- "type": "module",
3
+ "version": "9.10.0",
5
4
  "description": "eslint-config",
6
5
  "keywords": [
7
6
  "eslint",
@@ -19,21 +18,21 @@
19
18
  "module": "./dist/index.js",
20
19
  "types": "./dist/index.d.ts",
21
20
  "devDependencies": {
22
- "@lntvow/dev": "^2.1.3",
21
+ "@lntvow/dev": "^2.1.8",
23
22
  "@types/node": "^20.16.5",
24
23
  "axios": "^1.7.7",
25
24
  "cheerio": "1.0.0-rc.12",
26
25
  "find-up": "^7.0.0",
27
26
  "tsup": "^8.2.4",
28
- "vue": "^3.5.1"
27
+ "vue": "^3.5.4"
29
28
  },
30
29
  "dependencies": {
31
- "@eslint/js": "^9.9.1",
32
- "@lntvow/utils": "^3.1.9",
33
- "@stylistic/eslint-plugin": "^2.7.2",
30
+ "@eslint/js": "^9.10.0",
31
+ "@lntvow/utils": "^3.1.10",
32
+ "@stylistic/eslint-plugin": "^2.8.0",
34
33
  "@typescript-eslint/eslint-plugin": "^7.18.0",
35
34
  "@typescript-eslint/parser": "^7.18.0",
36
- "eslint": "^9.9.1",
35
+ "eslint": "^9.10.0",
37
36
  "eslint-config-prettier": "^9.1.0",
38
37
  "eslint-flat-config-utils": "^0.2.5",
39
38
  "eslint-import-resolver-alias": "^1.1.2",
@@ -45,9 +44,10 @@
45
44
  "globals": "^15.9.0",
46
45
  "local-pkg": "^0.5.0",
47
46
  "parse-gitignore": "^2.0.0",
48
- "typescript": "^5.5.4",
47
+ "prettier": "^3.3.3",
48
+ "typescript": "^5.6.2",
49
49
  "vue-eslint-parser": "^9.4.3",
50
- "@lntvow/eslint-plugin": "^9.9.4"
50
+ "@lntvow/eslint-plugin": "^9.10.0"
51
51
  },
52
52
  "scripts": {
53
53
  "dev": "pnpm build --format esm --watch",
package/dist/index.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";var Ce=Object.create;var b=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var Ie=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,Pe=Object.prototype.hasOwnProperty;var Fe=(e,t)=>{for(var r in t)b(e,r,{get:t[r],enumerable:!0})},Y=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Ie(t))!Pe.call(e,n)&&n!==r&&b(e,n,{get:()=>t[n],enumerable:!(s=Se(t,n))||s.enumerable});return e};var o=(e,t,r)=>(r=e!=null?Ce(Le(e)):{},Y(t||!e||!e.__esModule?b(r,"default",{value:e,enumerable:!0}):r,e)),je=e=>Y(b({},"__esModule",{value:!0}),e);var rt={};Fe(rt,{GLOB_ALL_SRC:()=>Xe,GLOB_ASTRO:()=>$e,GLOB_CSS:()=>Ne,GLOB_EXCLUDE:()=>F,GLOB_GRAPHQL:()=>De,GLOB_HTML:()=>te,GLOB_JS:()=>ke,GLOB_JSON:()=>z,GLOB_JSON5:()=>H,GLOB_JSONC:()=>Ae,GLOB_JSX:()=>Ge,GLOB_LESS:()=>qe,GLOB_MARKDOWN:()=>L,GLOB_MARKDOWN_CODE:()=>Ke,GLOB_MARKDOWN_IN_MARKDOWN:()=>Ve,GLOB_POSTCSS:()=>Re,GLOB_SCSS:()=>Ue,GLOB_SRC:()=>u,GLOB_SRC_EXT:()=>l,GLOB_STYLE:()=>W,GLOB_SVELTE:()=>Q,GLOB_TESTS:()=>P,GLOB_TOML:()=>Me,GLOB_TS:()=>Ee,GLOB_TSX:()=>Be,GLOB_VUE:()=>w,GLOB_XML:()=>ee,GLOB_YAML:()=>Z,custom:()=>I,disables:()=>j,getVueVersion:()=>we,gitignore:()=>E,ignores:()=>B,imports:()=>N,javascript:()=>R,lntvow:()=>_e,prettier:()=>q,regexp:()=>A,renameRules:()=>h,stylistic:()=>V,test:()=>M,typescript:()=>$,vue:()=>K});module.exports=je(rt);function h(e,t){return Object.fromEntries(Object.entries(e).map(([r,s])=>{for(let[n,a]of Object.entries(t))if(r.startsWith(`${n}/`))return[a+r.slice(n.length),s];return[r,s]}))}var J=o(require("@lntvow/eslint-plugin"),1);async function I(){return[{name:"lntvow/custom",plugins:{lntvow:J.default}}]}var l="?([cm])[jt]s?(x)",u="**/*.?([cm])[jt]s?(x)",ke="**/*.?([cm])js",Ge="**/*.?([cm])jsx",Ee="**/*.?([cm])ts",Be="**/*.?([cm])tsx",W="**/*.{c,le,sc}ss",Ne="**/*.css",Re="**/*.{p,post}css",qe="**/*.less",Ue="**/*.scss",z="**/*.json",H="**/*.json5",Ae="**/*.jsonc",L="**/*.md",Ve="**/*.md/*.md",Q="**/*.svelte",w="**/*.vue",Z="**/*.y?(a)ml",Me="**/*.toml",ee="**/*.xml",te="**/*.htm?(l)",$e="**/*.astro",De="**/*.{g,graph}ql",Ke=`${L}/${u}`,P=[`**/__tests__/**/*.${l}`,`**/*.spec.${l}`,`**/*.test.${l}`,`**/*.bench.${l}`,`**/*.benchmark.${l}`],Xe=[u,W,z,H,L,Q,w,Z,ee,te],F=["**/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 j(){return[{files:[`scripts/${u}`],name:"lntvow/disables/scripts",rules:{"no-console":"off"}},{files:[`cli/${u}`,`cli.${l}`],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"}}]}var fe=o(require("fs"),1);var y=o(require("path"),1);var re=o(require("process"),1),oe=o(require("path"),1),O=o(require("fs"),1),ne=require("url");var se={directory:"isDirectory",file:"isFile"};function Ye(e){if(!Object.hasOwnProperty.call(se,e))throw new Error(`Invalid type specified: ${e}`)}var Je=(e,t)=>t[se[e]](),We=e=>e instanceof URL?(0,ne.fileURLToPath)(e):e;function k(e,{cwd:t=re.default.cwd(),type:r="file",allowSymlinks:s=!0}={}){Ye(r),t=We(t);let n=s?O.default.statSync:O.default.lstatSync;for(let a of e)try{let f=n(oe.default.resolve(t,a),{throwIfNoEntry:!1});if(!f)continue;if(Je(r,f))return a}catch{}}var ie=require("url");function G(e){return e instanceof URL?(0,ie.fileURLToPath)(e):e}var ae=o(require("fs"),1);var ze=Symbol("findUpStop");function He(e,t={}){let r=y.default.resolve(G(t.cwd)??""),{root:s}=y.default.parse(r),n=y.default.resolve(r,G(t.stopAt)??s),a=t.limit??Number.POSITIVE_INFINITY,f=[e].flat(),m=p=>{if(typeof e!="function")return k(f,p);let i=e(p.cwd);return typeof i=="string"?k([i],p):i},d=[];for(;;){let p=m({...t,cwd:r});if(p===ze||(p&&d.push(y.default.resolve(r,p)),r===n||d.length>=a))break;r=y.default.dirname(r)}return d}function pe(e,t={}){return He(e,{...t,limit:1})[0]}var ce=require("@lntvow/utils"),le=o(require("parse-gitignore"),1);async function E(e){let{name:t=".gitignore",root:r=!1,files:s=r?t:pe(t)||[]}=e,n=(0,ce.castArray)(s),a=[];for(let f of n)try{let m=fe.default.readFileSync(f,"utf8"),d=(0,le.default)(m).globs();for(let p of d)p.type==="ignore"?a.push(...p.patterns):p.type==="unignore"&&a.push(...p.patterns.map(i=>`!${i}`))}catch{throw new Error(`Failed to read file: ${f}`)}return[{ignores:a}]}async function B(e=[]){return[{name:"lntvow/ignores",ignores:[...F,...e]}]}var ue=o(require("eslint-plugin-import-x"),1);async function N(e){let{typescript:t}=e;return[{name:"lntvow/imports/rules",plugins:{import:ue.default},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}}}]}var me=o(require("@eslint/js"),1),T=o(require("globals"),1);async function R(e={}){let{overrides:t={}}=e;return[{name:"lntvow/javascript/rules",languageOptions:{ecmaVersion:2022,sourceType:"module",parserOptions:{ecmaVersion:2022,sourceType:"module",ecmaFeatures:{jsx:!0}},globals:{...T.default.browser,...T.default.es2021,...T.default.node,document:"readonly",navigator:"readonly",window:"readonly"}},linterOptions:{reportUnusedDisableDirectives:!0},rules:{...me.default.configs.all.rules,"no-unused-vars":"warn","no-use-before-define":["error",{functions:!1,variables:!1}],"no-useless-assignment":"off","require-atomic-updates":"off",camelcase:"warn","capitalized-comments":"off","class-methods-use-this":"off",complexity:"off","consistent-return":"off",curly:["error","multi-line"],"func-names":"off","func-style":"off","guard-for-in":"off","id-denylist":"off","id-length":"off","id-match":"off","init-declarations":"off","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-bitwise":"off","no-case-declarations":"off","no-console":"warn","no-continue":"off","no-empty":["error",{allowEmptyCatch:!0}],"no-implicit-coercion":"off","no-implicit-globals":"off","no-magic-numbers":"off","no-nested-ternary":"off","no-new":"off","no-param-reassign":"off","no-plusplus":"off","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-shadow":"off","no-ternary":"off","no-throw-literal":"off","no-undefined":"off","no-underscore-dangle":"off","no-unused-expressions":["error",{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-void":"off","no-warning-comments":"off","one-var":"off","prefer-destructuring":"off","prefer-exponentiation-operator":"off","prefer-promise-reject-errors":"off",radix:"off","require-await":"off","require-unicode-regexp":"off","sort-imports":"off","sort-keys":"off","sort-vars":"off",strict:"off",...t}}]}var de=o(require("eslint-plugin-prettier"),1),ve=o(require("eslint-config-prettier"),1);async function q(){return[{name:"lntvow/prettier/rules",plugins:{prettier:de.default},rules:{...ve.default.rules,"prettier/prettier":"warn"}}]}var U=require("eslint-plugin-regexp");async function A(e={}){let{overrides:t}=e,r=U.configs["flat/recommended"].plugins.regexp,{rules:s}=U.configs["flat/recommended"];return[{name:"lntvow/regexp/rules",plugins:{regexp:r},rules:{...s,...t}}]}var ye=o(require("@stylistic/eslint-plugin"),1);async function V(e={}){let{overrides:t={}}=e;return[{name:"lntvow/stylistic/rules",plugins:{style:ye.default},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}],...t}}]}var ge=o(require("eslint-plugin-vitest"),1);async function M(e={}){let{overrides:t}=e;return[{name:"lntvow/test/setup",plugins:{test:ge.default}},{name:"lntvow/test/rules",files:[...P],rules:{"lntvow/newline-before-describe-test":"error",...t}}]}var _=o(require("@typescript-eslint/eslint-plugin"),1),xe=o(require("@typescript-eslint/parser"),1);async function $(e={}){let{componentExts:t=[],overrides:r={},parserOptions:s={}}=e,n=[u,...t.map(a=>`**/*.${a}`)];return[{name:"lntvow/typescript/setup",plugins:{ts:_.default}},{name:"lntvow/typescript/rules",languageOptions:{parser:xe.default,parserOptions:{sourceType:"module"}},files:n,rules:{...h(_.default.configs["eslint-recommended"].overrides[0].rules,{"@typescript-eslint":"ts"}),...h(_.default.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}],...r}}]}var be=require("local-pkg"),D=o(require("@typescript-eslint/parser"),1),he=o(require("vue-eslint-parser"),1),c=o(require("eslint-plugin-vue"),1);var Qe={...c.default.configs["vue3-essential"].rules,...c.default.configs["vue3-strongly-recommended"].rules,...c.default.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"},Ze={...c.default.configs.essential.rules,...c.default.configs["strongly-recommended"].rules,...c.default.configs.recommended.rules,"vue/block-lang":["error",{script:{allowNoLang:!0}}],"vue/block-order":["error",{order:[["script","template"],"style[scoped]"]}]};async function K(e={}){let{overrides:t={},vueVersion:r=we()}=e;return[{name:"lntvow/vue/setup",plugins:{vue:c.default}},{name:"lntvow/vue/rules",languageOptions:{parser:he.default,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:D.default,tsx:D.default},sourceType:"module"}},processor:c.default.processors[".vue"],files:[w],rules:{...c.default.configs.base.rules,...r===3?Qe:Ze,"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",...t}}]}function we(){let e=(0,be.getPackageInfoSync)("vue",{paths:[process.cwd()]});return e&&e.version?+e.version[0]:3}var Oe=require("eslint-flat-config-utils"),Te=require("@lntvow/utils"),C=require("local-pkg");var et=["name","files","ignores","languageOptions","linterOptions","processor","plugins","rules","settings"],tt={"@stylistic":"style","@typescript-eslint":"typescript","import-x":"import",vitest:"test"};function _e(e={},...t){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:r=!0,componentExts:s=[],gitignore:n=!0,regexp:a=!0,typescript:f=(0,C.isPackageExists)("typescript"),vue:m=["vue","nuxt","vitepress"].some(x=>(0,C.isPackageExists)(x)),test:d=(0,C.isPackageExists)("vitest"),stylistic:p=!0}=e,i=[];i.push(B(e.ignores),I(),R({...v(e,"javascript")}),N({typescript:!!f})),n&&i.push(E({...v(e,"gitignore")})),m&&s.push("vue"),f&&i.push($({...v(e,"typescript"),componentExts:s})),m&&i.push(K({...v(e,"vue")})),a&&i.push(A({...v(e,"regexp")})),d&&i.push(M({...v(e,"test")})),p&&i.push(V({...v(e,"stylistic")})),i.push(j(),q());let X=et.reduce((x,S)=>(S in e&&(x[S]=e[S]),x),{});Object.keys(X).length&&i.push([X]);let g=new Oe.FlatConfigComposer;return g=g.append(...i,...t),r&&(g=g.renamePlugins(tt)),g}function v(e,t){return(0,Te.isBoolean)(e[t])?{}:e[t]||{}}0&&(module.exports={GLOB_ALL_SRC,GLOB_ASTRO,GLOB_CSS,GLOB_EXCLUDE,GLOB_GRAPHQL,GLOB_HTML,GLOB_JS,GLOB_JSON,GLOB_JSON5,GLOB_JSONC,GLOB_JSX,GLOB_LESS,GLOB_MARKDOWN,GLOB_MARKDOWN_CODE,GLOB_MARKDOWN_IN_MARKDOWN,GLOB_POSTCSS,GLOB_SCSS,GLOB_SRC,GLOB_SRC_EXT,GLOB_STYLE,GLOB_SVELTE,GLOB_TESTS,GLOB_TOML,GLOB_TS,GLOB_TSX,GLOB_VUE,GLOB_XML,GLOB_YAML,custom,disables,getVueVersion,gitignore,ignores,imports,javascript,lntvow,prettier,regexp,renameRules,stylistic,test,typescript,vue});
File without changes