@favorodera/eslint-config 3.1.0 → 3.2.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.d.mts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/{types-D-U1-CaX.d.mts → types-fwyzBaAn.d.mts} +438 -405
- package/dist/types.d.mts +1 -1
- package/dist/utils.d.mts +1 -1
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as SharedOptions, n as IgnoresPatterns, o as TypedFlatConfigItem, s as ConfigNames, t as BooleanSharedOptions } from "./types-
|
|
1
|
+
import { a as SharedOptions, n as IgnoresPatterns, o as TypedFlatConfigItem, s as ConfigNames, t as BooleanSharedOptions } from "./types-fwyzBaAn.mjs";
|
|
2
2
|
import { FlatConfigComposer } from "eslint-flat-config-utils";
|
|
3
|
-
import { Selectors } from "eslint-plugin-better-tailwindcss/types";
|
|
4
3
|
import { Options } from "eslint-processor-vue-blocks";
|
|
5
4
|
import { StylisticCustomizeOptions } from "@stylistic/eslint-plugin";
|
|
5
|
+
import { Selectors } from "eslint-plugin-better-tailwindcss/api/types";
|
|
6
6
|
/** Options for CSS linting and its optional CSSicorn rule set. */
|
|
7
7
|
type CSSOptions = SharedOptions & {
|
|
8
8
|
/**
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{codeInMdGlob as e,cssGlob as t,ignoresGlob as n,jsGlob as r,json5Glob as i,jsonGlob as a,jsoncGlob as o,mdGlob as s,mdInMdGlob as c,packageJsonGlob as l,pnpmWorkspaceGlob as u,testGlob as d,tsConfigGlob as f,tsGlob as p,vueGlob as m,yamlGlob as h}from"./globs.mjs";import{extractRules as g,importModule as _,resolveOptions as v}from"./utils.mjs";import{FlatConfigComposer as y}from"eslint-flat-config-utils";import{defu as b}from"defu";import{tailwind4 as x}from"tailwind-csstree";import S from"globals";import{mergeProcessors as C,processorPassThrough as w}from"eslint-merge-processors";import{getDefaultSelectors as T}from"eslint-plugin-better-tailwindcss/defaults";import{MatcherType as E,SelectorKind as D}from"eslint-plugin-better-tailwindcss/types";import O from"eslint-processor-vue-blocks";async function k(t){return[{languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},name:`favorodera/code-in-markdown/setup`},{files:[e],name:`favorodera/code-in-markdown/rules`,rules:{"no-alert":`off`,"no-console":`off`,"no-continue":`off`,"no-labels":`off`,"no-lone-blocks":`off`,"no-restricted-syntax":`off`,"no-undef":`off`,"no-unused-expressions":`off`,"no-unused-labels":`off`,"no-unused-vars":`off`,"unicode-bom":`off`,"node/no-extraneous-import":`off`,"node/prefer-global/process":`off`,"stylistic/comma-dangle":`off`,"stylistic/eol-last":`off`,"stylistic/line-comment-position":`off`,"stylistic/padding-line-between-statements":`off`,"typescript/consistent-type-imports":`off`,"typescript/explicit-function-return-type":`off`,"typescript/no-namespace":`off`,"typescript/no-redeclare":`off`,"typescript/no-require-imports":`off`,"typescript/no-unused-expressions":`off`,"typescript/no-unused-vars":`off`,"typescript/no-use-before-define":`off`,"unused-imports/no-unused-imports":`off`,"unused-imports/no-unused-vars":`off`,"vue/no-unused-vars":`off`,"jsdoc/require-jsdoc":`off`,...t.overrides}}]}const A={cssicorn:!0,overrides:void 0};async function j(e){let n=b(e,A),r=v(n.cssicorn,{}),i=await _(import(`@eslint/css`)),a=[t],o=[{name:`favorodera/css/setup`,plugins:{css:i}},{files:a,language:`css/css`,languageOptions:{customSyntax:x,tolerant:!0},name:`favorodera/css/rules`,rules:{...i.configs.recommended.rules,"css/prefer-logical-properties":`error`,"css/relative-font-units":`error`,...e.overrides}}];if(r){let e=await _(import(`eslint-cssicorn`));o.push({name:`favorodera/css/cssicorn/setup`,plugins:{cssicorn:e}},{files:a,language:`css/css`,languageOptions:{customSyntax:x,tolerant:!0},name:`favorodera/css/cssicorn/rules`,rules:{...e.configs.recommended.rules,...r.overrides}})}return o}function M(e=[]){return[{ignores:typeof e==`function`?e(n):[...n,...e],name:`favorodera/ignores`}]}async function N(e){let t=await _(import(`eslint-plugin-import-lite`));return[{name:`favorodera/imports/setup`,plugins:{imports:t}},{files:[r,p,m],name:`favorodera/imports/rules`,rules:{...t.configs.recommended.rules,"imports/consistent-type-specifier-style":[`error`,`prefer-top-level`],"imports/first":`error`,"imports/newline-after-import":[`error`,{count:1}],"imports/no-duplicates":[`error`,{"prefer-inline":!0}],"imports/no-mutable-exports":`error`,"imports/no-named-default":`error`,...e.overrides}}]}async function P(e){let t=await _(import(`@eslint/js`)),n=[r,p,m];return[{languageOptions:{ecmaVersion:`latest`,globals:{...S.browser,...S.es2021,...S.node,document:`readonly`,navigator:`readonly`,window:`readonly`},sourceType:`module`},linterOptions:{reportUnusedDisableDirectives:!0},name:`favorodera/javascript/setup`},{files:n,name:`favorodera/javascript/rules`,rules:{...t.configs.recommended.rules,"array-callback-return":[`error`,{allowImplicit:!0,checkForEach:!0}],"arrow-body-style":[`error`,`always`],"block-scoped-var":`error`,"default-case-last":`error`,"dot-notation":`error`,eqeqeq:`error`,"for-direction":`error`,"getter-return":[`error`,{allowImplicit:!0}],"new-cap":`error`,"no-alert":`error`,"no-array-constructor":`error`,"no-async-promise-executor":`error`,"no-await-in-loop":`error`,"no-caller":`error`,"no-compare-neg-zero":`error`,"no-cond-assign":`error`,"no-console":`error`,"no-constant-binary-expression":`error`,"no-constructor-return":`error`,"no-continue":`off`,"no-control-regex":`error`,"no-debugger":`error`,"no-dupe-else-if":`error`,"no-duplicate-case":`error`,"no-else-return":`error`,"no-empty":[`error`,{allowEmptyCatch:!0}],"no-empty-character-class":`error`,"no-empty-pattern":`error`,"no-eq-null":`error`,"no-eval":`error`,"no-ex-assign":`error`,"no-extend-native":`error`,"no-extra-bind":`error`,"no-fallthrough":`error`,"no-implied-eval":`error`,"no-invalid-regexp":`error`,"no-irregular-whitespace":`error`,"no-iterator":`error`,"no-labels":[`error`,{allowLoop:!1,allowSwitch:!1}],"no-lone-blocks":`error`,"no-loop-func":`error`,"no-loss-of-precision":`error`,"no-misleading-character-class":`error`,"no-multi-str":`error`,"no-negated-condition":`error`,"no-nested-ternary":`error`,"no-new":`error`,"no-new-func":`error`,"no-new-wrappers":`error`,"no-object-constructor":`error`,"no-octal-escape":`error`,"no-param-reassign":`error`,"no-promise-executor-return":`error`,"no-proto":`error`,"no-prototype-builtins":`error`,"no-return-assign":`error`,"no-script-url":`error`,"no-self-assign":`error`,"no-self-compare":`error`,"no-sequences":`error`,"no-sparse-arrays":`error`,"no-template-curly-in-string":`error`,"no-throw-literal":`error`,"no-unassigned-vars":`error`,"no-undef-init":`error`,"no-unexpected-multiline":`error`,"no-unmodified-loop-condition":`error`,"no-unneeded-ternary":[`error`,{defaultAssignment:!1}],"no-unreachable-loop":`error`,"no-unsafe-finally":`error`,"no-unsafe-optional-chaining":`error`,"no-unused-expressions":[`error`,{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-unused-vars":`off`,"no-use-before-define":[`error`,{classes:!1,functions:!1}],"no-useless-assignment":`error`,"no-useless-backreference":`error`,"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`,"object-shorthand":[`error`,`always`,{avoidQuotes:!0,ignoreConstructors:!1}],"one-var":[`error`,{initialized:`never`}],"prefer-arrow-callback":[`error`,{allowNamedFunctions:!1,allowUnboundThis:!0}],"prefer-const":[`error`,{destructuring:`all`,ignoreReadBeforeAssign:!0}],"prefer-exponentiation-operator":`error`,"prefer-promise-reject-errors":`error`,"prefer-regex-literals":[`error`,{disallowRedundantWrapping:!0}],"prefer-template":`error`,"require-atomic-updates":`error`,"symbol-description":`error`,"unicode-bom":`error`,"use-isnan":`error`,"valid-typeof":[`error`,{requireStringLiterals:!0}],"vars-on-top":`error`,yoda:`error`,...e.overrides}}]}async function F(e){let t=await _(import(`eslint-plugin-jsdoc`));return[{name:`favorodera/jsdoc/setup`,plugins:{jsdoc:t}},{files:[r,p,m],name:`favorodera/jsdoc/rules`,rules:{...t.configs[`flat/recommended-typescript-error`].rules,...t.configs[`flat/stylistic-typescript-error`].rules,"jsdoc/check-indentation":`error`,"jsdoc/check-template-names":`error`,"jsdoc/imports-as-dependencies":`error`,"jsdoc/lines-before-block":[`error`,{ignoreSingleLines:!1}],"jsdoc/multiline-blocks":`error`,"jsdoc/no-bad-blocks":`error`,"jsdoc/no-blank-block-descriptions":`error`,"jsdoc/no-blank-blocks":`error`,"jsdoc/require-jsdoc":`off`,"jsdoc/require-throws-type":`off`,"jsdoc/sort-tags":`error`,...e.overrides}}]}const I={overrides:void 0,packageJson:!0,tsConfig:!0};async function L(e){let t=b(e,I),n=v(t.packageJson,{}),r=v(t.tsConfig,{}),s=[{name:`favorodera/jsonc/setup`,plugins:{jsonc:await _(import(`eslint-plugin-jsonc`))}},{files:[i,o,a],language:`jsonc/x`,name:`favorodera/jsonc/rules`,rules:{"jsonc/array-bracket-newline":[`error`,{minItems:null,multiline:!0}],"jsonc/array-bracket-spacing":[`error`,`never`],"jsonc/array-element-newline":[`error`,`always`],"jsonc/comma-dangle":[`error`,`never`],"jsonc/comma-style":[`error`,`last`],"jsonc/indent":[`error`,2],"jsonc/key-spacing":[`error`,{afterColon:!0,beforeColon:!1}],"jsonc/no-bigint-literals":`error`,"jsonc/no-binary-expression":`error`,"jsonc/no-binary-numeric-literals":`error`,"jsonc/no-dupe-keys":`error`,"jsonc/no-escape-sequence-in-identifier":`error`,"jsonc/no-floating-decimal":`error`,"jsonc/no-hexadecimal-numeric-literals":`error`,"jsonc/no-infinity":`error`,"jsonc/no-irregular-whitespace":`error`,"jsonc/no-multi-str":`error`,"jsonc/no-nan":`error`,"jsonc/no-number-props":`error`,"jsonc/no-numeric-separators":`error`,"jsonc/no-octal":`error`,"jsonc/no-octal-escape":`error`,"jsonc/no-octal-numeric-literals":`error`,"jsonc/no-parenthesized":`error`,"jsonc/no-plus-sign":`error`,"jsonc/no-regexp-literals":`error`,"jsonc/no-sparse-arrays":`error`,"jsonc/no-template-literals":`error`,"jsonc/no-undefined-value":`error`,"jsonc/no-unicode-codepoint-escapes":`error`,"jsonc/no-useless-escape":`error`,"jsonc/object-curly-newline":[`error`,{consistent:!0,multiline:!0}],"jsonc/object-curly-spacing":[`error`,`always`],"jsonc/object-property-newline":[`error`,{allowAllPropertiesOnSameLine:!1}],"jsonc/quote-props":`error`,"jsonc/quotes":`error`,"jsonc/space-unary-ops":`error`,"jsonc/valid-json-number":`error`,"jsonc/vue-custom-block/no-parsing-error":`error`,...e.overrides}}];return n&&s.push({files:[l],name:`favorodera/jsonc/package-json/rules`,rules:{"jsonc/sort-array-values":[`error`,{order:{type:`asc`},pathPattern:`^files$`}],"jsonc/sort-keys":[`error`,{order:/* @__PURE__ */ `publisher.name.displayName.type.version.private.packageManager.description.author.contributors.license.funding.homepage.repository.bugs.keywords.categories.sideEffects.imports.exports.main.module.unpkg.jsdelivr.types.typesVersions.bin.icon.files.engines.activationEvents.contributes.scripts.peerDependencies.peerDependenciesMeta.dependencies.optionalDependencies.devDependencies.pnpm.overrides.resolutions.husky.simple-git-hooks.lint-staged.eslintConfig`.split(`.`),pathPattern:`^$`},{order:{type:`asc`},pathPattern:`^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$`},{order:{type:`asc`},pathPattern:`^(?:resolutions|overrides|pnpm.overrides)$`},{order:{type:`asc`},pathPattern:String.raw`^workspaces\.catalog$`},{order:{type:`asc`},pathPattern:String.raw`^workspaces\.catalogs\.[^.]+$`},{order:[`types`,`import`,`require`,`default`],pathPattern:`^exports.*$`},{order:[`pre-commit`,`prepare-commit-msg`,`commit-msg`,`post-commit`,`pre-rebase`,`post-rewrite`,`post-checkout`,`post-merge`,`pre-push`,`pre-auto-gc`],pathPattern:`^(?:gitHooks|husky|simple-git-hooks)$`}],...n.overrides}}),r&&s.push({files:f,name:`favorodera/jsonc/tsconfig/rules`,rules:{"jsonc/sort-keys":[`error`,{order:[`extends`,`compilerOptions`,`references`,`files`,`include`,`exclude`],pathPattern:`^$`},{order:/* @__PURE__ */ `incremental.composite.tsBuildInfoFile.disableSourceOfProjectReferenceRedirect.disableSolutionSearching.disableReferencedProjectLoad.target.jsx.jsxFactory.jsxFragmentFactory.jsxImportSource.lib.moduleDetection.noLib.reactNamespace.useDefineForClassFields.emitDecoratorMetadata.experimentalDecorators.libReplacement.baseUrl.rootDir.rootDirs.customConditions.module.moduleResolution.moduleSuffixes.noResolve.paths.resolveJsonModule.resolvePackageJsonExports.resolvePackageJsonImports.typeRoots.types.allowArbitraryExtensions.allowImportingTsExtensions.allowUmdGlobalAccess.allowJs.checkJs.maxNodeModuleJsDepth.strict.strictBindCallApply.strictFunctionTypes.strictNullChecks.strictPropertyInitialization.allowUnreachableCode.allowUnusedLabels.alwaysStrict.exactOptionalPropertyTypes.noFallthroughCasesInSwitch.noImplicitAny.noImplicitOverride.noImplicitReturns.noImplicitThis.noPropertyAccessFromIndexSignature.noUncheckedIndexedAccess.noUnusedLocals.noUnusedParameters.useUnknownInCatchVariables.declaration.declarationDir.declarationMap.downlevelIteration.emitBOM.emitDeclarationOnly.importHelpers.importsNotUsedAsValues.inlineSourceMap.inlineSources.mapRoot.newLine.noEmit.noEmitHelpers.noEmitOnError.outDir.outFile.preserveConstEnums.preserveValueImports.removeComments.sourceMap.sourceRoot.stripInternal.allowSyntheticDefaultImports.esModuleInterop.forceConsistentCasingInFileNames.isolatedDeclarations.isolatedModules.preserveSymlinks.verbatimModuleSyntax.erasableSyntaxOnly.skipDefaultLibCheck.skipLibCheck`.split(`.`),pathPattern:`^compilerOptions$`}],...r.overrides}}),s}const R={overrides:void 0,settings:{gfm:!0}};async function ee(e){let t=b(e,R),n=await _(import(`@eslint/markdown`));return[{name:`favorodera/markdown/setup`,plugins:{markdown:n}},{files:[s],ignores:[c],language:t.settings.gfm?`markdown/gfm`:`markdown/commonmark`,languageOptions:{frontmatter:`yaml`,math:!0},name:`favorodera/markdown/rules`,processor:C([n.processors?.markdown,w]),rules:{...n.configs.recommended[0].rules,"markdown/no-missing-atx-heading-space":`off`,...t.overrides}}]}async function z(e){let t=await _(import(`eslint-plugin-n`));return[{name:`favorodera/node/setup`,plugins:{node:t}},{files:[r,p,m],name:`favorodera/node/rules`,rules:{...t.configs[`flat/recommended-module`].rules,"node/callback-return":`error`,"node/handle-callback-err":[`error`,`^(err|error)$`],"node/no-callback-literal":`error`,"node/no-missing-import":`off`,"node/no-missing-require":`off`,"node/no-new-require":`error`,"node/no-path-concat":`error`,"node/no-process-exit":`off`,"node/no-unpublished-import":`error`,"node/prefer-global/buffer":`error`,"node/prefer-global/console":`error`,"node/prefer-global/crypto":`error`,"node/prefer-global/process":`error`,"node/prefer-global/text-decoder":`error`,"node/prefer-global/text-encoder":`error`,"node/prefer-global/timers":`error`,"node/prefer-global/url":`error`,"node/prefer-global/url-search-params":`error`,"node/prefer-node-protocol":`error`,"node/prefer-promises/dns":`error`,"node/prefer-promises/fs":`error`,...e.overrides}}]}const B={overrides:void 0,settings:{ignoreCase:!0,locales:`en-US`,newlinesBetween:`ignore`,newlinesInside:`ignore`,order:`asc`,partitionByComment:{block:!1,line:!0},partitionByNewLine:!1,specialCharacters:`keep`,tsconfig:{filename:`tsconfig.json`,rootDir:`.`},type:`natural`}};async function V(e){let t=b(e,B),n=await _(import(`eslint-plugin-perfectionist`)),i=[r,p,m];return[{name:`favorodera/perfectionist/setup`,plugins:{perfectionist:n},settings:{perfectionist:t.settings}},{files:i,name:`favorodera/perfectionist/rules`,rules:{...n.configs[`recommended-${t.settings.type}`].rules,...t.overrides}}]}const H={packageJson:!0,pnpmWorkspace:!0};async function U(e){let t=b(e,H),n=v(t.packageJson,{}),r=v(t.pnpmWorkspace,{}),i=[{name:`favorodera/pnpm/setup`,plugins:{pnpm:await _(import(`eslint-plugin-pnpm`))}}];if(n&&i.push({files:[l],language:`jsonc/x`,name:`favorodera/pnpm/package-json/rules`,rules:{"pnpm/json-enforce-catalog":[`error`,{autofix:!1,fields:[`dependencies`,`devDependencies`],ignores:[`@types/vscode`]}],"pnpm/json-prefer-workspace-settings":[`error`,{autofix:!0}],"pnpm/json-valid-catalog":[`error`,{autofix:!1}],...n.overrides}}),r){let e=await _(import(`yaml-eslint-parser`));i.push({files:[u],languageOptions:{parser:e},name:`favorodera/pnpm/pnpm-workspace/rules`,rules:{"pnpm/yaml-enforce-settings":[`error`,{settings:{shellEmulator:!0,trustPolicy:`no-downgrade`}}],"pnpm/yaml-no-duplicate-catalog-item":[`error`,{checkDuplicates:`exact-version`}],"pnpm/yaml-no-unused-catalog-item":`error`,"pnpm/yaml-valid-packages":`error`,...r.overrides}})}return i}const W={overrides:void 0,settings:{arrowParens:!0,blockSpacing:!0,braceStyle:`1tbs`,commaDangle:`always-multiline`,experimental:!1,indent:2,jsx:!1,pluginName:`stylistic`,quoteProps:`consistent-as-needed`,quotes:`single`,semi:!1,severity:`error`}};async function G(e){let t=b(e,W),n=await _(import(`@stylistic/eslint-plugin`));return[{name:`favorodera/stylistic/setup`,plugins:{stylistic:n}},{files:[r,m,p],name:`favorodera/stylistic/rules`,rules:{...n.configs.customize(t.settings).rules,"stylistic/array-bracket-newline":`error`,"stylistic/array-element-newline":[`error`,`consistent`],"stylistic/curly-newline":[`error`,`always`],"stylistic/function-call-argument-newline":[`error`,`consistent`],"stylistic/function-call-spacing":`error`,"stylistic/function-paren-newline":`error`,"stylistic/implicit-arrow-linebreak":`error`,"stylistic/linebreak-style":`error`,"stylistic/multiline-comment-style":`error`,"stylistic/newline-per-chained-call":`error`,"stylistic/no-confusing-arrow":`error`,"stylistic/no-extra-semi":`error`,"stylistic/nonblock-statement-body-position":`error`,"stylistic/object-curly-newline":`error`,"stylistic/semi-style":`error`,"stylistic/switch-colon-spacing":`error`,"stylistic/wrap-regex":`error`,...t.overrides}}]}const K={overrides:void 0,settings:{detectComponentClasses:!0,selectors:[...T(),{kind:D.Callee,match:[{type:E.ObjectKey},{type:E.ObjectValue},{type:E.String}],name:`^computed$`},{kind:D.Callee,match:[{type:E.ObjectKey},{type:E.ObjectValue},{type:E.String}],name:`^defineAppConfig$`},{kind:D.Tag,match:[{type:E.ObjectKey},{type:E.ObjectValue}],name:`^ui$`}]}};async function q(e){let n=b(e,K),i=await _(import(`eslint-plugin-better-tailwindcss`)),a=[t,r,p,m];return[{name:`favorodera/tailwind/setup`,plugins:{tailwind:i},settings:{"better-tailwindcss":n.settings}},{files:a,name:`favorodera/tailwind/rules`,rules:{...i.configs[`recommended-error`].rules,...i.configs[`stylistic-error`].rules,"tailwind/enforce-consistent-class-order":[`error`,{componentClassOrder:`asc`,componentClassPosition:`start`,order:`strict`,unknownClassOrder:`asc`,unknownClassPosition:`start`}],"tailwind/enforce-consistent-important-position":`off`,"tailwind/enforce-consistent-line-wrapping":[`error`,{group:`emptyLine`}],"tailwind/enforce-consistent-variable-syntax":`off`,"tailwind/enforce-consistent-variant-order":`error`,"tailwind/enforce-logical-properties":`error`,"tailwind/enforce-shorthand-classes":`off`,...n.overrides}}]}async function J(e){let t=await _(import(`typescript-eslint`)),n=[p,m];return[{languageOptions:{parser:t.parser},name:`favorodera/typescript/setup`,plugins:{typescript:t.plugin}},{files:n,name:`favorodera/typescript/rules`,rules:{...t.configs.strict[1].rules,...t.configs.strict[2].rules,...t.configs.strict[2].rules,"typescript/array-type":`error`,"typescript/consistent-type-imports":`error`,"typescript/default-param-last":`error`,"typescript/method-signature-style":`error`,"typescript/no-import-type-side-effects":`error`,"typescript/no-redeclare":`error`,"typescript/no-unused-vars":`off`,...e.overrides}}]}async function Y(e){let t=await _(import(`eslint-plugin-unicorn`));return[{name:`favorodera/unicorn/setup`,plugins:{unicorn:t}},{files:[r,p,m],name:`favorodera/unicorn/rules`,rules:{...t.configs.recommended.rules,"unicorn/filename-case":`off`,"unicorn/name-replacements":`off`,"unicorn/no-asterisk-prefix-in-documentation-comments":`off`,"unicorn/no-process-exit":`off`,"unicorn/no-top-level-side-effects":`off`,"unicorn/prefer-query-selector":[`error`,{allowWithVariables:!0}],"unicorn/single-line-block-comment-style":[`error`,`single-line`],...e.overrides}}]}async function X(e){return[{name:`favorodera/unused-imports/setup`,plugins:{"unused-imports":await _(import(`eslint-plugin-unused-imports`))}},{files:[r,p,m],name:`favorodera/unused-imports/rules`,rules:{"unused-imports/no-unused-imports":`error`,"unused-imports/no-unused-vars":[`error`,{args:`after-used`,argsIgnorePattern:`^_`,ignoreRestSiblings:!0,vars:`all`,varsIgnorePattern:`^_`}],...e.overrides}}]}async function Z(e){let t=await _(import(`@vitest/eslint-plugin`));return[{name:`favorodera/vitest/setup`,plugins:{vitest:t}},{files:[d],name:`favorodera/vitest/rules`,rules:{...t.configs.recommended.rules,"vitest/consistent-each-for":[`error`,{describe:`for`,it:`for`,suite:`for`,test:`for`}],"vitest/consistent-test-it":[`error`,{fn:`it`,withinDescribe:`it`}],"vitest/consistent-vitest-vi":`error`,"vitest/hoisted-apis-on-top":`error`,"vitest/max-nested-describe":`error`,"vitest/no-alias-methods":`error`,"vitest/no-conditional-in-test":`error`,"vitest/no-conditional-tests":`error`,"vitest/no-duplicate-hooks":`error`,"vitest/no-large-snapshots":`warn`,"vitest/no-test-prefixes":`error`,"vitest/no-test-return-statement":`error`,"vitest/padding-around-all":`error`,"vitest/prefer-called-times":`error`,"vitest/prefer-called-with":`error`,"vitest/prefer-comparison-matcher":`error`,"vitest/prefer-each":`error`,"vitest/prefer-equality-matcher":`error`,"vitest/prefer-expect-resolves":`error`,"vitest/prefer-expect-type-of":`error`,"vitest/prefer-hooks-in-order":`error`,"vitest/prefer-hooks-on-top":`error`,"vitest/prefer-import-in-mock":`error`,"vitest/prefer-importing-vitest-globals":`error`,"vitest/prefer-lowercase-title":`error`,"vitest/prefer-mock-promise-shorthand":`error`,"vitest/prefer-mock-return-shorthand":`error`,"vitest/prefer-snapshot-hint":`error`,"vitest/prefer-spy-on":`error`,"vitest/prefer-strict-boolean-matchers":`error`,"vitest/prefer-strict-equal":`error`,"vitest/prefer-to-be":`error`,"vitest/prefer-to-be-object":`error`,"vitest/prefer-to-contain":`error`,"vitest/prefer-to-have-been-called-times":`error`,"vitest/prefer-to-have-length":`error`,"vitest/prefer-todo":`error`,"vitest/prefer-vi-mocked":`error`,"vitest/require-awaited-expect-poll":`error`,"vitest/require-hook":`error`,"vitest/require-to-throw-message":`error`,"vitest/require-top-level-describe":`error`,"vitest/warn-todo":`error`,...e.overrides}}]}const Q={a11y:!0,overrides:void 0,settings:{sfcBlocks:{blocks:{customBlocks:!0,styles:!0,template:!1}}}};async function $(e){let t=b(e,Q),n=v(t.a11y,{}),[r,i,a]=await Promise.all([_(import(`eslint-plugin-vue`)),_(import(`typescript-eslint`)),_(import(`vue-eslint-parser`))]),o=t.settings.sfcBlocks===!1?r.processors[`.vue`]:C([O(t.settings.sfcBlocks),r.processors[`.vue`]]),s=[m],c=[{languageOptions:{globals:{computed:`readonly`,defineEmits:`readonly`,defineExpose:`readonly`,defineProps:`readonly`,onMounted:`readonly`,onUnmounted:`readonly`,reactive:`readonly`,ref:`readonly`,shallowReactive:`readonly`,shallowRef:`readonly`,toRef:`readonly`,toRefs:`readonly`,watch:`readonly`,watchEffect:`readonly`}},name:`favorodera/vue/setup`,plugins:{vue:r}},{files:s,languageOptions:{parser:a,parserOptions:{extraFileExtensions:[`.vue`],parser:i.parser,sourceType:`module`}},name:`favorodera/vue/rules`,processor:o,rules:{...g(r.configs[`flat/recommended-error`]),"vue/block-lang":[`error`,{script:{lang:`ts`}}],"vue/block-order":[`error`,{order:[`script`,`template`,`style`]}],"vue/block-tag-newline":[`error`,{multiline:`always`,singleline:`always`}],"vue/comment-directive":[`error`,{reportUnusedDisableDirectives:!0}],"vue/define-macros-order":[`error`,{defineExposeLast:!0,order:[`defineOptions`,`definePage`,`defineSlots`,`defineProps`,`defineEmits`,`defineModel`]}],"vue/define-props-declaration":[`error`,`type-based`],"vue/define-props-destructuring":[`error`,{destructure:`never`}],"vue/multi-word-component-names":`off`,"vue/next-tick-style":[`error`,`promise`],"vue/no-import-compiler-macros":`error`,"vue/no-negated-v-if-condition":`error`,"vue/no-reserved-component-names":[`error`,{disallowVue3BuiltInComponents:!0,disallowVueBuiltInComponents:!0,htmlElementCaseSensitive:!1}],"vue/no-root-v-if":`error`,"vue/no-template-target-blank":`error`,"vue/no-unused-emit-declarations":`error`,"vue/no-unused-properties":`error`,"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/padding-line-between-blocks":`error`,"vue/padding-line-between-tags":[`error`,[{blankLine:`always`,next:`*`,prev:`*`}]],"vue/prefer-prop-type-boolean-first":`error`,"vue/prefer-separate-static-class":`error`,"vue/prefer-single-event-payload":`error`,"vue/prefer-use-template-ref":`error`,"vue/slot-name-casing":[`error`,`kebab-case`],"vue/v-for-delimiter-style":[`error`,`in`],...t.overrides}}];if(n){let e=await _(import(`eslint-plugin-vuejs-accessibility`));c.push({name:`favorodera/vue/a11y/setup`,plugins:{"vue-a11y":e}},{files:s,name:`favorodera/vue/a11y/rules`,rules:{...g(e.configs[`flat/recommended`]),"vue-a11y/form-control-has-label":[`error`,{controlComponents:[],labelComponents:[]}],"vue-a11y/label-has-for":[`error`,{allowChildren:!0,components:[],controlComponents:[],required:{some:[`nesting`,`id`]}}],"vue-a11y/no-aria-hidden-on-focusable":`error`,"vue-a11y/no-role-presentation-on-focusable":`error`,...n.overrides}})}return c}const te={overrides:void 0,pnpmWorkspace:!0};async function ne(e){let t=b(e,te),n=v(t.pnpmWorkspace,{}),[r,i]=await Promise.all([_(import(`eslint-plugin-yml`)),_(import(`yaml-eslint-parser`))]),a=[{name:`favorodera/yaml/setup`,plugins:{yaml:r}},{files:[h],language:`yaml/yaml`,languageOptions:{parser:i},name:`favorodera/yaml/rules`,rules:{...g(r.configs[`flat/recommended`]),"yaml/quotes":[`error`,{avoidEscape:!0,prefer:`single`}],"yaml/require-string-key":`error`,...t.overrides}}];return n&&a.push({files:[u],language:`yaml/yaml`,languageOptions:{parser:i},name:`favorodera/yaml/pnpm-workspace/rules`,rules:{"yaml/sort-keys":[`error`,{order:/* @__PURE__ */ `cacheDir.catalogMode.cleanupUnusedCatalogs.dedupeDirectDeps.deployAllFiles.enablePrePostScripts.engineStrict.extendNodePath.hoist.hoistPattern.hoistWorkspacePackages.ignoreCompatibilityDb.ignoreDepScripts.ignoreScripts.ignoreWorkspaceRootCheck.managePackageManagerVersions.minimumReleaseAge.minimumReleaseAgeExclude.modulesDir.nodeLinker.nodeVersion.optimisticRepeatInstall.packageManagerStrict.packageManagerStrictVersion.preferSymlinkedExecutables.preferWorkspacePackages.publicHoistPattern.registrySupportsTimeField.requiredScripts.resolutionMode.savePrefix.scriptShell.shamefullyHoist.shellEmulator.stateDir.supportedArchitectures.symlink.tag.trustPolicy.trustPolicyExclude.updateNotifier.packages.overrides.patchedDependencies.catalog.catalogs.allowedDeprecatedVersions.allowNonAppliedPatches.configDependencies.ignoredBuiltDependencies.ignoredOptionalDependencies.neverBuiltDependencies.onlyBuiltDependencies.onlyBuiltDependenciesFile.packageExtensions.peerDependencyRules`.split(`.`),pathPattern:`^$`},{order:{type:`asc`},pathPattern:`.*`}],...n.overrides}}),a}function re(e={}){let t=[M(e.ignores)],n={codeInMarkdown:k,css:j,imports:N,javascript:P,jsdoc:F,jsonc:L,markdown:ee,node:z,perfectionist:V,pnpm:U,stylistic:G,tailwind:q,typescript:J,unicorn:Y,unusedImports:X,vitest:Z,vue:$,yaml:ne};for(let[r,i]of Object.entries(n)){let n=e[r],a=v(n??!0,{});a&&t.push(i(a))}let r=new y;return r=r.append(...t).renamePlugins({"@stylistic":`stylistic`,"@typescript-eslint":`typescript`,"better-tailwindcss":`tailwind`,"import-lite":`imports`,n:`node`,test:`vitest`,"vuejs-accessibility":`vue-a11y`,yml:`yaml`}),r}export{re as defineConfig};
|
|
1
|
+
import{codeInMdGlob as e,cssGlob as t,ignoresGlob as n,jsGlob as r,json5Glob as i,jsonGlob as a,jsoncGlob as o,mdGlob as s,mdInMdGlob as c,packageJsonGlob as l,pnpmWorkspaceGlob as u,testGlob as d,tsConfigGlob as f,tsGlob as p,vueGlob as m,yamlGlob as h}from"./globs.mjs";import{extractRules as g,importModule as _,resolveOptions as v}from"./utils.mjs";import{FlatConfigComposer as y}from"eslint-flat-config-utils";import{defu as b}from"defu";import{tailwind4 as x}from"tailwind-csstree";import S from"globals";import{mergeProcessors as C,processorPassThrough as w}from"eslint-merge-processors";import T from"eslint-processor-vue-blocks";async function E(t){return[{languageOptions:{parserOptions:{ecmaFeatures:{impliedStrict:!0}}},name:`favorodera/code-in-markdown/setup`},{files:[e],name:`favorodera/code-in-markdown/rules`,rules:{"jsdoc/require-jsdoc":`off`,"no-alert":`off`,"no-console":`off`,"no-continue":`off`,"no-labels":`off`,"no-lone-blocks":`off`,"no-restricted-syntax":`off`,"no-undef":`off`,"no-unused-expressions":`off`,"no-unused-labels":`off`,"no-unused-vars":`off`,"node/no-extraneous-import":`off`,"node/prefer-global/process":`off`,"stylistic/comma-dangle":`off`,"stylistic/eol-last":`off`,"stylistic/line-comment-position":`off`,"stylistic/padding-line-between-statements":`off`,"typescript/consistent-type-imports":`off`,"typescript/explicit-function-return-type":`off`,"typescript/no-namespace":`off`,"typescript/no-redeclare":`off`,"typescript/no-require-imports":`off`,"typescript/no-unused-expressions":`off`,"typescript/no-unused-vars":`off`,"typescript/no-use-before-define":`off`,"unicode-bom":`off`,"unused-imports/no-unused-imports":`off`,"unused-imports/no-unused-vars":`off`,"vue/no-unused-vars":`off`,...t.overrides}}]}const D={cssicorn:!0,overrides:void 0};async function O(e){let n=b(e,D),r=v(n.cssicorn,{}),i=await _(import(`@eslint/css`)),a=[t],o=[{name:`favorodera/css/setup`,plugins:{css:i}},{files:a,language:`css/css`,languageOptions:{customSyntax:x,tolerant:!0},name:`favorodera/css/rules`,rules:{...i.configs.recommended.rules,"css/prefer-logical-properties":`error`,"css/relative-font-units":`error`,...e.overrides}}];if(r){let e=await _(import(`eslint-cssicorn`));o.push({name:`favorodera/css/cssicorn/setup`,plugins:{cssicorn:e}},{files:a,language:`css/css`,languageOptions:{customSyntax:x,tolerant:!0},name:`favorodera/css/cssicorn/rules`,rules:{...e.configs.recommended.rules,...r.overrides}})}return o}function k(e=[]){return[{ignores:typeof e==`function`?e(n):[...n,...e],name:`favorodera/ignores`}]}async function A(e){let t=await _(import(`eslint-plugin-import-lite`));return[{name:`favorodera/imports/setup`,plugins:{imports:t}},{files:[r,p,m],name:`favorodera/imports/rules`,rules:{...t.configs.recommended.rules,"imports/consistent-type-specifier-style":[`error`,`prefer-top-level`],"imports/first":`error`,"imports/newline-after-import":[`error`,{count:1}],"imports/no-duplicates":[`error`,{"prefer-inline":!0}],"imports/no-mutable-exports":`error`,"imports/no-named-default":`error`,...e.overrides}}]}async function j(e){let t=await _(import(`@eslint/js`)),n=[r,p,m];return[{languageOptions:{ecmaVersion:`latest`,globals:{...S.browser,...S.es2021,...S.node,document:`readonly`,navigator:`readonly`,window:`readonly`},sourceType:`module`},linterOptions:{reportUnusedDisableDirectives:!0},name:`favorodera/javascript/setup`},{files:n,name:`favorodera/javascript/rules`,rules:{...t.configs.recommended.rules,"array-callback-return":[`error`,{allowImplicit:!0,checkForEach:!0}],"arrow-body-style":[`error`,`always`],"block-scoped-var":`error`,"default-case-last":`error`,"dot-notation":`error`,eqeqeq:`error`,"for-direction":`error`,"getter-return":[`error`,{allowImplicit:!0}],"new-cap":`error`,"no-alert":`error`,"no-array-constructor":`error`,"no-async-promise-executor":`error`,"no-await-in-loop":`error`,"no-caller":`error`,"no-compare-neg-zero":`error`,"no-cond-assign":`error`,"no-console":`error`,"no-constant-binary-expression":`error`,"no-constructor-return":`error`,"no-continue":`off`,"no-control-regex":`error`,"no-debugger":`error`,"no-dupe-else-if":`error`,"no-duplicate-case":`error`,"no-else-return":`error`,"no-empty":[`error`,{allowEmptyCatch:!0}],"no-empty-character-class":`error`,"no-empty-pattern":`error`,"no-eq-null":`error`,"no-eval":`error`,"no-ex-assign":`error`,"no-extend-native":`error`,"no-extra-bind":`error`,"no-fallthrough":`error`,"no-implied-eval":`error`,"no-invalid-regexp":`error`,"no-irregular-whitespace":`error`,"no-iterator":`error`,"no-labels":[`error`,{allowLoop:!1,allowSwitch:!1}],"no-lone-blocks":`error`,"no-loop-func":`error`,"no-loss-of-precision":`error`,"no-misleading-character-class":`error`,"no-multi-str":`error`,"no-negated-condition":`error`,"no-nested-ternary":`error`,"no-new":`error`,"no-new-func":`error`,"no-new-wrappers":`error`,"no-object-constructor":`error`,"no-octal-escape":`error`,"no-param-reassign":`error`,"no-promise-executor-return":`error`,"no-proto":`error`,"no-prototype-builtins":`error`,"no-return-assign":`error`,"no-script-url":`error`,"no-self-assign":`error`,"no-self-compare":`error`,"no-sequences":`error`,"no-sparse-arrays":`error`,"no-template-curly-in-string":`error`,"no-throw-literal":`error`,"no-unassigned-vars":`error`,"no-undef-init":`error`,"no-unexpected-multiline":`error`,"no-unmodified-loop-condition":`error`,"no-unneeded-ternary":[`error`,{defaultAssignment:!1}],"no-unreachable-loop":`error`,"no-unsafe-finally":`error`,"no-unsafe-optional-chaining":`error`,"no-unused-expressions":[`error`,{allowShortCircuit:!0,allowTaggedTemplates:!0,allowTernary:!0}],"no-unused-vars":`off`,"no-use-before-define":[`error`,{classes:!1,functions:!1}],"no-useless-assignment":`error`,"no-useless-backreference":`error`,"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`,"object-shorthand":[`error`,`always`,{avoidQuotes:!0,ignoreConstructors:!1}],"one-var":[`error`,{initialized:`never`}],"prefer-arrow-callback":[`error`,{allowNamedFunctions:!1,allowUnboundThis:!0}],"prefer-const":[`error`,{destructuring:`all`,ignoreReadBeforeAssign:!0}],"prefer-exponentiation-operator":`error`,"prefer-promise-reject-errors":`error`,"prefer-regex-literals":[`error`,{disallowRedundantWrapping:!0}],"prefer-template":`error`,"require-atomic-updates":`error`,"symbol-description":`error`,"unicode-bom":`error`,"use-isnan":`error`,"valid-typeof":[`error`,{requireStringLiterals:!0}],"vars-on-top":`error`,yoda:`error`,...e.overrides}}]}async function M(e){let t=await _(import(`eslint-plugin-jsdoc`));return[{name:`favorodera/jsdoc/setup`,plugins:{jsdoc:t}},{files:[r,p,m],name:`favorodera/jsdoc/rules`,rules:{...t.configs[`flat/recommended-typescript-error`].rules,...t.configs[`flat/stylistic-typescript-error`].rules,"jsdoc/check-indentation":`error`,"jsdoc/check-template-names":`error`,"jsdoc/imports-as-dependencies":`error`,"jsdoc/lines-before-block":[`error`,{ignoreSingleLines:!1}],"jsdoc/multiline-blocks":`error`,"jsdoc/no-bad-blocks":`error`,"jsdoc/no-blank-block-descriptions":`error`,"jsdoc/no-blank-blocks":`error`,"jsdoc/require-jsdoc":`off`,"jsdoc/require-throws-type":`off`,"jsdoc/sort-tags":`error`,...e.overrides}}]}const N={overrides:void 0,packageJson:!0,tsConfig:!0};async function P(e){let t=b(e,N),n=v(t.packageJson,{}),r=v(t.tsConfig,{}),s=[{name:`favorodera/jsonc/setup`,plugins:{jsonc:await _(import(`eslint-plugin-jsonc`))}},{files:[i,o,a],language:`jsonc/x`,name:`favorodera/jsonc/rules`,rules:{"jsonc/array-bracket-newline":[`error`,{minItems:null,multiline:!0}],"jsonc/array-bracket-spacing":[`error`,`never`],"jsonc/array-element-newline":[`error`,`always`],"jsonc/comma-dangle":[`error`,`never`],"jsonc/comma-style":[`error`,`last`],"jsonc/indent":[`error`,2],"jsonc/key-spacing":[`error`,{afterColon:!0,beforeColon:!1}],"jsonc/no-bigint-literals":`error`,"jsonc/no-binary-expression":`error`,"jsonc/no-binary-numeric-literals":`error`,"jsonc/no-dupe-keys":`error`,"jsonc/no-escape-sequence-in-identifier":`error`,"jsonc/no-floating-decimal":`error`,"jsonc/no-hexadecimal-numeric-literals":`error`,"jsonc/no-infinity":`error`,"jsonc/no-irregular-whitespace":`error`,"jsonc/no-multi-str":`error`,"jsonc/no-nan":`error`,"jsonc/no-number-props":`error`,"jsonc/no-numeric-separators":`error`,"jsonc/no-octal":`error`,"jsonc/no-octal-escape":`error`,"jsonc/no-octal-numeric-literals":`error`,"jsonc/no-parenthesized":`error`,"jsonc/no-plus-sign":`error`,"jsonc/no-regexp-literals":`error`,"jsonc/no-sparse-arrays":`error`,"jsonc/no-template-literals":`error`,"jsonc/no-undefined-value":`error`,"jsonc/no-unicode-codepoint-escapes":`error`,"jsonc/no-useless-escape":`error`,"jsonc/object-curly-newline":[`error`,{consistent:!0,multiline:!0}],"jsonc/object-curly-spacing":[`error`,`always`],"jsonc/object-property-newline":[`error`,{allowAllPropertiesOnSameLine:!1}],"jsonc/quote-props":`error`,"jsonc/quotes":`error`,"jsonc/space-unary-ops":`error`,"jsonc/valid-json-number":`error`,"jsonc/vue-custom-block/no-parsing-error":`error`,...e.overrides}}];return n&&s.push({files:[l],name:`favorodera/jsonc/package-json/rules`,rules:{"jsonc/sort-array-values":[`error`,{order:{type:`asc`},pathPattern:`^files$`}],"jsonc/sort-keys":[`error`,{order:/* @__PURE__ */ `publisher.name.displayName.type.version.private.packageManager.description.author.contributors.license.funding.homepage.repository.bugs.keywords.categories.sideEffects.imports.exports.main.module.unpkg.jsdelivr.types.typesVersions.bin.icon.files.engines.activationEvents.contributes.scripts.peerDependencies.peerDependenciesMeta.dependencies.optionalDependencies.devDependencies.pnpm.overrides.resolutions.husky.simple-git-hooks.lint-staged.eslintConfig`.split(`.`),pathPattern:`^$`},{order:{type:`asc`},pathPattern:`^(?:dev|peer|optional|bundled)?[Dd]ependencies(Meta)?$`},{order:{type:`asc`},pathPattern:`^(?:resolutions|overrides|pnpm.overrides)$`},{order:{type:`asc`},pathPattern:String.raw`^workspaces\.catalog$`},{order:{type:`asc`},pathPattern:String.raw`^workspaces\.catalogs\.[^.]+$`},{order:[`types`,`import`,`require`,`default`],pathPattern:`^exports.*$`},{order:[`pre-commit`,`prepare-commit-msg`,`commit-msg`,`post-commit`,`pre-rebase`,`post-rewrite`,`post-checkout`,`post-merge`,`pre-push`,`pre-auto-gc`],pathPattern:`^(?:gitHooks|husky|simple-git-hooks)$`}],...n.overrides}}),r&&s.push({files:f,name:`favorodera/jsonc/tsconfig/rules`,rules:{"jsonc/sort-keys":[`error`,{order:[`extends`,`compilerOptions`,`references`,`files`,`include`,`exclude`],pathPattern:`^$`},{order:/* @__PURE__ */ `incremental.composite.tsBuildInfoFile.disableSourceOfProjectReferenceRedirect.disableSolutionSearching.disableReferencedProjectLoad.target.jsx.jsxFactory.jsxFragmentFactory.jsxImportSource.lib.moduleDetection.noLib.reactNamespace.useDefineForClassFields.emitDecoratorMetadata.experimentalDecorators.libReplacement.baseUrl.rootDir.rootDirs.customConditions.module.moduleResolution.moduleSuffixes.noResolve.paths.resolveJsonModule.resolvePackageJsonExports.resolvePackageJsonImports.typeRoots.types.allowArbitraryExtensions.allowImportingTsExtensions.allowUmdGlobalAccess.allowJs.checkJs.maxNodeModuleJsDepth.strict.strictBindCallApply.strictFunctionTypes.strictNullChecks.strictPropertyInitialization.allowUnreachableCode.allowUnusedLabels.alwaysStrict.exactOptionalPropertyTypes.noFallthroughCasesInSwitch.noImplicitAny.noImplicitOverride.noImplicitReturns.noImplicitThis.noPropertyAccessFromIndexSignature.noUncheckedIndexedAccess.noUnusedLocals.noUnusedParameters.useUnknownInCatchVariables.declaration.declarationDir.declarationMap.downlevelIteration.emitBOM.emitDeclarationOnly.importHelpers.importsNotUsedAsValues.inlineSourceMap.inlineSources.mapRoot.newLine.noEmit.noEmitHelpers.noEmitOnError.outDir.outFile.preserveConstEnums.preserveValueImports.removeComments.sourceMap.sourceRoot.stripInternal.allowSyntheticDefaultImports.esModuleInterop.forceConsistentCasingInFileNames.isolatedDeclarations.isolatedModules.preserveSymlinks.verbatimModuleSyntax.erasableSyntaxOnly.skipDefaultLibCheck.skipLibCheck`.split(`.`),pathPattern:`^compilerOptions$`}],...r.overrides}}),s}const F={overrides:void 0,settings:{gfm:!0}};async function I(e){let t=b(e,F),n=await _(import(`@eslint/markdown`));return[{name:`favorodera/markdown/setup`,plugins:{markdown:n}},{files:[s],ignores:[c],language:t.settings.gfm?`markdown/gfm`:`markdown/commonmark`,languageOptions:{frontmatter:`yaml`,math:!0},name:`favorodera/markdown/rules`,processor:C([n.processors?.markdown,w]),rules:{...n.configs.recommended[0].rules,"markdown/no-missing-atx-heading-space":`off`,...t.overrides}}]}async function ee(e){let t=await _(import(`eslint-plugin-n`));return[{name:`favorodera/node/setup`,plugins:{node:t}},{files:[r,p,m],name:`favorodera/node/rules`,rules:{...t.configs[`flat/recommended-module`].rules,"node/callback-return":`error`,"node/handle-callback-err":[`error`,`^(err|error)$`],"node/no-callback-literal":`error`,"node/no-missing-import":`off`,"node/no-missing-require":`off`,"node/no-new-require":`error`,"node/no-path-concat":`error`,"node/no-process-exit":`off`,"node/no-unpublished-import":`error`,"node/prefer-global/buffer":`error`,"node/prefer-global/console":`error`,"node/prefer-global/crypto":`error`,"node/prefer-global/process":`error`,"node/prefer-global/text-decoder":`error`,"node/prefer-global/text-encoder":`error`,"node/prefer-global/timers":`error`,"node/prefer-global/url":`error`,"node/prefer-global/url-search-params":`error`,"node/prefer-node-protocol":`error`,"node/prefer-promises/dns":`error`,"node/prefer-promises/fs":`error`,...e.overrides}}]}const L={overrides:void 0,settings:{ignoreCase:!0,locales:`en-US`,newlinesBetween:`ignore`,newlinesInside:`ignore`,order:`asc`,partitionByComment:{block:!1,line:!0},partitionByNewLine:!1,specialCharacters:`keep`,tsconfig:{filename:`tsconfig.json`,rootDir:`.`},type:`natural`}};async function R(e){let t=b(e,L),n=await _(import(`eslint-plugin-perfectionist`)),i=[r,p,m];return[{name:`favorodera/perfectionist/setup`,plugins:{perfectionist:n},settings:{perfectionist:t.settings}},{files:i,name:`favorodera/perfectionist/rules`,rules:{...n.configs[`recommended-${t.settings.type}`].rules,...t.overrides}}]}const z={packageJson:!0,pnpmWorkspace:!0};async function B(e){let t=b(e,z),n=v(t.packageJson,{}),r=v(t.pnpmWorkspace,{}),i=[{name:`favorodera/pnpm/setup`,plugins:{pnpm:await _(import(`eslint-plugin-pnpm`))}}];if(n&&i.push({files:[l],language:`jsonc/x`,name:`favorodera/pnpm/package-json/rules`,rules:{"pnpm/json-enforce-catalog":[`error`,{autofix:!1,fields:[`dependencies`,`devDependencies`],ignores:[`@types/vscode`]}],"pnpm/json-prefer-workspace-settings":[`error`,{autofix:!0}],"pnpm/json-valid-catalog":[`error`,{autofix:!1}],...n.overrides}}),r){let e=await _(import(`yaml-eslint-parser`));i.push({files:[u],languageOptions:{parser:e},name:`favorodera/pnpm/pnpm-workspace/rules`,rules:{"pnpm/yaml-enforce-settings":[`error`,{settings:{shellEmulator:!0,trustPolicy:`no-downgrade`}}],"pnpm/yaml-no-duplicate-catalog-item":[`error`,{checkDuplicates:`exact-version`}],"pnpm/yaml-no-unused-catalog-item":`error`,"pnpm/yaml-valid-packages":`error`,...r.overrides}})}return i}const V={overrides:void 0,settings:{arrowParens:!0,blockSpacing:!0,braceStyle:`1tbs`,commaDangle:`always-multiline`,experimental:!1,indent:2,jsx:!1,pluginName:`stylistic`,quoteProps:`consistent-as-needed`,quotes:`single`,semi:!1,severity:`error`}};async function H(e){let t=b(e,V),n=await _(import(`@stylistic/eslint-plugin`));return[{name:`favorodera/stylistic/setup`,plugins:{stylistic:n}},{files:[r,m,p],name:`favorodera/stylistic/rules`,rules:{...n.configs.customize(t.settings).rules,"stylistic/array-bracket-newline":`error`,"stylistic/array-element-newline":[`error`,`consistent`],"stylistic/curly-newline":[`error`,`always`],"stylistic/function-call-argument-newline":[`error`,`consistent`],"stylistic/function-call-spacing":`error`,"stylistic/function-paren-newline":`error`,"stylistic/implicit-arrow-linebreak":`error`,"stylistic/linebreak-style":`error`,"stylistic/multiline-comment-style":`error`,"stylistic/newline-per-chained-call":`error`,"stylistic/no-confusing-arrow":`error`,"stylistic/no-extra-semi":`error`,"stylistic/nonblock-statement-body-position":`error`,"stylistic/object-curly-newline":`error`,"stylistic/semi-style":`error`,"stylistic/switch-colon-spacing":`error`,"stylistic/wrap-regex":`error`,...t.overrides}}]}const U={overrides:void 0,settings:{detectComponentClasses:!0}};async function W(e){let n=b(e,U),i=await _(import(`eslint-plugin-better-tailwindcss`)),a=[t,r,p,m];return[{name:`favorodera/tailwind/setup`,plugins:{tailwind:i},settings:{"better-tailwindcss":n.settings}},{files:a,name:`favorodera/tailwind/rules`,rules:{...i.configs[`recommended-error`].rules,...i.configs[`stylistic-error`].rules,"tailwind/enforce-consistent-class-order":[`error`,{componentClassOrder:`asc`,componentClassPosition:`start`,order:`strict`,unknownClassOrder:`asc`,unknownClassPosition:`start`}],"tailwind/enforce-consistent-important-position":`off`,"tailwind/enforce-consistent-line-wrapping":[`error`,{group:`emptyLine`}],"tailwind/enforce-consistent-variable-syntax":`off`,"tailwind/enforce-consistent-variant-order":`error`,"tailwind/enforce-logical-properties":`error`,"tailwind/enforce-shorthand-classes":`off`,...n.overrides}}]}async function G(e){let t=await _(import(`typescript-eslint`)),n=[p,m];return[{languageOptions:{parser:t.parser},name:`favorodera/typescript/setup`,plugins:{typescript:t.plugin}},{files:n,name:`favorodera/typescript/rules`,rules:{...t.configs.strict[1].rules,...t.configs.strict[2].rules,...t.configs.strict[2].rules,"typescript/array-type":`error`,"typescript/consistent-type-imports":`error`,"typescript/default-param-last":`error`,"typescript/method-signature-style":`error`,"typescript/no-import-type-side-effects":`error`,"typescript/no-redeclare":`error`,"typescript/no-unused-vars":`off`,...e.overrides}}]}async function K(e){let t=await _(import(`eslint-plugin-unicorn`));return[{name:`favorodera/unicorn/setup`,plugins:{unicorn:t}},{files:[r,p,m],name:`favorodera/unicorn/rules`,rules:{...t.configs.recommended.rules,"unicorn/filename-case":`off`,"unicorn/name-replacements":`off`,"unicorn/no-asterisk-prefix-in-documentation-comments":`off`,"unicorn/no-process-exit":`off`,"unicorn/no-top-level-side-effects":`off`,"unicorn/prefer-query-selector":[`error`,{allowWithVariables:!0}],"unicorn/prefer-ternary":`off`,"unicorn/single-line-block-comment-style":[`error`,`single-line`],...e.overrides}}]}async function q(e){return[{name:`favorodera/unused-imports/setup`,plugins:{"unused-imports":await _(import(`eslint-plugin-unused-imports`))}},{files:[r,p,m],name:`favorodera/unused-imports/rules`,rules:{"unused-imports/no-unused-imports":`error`,"unused-imports/no-unused-vars":[`error`,{args:`after-used`,argsIgnorePattern:`^_`,ignoreRestSiblings:!0,vars:`all`,varsIgnorePattern:`^_`}],...e.overrides}}]}async function J(e){let t=await _(import(`@vitest/eslint-plugin`));return[{name:`favorodera/vitest/setup`,plugins:{vitest:t}},{files:[d],name:`favorodera/vitest/rules`,rules:{...t.configs.recommended.rules,"vitest/consistent-each-for":[`error`,{describe:`for`,it:`for`,suite:`for`,test:`for`}],"vitest/consistent-test-it":[`error`,{fn:`it`,withinDescribe:`it`}],"vitest/consistent-vitest-vi":`error`,"vitest/hoisted-apis-on-top":`error`,"vitest/max-nested-describe":`error`,"vitest/no-alias-methods":`error`,"vitest/no-conditional-in-test":`error`,"vitest/no-conditional-tests":`error`,"vitest/no-duplicate-hooks":`error`,"vitest/no-large-snapshots":`warn`,"vitest/no-test-prefixes":`error`,"vitest/no-test-return-statement":`error`,"vitest/padding-around-all":`error`,"vitest/prefer-called-times":`error`,"vitest/prefer-called-with":`error`,"vitest/prefer-comparison-matcher":`error`,"vitest/prefer-each":`error`,"vitest/prefer-equality-matcher":`error`,"vitest/prefer-expect-resolves":`error`,"vitest/prefer-expect-type-of":`error`,"vitest/prefer-hooks-in-order":`error`,"vitest/prefer-hooks-on-top":`error`,"vitest/prefer-import-in-mock":`error`,"vitest/prefer-importing-vitest-globals":`error`,"vitest/prefer-lowercase-title":`error`,"vitest/prefer-mock-promise-shorthand":`error`,"vitest/prefer-mock-return-shorthand":`error`,"vitest/prefer-snapshot-hint":`error`,"vitest/prefer-spy-on":`error`,"vitest/prefer-strict-boolean-matchers":`error`,"vitest/prefer-strict-equal":`error`,"vitest/prefer-to-be":`error`,"vitest/prefer-to-be-object":`error`,"vitest/prefer-to-contain":`error`,"vitest/prefer-to-have-been-called-times":`error`,"vitest/prefer-to-have-length":`error`,"vitest/prefer-todo":`error`,"vitest/prefer-vi-mocked":`error`,"vitest/require-awaited-expect-poll":`error`,"vitest/require-hook":`error`,"vitest/require-to-throw-message":`error`,"vitest/require-top-level-describe":`error`,"vitest/warn-todo":`error`,...e.overrides}}]}const Y={a11y:!0,overrides:void 0,settings:{sfcBlocks:{blocks:{customBlocks:!0,styles:!0,template:!1}}}};async function X(e){let t=b(e,Y),n=v(t.a11y,{}),[r,i,a]=await Promise.all([_(import(`eslint-plugin-vue`)),_(import(`typescript-eslint`)),_(import(`vue-eslint-parser`))]),o=t.settings.sfcBlocks===!1?r.processors[`.vue`]:C([T(t.settings.sfcBlocks),r.processors[`.vue`]]),s=[m],c=[{languageOptions:{globals:{computed:`readonly`,defineEmits:`readonly`,defineExpose:`readonly`,defineProps:`readonly`,onMounted:`readonly`,onUnmounted:`readonly`,reactive:`readonly`,ref:`readonly`,shallowReactive:`readonly`,shallowRef:`readonly`,toRef:`readonly`,toRefs:`readonly`,watch:`readonly`,watchEffect:`readonly`}},name:`favorodera/vue/setup`,plugins:{vue:r}},{files:s,languageOptions:{parser:a,parserOptions:{extraFileExtensions:[`.vue`],parser:i.parser,sourceType:`module`}},name:`favorodera/vue/rules`,processor:o,rules:{...g(r.configs[`flat/recommended-error`]),"vue/block-lang":[`error`,{script:{lang:`ts`}}],"vue/block-order":[`error`,{order:[`script`,`template`,`style`]}],"vue/block-tag-newline":[`error`,{multiline:`always`,singleline:`always`}],"vue/comment-directive":[`error`,{reportUnusedDisableDirectives:!0}],"vue/define-macros-order":[`error`,{defineExposeLast:!0,order:[`defineOptions`,`definePage`,`defineSlots`,`defineProps`,`defineEmits`,`defineModel`]}],"vue/define-props-declaration":[`error`,`type-based`],"vue/define-props-destructuring":[`error`,{destructure:`never`}],"vue/multi-word-component-names":`off`,"vue/next-tick-style":[`error`,`promise`],"vue/no-import-compiler-macros":`error`,"vue/no-negated-v-if-condition":`error`,"vue/no-reserved-component-names":[`error`,{disallowVue3BuiltInComponents:!0,disallowVueBuiltInComponents:!0,htmlElementCaseSensitive:!1}],"vue/no-root-v-if":`error`,"vue/no-template-target-blank":`error`,"vue/no-unused-emit-declarations":`error`,"vue/no-unused-properties":`error`,"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/padding-line-between-blocks":`error`,"vue/padding-line-between-tags":[`error`,[{blankLine:`always`,next:`*`,prev:`*`}]],"vue/prefer-prop-type-boolean-first":`error`,"vue/prefer-separate-static-class":`error`,"vue/prefer-single-event-payload":`error`,"vue/prefer-use-template-ref":`error`,"vue/slot-name-casing":[`error`,`kebab-case`],"vue/v-for-delimiter-style":[`error`,`in`],...t.overrides}}];if(n){let e=await _(import(`eslint-plugin-vuejs-accessibility`));c.push({name:`favorodera/vue/a11y/setup`,plugins:{"vue-a11y":e}},{files:s,name:`favorodera/vue/a11y/rules`,rules:{...g(e.configs[`flat/recommended`]),"vue-a11y/form-control-has-label":[`error`,{controlComponents:[],labelComponents:[]}],"vue-a11y/label-has-for":[`error`,{allowChildren:!0,components:[],controlComponents:[],required:{some:[`nesting`,`id`]}}],"vue-a11y/no-aria-hidden-on-focusable":`error`,"vue-a11y/no-role-presentation-on-focusable":`error`,...n.overrides}})}return c}const Z={overrides:void 0,pnpmWorkspace:!0};async function Q(e){let t=b(e,Z),n=v(t.pnpmWorkspace,{}),[r,i]=await Promise.all([_(import(`eslint-plugin-yml`)),_(import(`yaml-eslint-parser`))]),a=[{name:`favorodera/yaml/setup`,plugins:{yaml:r}},{files:[h],language:`yaml/yaml`,languageOptions:{parser:i},name:`favorodera/yaml/rules`,rules:{...g(r.configs[`flat/recommended`]),"yaml/quotes":[`error`,{avoidEscape:!0,prefer:`single`}],"yaml/require-string-key":`error`,...t.overrides}}];return n&&a.push({files:[u],language:`yaml/yaml`,languageOptions:{parser:i},name:`favorodera/yaml/pnpm-workspace/rules`,rules:{"yaml/sort-keys":[`error`,{order:/* @__PURE__ */ `cacheDir.catalogMode.cleanupUnusedCatalogs.dedupeDirectDeps.deployAllFiles.enablePrePostScripts.engineStrict.extendNodePath.hoist.hoistPattern.hoistWorkspacePackages.ignoreCompatibilityDb.ignoreDepScripts.ignoreScripts.ignoreWorkspaceRootCheck.managePackageManagerVersions.minimumReleaseAge.minimumReleaseAgeExclude.modulesDir.nodeLinker.nodeVersion.optimisticRepeatInstall.packageManagerStrict.packageManagerStrictVersion.preferSymlinkedExecutables.preferWorkspacePackages.publicHoistPattern.registrySupportsTimeField.requiredScripts.resolutionMode.savePrefix.scriptShell.shamefullyHoist.shellEmulator.stateDir.supportedArchitectures.symlink.tag.trustPolicy.trustPolicyExclude.updateNotifier.packages.overrides.patchedDependencies.catalog.catalogs.allowedDeprecatedVersions.allowNonAppliedPatches.configDependencies.ignoredBuiltDependencies.ignoredOptionalDependencies.neverBuiltDependencies.onlyBuiltDependencies.onlyBuiltDependenciesFile.packageExtensions.peerDependencyRules`.split(`.`),pathPattern:`^$`},{order:{type:`asc`},pathPattern:`.*`}],...n.overrides}}),a}function $(e={}){let t=[k(e.ignores)],n={css:O,imports:A,javascript:j,jsdoc:M,jsonc:P,markdown:I,node:ee,perfectionist:R,pnpm:B,stylistic:H,tailwind:W,typescript:G,unicorn:K,unusedImports:q,vitest:J,vue:X,yaml:Q,codeInMarkdown:E};for(let[r,i]of Object.entries(n)){let n=e[r],a=v(n??!0,{});a&&t.push(i(a))}let r=new y;return r=r.append(...t).renamePlugins({"@stylistic":`stylistic`,"@typescript-eslint":`typescript`,"better-tailwindcss":`tailwind`,"import-lite":`imports`,n:`node`,test:`vitest`,"vuejs-accessibility":`vue-a11y`,yml:`yaml`}),r}export{$ as defineConfig};
|