@lntvow/eslint-config 10.2.0 → 10.3.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.mjs ADDED
@@ -0,0 +1 @@
1
+ import{castArray as e,isBoolean as t}from"@lntvow/utils";import{FlatConfigComposer as n}from"eslint-flat-config-utils";import{getPackageInfoSync as r,isPackageExists as i}from"local-pkg";import a from"@lntvow/eslint-plugin";import{convertIgnorePatternToMinimatch as o}from"@eslint/compat";import{readFileSync as s}from"node:fs";import c from"eslint-plugin-import-lite";import l from"@eslint/js";import u from"globals";import d from"eslint-plugin-perfectionist";import f from"eslint-config-prettier";import p from"eslint-plugin-prettier";import m from"node:path";import*as h from"prettier";import{configs as g}from"eslint-plugin-regexp";import ee from"@stylistic/eslint-plugin";import te from"@vitest/eslint-plugin";import{configs as ne,parser as _,plugin as re}from"typescript-eslint";import ie from"eslint-plugin-unicorn";import v from"eslint-plugin-vue";import ae from"vue-eslint-parser";async function y(){return[{name:`lntvow/custom/setup`,plugins:{lntvow:a}}]}const b=`?([cm])[jt]s?(x)`,x=`**/*.?([cm])[jt]s?(x)`,oe=`**/*.?([cm])js`,se=`**/*.?([cm])jsx`,S=`**/*.?([cm])ts`,C=`**/*.?([cm])tsx`,w=`**/*.{c,le,sc}ss`,ce=`**/*.css`,le=`**/*.{p,post}css`,ue=`**/*.less`,de=`**/*.scss`,T=`**/*.json`,E=`**/*.json5`,fe=`**/*.jsonc`,D=`**/*.md`,pe=`**/*.md/*.md`,O=`**/*.svelte`,k=`**/*.vue`,A=`**/*.y?(a)ml`,me=`**/*.toml`,j=`**/*.xml`,M=`**/*.htm?(l)`,he=`**/*.astro`,ge=`**/*.{g,graph}ql`,_e=`${D}/${x}`,ve=[`**/__tests__/**/*.${b}`,`**/*.spec.${b}`,`**/*.test.${b}`,`**/*.bench.${b}`,`**/*.benchmark.${b}`],ye=[x,w,T,E,D,O,k,A,j,M],N=`**/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`.split(`,`);async function P(){return[{files:[`scripts/${x}`],name:`lntvow/disables/scripts`,rules:{"no-console":`off`}},{files:[`cli/${x}`,`cli.${b}`],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`}}]}async function F(t={}){let{findUpSync:n}=await import(`find-up-simple`),{name:r=`.gitignore`,root:i=!1,files:a=i?r:n(r)||[],strict:c=!1}=t,l=e(a),u=[];for(let e of l){let t;try{t=s(e,`utf8`)}catch(e){if(c)throw e;continue}let n=t.split(/\r?\n/u);u.push(...n.map(e=>e.trim()).filter(e=>e&&!e.startsWith(`#`)).map(o))}if(c&&l.length===0)throw Error(`No .gitignore file found`);return[{name:`lntvow/gitignore`,ignores:u}]}async function I(e=[]){return[{name:`lntvow/ignores`,ignores:[...N,...e]}]}async function L(){return[{name:`lntvow/imports/setup`,plugins:{import:c}},{name:`lntvow/imports/rules`,rules:{"import/first":`error`,"import/newline-after-import":`error`,"import/no-duplicates":`error`}}]}async function R(e={}){let{overrides:t={}}=e;return[{name:`lntvow/javascript/setup`,languageOptions:{ecmaVersion:`latest`,sourceType:`module`,parserOptions:{ecmaVersion:`latest`,sourceType:`module`,ecmaFeatures:{jsx:!0}},globals:{...u.browser,...u.node}},linterOptions:{reportUnusedDisableDirectives:`warn`}},{name:`lntvow/javascript/rules`,rules:{...l.configs.recommended.rules,...z,"no-unused-vars":`warn`,...t}}]}const z={"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":`off`,"no-self-compare":`error`,"no-template-curly-in-string":`error`,"no-unassigned-vars":`error`,"no-unexpected-multiline":`off`,"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:`off`,"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":`off`,"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":0,"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`};async function B(){return[{name:`lntvow/perfectionist/setup`,plugins:{perfectionist:d}},{name:`lntvow/perfectionist/rules`,rules:{"perfectionist/sort-exports":`error`,"perfectionist/sort-imports":[`error`,{newlinesBetween:`ignore`,newlinesInside:0}],"perfectionist/sort-named-exports":`error`,"perfectionist/sort-named-imports":`error`},settings:{perfectionist:{type:`natural`}}}]}const be={printWidth:120,semi:!1,singleQuote:!0,arrowParens:`avoid`,trailingComma:`es5`,htmlWhitespaceSensitivity:`ignore`,quoteProps:`consistent`};function xe(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>{for(let[r,i]of Object.entries(t))if(e.startsWith(`${r}/`))return[i+e.slice(r.length),n];return[e,n]}))}async function Se(...e){return(await Promise.all(e)).flat()}function V(e){return e.map(e=>e.rules).reduce((e,t)=>({...e,...t}),{})}const H={info:e=>console.log(`● ${e}`),success:e=>console.log(`✓ ${e}`),warn:e=>console.log(`▲ ${e}`),error:e=>console.log(`✗ ${e}`)};async function U(e={}){let{vue:t=!1}=e,n=await Ce(),r={...be,...n??{}};return[{name:`lntvow/prettier/setup`,plugins:{prettier:p}},{name:`lntvow/prettier/rules`,rules:{...f.rules,"prettier/prettier":[`warn`,r],curly:[`error`,`multi-line`],...t?{"vue/html-self-closing":[`error`,{html:{void:`always`,normal:`always`,component:`always`},svg:`always`,math:`always`}]}:{}}}]}async function Ce(){try{let e=await h.resolveConfigFile();if(e){H.info(`configFilePath: ${e}`);let t=await h.resolveConfig(e,{config:e});return H.success(`Loaded Prettier config from config file path`),t}H.warn(`No Prettier config file found`);let t=m.join(process.cwd(),`package.json`);H.warn(`fallback file: ${t}`);let n=await h.resolveConfig(t);return H.success(`Loaded Prettier config from fallback file`),n}catch{return H.error(`Failed to load Prettier config`),null}}async function W(e={}){let{overrides:t}=e,n=g[`flat/recommended`].plugins.regexp,{rules:r}=g[`flat/recommended`];return[{name:`lntvow/regexp/setup`,plugins:{regexp:n}},{name:`lntvow/regexp/rules`,rules:{...r,...t}}]}async function G(e={}){let{overrides:t={}}=e;return[{name:`lntvow/stylistic/setup`,plugins:{style:ee}},{name:`lntvow/stylistic/rules`,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":[`error`,{beforeBlockComment:!0,allowBlockStart:!0,allowBlockEnd:!0,allowObjectStart:!0,allowObjectEnd:!0,allowArrayStart:!0,allowArrayEnd:!0,allowClassStart:!0,allowClassEnd:!0,allowEnumStart:!0,allowEnumEnd:!0,allowInterfaceStart:!0,allowInterfaceEnd:!0,allowModuleStart:!0,allowModuleEnd:!0,allowTypeStart:!0,allowTypeEnd:!0}],...t}}]}async function K(e={}){let{overrides:t}=e;return[{name:`lntvow/test/setup`,plugins:{test:te}},{name:`lntvow/test/rules`,files:[...ve],rules:{"lntvow/newline-before-specified-function-call":`error`,...t}}]}async function q(e={}){let{componentExts:t=[],overrides:n={},parserOptions:r={}}=e,i=[S,C,...t.map(e=>`**/*.${e}`)];return[{name:`lntvow/typescript/setup`,plugins:{ts:re}},{name:`lntvow/typescript/rules`,languageOptions:{parser:_,parserOptions:{sourceType:`module`}},files:i,rules:{...V(ne.strict),"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}],...n}}]}async function J(){return[{name:`lntvow/unicorn/setup`,plugins:{unicorn:ie}},{name:`lntvow/unicorn/rules`,rules:{"unicorn/catch-error-name":`error`,"unicorn/consistent-empty-array-spread":`error`,"unicorn/consistent-existence-index-check":`error`,"unicorn/error-message":`error`,"unicorn/new-for-builtins":`error`,"unicorn/no-accessor-recursion":`error`,"unicorn/no-array-method-this-argument":`error`,"unicorn/no-await-in-promise-methods":`error`,"unicorn/no-negated-condition":`error`,"unicorn/no-negation-in-equality-check":`error`,"unicorn/no-new-array":`error`,"unicorn/no-new-buffer":`error`,"unicorn/no-useless-promise-resolve-reject":`error`,"unicorn/no-useless-switch-case":`error`,"unicorn/numeric-separators-style":`error`,"unicorn/prefer-logical-operator-over-ternary":`error`,"unicorn/prefer-math-min-max":`error`,"unicorn/prefer-node-protocol":`error`,"unicorn/prefer-number-properties":`error`,"unicorn/prefer-optional-catch-binding":`error`,"unicorn/prefer-string-raw":`error`,"unicorn/throw-new-error":`error`}}]}async function Y(e={}){let{overrides:t={},vueVersion:n=we(),typescript:r}=e;return[{name:`lntvow/vue/setup`,plugins:{vue:v}},{name:`lntvow/vue/rules`,languageOptions:{parser:ae,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:_,tsx:_},sourceType:`module`}},processor:v.processors[`.vue`],files:[k],rules:{...X,...Z,...n===3?{...V(v.configs[`flat/recommended`]),"vue/block-order":[`error`,{order:[`script[setup]`,`template`,`style[scoped]`]}],"vue/block-lang":[`error`,{script:r?{lang:[`ts`,`tsx`]}:{allowNoLang:!0}}]}:{...V(v.configs[`flat/vue2-recommended`]),"vue/block-order":[`error`,{order:[[`script`,`template`],`style[scoped]`]}],"vue/block-lang":[`error`,{script:{allowNoLang:!0}}],"vue/component-api-style":`off`},"vue/multi-word-component-names":`off`,"vue/no-unused-vars":`warn`,"vue/attribute-hyphenation":[`error`,`never`],"vue/v-on-event-hyphenation":[`error`,`never`],"vue/html-self-closing":`off`,"vue/html-closing-bracket-newline":`off`,"vue/html-closing-bracket-spacing":`off`,"vue/html-end-tags":`off`,"vue/html-indent":`off`,"vue/html-quotes":`off`,"vue/max-attributes-per-line":`off`,"vue/multiline-html-element-content-newline":`off`,"vue/mustache-interpolation-spacing":`off`,"vue/no-multi-spaces":`off`,"vue/no-spaces-around-equal-signs-in-attribute":`off`,"vue/singleline-html-element-content-newline":`off`,...t}}]}const X={"vue/block-lang":[`error`,{script:{lang:[`ts`,`tsx`]}}],"vue/block-tag-newline":`off`,"vue/component-api-style":`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/define-props-destructuring":`off`,"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-import-compiler-macros":`error`,"vue/no-multiple-objects-in-class":`error`,"vue/no-negated-v-if-condition":`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-restricted-v-on":`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/prefer-use-template-ref":`off`,"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/restricted-component-names":`off`,"vue/script-indent":`off`,"vue/slot-name-casing":`error`,"vue/sort-keys":`off`,"vue/static-class-names-order":`error`,"vue/v-for-delimiter-style":`error`,"vue/v-if-else-key":`off`,"vue/v-on-handler-style":`off`,"vue/valid-define-options":`error`},Z={"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-empty-pattern":`error`,"vue/no-extra-parens":`off`,"vue/no-implicit-coercion":`error`,"vue/no-irregular-whitespace":`error`,"vue/no-loss-of-precision":`off`,"vue/no-negated-condition":`error`,"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`};function we(){let e=r(`vue`,{paths:[process.cwd()]});return e&&e.version?Number(e.version[0]):3}const Te=[`name`,`languageOptions`,`linterOptions`,`processor`,`plugins`,`rules`,`settings`],Ee={"import-x":`import`,"@typescript-eslint":`ts`,vitest:`test`,"@stylistic":`style`};function Q(e={},...t){if(`files`in e)throw 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,gitignore:a=!0,stylistic:o=!0,regexp:s=!0,componentExts:c=[],typescript:l=i(`typescript`),vue:u=[`vue`,`nuxt`,`vitepress`].some(e=>i(e)),test:d=i(`vitest`)}=e,f=[];f.push(I(e.ignores),y(),R({...$(e,`javascript`)}),L(),J(),B()),a&&f.push(F({...$(e,`gitignore`)})),u&&c.push(`vue`),l&&f.push(q({...$(e,`typescript`),componentExts:c})),u&&f.push(Y({...$(e,`vue`),typescript:!!l})),s&&f.push(W({...$(e,`regexp`)})),d&&f.push(K({...$(e,`test`)})),f.push(U({vue:!!u}),P()),o&&f.push(G({...$(e,`stylistic`)}));let p=Te.reduce((t,n)=>(n in e&&(t[n]=e[n]),t),{});Object.keys(p).length&&f.push([p]);let m=new n;return m=m.append(...f,...t),r&&(m=m.renamePlugins(Ee)),m}function $(e,n){return t(e[n])?{}:e[n]||{}}var De=Q;export{ye as GLOB_ALL_SRC,he as GLOB_ASTRO,ce as GLOB_CSS,N as GLOB_EXCLUDE,ge as GLOB_GRAPHQL,M as GLOB_HTML,oe as GLOB_JS,T as GLOB_JSON,E as GLOB_JSON5,fe as GLOB_JSONC,se as GLOB_JSX,ue as GLOB_LESS,D as GLOB_MARKDOWN,_e as GLOB_MARKDOWN_CODE,pe as GLOB_MARKDOWN_IN_MARKDOWN,le as GLOB_POSTCSS,de as GLOB_SCSS,x as GLOB_SRC,b as GLOB_SRC_EXT,w as GLOB_STYLE,O as GLOB_SVELTE,ve as GLOB_TESTS,me as GLOB_TOML,S as GLOB_TS,C as GLOB_TSX,k as GLOB_VUE,j as GLOB_XML,A as GLOB_YAML,Se as combine,y as custom,De as default,P as disables,V as getRulesFromConfig,F as gitignore,I as ignores,L as imports,R as javascript,Q as lntvow,H as logger,z as notInRecommendedRules,B as perfectionist,U as prettier,W as regexp,xe as renameRules,G as stylistic,K as test,q as typescript,J as unicorn,Y as vue,Z as vueExtensionRules,X as vueUncategorizedRules};
package/package.json CHANGED
@@ -1,37 +1,38 @@
1
1
  {
2
2
  "name": "@lntvow/eslint-config",
3
- "version": "10.2.0",
3
+ "version": "10.3.0",
4
4
  "description": "Customizable eslint configuration",
5
5
  "keywords": [
6
6
  "eslint-config"
7
7
  ],
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/lntvow/eslint-config.git"
10
+ "url": "git+https://github.com/lntvow/eslint-config.git"
11
11
  },
12
12
  "license": "MIT",
13
+ "sideEffects": false,
13
14
  "type": "module",
14
15
  "exports": {
15
16
  ".": {
16
- "types": "./dist/index.d.ts",
17
- "import": "./dist/index.js",
18
- "default": "./dist/index.js"
17
+ "types": "./dist/index.d.mts",
18
+ "import": "./dist/index.mjs",
19
+ "default": "./dist/index.mjs"
19
20
  }
20
21
  },
21
- "main": "./dist/index.js",
22
- "module": "./dist/index.js",
23
- "types": "./dist/index.d.ts",
22
+ "main": "./dist/index.mjs",
23
+ "module": "./dist/index.mjs",
24
+ "types": "./dist/index.d.mts",
24
25
  "files": [
25
26
  "dist"
26
27
  ],
27
28
  "dependencies": {
28
- "@eslint/compat": "^2.0.2",
29
+ "@eslint/compat": "^2.1.0",
29
30
  "@eslint/js": "^10.0.1",
30
- "@lntvow/utils": "^5.1.3",
31
- "@stylistic/eslint-plugin": "^5.9.0",
32
- "@vitest/eslint-plugin": "^1.6.9",
31
+ "@lntvow/utils": "^5.2.0",
32
+ "@stylistic/eslint-plugin": "^5.10.0",
33
+ "@vitest/eslint-plugin": "^1.6.17",
33
34
  "eslint-config-prettier": "^10.1.8",
34
- "eslint-flat-config-utils": "^3.0.1",
35
+ "eslint-flat-config-utils": "^3.2.0",
35
36
  "eslint-plugin-import-lite": "^0.5.2",
36
37
  "eslint-plugin-perfectionist": "^5.6.0",
37
38
  "eslint-plugin-prettier": "^5.5.5",
@@ -41,30 +42,34 @@
41
42
  "find-up-simple": "^1.0.1",
42
43
  "globals": "^17.6.0",
43
44
  "local-pkg": "^1.1.2",
44
- "typescript-eslint": "^8.56.1",
45
+ "typescript-eslint": "^8.59.3",
45
46
  "vue-eslint-parser": "^10.4.0",
46
- "@lntvow/eslint-plugin": "^10.2.0"
47
+ "@lntvow/eslint-plugin": "^10.3.0"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@lntvow/cli": "^0.0.6",
50
- "@types/estree": "^1.0.8",
51
- "@types/node": "^20.19.33",
52
- "axios": "^1.16.0",
51
+ "@types/estree": "^1.0.9",
52
+ "@types/node": "^22.19.19",
53
+ "axios": "^1.16.1",
53
54
  "cheerio": "1.2.0",
54
55
  "eslint": "^10.3.0",
55
56
  "eslint-typegen": "^2.3.1",
56
57
  "jiti": "^2.7.0",
57
58
  "node-cron": "^4.2.1",
58
59
  "prettier": "^3.8.3",
59
- "tsup": "^8.5.1",
60
+ "publint": "^0.3.21",
61
+ "tsdown": "^0.22.0",
60
62
  "tsx": "^4.21.0",
61
- "typescript": "^5.9.3",
62
- "vue": "^3.5.33"
63
+ "typescript": "^6.0.3",
64
+ "vue": "^3.5.34"
63
65
  },
64
66
  "peerDependencies": {
65
67
  "eslint": ">=10.0.0",
66
68
  "prettier": ">=3.1.0"
67
69
  },
70
+ "engines": {
71
+ "node": ">=20.19.0"
72
+ },
68
73
  "scripts": {
69
74
  "clean": "cli clean ./node_modules/ && pnpm -r clean",
70
75
  "upgrade": "cli upgrade -u -f @lntvow/* && pnpm install",
@@ -76,9 +81,9 @@
76
81
  "lint:eslint": "eslint --fix --cache",
77
82
  "lint:tsc": "tsc --noEmit",
78
83
  "lint": "cli parallel lint:eslint lint:tsc",
79
- "dev": "tsup --watch",
84
+ "dev": "tsdown --watch",
80
85
  "typegen": "pnpm -r build && tsx scripts/typegen.ts",
81
- "build": "pnpm typegen && tsup",
86
+ "build": "pnpm typegen && tsdown",
82
87
  "inspect": "pnpm eslint --inspect-config"
83
88
  }
84
89
  }
package/dist/index.js DELETED
@@ -1 +0,0 @@
1
- import{isBoolean as Le}from"@lntvow/utils";import{FlatConfigComposer as Fe}from"eslint-flat-config-utils";import{isPackageExists as _}from"local-pkg";import z from"@lntvow/eslint-plugin";async function F(){return[{name:"lntvow/custom/setup",plugins:{lntvow:z}}]}var f="?([cm])[jt]s?(x)",y="**/*.?([cm])[jt]s?(x)",Ee="**/*.?([cm])js",Ge="**/*.?([cm])jsx",S="**/*.?([cm])ts",k="**/*.?([cm])tsx",Q="**/*.{c,le,sc}ss",Be="**/*.css",Re="**/*.{p,post}css",qe="**/*.less",Ae="**/*.scss",Y="**/*.json",Z="**/*.json5",Ne="**/*.jsonc",P="**/*.md",Ue="**/*.md/*.md",ee="**/*.svelte",T="**/*.vue",re="**/*.y?(a)ml",$e="**/*.toml",oe="**/*.xml",te="**/*.htm?(l)",Ve="**/*.astro",De="**/*.{g,graph}ql",Me=`${P}/${y}`,I=[`**/__tests__/**/*.${f}`,`**/*.spec.${f}`,`**/*.test.${f}`,`**/*.bench.${f}`,`**/*.benchmark.${f}`],We=[y,Q,Y,Z,P,ee,T,re,oe,te],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 E(){return[{files:[`scripts/${y}`],name:"lntvow/disables/scripts",rules:{"no-console":"off"}},{files:[`cli/${y}`,`cli.${f}`],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{convertIgnorePatternToMinimatch as ne}from"@eslint/compat";import{castArray as se}from"@lntvow/utils";import{readFileSync as ie}from"fs";async function G(e={}){let{findUpSync:r}=await import("find-up-simple"),{name:o=".gitignore",root:s=!1,files:p=s?o:r(o)||[],strict:l=!1}=e,m=se(p),d=[];for(let v of m){let b;try{b=ie(v,"utf8")}catch(a){if(l)throw a;continue}let i=b.split(/\r?\n/u);d.push(...i.map(a=>a.trim()).filter(a=>a&&!a.startsWith("#")).map(ne))}if(l&&m.length===0)throw new Error("No .gitignore file found");return[{name:"lntvow/gitignore",ignores:d}]}async function B(e=[]){return[{name:"lntvow/ignores",ignores:[...j,...e]}]}import ae from"eslint-plugin-import-lite";async function R(){return[{name:"lntvow/imports/setup",plugins:{import:ae}},{name:"lntvow/imports/rules",rules:{"import/first":"error","import/newline-after-import":"error","import/no-duplicates":"error"}}]}import pe from"@eslint/js";import q from"globals";async function A(e={}){let{overrides:r={}}=e;return[{name:"lntvow/javascript/setup",languageOptions:{ecmaVersion:"latest",sourceType:"module",parserOptions:{ecmaVersion:"latest",sourceType:"module",ecmaFeatures:{jsx:!0}},globals:{...q.browser,...q.node}},linterOptions:{reportUnusedDisableDirectives:"warn"}},{name:"lntvow/javascript/rules",rules:{...pe.configs.recommended.rules,...le,"no-unused-vars":"warn",...r}}]}var le={"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":"off","no-self-compare":"error","no-template-curly-in-string":"error","no-unassigned-vars":"error","no-unexpected-multiline":"off","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:"off","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":"off","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":0,"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 fe from"eslint-plugin-perfectionist";async function N(){return[{name:"lntvow/perfectionist/setup",plugins:{perfectionist:fe}},{name:"lntvow/perfectionist/rules",rules:{"perfectionist/sort-exports":"error","perfectionist/sort-imports":["error",{newlinesBetween:"ignore",newlinesInside:0}],"perfectionist/sort-named-exports":"error","perfectionist/sort-named-imports":"error"},settings:{perfectionist:{type:"natural"}}}]}import ue from"eslint-config-prettier";import ce from"eslint-plugin-prettier";import me from"path";import*as w from"prettier";var U={printWidth:120,semi:!1,singleQuote:!0,arrowParens:"avoid",trailingComma:"es5",htmlWhitespaceSensitivity:"ignore",quoteProps:"consistent"};function yr(e,r){return Object.fromEntries(Object.entries(e).map(([o,s])=>{for(let[p,l]of Object.entries(r))if(o.startsWith(`${p}/`))return[l+o.slice(p.length),s];return[o,s]}))}async function xr(...e){return(await Promise.all(e)).flat()}function x(e){return e.map(r=>r.rules).reduce((r,o)=>({...r,...o}),{})}var u={info:e=>console.log(`\u25CF ${e}`),success:e=>console.log(`\u2713 ${e}`),warn:e=>console.log(`\u25B2 ${e}`),error:e=>console.log(`\u2717 ${e}`)};async function $(e={}){let{vue:r=!1}=e,o=await de(),s={...U,...o??{}};return[{name:"lntvow/prettier/setup",plugins:{prettier:ce}},{name:"lntvow/prettier/rules",rules:{...ue.rules,"prettier/prettier":["warn",s],curly:["error","multi-line"],...r?{"vue/html-self-closing":["error",{html:{void:"always",normal:"always",component:"always"},svg:"always",math:"always"}]}:{}}}]}async function de(){try{let e=await w.resolveConfigFile();if(e){u.info(`configFilePath: ${e}`);let s=await w.resolveConfig(e,{config:e});return u.success("Loaded Prettier config from config file path"),s}u.warn("No Prettier config file found");let r=me.join(process.cwd(),"package.json");u.warn(`fallback file: ${r}`);let o=await w.resolveConfig(r);return u.success("Loaded Prettier config from fallback file"),o}catch{return u.error("Failed to load Prettier config"),null}}import{configs as V}from"eslint-plugin-regexp";async function D(e={}){let{overrides:r}=e,o=V["flat/recommended"].plugins.regexp,{rules:s}=V["flat/recommended"];return[{name:"lntvow/regexp/setup",plugins:{regexp:o}},{name:"lntvow/regexp/rules",rules:{...s,...r}}]}import ve from"@stylistic/eslint-plugin";async function M(e={}){let{overrides:r={}}=e;return[{name:"lntvow/stylistic/setup",plugins:{style:ve}},{name:"lntvow/stylistic/rules",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":["error",{beforeBlockComment:!0,allowBlockStart:!0,allowBlockEnd:!0,allowObjectStart:!0,allowObjectEnd:!0,allowArrayStart:!0,allowArrayEnd:!0,allowClassStart:!0,allowClassEnd:!0,allowEnumStart:!0,allowEnumEnd:!0,allowInterfaceStart:!0,allowInterfaceEnd:!0,allowModuleStart:!0,allowModuleEnd:!0,allowTypeStart:!0,allowTypeEnd:!0}],...r}}]}import ge from"@vitest/eslint-plugin";async function W(e={}){let{overrides:r}=e;return[{name:"lntvow/test/setup",plugins:{test:ge}},{name:"lntvow/test/rules",files:[...I],rules:{"lntvow/newline-before-specified-function-call":"error",...r}}]}import{configs as ye,parser as xe,plugin as we}from"typescript-eslint";async function X(e={}){let{componentExts:r=[],overrides:o={},parserOptions:s={}}=e,p=[S,k,...r.map(l=>`**/*.${l}`)];return[{name:"lntvow/typescript/setup",plugins:{ts:we}},{name:"lntvow/typescript/rules",languageOptions:{parser:xe,parserOptions:{sourceType:"module"}},files:p,rules:{...x(ye.strict),"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 be from"eslint-plugin-unicorn";async function K(){return[{name:"lntvow/unicorn/setup",plugins:{unicorn:be}},{name:"lntvow/unicorn/rules",rules:{"unicorn/catch-error-name":"error","unicorn/consistent-empty-array-spread":"error","unicorn/consistent-existence-index-check":"error","unicorn/error-message":"error","unicorn/new-for-builtins":"error","unicorn/no-accessor-recursion":"error","unicorn/no-array-method-this-argument":"error","unicorn/no-await-in-promise-methods":"error","unicorn/no-negated-condition":"error","unicorn/no-negation-in-equality-check":"error","unicorn/no-new-array":"error","unicorn/no-new-buffer":"error","unicorn/no-useless-promise-resolve-reject":"error","unicorn/no-useless-switch-case":"error","unicorn/numeric-separators-style":"error","unicorn/prefer-logical-operator-over-ternary":"error","unicorn/prefer-math-min-max":"error","unicorn/prefer-node-protocol":"error","unicorn/prefer-number-properties":"error","unicorn/prefer-optional-catch-binding":"error","unicorn/prefer-string-raw":"error","unicorn/throw-new-error":"error"}}]}import h from"eslint-plugin-vue";import{getPackageInfoSync as Oe}from"local-pkg";import{parser as J}from"typescript-eslint";import he from"vue-eslint-parser";async function H(e={}){let{overrides:r={},vueVersion:o=_e(),typescript:s}=e;return[{name:"lntvow/vue/setup",plugins:{vue:h}},{name:"lntvow/vue/rules",languageOptions:{parser:he,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:J,tsx:J},sourceType:"module"}},processor:h.processors[".vue"],files:[T],rules:{...Ce,...Te,...o===3?{...x(h.configs["flat/recommended"]),"vue/block-order":["error",{order:["script[setup]","template","style[scoped]"]}],"vue/block-lang":["error",{script:s?{lang:["ts","tsx"]}:{allowNoLang:!0}}]}:{...x(h.configs["flat/vue2-recommended"]),"vue/block-order":["error",{order:[["script","template"],"style[scoped]"]}],"vue/block-lang":["error",{script:{allowNoLang:!0}}],"vue/component-api-style":"off"},"vue/multi-word-component-names":"off","vue/no-unused-vars":"warn","vue/attribute-hyphenation":["error","never"],"vue/v-on-event-hyphenation":["error","never"],"vue/html-self-closing":"off","vue/html-closing-bracket-newline":"off","vue/html-closing-bracket-spacing":"off","vue/html-end-tags":"off","vue/html-indent":"off","vue/html-quotes":"off","vue/max-attributes-per-line":"off","vue/multiline-html-element-content-newline":"off","vue/mustache-interpolation-spacing":"off","vue/no-multi-spaces":"off","vue/no-spaces-around-equal-signs-in-attribute":"off","vue/singleline-html-element-content-newline":"off",...r}}]}var Ce={"vue/block-lang":["error",{script:{lang:["ts","tsx"]}}],"vue/block-tag-newline":"off","vue/component-api-style":"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/define-props-destructuring":"off","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-import-compiler-macros":"error","vue/no-multiple-objects-in-class":"error","vue/no-negated-v-if-condition":"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-restricted-v-on":"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/prefer-use-template-ref":"off","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/restricted-component-names":"off","vue/script-indent":"off","vue/slot-name-casing":"error","vue/sort-keys":"off","vue/static-class-names-order":"error","vue/v-for-delimiter-style":"error","vue/v-if-else-key":"off","vue/v-on-handler-style":"off","vue/valid-define-options":"error"},Te={"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-empty-pattern":"error","vue/no-extra-parens":"off","vue/no-implicit-coercion":"error","vue/no-irregular-whitespace":"error","vue/no-loss-of-precision":"off","vue/no-negated-condition":"error","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"};function _e(){let e=Oe("vue",{paths:[process.cwd()]});return e&&e.version?Number(e.version[0]):3}var Se=["name","languageOptions","linterOptions","processor","plugins","rules","settings"],ke={"import-x":"import","@typescript-eslint":"ts",vitest:"test","@stylistic":"style"};function L(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,gitignore:s=!0,stylistic:p=!0,regexp:l=!0,componentExts:m=[],typescript:d=_("typescript"),vue:v=["vue","nuxt","vitepress"].some(O=>_(O)),test:b=_("vitest")}=e,i=[];i.push(B(e.ignores),F(),A({...c(e,"javascript")}),R(),K(),N()),s&&i.push(G({...c(e,"gitignore")})),v&&m.push("vue"),d&&i.push(X({...c(e,"typescript"),componentExts:m})),v&&i.push(H({...c(e,"vue"),typescript:!!d})),l&&i.push(D({...c(e,"regexp")})),b&&i.push(W({...c(e,"test")})),i.push($({vue:!!v}),E()),p&&i.push(M({...c(e,"stylistic")}));let a=Se.reduce((O,C)=>(C in e&&(O[C]=e[C]),O),{});Object.keys(a).length&&i.push([a]);let g=new Fe;return g=g.append(...i,...r),o&&(g=g.renamePlugins(ke)),g}function c(e,r){return Le(e[r])?{}:e[r]||{}}var To=L;export{We as GLOB_ALL_SRC,Ve as GLOB_ASTRO,Be as GLOB_CSS,j as GLOB_EXCLUDE,De as GLOB_GRAPHQL,te as GLOB_HTML,Ee as GLOB_JS,Y as GLOB_JSON,Z as GLOB_JSON5,Ne as GLOB_JSONC,Ge as GLOB_JSX,qe as GLOB_LESS,P as GLOB_MARKDOWN,Me as GLOB_MARKDOWN_CODE,Ue as GLOB_MARKDOWN_IN_MARKDOWN,Re as GLOB_POSTCSS,Ae as GLOB_SCSS,y as GLOB_SRC,f as GLOB_SRC_EXT,Q as GLOB_STYLE,ee as GLOB_SVELTE,I as GLOB_TESTS,$e as GLOB_TOML,S as GLOB_TS,k as GLOB_TSX,T as GLOB_VUE,oe as GLOB_XML,re as GLOB_YAML,xr as combine,F as custom,To as default,E as disables,x as getRulesFromConfig,G as gitignore,B as ignores,R as imports,A as javascript,L as lntvow,u as logger,le as notInRecommendedRules,N as perfectionist,$ as prettier,D as regexp,yr as renameRules,M as stylistic,W as test,X as typescript,K as unicorn,H as vue,Te as vueExtensionRules,Ce as vueUncategorizedRules};