@lntvow/eslint-config 9.2.0 → 9.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ import{FlatConfigComposer as re}from"eslint-flat-config-utils";import{isBoolean as te}from"@lntvow/utils";import{isPackageExists as P}from"local-pkg";import q from"fs";import{findUpSync as R}from"find-up";import{castArray as N}from"@lntvow/utils";import A from"parse-gitignore";async function C(e){let{name:o=".gitignore",root:r=!1,files:p=r?o:R(o)||[]}=e,t=N(p),n=[];for(let l of t)try{let f=q.readFileSync(l,"utf8"),d=A(f).globs();for(let c of d)c.type==="ignore"?n.push(...c.patterns):c.type==="unignore"&&n.push(...c.patterns.map(u=>`!${u}`))}catch{throw new Error(`Failed to read file: ${l}`)}return[{ignores:n}]}var v="?([cm])[jt]s?(x)",m="**/*.?([cm])[jt]s?(x)",le="**/*.?([cm])js",ue="**/*.?([cm])jsx",me="**/*.?([cm])ts",ve="**/*.?([cm])tsx",V="**/*.{c,le,sc}ss",de="**/*.css",ye="**/*.{p,post}css",ge="**/*.less",xe="**/*.scss",D="**/*.json",U="**/*.json5",Oe="**/*.jsonc",h="**/*.md",be="**/*.md/*.md",$="**/*.svelte",x="**/*.vue",M="**/*.y?(a)ml",_e="**/*.toml",K="**/*.xml",X="**/*.htm?(l)",we="**/*.astro",Ce="**/*.{g,graph}ql",he=`${h}/${m}`,Le=[`**/__tests__/**/*.${v}`,`**/*.spec.${v}`,`**/*.test.${v}`,`**/*.bench.${v}`,`**/*.benchmark.${v}`],Te=[m,V,D,U,h,$,x,M,K,X],L=["**/node_modules","**/dist","**/package-lock.json","**/yarn.lock","**/pnpm-lock.yaml","**/bun.lockb","**/output","**/coverage","**/temp","**/.temp","**/tmp","**/.tmp","**/.history","**/.vitepress/cache","**/.nuxt","**/.next","**/.vercel","**/.changeset","**/.idea","**/.cache","**/.output","**/.vite-inspect","**/.yarn","**/CHANGELOG*.md","**/*.min.*","**/LICENSE*","**/__snapshots__","**/auto-import?(s).d.ts","**/components.d.ts"];async function T(){return[{ignores:[...L]}]}import J from"eslint-plugin-import-x";async function S(){return[{name:"lntvow/imports/rules",plugins:{import:J},rules:{"import/order":"error","import/newline-after-import":"error"}}]}import W from"@eslint/js";import O from"globals";async function G(e={}){let{overrides:o={}}=e;return[{name:"lntvow/javascript/rules",languageOptions:{ecmaVersion:2022,sourceType:"module",parserOptions:{ecmaVersion:2022,sourceType:"module",ecmaFeatures:{jsx:!0}},globals:{...O.browser,...O.es2021,...O.node,document:"readonly",navigator:"readonly",window:"readonly"}},linterOptions:{reportUnusedDisableDirectives:!0},rules:{...W.configs.all.rules,"no-unused-vars":"warn","no-use-before-define":["error",{functions:!1}],camelcase:"warn","capitalized-comments":"off","class-methods-use-this":"off",complexity:"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":["warn",{ignoreArrayIndexes:!0,ignoreDefaultValues:!0}],"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-underscore-dangle":"off","no-void":"off","no-warning-comments":"off","one-var":"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",...o}},{files:[`scripts/${m}`],name:"lntvow/javascript/disables",rules:{"no-console":"off"}}]}import H from"eslint-plugin-prettier";import z from"eslint-config-prettier";async function j(){return[{name:"lntvow/prettier/rules",plugins:{prettier:H},rules:{...z.rules,"prettier/prettier":"warn"}}]}import F from"@stylistic/eslint-plugin";var Y={indent:2,jsx:!0,quotes:"single",semi:!1};async function B(e={}){let{indent:o,jsx:r,overrides:p={},quotes:t,semi:n}={...Y,...e},l=F.configs.customize({flat:!0,indent:o,jsx:r,pluginName:"style",quotes:t,semi:n});return[{name:"lntvow/stylistic/rules",plugins:{style:F},rules:{"style/spaced-comment":"error","style/padding-line-between-statements":["error",{blankLine:"always",prev:"*",next:"function"}],...p}}]}import _ from"@typescript-eslint/eslint-plugin";import Q from"@typescript-eslint/parser";function b(e,o){return Object.fromEntries(Object.entries(e).map(([r,p])=>{for(let[t,n]of Object.entries(o))if(r.startsWith(`${t}/`))return[n+r.slice(t.length),p];return[r,p]}))}async function k(e={}){let{componentExts:o=[],overrides:r={},parserOptions:p={}}=e,t=[m,...o.map(n=>`**/*.${n}`)];return[{name:"lntvow/typescript/rules",plugins:{typescript:_},languageOptions:{parser:Q,parserOptions:{sourceType:"module"}},files:t,rules:{...b(_.configs["eslint-recommended"].overrides[0].rules,{"@typescript-eslint":"typescript"}),...b(_.configs.strict.rules,{"@typescript-eslint":"typescript"}),"typescript/no-non-null-assertion":"off","typescript/no-explicit-any":"off","typescript/ban-ts-comment":"off","typescript/no-unused-vars":"warn","no-use-before-define":"off","typescript/no-use-before-define":["error",{functions:!1}],...r}}]}import{getPackageInfoSync as Z}from"local-pkg";import I from"@typescript-eslint/parser";import ee from"vue-eslint-parser";import a from"eslint-plugin-vue";async function E(e={}){let{overrides:o={},vueVersion:r=oe()}=e,p={...a.configs["vue3-essential"].rules,...a.configs["vue3-strongly-recommended"].rules,...a.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"},t={...a.configs.essential.rules,...a.configs["strongly-recommended"].rules,...a.configs.recommended.rules,"vue/block-lang":["error",{script:{allowNoLang:!0}}],"vue/block-order":["error",{order:[["script","template"],"style[scoped]"]}]};return[{name:"lntvow/vue/rules",plugins:{vue:a},languageOptions:{parser:ee,parserOptions:{ecmaFeatures:{jsx:!0},parser:{ts:I,tsx:I},sourceType:"module"}},processor:a.processors[".vue"],files:[x],rules:{...a.configs.base.rules,...r===3?p:t,"vue/multi-word-component-names":"off","vue/attribute-hyphenation":["error","never"],"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":["error","never"],"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/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-direct-export":"error","vue/require-emit-validator":"off","vue/require-explicit-slots":"error","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":"error","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",...o}}]}function oe(){let e=Z("vue",{paths:[process.cwd()]});return e&&e.version?+e.version[0]:3}var ne=["name","files","ignores","languageOptions","linterOptions","processor","plugins","rules","settings"];function w(e={},...o){let{componentExts:r=[],gitignore:p=!0,typescript:t=P("typescript"),vue:n=["vue","nuxt","vitepress"].some(u=>P(u))}=e,l=e.stylistic===!1?!1:typeof e.stylistic=="object"?e.stylistic:{},f=[];f.push(T(),G({...y(e,"javascript")}),S()),p&&f.push(C(y(e,"gitignore"))),n&&r.push("vue"),t&&f.push(k({...y(e,"typescript"),componentExts:r})),l&&f.push(B({...l})),n&&f.push(E({...y(e,"vue")})),f.push(j());let d=ne.reduce((u,g)=>(g in e&&(u[g]=e[g]),u),{});Object.keys(d).length&&f.push([d]);let c=new re;return c=c.append(...f,...o),c}function y(e,o){return te(e[o])?{}:e[o]||{}}var Fo=w;export{Te as GLOB_ALL_SRC,we as GLOB_ASTRO,de as GLOB_CSS,L as GLOB_EXCLUDE,Ce as GLOB_GRAPHQL,X as GLOB_HTML,le as GLOB_JS,D as GLOB_JSON,U as GLOB_JSON5,Oe as GLOB_JSONC,ue as GLOB_JSX,ge as GLOB_LESS,h as GLOB_MARKDOWN,he as GLOB_MARKDOWN_CODE,be as GLOB_MARKDOWN_IN_MARKDOWN,ye as GLOB_POSTCSS,xe as GLOB_SCSS,m as GLOB_SRC,v as GLOB_SRC_EXT,V as GLOB_STYLE,$ as GLOB_SVELTE,Le as GLOB_TESTS,_e as GLOB_TOML,me as GLOB_TS,ve as GLOB_TSX,x as GLOB_VUE,K as GLOB_XML,M as GLOB_YAML,Y as StylisticConfigDefaults,Fo as default,oe as getVueVersion,C as gitignore,T as ignores,S as imports,G as javascript,w as lntvow,j as prettier,b as renameRules,B as stylistic,k as typescript,E as vue};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lntvow/eslint-config",
3
- "version": "9.2.0",
3
+ "version": "9.2.2",
4
4
  "author": "lntvow",
5
5
  "description": "eslint-config",
6
6
  "type": "module",
@@ -48,7 +48,7 @@
48
48
  "vue-eslint-parser": "^9.4.2"
49
49
  },
50
50
  "scripts": {
51
- "dev": "pnpm build --watch",
51
+ "dev": "pnpm build --format esm --watch",
52
52
  "build": "tsup",
53
53
  "commit": "git add . && git-cz",
54
54
  "rimraf": "rimraf ./node_modules/",