@unshared/eslint-config 0.5.0 → 0.6.1
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/chunks/{1KnRfv2g.d.ts → C0LH69I3.d.ts} +2 -1
- package/dist/configs.cjs +2 -1
- package/dist/configs.cjs.map +1 -1
- package/dist/configs.d.ts +2 -2
- package/dist/configs.js +2 -1
- package/dist/configs.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/utils.d.ts +2 -1
- package/package.json +26 -26
package/dist/configs.cjs
CHANGED
@@ -688,7 +688,7 @@ function typescript(options) {
|
|
688
688
|
}
|
689
689
|
function unicorn() {
|
690
690
|
return [
|
691
|
-
unicornPlugin.configs
|
691
|
+
unicornPlugin.configs.recommended,
|
692
692
|
{
|
693
693
|
rules: {
|
694
694
|
// --- Allow any kind of import style.
|
@@ -715,6 +715,7 @@ function unicorn() {
|
|
715
715
|
"unicorn/prevent-abbreviations": ["error", {
|
716
716
|
allowList: {
|
717
717
|
args: !0,
|
718
|
+
utils: !0,
|
718
719
|
dir: !0,
|
719
720
|
fn: !0,
|
720
721
|
i: !0,
|
package/dist/configs.cjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"configs.cjs","sources":["../configs/antfu.ts","../configs/eslintComments.ts","../configs/jsdoc.ts","../configs/json.ts","../configs/jsonPackage.ts","../configs/jsonTsconfig.ts","../configs/node.ts","../configs/sonarjs.ts","../configs/typescript.ts","../configs/unicorn.ts","../configs/vitest.ts","../configs/vue.ts","../configs/yml.ts","../configs/all.ts"],"sourcesContent":["import type { Linter } from 'eslint'\nimport pluginAntfu from 'eslint-plugin-antfu'\n\n/**\n * Anthony extended ESLint rules.\n *\n * @see https://github.com/antfu/eslint-plugin-antfu\n * @returns The configuration for antfu plugin.\n */\nexport function antfu(): Linter.Config[] {\n return [\n {\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n\n // --- Enforce consistent line breaks for chaining member access.\n 'antfu/consistent-chaining': 'error',\n\n // --- Enforce consistent line breaks inside braces of object/array/named imports/exports and function parameters.\n 'antfu/consistent-list-newline': 'error',\n\n // --- Deduplicate imports.\n 'antfu/import-dedupe': 'error',\n\n // --- Avoid importing from 'dist' directories.\n 'antfu/no-import-dist': 'error',\n\n // --- Enforce `export default` insteand of `export = {}`.\n 'antfu/no-ts-export-equal': 'error',\n\n // --- Enforce `function()` instead of `() => {}` for top-level functions.\n 'antfu/top-level-function': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport eslintCommentsPlugin from 'eslint-plugin-eslint-comments'\n\n/**\n * @returns The configuration for eslint-comments plugin.\n * @see https://mysticatea.github.io/eslint-plugin-eslint-comments/\n */\nexport function eslintComments(): Linter.Config[] {\n return [\n {\n plugins: {\n 'eslint-comments': eslintCommentsPlugin,\n },\n rules: {\n\n // --- Allow disable without having to enable again.\n 'eslint-comments/disable-enable-pair': 'off',\n\n // --- Disallow eslint-disable comments without rule names. This ensures that we cannot\n 'eslint-comments/no-aggregating-enable': 'error',\n\n // --- Disable must specify rule names.\n 'eslint-comments/no-unlimited-disable': 'error',\n\n // --- Prevent superfluous eslint comments.\n 'eslint-comments/no-duplicate-disable': 'error',\n 'eslint-comments/no-unused-disable': 'error',\n 'eslint-comments/no-unused-enable': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsdoc from 'eslint-plugin-jsdoc'\n\n/**\n * @returns Configuration for JSDoc ESLint rules.\n * @see https://github.com/gajus/eslint-plugin-jsdoc\n */\nexport function jsdoc(): Linter.Config[] {\n return [\n pluginJsdoc.configs['flat/recommended-typescript-error'],\n {\n files: [\n '**/*.{ts,mts,cts,tsx,d.ts}',\n '**/*.{js,mjs,cjs,jsx}',\n '**/*.vue',\n ],\n plugins: {\n jsdoc: pluginJsdoc,\n },\n rules: {\n\n // --- Redudant with TypeScript.\n 'jsdoc/require-jsdoc': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/require-returns-type': 'off',\n\n // --- Reports malformed JSDoc comments.\n 'jsdoc/no-bad-blocks': 'error',\n 'jsdoc/check-alignment': 'error',\n 'jsdoc/check-indentation': 'error',\n\n // --- Reports invalid block tag names.\n 'jsdoc/check-tag-names': ['error', { definedTags: ['category'] }],\n\n // --- Do not use hyphens before param descriptions.\n 'jsdoc/require-hyphen-before-param-description': ['error', 'never'],\n\n // --- Newline after description.\n 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsonc from 'eslint-plugin-jsonc'\n\n/**\n * @returns The configuration for JSON files.\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/\n */\nexport function json(): Linter.Config[] {\n return [\n ...pluginJsonc.configs['flat/recommended-with-json'],\n {\n rules: {\n\n // --- Automatically apply jsonc rules similar to your configured ESLint core rules to JSON.\n 'jsonc/auto': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `package.json` file.\n */\nexport function jsonPackage(): Linter.Config[] {\n return [\n {\n files: [\n '**/package.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'name',\n 'type',\n 'version',\n 'license',\n 'private',\n 'sideEffects',\n\n // --- Publishing\n 'description',\n 'author',\n 'keywords',\n 'bugs',\n 'funding',\n 'homepage',\n 'repository',\n\n // --- Distribution\n 'bin',\n 'main',\n 'module',\n 'types',\n 'typings',\n 'browser',\n 'exports',\n 'files',\n\n // --- Package Manager\n 'packageManager',\n 'pnpm',\n\n // --- Scripts\n 'scripts',\n\n // --- Dependencies\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'dependencies',\n 'devDependencies',\n 'bundledDependencies',\n 'bundleDependencies',\n\n // --- Config\n 'tsup',\n 'husky',\n 'lint-staged',\n 'eslintConfig',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies$',\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `tsconfig.json` file.\n */\nexport function jsonTsconfig(): Linter.Config[] {\n return [\n {\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n ],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^(includes|excludes)$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'extends',\n 'compilerOptions',\n 'references',\n 'files',\n 'include',\n 'exclude',\n ],\n pathPattern: '^$',\n },\n {\n order: [\n\n // --- Project Structure\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n\n // --- Language and Environment\n 'target',\n 'jsx',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'lib',\n 'moduleDetection',\n 'noLib',\n 'reactNamespace',\n 'useDefineForClassFields',\n 'emitDecoratorMetadata',\n 'experimentalDecorators',\n\n // --- Module Resolution\n 'baseUrl',\n 'rootDir',\n 'rootDirs',\n 'customConditions',\n 'module',\n 'moduleResolution',\n 'moduleSuffixes',\n 'noResolve',\n 'paths',\n 'resolveJsonModule',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'typeRoots',\n 'types',\n 'allowArbitraryExtensions',\n 'allowImportingTsExtensions',\n 'allowUmdGlobalAccess',\n\n // --- JavaScript Support\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n\n // --- Type Checking\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n\n // --- Emitting\n 'declaration',\n 'declarationDir',\n 'declarationMap',\n 'downlevelIteration',\n 'emitBOM',\n 'emitDeclarationOnly',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'inlineSourceMap',\n 'inlineSources',\n 'mapRoot',\n 'newLine',\n 'noEmit',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'outDir',\n 'outFile',\n 'preserveConstEnums',\n 'preserveValueImports',\n 'removeComments',\n 'sourceMap',\n 'sourceRoot',\n 'stripInternal',\n\n // --- Interop Constraints\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'forceConsistentCasingInFileNames',\n 'isolatedModules',\n 'preserveSymlinks',\n 'verbatimModuleSyntax',\n\n // --- Completeness\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n {\n order: { type: 'asc' },\n pathPattern: String.raw`^compilerOptions\\.paths$`,\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport nodePlugin from 'eslint-plugin-n'\n\nexport function node(): Linter.Config[] {\n return [\n nodePlugin.configs['flat/recommended'],\n {\n settings: {\n node: {\n version: '>=20.0.0',\n },\n },\n rules: {\n\n // --- Redundant with TypeScript module resolution.\n 'n/no-missing-import': 'off',\n 'n/no-missing-require': 'off',\n 'n/no-unpublished-import': 'off',\n\n // --- Enforce async functions over synchronous functions.\n 'n/no-sync': ['error', { allowAtRootLevel: true }],\n\n // --- Enforce the use of ECMAScript features.\n 'n/no-unsupported-features/es-syntax': 'error',\n 'n/no-unsupported-features/es-builtins': 'error',\n\n // --- Ignore experimental warnings.\n 'n/no-unsupported-features/node-builtins': 'off',\n\n // --- Prefer the use of global objects over built-in modules.\n 'n/prefer-global/buffer': 'error',\n 'n/prefer-global/console': 'error',\n 'n/prefer-global/process': 'error',\n 'n/prefer-global/text-decoder': 'error',\n 'n/prefer-global/text-encoder': 'error',\n 'n/prefer-global/url': 'error',\n 'n/prefer-global/url-search-params': 'error',\n\n // --- Prefer the use of the `node:` protocol for built-in modules.\n 'n/prefer-node-protocol': 'error',\n\n // --- Prefer the use of promises over callbacks.\n 'n/prefer-promises/fs': 'error',\n 'n/prefer-promises/dns': 'error',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable the no-sync rule for tests.\n 'n/no-sync': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginSonarjs from 'eslint-plugin-sonarjs'\n\n/**\n * @see https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md\n * @returns ESLint Config for SonarJS.\n */\nexport function sonarjs(): Linter.Config[] {\n return [\n pluginSonarjs.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Increase the default threshold to 30.\n 'sonarjs/cognitive-complexity': ['error', 30],\n\n // --- Increase the default threshold to 10.\n 'sonarjs/no-duplicate-string': ['error', { threshold: 10 }],\n\n // --- Disable unnecessary rules.\n 'sonarjs/use-type-alias': 'off',\n 'sonarjs/no-use-of-empty-return-value': 'off',\n 'sonarjs/no-nested-functions': 'off',\n\n // --- Disable rules that are already covered by TypeScript.\n 'sonarjs/no-extra-arguments': 'off',\n 'sonarjs/function-return-type': 'off',\n 'sonarjs/no-misused-promises': 'off',\n 'sonarjs/no-invariant-returns': 'off',\n 'sonarjs/no-unused-expressions': 'off',\n 'sonarjs/different-types-comparison': 'off',\n\n // --- Allow control characters in regex.\n 'sonarjs/sonar-no-control-regex': 'off',\n\n // --- Disable rules that are causing issues.\n 'sonarjs/disabled-resource-integrity': 'off',\n 'sonarjs/no-ignored-return': 'off',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'sonarjs/cognitive-complexity': 'off',\n 'sonarjs/no-duplicate-string': 'off',\n 'sonarjs/no-useless-constructor': 'off',\n 'sonarjs/public-static-readonly': 'off',\n },\n },\n ]\n}\n","import type { ESLint, Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport javascript from '@eslint/js'\nimport stylistic from '@stylistic/eslint-plugin'\nimport { toArray } from '@unshared/collection/toArray'\nimport perfectionist from 'eslint-plugin-perfectionist'\nimport tslint from 'typescript-eslint'\nimport { getConfigRules } from '../utils'\n\nexport function typescript(options: ESLintConfigOptions): Linter.Config[] {\n return [\n javascript.configs.recommended,\n // stylistic.configs['recommended-flat'],\n {\n languageOptions: {\n // @ts-expect-error: ignore\n parser: tslint.parser,\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: toArray(options.tsConfigPath ?? './tsconfig.json'),\n tsconfigRootDir: process.cwd(),\n },\n },\n plugins: {\n '@typescript-eslint': tslint.plugin as ESLint.Plugin,\n '@stylistic': stylistic as ESLint.Plugin,\n 'perfectionist': perfectionist,\n },\n files: [\n '**/*.{ts,tsx,cts,mts}',\n '**/*.{js,jsx,cjs,mjs}',\n '**/*.vue',\n ],\n rules: {\n\n /**\n * Inherit all recommended rules from the `@eslint/js` plugin. This is the base\n * configuration for JavaScript files.\n */\n ...getConfigRules(tslint.configs.recommendedTypeChecked),\n ...getConfigRules(tslint.configs.stylisticTypeChecked),\n\n // --- Enforce stroustrup brace style.\n 'brace-style': 'off',\n '@typescript-eslint/brace-style': 'off',\n '@stylistic/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n\n // --- Enforce 2 spaces for indentation and disallow tabs.\n 'no-tabs': 'off',\n 'indent': 'off',\n 'indent-binary-ops': 'off',\n '@typescript-eslint/no-tabs': 'off',\n '@typescript-eslint/indent': 'off',\n '@typescript-eslint/indent-binary-ops': 'off',\n '@stylistic/no-tabs': 'error',\n '@stylistic/indent': ['error', 2],\n '@stylistic/indent-binary-ops': ['error', 2],\n\n // --- No semicolons.\n 'semi': 'off',\n '@typescript-eslint/semi': 'off',\n '@stylistic/semi': ['error', 'never'],\n\n // --- Consistent line breaks.\n 'eol-last': 'off',\n 'no-multiple-empty-lines': 'off',\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 0 }],\n\n // --- Enforce dangling commas in multiline object literals.\n 'comma-dangle': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n '@stylistic/comma-dangle': ['error', 'always-multiline'],\n\n // --- Enforce type interfaces over type aliases.\n '@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],\n '@typescript-eslint/consistent-type-definitions': ['error', 'interface'],\n '@typescript-eslint/array-type': ['error', { default: 'array-simple', readonly: 'array-simple' }],\n\n // --- Enforce declaration and usage from top to bottom.\n 'no-use-before-define': 'off',\n '@typescript-eslint/no-use-before-define': ['error', {\n enums: true,\n classes: false,\n typedefs: true,\n variables: true,\n functions: false,\n ignoreTypeReferences: true,\n }],\n\n // --- Consistent spacing and line breaks between tokens.\n 'key-spacing': 'off',\n 'comma-spacing': 'off',\n 'block-spacing': 'off',\n 'arrow-spacing': 'off',\n 'spaced-comment': 'off',\n 'no-multi-spaces': 'off',\n 'space-before-blocks': 'off',\n 'lines-around-comment': 'off',\n 'object-curly-spacing': 'off',\n 'array-bracket-spacing': 'off',\n 'array-bracket-newline': 'off',\n 'function-call-spacing': 'off',\n 'generator-star-spacing': 'off',\n 'template-curly-spacing': 'off',\n 'object-property-newline ': 'off',\n 'newline-per-chained-call': 'off',\n 'computed-property-spacing': 'off',\n 'lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n '@typescript-eslint/type-annotation-spacing': 'off',\n '@typescript-eslint/lines-around-comment': 'off',\n\n '@stylistic/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n '@stylistic/comma-spacing': ['error', { after: true, before: false }],\n '@stylistic/arrow-spacing': ['error', { before: true, after: true }],\n '@stylistic/type-generic-spacing': 'error',\n '@stylistic/type-named-tuple-spacing': 'error',\n '@stylistic/block-spacing': ['error', 'always'],\n '@stylistic/no-multi-spaces': 'error',\n '@stylistic/keyword-spacing': ['error', { before: true, after: true }],\n '@stylistic/space-before-blocks': ['error', 'always'],\n '@stylistic/object-curly-spacing': ['error', 'always'],\n '@stylistic/array-bracket-spacing': ['error', 'never'],\n '@stylistic/array-bracket-newline': ['error', 'consistent'],\n '@stylistic/function-call-spacing': ['error', 'never'],\n '@stylistic/template-curly-spacing': ['error', 'never'],\n '@stylistic/member-delimiter-style': ['error', { multiline: { delimiter: 'none' } }],\n '@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: true }],\n '@stylistic/generator-star-spacing': ['error', { before: true, after: true }],\n '@stylistic/computed-property-spacing': ['error', 'never'],\n '@stylistic/multiline-ternary': ['error', 'always-multiline'],\n '@stylistic/lines-around-comment': ['error', {\n beforeBlockComment: true,\n beforeLineComment: true,\n ignorePattern: String.raw`^(?! ?---|\\*)`,\n applyDefaultIgnorePatterns: true,\n afterHashbangComment: true,\n }],\n '@stylistic/spaced-comment': ['error', 'always', {\n block: { markers: ['!'], exceptions: ['*'], balanced: true },\n line: { markers: ['/'], exceptions: ['/', '#'] },\n }],\n '@stylistic/lines-between-class-members': ['error', {\n enforce: [{ blankLine: 'always', prev: 'method', next: '*' }],\n }, {\n exceptAfterSingleLine: true,\n }],\n '@stylistic/type-annotation-spacing': ['error', {\n before: true,\n after: true,\n overrides: {\n arrow: { before: true, after: true },\n colon: { before: false, after: true },\n variable: { before: false, after: true },\n property: { before: false, after: true },\n parameter: { before: false, after: true },\n returnType: { before: false, after: true },\n },\n }],\n\n // --- Enforce `@ts-expect-error` over `@ts-ignore`.\n '@typescript-eslint/prefer-ts-expect-error': 'error',\n '@typescript-eslint/ban-ts-comment': ['error', {\n 'ts-check': false,\n 'ts-expect-error': 'allow-with-description',\n 'ts-ignore': false,\n 'ts-nocheck': false,\n }],\n\n /**\n * Disallow dangling expressions and promises. This rule aims to prevent\n * dangling promises and expressions that are not assigned to a variable.\n * This can lead to bugs and unexpected behavior in the codebase.\n *\n * @see https://eslint.org/docs/rules/no-void\n * @see https://typescript-eslint.io/rules/no-floating-promises\n */\n 'no-void': 'off',\n 'no-unused-expressions': 'off',\n '@typescript-eslint/no-unused-expressions': 'error',\n '@typescript-eslint/no-floating-promises': ['error', {\n ignoreVoid: true,\n ignoreIIFE: true,\n }],\n\n /**\n * Sort imports alphabetically and group them without newlines. This rule\n * aims to maintain consistency around the order of imports in JavaScript\n * files. Helps reduce the visual noise in the codebase.\n *\n * @see https://typescript-eslint.io/rules/consistent-type-imports\n * @see https://eslint-plugin-perfectionist.azat.io/rules/sort-imports\n */\n 'sort-imports': 'off',\n '@typescript-eslint/consistent-type-imports': ['error', {\n disallowTypeAnnotations: false,\n prefer: 'type-imports',\n fixStyle: 'separate-type-imports',\n }],\n 'perfectionist/sort-exports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-named-imports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-imports': ['error', {\n newlinesBetween: 'never',\n order: 'asc',\n ignoreCase: true,\n groups: [\n 'type',\n 'internal-type',\n ['parent-type', 'sibling-type', 'index-type'],\n ['builtin', 'external'],\n 'internal',\n ['parent', 'sibling', 'index'],\n 'object',\n 'unknown',\n ],\n }],\n\n /**\n * Sort types and union types alphabetically. This rule aims to maintain\n * consistency around the order of types in TypeScript files. Helps reduce\n * the visual noise in the codebase.\n *\n * @see https://perfectionist.dev/rules/sort-union-types\n */\n '@typescript-eslint/sort-type-constituents': 'off',\n 'perfectionist/sort-intersection-types': ['error', {\n type: 'natural',\n }],\n 'perfectionist/sort-union-types': ['error', {\n type: 'natural',\n ignoreCase: false,\n }],\n\n /**\n * Enforce no unused variables. Helps keep the codebase clean and reduces\n * the chance of bugs from side-effects.\n *\n * @see https://typescript-eslint.io/rules/@typescript-eslint/no-unused-vars\n */\n 'no-redeclare': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/no-redeclare': 'error',\n '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],\n\n //////////////////////////////////////////////////////////////////////////////////////////\n\n 'no-useless-constructor': 'off',\n '@typescript-eslint/ban-types': 'off',\n '@typescript-eslint/camelcase': 'off',\n '@typescript-eslint/explicit-function-return-type': 'off',\n '@typescript-eslint/explicit-member-accessibility': 'off',\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-namespace': 'off',\n '@typescript-eslint/no-non-null-assertion': 'off',\n '@typescript-eslint/no-parameter-properties': 'off',\n 'array-callback-return': 'error',\n 'arrow-body-style': ['error', 'as-needed'],\n 'arrow-parens': ['error', 'as-needed', { requireForBlockBody: true }],\n 'block-scoped-var': 'error',\n 'camelcase': 'off',\n 'comma-style': ['error', 'last'],\n 'complexity': ['off', 11],\n 'consistent-return': 'off',\n 'curly': ['error', 'multi-or-nest', 'consistent'],\n 'eqeqeq': ['error', 'smart'],\n 'no-alert': 'error',\n 'no-case-declarations': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-confusing-arrow': 'error',\n 'no-console': ['warn', { allow: ['warn', 'error'] }],\n 'no-constant-condition': 'error',\n 'no-debugger': 'error',\n 'no-eval': 'error',\n 'no-implied-eval': 'error',\n 'no-multi-str': 'error',\n 'no-param-reassign': 'off',\n 'no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'],\n 'no-return-assign': 'off',\n 'no-return-await': 'off',\n 'no-trailing-spaces': 'error',\n 'no-useless-escape': 'off',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': ['error', 'always', { avoidQuotes: true, ignoreConstructors: false }],\n 'one-var-declaration-per-line': 'error',\n 'operator-linebreak': ['error', 'before'],\n 'prefer-arrow-callback': ['error', { allowNamedFunctions: false, allowUnboundThis: true }],\n 'prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'quote-props': ['error', 'consistent-as-needed'],\n 'quotes': ['error', 'single'],\n 'require-await': 'off',\n 'space-before-function-paren': ['error', 'never'],\n 'vars-on-top': 'error',\n },\n },\n\n /**\n * Ignore duplicate imports in declaration files as they are often used to re-export\n * types from other packages into multiple namespaces. This is a common pattern\n * in TypeScript declaration files.\n */\n {\n files: ['*.d.ts'],\n rules: {\n '@typescript-eslint/no-use-before-define': 'off',\n 'import/no-duplicates': 'off',\n },\n },\n\n /**\n * Allow console statements in scripts and CLI files since they are not part of the\n * library / production code and are useful for debugging, logging, and testing.\n */\n {\n files: ['**/scripts/**/*', 'cli.*'],\n rules: {\n 'no-console': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport unicornPlugin from 'eslint-plugin-unicorn'\n\n/**\n * @returns ESLint Config for Unicorn.\n * @see https://github.com/sindresorhus/eslint-plugin-unicorn\n */\nexport function unicorn(): Linter.Config[] {\n return [\n unicornPlugin.configs['flat/recommended'],\n {\n rules: {\n\n // --- Allow any kind of import style.\n 'unicorn/import-style': 'off',\n\n // --- Improve regexes by making them shorter, consistent, and safer.\n 'unicorn/better-regex': 'error',\n\n // --- Use destructured variables over properties.\n 'unicorn/consistent-destructuring': 'error',\n\n // --- Enforce consistent function scoping except for arrow functions.\n 'unicorn/consistent-function-scoping': ['error', { checkArrowFunctions: false }],\n\n // --- Disable switch-case fallthrough.\n 'unicorn/prefer-switch': 'off',\n\n // --- Enforce camelCase & PascalCase in filenames. Exepct non TS/JS files.\n 'unicorn/filename-case': ['error', {\n multipleFileExtensions: false,\n cases: { camelCase: true, pascalCase: true },\n ignore: [/\\.json$/, /\\.md$/, /\\.yml$/, /\\.yaml$/],\n }],\n\n // --- Improve readability by using numeric separators.\n 'unicorn/numeric-separators-style': ['error', {\n onlyIfContainsSeparator: true,\n }],\n\n // --- Enforce long variable names when they are meaningful.\n 'unicorn/prevent-abbreviations': ['error', {\n allowList: {\n args: true,\n dir: true,\n fn: true,\n i: true,\n j: true,\n k: true,\n ref: true,\n Ref: true,\n props: true,\n Props: true,\n v: true,\n x: true,\n y: true,\n z: true,\n },\n }],\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'unicorn/no-null': 'off',\n 'unicorn/no-useless-undefined': 'off',\n 'unicorn/no-static-only-class': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport vitestPlugin from '@vitest/eslint-plugin'\n\nexport function vitest(): Linter.Config[] {\n return [\n // @ts-expect-error: the `configs` property is loosely typed.\n vitestPlugin.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Add the `expectTypeOf` function to the list of assert functions.\n 'vitest/expect-expect': ['error', {\n assertFunctionNames: ['expect', 'expectTypeOf'],\n }],\n\n // --- Enforce a single top-level describe block.\n 'vitest/require-top-level-describe': ['error', { maxNumberOfTopLevelDescribes: 1 }],\n\n // --- Enforce 'should' as the prefix for test titles.\n 'vitest/valid-title': ['error', {\n ignoreTypeOfDescribeName: true,\n mustMatch: { test: ['^should'] },\n }],\n\n // --- Prefer strict equality checks.\n 'vitest/prefer-to-be-truthy': 'off',\n 'vitest/prefer-to-be-falsy': 'off',\n\n /// --- Loosen the rules for test files.\n 'vitest/no-hooks': 'off',\n 'vitest/require-hook': 'off',\n 'vitest/no-conditional-in-test': 'off',\n 'vitest/no-conditional-tests': 'off',\n 'vitest/prefer-expect-assertions': 'off',\n 'vitest/padding-around-all': 'off',\n 'vitest/padding-around-expect-groups': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport { mergeProcessors } from 'eslint-merge-processors'\nimport vuePlugin from 'eslint-plugin-vue'\nimport vueProcessorBlocks from 'eslint-processor-vue-blocks'\nimport tslint from 'typescript-eslint'\nimport vueParser from 'vue-eslint-parser'\nimport { typescript } from './typescript'\n\nexport function vue(options: ESLintConfigOptions): Linter.Config[] {\n const TYPESCRIPT_CONFIG = typescript(options).at(1)!\n return [\n ...vuePlugin.configs['flat/recommended'],\n {\n plugins: {\n vue: vuePlugin,\n ...TYPESCRIPT_CONFIG.plugins,\n },\n languageOptions: {\n globals: {\n computed: 'readonly',\n defineEmits: 'readonly',\n defineExpose: 'readonly',\n defineProps: 'readonly',\n onMounted: 'readonly',\n onUnmounted: 'readonly',\n reactive: 'readonly',\n ref: 'readonly',\n shallowReactive: 'readonly',\n shallowRef: 'readonly',\n toRef: 'readonly',\n toRefs: 'readonly',\n watch: 'readonly',\n watchEffect: 'readonly',\n },\n parser: vueParser,\n parserOptions: {\n parser: tslint.parser,\n extraFileExtensions: ['.vue'],\n ...TYPESCRIPT_CONFIG.languageOptions!.parserOptions,\n },\n },\n processor: mergeProcessors([\n vuePlugin.processors.vue as Linter.Processor,\n vueProcessorBlocks(),\n ]),\n files: [\n '**/*.vue',\n '**/*.ts',\n ],\n rules: {\n 'vue/return-in-computed-property': 'off',\n\n // --- Allow multiple component definitions in a single file.\n 'vue/one-component-per-file': 'off',\n\n // --- Enforce Component API style.\n 'vue/prefer-define-options': 'error',\n 'vue/component-api-style': ['error', ['script-setup', 'composition']],\n\n // --- Enforce PascalCase components and allow reserved and single-word names.\n 'vue/multi-word-component-names': 'off',\n 'vue/no-reserved-component-names': 'off',\n 'vue/component-name-in-template-casing': ['error', 'PascalCase', {\n ignores: [String.raw`/\\./`],\n registeredComponentsOnly: false,\n }],\n\n // --- Consistent spacing around HTML comments.\n 'vue/html-comment-indent': ['error', 2],\n 'vue/multiline-html-element-content-newline': ['error', {\n allowEmptyLines: true,\n ignores: [],\n ignoreWhenEmpty: true,\n }],\n 'vue/html-comment-content-spacing': ['error', 'always'],\n 'vue/html-comment-content-newline': ['error', {\n multiline: 'always',\n singleline: 'never',\n }],\n\n // --- Consistent block order in Vue components.\n 'vue/block-order': ['error', { order: ['script', 'template', 'style', 'i18n'] }],\n\n // --- Consistent spacing in and around the block.\n 'vue/block-spacing': ['error', 'always'],\n 'vue/padding-line-between-blocks': ['error', 'always'],\n 'vue/padding-line-between-tags': ['error', [\n { blankLine: 'consistent', next: '*', prev: '*' },\n { blankLine: 'always', next: '*', prev: 'comment' },\n ]],\n\n /**\n * Enforce consistent spacing and newlines in the template. This rule helps\n * to maintain consistency and readability by enforcing a predictable\n *\n * @see https://eslint.vuejs.org/rules/html-indent.html\n * @see https://eslint.vuejs.org/rules/max-attributes-per-line.html\n * @see https://eslint.vuejs.org/rules/html-closing-bracket-newline.html\n */\n 'vue/html-indent': ['error', 2, {\n alignAttributesVertically: true,\n attribute: 1,\n baseIndent: 1,\n closeBracket: 0,\n ignores: [],\n }],\n\n // 'vue/func-call-spacing': ['off', 'never'],\n 'vue/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n 'vue/keyword-spacing': ['error', { after: true, before: true }],\n 'vue/max-attributes-per-line': ['error', {\n multiline: { max: 1 },\n singleline: { max: 5 },\n }],\n\n /**\n * Allow single-word component names. This rule is disabled because we use\n * pascal-casing to distinguish between components and HTML elements.\n *\n * @see https://eslint.vuejs.org/rules/multi-word-component-names.html\n */\n\n /**\n * Reports the destructuring or member expression of props passed to setup\n * causing the value to lose reactivity. This rule helps to avoid common\n * pitfalls when using the Composition API.\n *\n * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html\n */\n 'vue/no-setup-props-reactivity-loss': 'error',\n\n /**\n * Disallow v-if in v-for. This rule helps to avoid common pitfalls when\n * using v-if and v-for together in the same element.\n *\n * @see https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html\n */\n 'vue/no-use-v-if-with-v-for': 'error',\n\n /**\n * Enforce the declaration of emits in the setup function and warn on unused\n * emits declarations. This rule helps reduce the risk stale code.\n *\n * @see https://eslint.vuejs.org/rules/require-explicit-emits.html\n * @see https://eslint.vuejs.org/rules/no-unused-emit-declarations.html\n */\n 'vue/require-explicit-emits': 'error',\n\n /**\n * Enforce the `@` shorthand over `v-on:` and only allow inline callbacks.\n * This rule helps to maintain consistency and readability by enforcing a\n * predictable order of the event handlers in the component.\n *\n * @see https://eslint.vuejs.org/rules/v-on-style.html\n * @see https://eslint.vuejs.org/rules/v-on-handler-style.html\n */\n 'vue/v-on-style': ['error', 'shorthand'],\n 'vue/v-on-handler-style': ['error', 'inline-function'],\n\n /**\n * Sort the vue attributes in a consistent order. This rule helps to maintain\n * consistency and readability by enforcing a predictable order of the\n * attributes in the component.\n *\n * @see https://eslint.vuejs.org/rules/attributes-order.html\n */\n 'vue/attributes-order': ['error', {\n order: [\n 'DEFINITION',\n 'LIST_RENDERING',\n 'CONDITIONALS',\n 'RENDER_MODIFIERS',\n 'GLOBAL',\n ['UNIQUE', 'SLOT'],\n 'TWO_WAY_BINDING',\n 'OTHER_DIRECTIVES',\n 'OTHER_ATTR',\n 'EVENTS',\n 'CONTENT',\n ],\n alphabetical: false,\n }],\n\n /**\n * Enforce consistent spacing around attribute assignments. This ensures that\n * the code is easier to read and maintain.\n *\n * @see https://eslint.vuejs.org/rules/no-spaces-around-equal-signs-in-attribute.html\n */\n 'vue/no-spaces-around-equal-signs-in-attribute': 'error',\n 'vue/no-multi-spaces': 'error',\n\n /**\n * Enforce the use of the `ts` lang attribute in the script block. This rule\n * explicitly dissallows the use of the `js` lang attribute in the script.\n */\n 'vue/block-lang': ['error', {\n script: { lang: 'ts' },\n }],\n\n 'vue/no-sparse-arrays': 'error',\n 'vue/no-unused-emit-declarations': 'error',\n 'vue/no-use-v-else-with-v-for': 'error',\n 'vue/no-useless-v-bind': 'error',\n 'vue/no-v-html': 'off',\n 'vue/no-v-text-v-html-on-component': 'error',\n 'vue/object-curly-newline': ['error', { consistent: true, multiline: true }],\n 'vue/object-curly-spacing': ['error', 'always'],\n 'vue/object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'vue/operator-linebreak': ['error', 'before'],\n 'vue/prefer-import-from-vue': 'off',\n 'vue/prefer-separate-static-class': 'error',\n 'vue/prefer-template': 'error',\n 'vue/quote-props': ['error', 'consistent-as-needed'],\n 'vue/require-default-prop': 'off',\n // reactivity transform\n 'vue/block-tag-newline': ['error', {\n multiline: 'always',\n singleline: 'always',\n }],\n // extensions\n 'vue/array-bracket-spacing': ['error', 'never'],\n 'vue/arrow-spacing': ['error', { after: true, before: true }],\n 'vue/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n 'vue/comma-dangle': ['error', 'always-multiline'],\n 'vue/comma-spacing': ['error', { after: true, before: false }],\n 'vue/comma-style': ['error', 'last'],\n 'vue/component-options-name-casing': ['error', 'PascalCase'],\n 'vue/custom-event-name-casing': ['error', 'camelCase'],\n 'vue/define-macros-order': ['error', {\n order: ['defineProps', 'defineEmits'],\n }],\n 'vue/dot-location': ['error', 'property'],\n 'vue/dot-notation': ['error', { allowKeywords: true }],\n 'vue/eqeqeq': ['error', 'smart'],\n 'vue/first-attribute-linebreak': ['error', {\n multiline: 'below',\n singleline: 'beside',\n }],\n 'vue/html-closing-bracket-newline': ['error', {\n multiline: 'never',\n selfClosingTag: {\n multiline: 'always',\n singleline: 'never',\n },\n singleline: 'never',\n }],\n 'vue/no-constant-condition': 'warn',\n 'vue/no-empty-pattern': 'error',\n 'vue/no-extra-parens': ['error', 'functions'],\n 'vue/no-irregular-whitespace': 'error',\n 'vue/no-loss-of-precision': 'error',\n 'vue/no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n ],\n 'vue/no-restricted-v-bind': ['error', '/^v-/'],\n 'vue/require-prop-types': 'off',\n 'vue/space-in-parens': ['error', 'never'],\n 'vue/space-infix-ops': 'error',\n 'vue/space-unary-ops': ['error', { nonwords: false, words: true }],\n 'vue/template-curly-spacing': 'error',\n },\n },\n\n // --- Disable some TypeScript rules that may conflict with the Vue SFC parser.\n {\n files: [\n '**/*.vue',\n ],\n rules: {\n '@typescript-eslint/no-unsafe-call': 'off',\n '@typescript-eslint/no-unsafe-return': 'off',\n '@typescript-eslint/no-unsafe-argument': 'off',\n '@typescript-eslint/no-unsafe-assignment': 'off',\n '@typescript-eslint/no-unsafe-member-access': 'off',\n '@typescript-eslint/no-misused-promises': 'off',\n },\n },\n\n // --- Disable in test files.\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n 'vue/one-component-per-file': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginYml from 'eslint-plugin-yml'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/\n * @returns ESLint Config for YAML files.\n */\nexport function yml(): Linter.Config[] {\n return [\n ...pluginYml.configs['flat/standard'],\n ...pluginYml.configs['flat/recommended'],\n {\n rules: {\n\n // --- Force single quotes.\n 'yml/quotes': ['error', {\n avoidEscape: true,\n prefer: 'single',\n }],\n\n // --- Remove trailing zeros in numbers.\n 'yml/no-trailing-zeros': 'error',\n\n // --- Prevent empty keys.\n 'yml/require-string-key': 'error',\n\n // --- Prevent empty values or weird newlines in mappings.\n 'yml/block-mapping-colon-indicator-newline': 'error',\n\n // --- No more than one empty line.\n 'yml/no-multiple-empty-lines': ['error', {\n max: 1,\n maxBOF: 0,\n maxEOF: 0,\n }],\n\n // --- Sort environemnt variables alphabetically.\n 'yml/sort-sequence-values': ['error', {\n pathPattern: '^env$',\n order: { type: 'asc' },\n }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport { antfu } from './antfu'\nimport { eslintComments } from './eslintComments'\nimport { jsdoc } from './jsdoc'\nimport { json } from './json'\nimport { jsonPackage } from './jsonPackage'\nimport { jsonTsconfig } from './jsonTsconfig'\nimport { node } from './node'\nimport { sonarjs } from './sonarjs'\nimport { typescript } from './typescript'\nimport { unicorn } from './unicorn'\nimport { vitest } from './vitest'\nimport { vue } from './vue'\nimport { yml } from './yml'\n\nexport interface ESLintConfigOptions {\n tsConfigPath?: string | string[]\n rules?: Linter.RulesRecord\n}\n\nexport function all(options: ESLintConfigOptions = {}) {\n return [\n ...antfu(),\n ...eslintComments(),\n ...jsdoc(),\n ...json(),\n ...jsonPackage(),\n ...jsonTsconfig(),\n ...node(),\n ...sonarjs(),\n ...typescript(options),\n ...unicorn(),\n ...vitest(),\n ...vue(options),\n ...yml(),\n {\n ignores: [\n '**/dist',\n '**/bin',\n '**/node_modules',\n '**/.nuxt',\n '**/.output',\n '**/coverage',\n '**/public',\n '**/__wip__',\n '**/__snapshots__',\n '**/LICENSE*',\n '**/CHANGELOG*',\n 'packages-lock.json',\n 'pnpm-lock.yaml',\n 'yarn.lock',\n ],\n },\n ]\n}\n"],"names":["toArray","getConfigRules","mergeProcessors"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"configs.cjs","sources":["../configs/antfu.ts","../configs/eslintComments.ts","../configs/jsdoc.ts","../configs/json.ts","../configs/jsonPackage.ts","../configs/jsonTsconfig.ts","../configs/node.ts","../configs/sonarjs.ts","../configs/typescript.ts","../configs/unicorn.ts","../configs/vitest.ts","../configs/vue.ts","../configs/yml.ts","../configs/all.ts"],"sourcesContent":["import type { Linter } from 'eslint'\nimport pluginAntfu from 'eslint-plugin-antfu'\n\n/**\n * Anthony extended ESLint rules.\n *\n * @see https://github.com/antfu/eslint-plugin-antfu\n * @returns The configuration for antfu plugin.\n */\nexport function antfu(): Linter.Config[] {\n return [\n {\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n\n // --- Enforce consistent line breaks for chaining member access.\n 'antfu/consistent-chaining': 'error',\n\n // --- Enforce consistent line breaks inside braces of object/array/named imports/exports and function parameters.\n 'antfu/consistent-list-newline': 'error',\n\n // --- Deduplicate imports.\n 'antfu/import-dedupe': 'error',\n\n // --- Avoid importing from 'dist' directories.\n 'antfu/no-import-dist': 'error',\n\n // --- Enforce `export default` insteand of `export = {}`.\n 'antfu/no-ts-export-equal': 'error',\n\n // --- Enforce `function()` instead of `() => {}` for top-level functions.\n 'antfu/top-level-function': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport eslintCommentsPlugin from 'eslint-plugin-eslint-comments'\n\n/**\n * @returns The configuration for eslint-comments plugin.\n * @see https://mysticatea.github.io/eslint-plugin-eslint-comments/\n */\nexport function eslintComments(): Linter.Config[] {\n return [\n {\n plugins: {\n 'eslint-comments': eslintCommentsPlugin,\n },\n rules: {\n\n // --- Allow disable without having to enable again.\n 'eslint-comments/disable-enable-pair': 'off',\n\n // --- Disallow eslint-disable comments without rule names. This ensures that we cannot\n 'eslint-comments/no-aggregating-enable': 'error',\n\n // --- Disable must specify rule names.\n 'eslint-comments/no-unlimited-disable': 'error',\n\n // --- Prevent superfluous eslint comments.\n 'eslint-comments/no-duplicate-disable': 'error',\n 'eslint-comments/no-unused-disable': 'error',\n 'eslint-comments/no-unused-enable': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsdoc from 'eslint-plugin-jsdoc'\n\n/**\n * @returns Configuration for JSDoc ESLint rules.\n * @see https://github.com/gajus/eslint-plugin-jsdoc\n */\nexport function jsdoc(): Linter.Config[] {\n return [\n pluginJsdoc.configs['flat/recommended-typescript-error'],\n {\n files: [\n '**/*.{ts,mts,cts,tsx,d.ts}',\n '**/*.{js,mjs,cjs,jsx}',\n '**/*.vue',\n ],\n plugins: {\n jsdoc: pluginJsdoc,\n },\n rules: {\n\n // --- Redudant with TypeScript.\n 'jsdoc/require-jsdoc': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/require-returns-type': 'off',\n\n // --- Reports malformed JSDoc comments.\n 'jsdoc/no-bad-blocks': 'error',\n 'jsdoc/check-alignment': 'error',\n 'jsdoc/check-indentation': 'error',\n\n // --- Reports invalid block tag names.\n 'jsdoc/check-tag-names': ['error', { definedTags: ['category'] }],\n\n // --- Do not use hyphens before param descriptions.\n 'jsdoc/require-hyphen-before-param-description': ['error', 'never'],\n\n // --- Newline after description.\n 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsonc from 'eslint-plugin-jsonc'\n\n/**\n * @returns The configuration for JSON files.\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/\n */\nexport function json(): Linter.Config[] {\n return [\n ...pluginJsonc.configs['flat/recommended-with-json'],\n {\n rules: {\n\n // --- Automatically apply jsonc rules similar to your configured ESLint core rules to JSON.\n 'jsonc/auto': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `package.json` file.\n */\nexport function jsonPackage(): Linter.Config[] {\n return [\n {\n files: [\n '**/package.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'name',\n 'type',\n 'version',\n 'license',\n 'private',\n 'sideEffects',\n\n // --- Publishing\n 'description',\n 'author',\n 'keywords',\n 'bugs',\n 'funding',\n 'homepage',\n 'repository',\n\n // --- Distribution\n 'bin',\n 'main',\n 'module',\n 'types',\n 'typings',\n 'browser',\n 'exports',\n 'files',\n\n // --- Package Manager\n 'packageManager',\n 'pnpm',\n\n // --- Scripts\n 'scripts',\n\n // --- Dependencies\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'dependencies',\n 'devDependencies',\n 'bundledDependencies',\n 'bundleDependencies',\n\n // --- Config\n 'tsup',\n 'husky',\n 'lint-staged',\n 'eslintConfig',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies$',\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `tsconfig.json` file.\n */\nexport function jsonTsconfig(): Linter.Config[] {\n return [\n {\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n ],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^(includes|excludes)$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'extends',\n 'compilerOptions',\n 'references',\n 'files',\n 'include',\n 'exclude',\n ],\n pathPattern: '^$',\n },\n {\n order: [\n\n // --- Project Structure\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n\n // --- Language and Environment\n 'target',\n 'jsx',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'lib',\n 'moduleDetection',\n 'noLib',\n 'reactNamespace',\n 'useDefineForClassFields',\n 'emitDecoratorMetadata',\n 'experimentalDecorators',\n\n // --- Module Resolution\n 'baseUrl',\n 'rootDir',\n 'rootDirs',\n 'customConditions',\n 'module',\n 'moduleResolution',\n 'moduleSuffixes',\n 'noResolve',\n 'paths',\n 'resolveJsonModule',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'typeRoots',\n 'types',\n 'allowArbitraryExtensions',\n 'allowImportingTsExtensions',\n 'allowUmdGlobalAccess',\n\n // --- JavaScript Support\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n\n // --- Type Checking\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n\n // --- Emitting\n 'declaration',\n 'declarationDir',\n 'declarationMap',\n 'downlevelIteration',\n 'emitBOM',\n 'emitDeclarationOnly',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'inlineSourceMap',\n 'inlineSources',\n 'mapRoot',\n 'newLine',\n 'noEmit',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'outDir',\n 'outFile',\n 'preserveConstEnums',\n 'preserveValueImports',\n 'removeComments',\n 'sourceMap',\n 'sourceRoot',\n 'stripInternal',\n\n // --- Interop Constraints\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'forceConsistentCasingInFileNames',\n 'isolatedModules',\n 'preserveSymlinks',\n 'verbatimModuleSyntax',\n\n // --- Completeness\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n {\n order: { type: 'asc' },\n pathPattern: String.raw`^compilerOptions\\.paths$`,\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport nodePlugin from 'eslint-plugin-n'\n\nexport function node(): Linter.Config[] {\n return [\n nodePlugin.configs['flat/recommended'],\n {\n settings: {\n node: {\n version: '>=20.0.0',\n },\n },\n rules: {\n\n // --- Redundant with TypeScript module resolution.\n 'n/no-missing-import': 'off',\n 'n/no-missing-require': 'off',\n 'n/no-unpublished-import': 'off',\n\n // --- Enforce async functions over synchronous functions.\n 'n/no-sync': ['error', { allowAtRootLevel: true }],\n\n // --- Enforce the use of ECMAScript features.\n 'n/no-unsupported-features/es-syntax': 'error',\n 'n/no-unsupported-features/es-builtins': 'error',\n\n // --- Ignore experimental warnings.\n 'n/no-unsupported-features/node-builtins': 'off',\n\n // --- Prefer the use of global objects over built-in modules.\n 'n/prefer-global/buffer': 'error',\n 'n/prefer-global/console': 'error',\n 'n/prefer-global/process': 'error',\n 'n/prefer-global/text-decoder': 'error',\n 'n/prefer-global/text-encoder': 'error',\n 'n/prefer-global/url': 'error',\n 'n/prefer-global/url-search-params': 'error',\n\n // --- Prefer the use of the `node:` protocol for built-in modules.\n 'n/prefer-node-protocol': 'error',\n\n // --- Prefer the use of promises over callbacks.\n 'n/prefer-promises/fs': 'error',\n 'n/prefer-promises/dns': 'error',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable the no-sync rule for tests.\n 'n/no-sync': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginSonarjs from 'eslint-plugin-sonarjs'\n\n/**\n * @see https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md\n * @returns ESLint Config for SonarJS.\n */\nexport function sonarjs(): Linter.Config[] {\n return [\n pluginSonarjs.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Increase the default threshold to 30.\n 'sonarjs/cognitive-complexity': ['error', 30],\n\n // --- Increase the default threshold to 10.\n 'sonarjs/no-duplicate-string': ['error', { threshold: 10 }],\n\n // --- Disable unnecessary rules.\n 'sonarjs/use-type-alias': 'off',\n 'sonarjs/no-use-of-empty-return-value': 'off',\n 'sonarjs/no-nested-functions': 'off',\n\n // --- Disable rules that are already covered by TypeScript.\n 'sonarjs/no-extra-arguments': 'off',\n 'sonarjs/function-return-type': 'off',\n 'sonarjs/no-misused-promises': 'off',\n 'sonarjs/no-invariant-returns': 'off',\n 'sonarjs/no-unused-expressions': 'off',\n 'sonarjs/different-types-comparison': 'off',\n\n // --- Allow control characters in regex.\n 'sonarjs/sonar-no-control-regex': 'off',\n\n // --- Disable rules that are causing issues.\n 'sonarjs/disabled-resource-integrity': 'off',\n 'sonarjs/no-ignored-return': 'off',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'sonarjs/cognitive-complexity': 'off',\n 'sonarjs/no-duplicate-string': 'off',\n 'sonarjs/no-useless-constructor': 'off',\n 'sonarjs/public-static-readonly': 'off',\n },\n },\n ]\n}\n","import type { ESLint, Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport javascript from '@eslint/js'\nimport stylistic from '@stylistic/eslint-plugin'\nimport { toArray } from '@unshared/collection/toArray'\nimport perfectionist from 'eslint-plugin-perfectionist'\nimport tslint from 'typescript-eslint'\nimport { getConfigRules } from '../utils'\n\nexport function typescript(options: ESLintConfigOptions): Linter.Config[] {\n return [\n javascript.configs.recommended,\n // stylistic.configs['recommended-flat'],\n {\n languageOptions: {\n // @ts-expect-error: ignore\n parser: tslint.parser,\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: toArray(options.tsConfigPath ?? './tsconfig.json'),\n tsconfigRootDir: process.cwd(),\n },\n },\n plugins: {\n '@typescript-eslint': tslint.plugin as ESLint.Plugin,\n '@stylistic': stylistic as ESLint.Plugin,\n 'perfectionist': perfectionist,\n },\n files: [\n '**/*.{ts,tsx,cts,mts}',\n '**/*.{js,jsx,cjs,mjs}',\n '**/*.vue',\n ],\n rules: {\n\n /**\n * Inherit all recommended rules from the `@eslint/js` plugin. This is the base\n * configuration for JavaScript files.\n */\n ...getConfigRules(tslint.configs.recommendedTypeChecked),\n ...getConfigRules(tslint.configs.stylisticTypeChecked),\n\n // --- Enforce stroustrup brace style.\n 'brace-style': 'off',\n '@typescript-eslint/brace-style': 'off',\n '@stylistic/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n\n // --- Enforce 2 spaces for indentation and disallow tabs.\n 'no-tabs': 'off',\n 'indent': 'off',\n 'indent-binary-ops': 'off',\n '@typescript-eslint/no-tabs': 'off',\n '@typescript-eslint/indent': 'off',\n '@typescript-eslint/indent-binary-ops': 'off',\n '@stylistic/no-tabs': 'error',\n '@stylistic/indent': ['error', 2],\n '@stylistic/indent-binary-ops': ['error', 2],\n\n // --- No semicolons.\n 'semi': 'off',\n '@typescript-eslint/semi': 'off',\n '@stylistic/semi': ['error', 'never'],\n\n // --- Consistent line breaks.\n 'eol-last': 'off',\n 'no-multiple-empty-lines': 'off',\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 0 }],\n\n // --- Enforce dangling commas in multiline object literals.\n 'comma-dangle': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n '@stylistic/comma-dangle': ['error', 'always-multiline'],\n\n // --- Enforce type interfaces over type aliases.\n '@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],\n '@typescript-eslint/consistent-type-definitions': ['error', 'interface'],\n '@typescript-eslint/array-type': ['error', { default: 'array-simple', readonly: 'array-simple' }],\n\n // --- Enforce declaration and usage from top to bottom.\n 'no-use-before-define': 'off',\n '@typescript-eslint/no-use-before-define': ['error', {\n enums: true,\n classes: false,\n typedefs: true,\n variables: true,\n functions: false,\n ignoreTypeReferences: true,\n }],\n\n // --- Consistent spacing and line breaks between tokens.\n 'key-spacing': 'off',\n 'comma-spacing': 'off',\n 'block-spacing': 'off',\n 'arrow-spacing': 'off',\n 'spaced-comment': 'off',\n 'no-multi-spaces': 'off',\n 'space-before-blocks': 'off',\n 'lines-around-comment': 'off',\n 'object-curly-spacing': 'off',\n 'array-bracket-spacing': 'off',\n 'array-bracket-newline': 'off',\n 'function-call-spacing': 'off',\n 'generator-star-spacing': 'off',\n 'template-curly-spacing': 'off',\n 'object-property-newline ': 'off',\n 'newline-per-chained-call': 'off',\n 'computed-property-spacing': 'off',\n 'lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n '@typescript-eslint/type-annotation-spacing': 'off',\n '@typescript-eslint/lines-around-comment': 'off',\n\n '@stylistic/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n '@stylistic/comma-spacing': ['error', { after: true, before: false }],\n '@stylistic/arrow-spacing': ['error', { before: true, after: true }],\n '@stylistic/type-generic-spacing': 'error',\n '@stylistic/type-named-tuple-spacing': 'error',\n '@stylistic/block-spacing': ['error', 'always'],\n '@stylistic/no-multi-spaces': 'error',\n '@stylistic/keyword-spacing': ['error', { before: true, after: true }],\n '@stylistic/space-before-blocks': ['error', 'always'],\n '@stylistic/object-curly-spacing': ['error', 'always'],\n '@stylistic/array-bracket-spacing': ['error', 'never'],\n '@stylistic/array-bracket-newline': ['error', 'consistent'],\n '@stylistic/function-call-spacing': ['error', 'never'],\n '@stylistic/template-curly-spacing': ['error', 'never'],\n '@stylistic/member-delimiter-style': ['error', { multiline: { delimiter: 'none' } }],\n '@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: true }],\n '@stylistic/generator-star-spacing': ['error', { before: true, after: true }],\n '@stylistic/computed-property-spacing': ['error', 'never'],\n '@stylistic/multiline-ternary': ['error', 'always-multiline'],\n '@stylistic/lines-around-comment': ['error', {\n beforeBlockComment: true,\n beforeLineComment: true,\n ignorePattern: String.raw`^(?! ?---|\\*)`,\n applyDefaultIgnorePatterns: true,\n afterHashbangComment: true,\n }],\n '@stylistic/spaced-comment': ['error', 'always', {\n block: { markers: ['!'], exceptions: ['*'], balanced: true },\n line: { markers: ['/'], exceptions: ['/', '#'] },\n }],\n '@stylistic/lines-between-class-members': ['error', {\n enforce: [{ blankLine: 'always', prev: 'method', next: '*' }],\n }, {\n exceptAfterSingleLine: true,\n }],\n '@stylistic/type-annotation-spacing': ['error', {\n before: true,\n after: true,\n overrides: {\n arrow: { before: true, after: true },\n colon: { before: false, after: true },\n variable: { before: false, after: true },\n property: { before: false, after: true },\n parameter: { before: false, after: true },\n returnType: { before: false, after: true },\n },\n }],\n\n // --- Enforce `@ts-expect-error` over `@ts-ignore`.\n '@typescript-eslint/prefer-ts-expect-error': 'error',\n '@typescript-eslint/ban-ts-comment': ['error', {\n 'ts-check': false,\n 'ts-expect-error': 'allow-with-description',\n 'ts-ignore': false,\n 'ts-nocheck': false,\n }],\n\n /**\n * Disallow dangling expressions and promises. This rule aims to prevent\n * dangling promises and expressions that are not assigned to a variable.\n * This can lead to bugs and unexpected behavior in the codebase.\n *\n * @see https://eslint.org/docs/rules/no-void\n * @see https://typescript-eslint.io/rules/no-floating-promises\n */\n 'no-void': 'off',\n 'no-unused-expressions': 'off',\n '@typescript-eslint/no-unused-expressions': 'error',\n '@typescript-eslint/no-floating-promises': ['error', {\n ignoreVoid: true,\n ignoreIIFE: true,\n }],\n\n /**\n * Sort imports alphabetically and group them without newlines. This rule\n * aims to maintain consistency around the order of imports in JavaScript\n * files. Helps reduce the visual noise in the codebase.\n *\n * @see https://typescript-eslint.io/rules/consistent-type-imports\n * @see https://eslint-plugin-perfectionist.azat.io/rules/sort-imports\n */\n 'sort-imports': 'off',\n '@typescript-eslint/consistent-type-imports': ['error', {\n disallowTypeAnnotations: false,\n prefer: 'type-imports',\n fixStyle: 'separate-type-imports',\n }],\n 'perfectionist/sort-exports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-named-imports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-imports': ['error', {\n newlinesBetween: 'never',\n order: 'asc',\n ignoreCase: true,\n groups: [\n 'type',\n 'internal-type',\n ['parent-type', 'sibling-type', 'index-type'],\n ['builtin', 'external'],\n 'internal',\n ['parent', 'sibling', 'index'],\n 'object',\n 'unknown',\n ],\n }],\n\n /**\n * Sort types and union types alphabetically. This rule aims to maintain\n * consistency around the order of types in TypeScript files. Helps reduce\n * the visual noise in the codebase.\n *\n * @see https://perfectionist.dev/rules/sort-union-types\n */\n '@typescript-eslint/sort-type-constituents': 'off',\n 'perfectionist/sort-intersection-types': ['error', {\n type: 'natural',\n }],\n 'perfectionist/sort-union-types': ['error', {\n type: 'natural',\n ignoreCase: false,\n }],\n\n /**\n * Enforce no unused variables. Helps keep the codebase clean and reduces\n * the chance of bugs from side-effects.\n *\n * @see https://typescript-eslint.io/rules/@typescript-eslint/no-unused-vars\n */\n 'no-redeclare': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/no-redeclare': 'error',\n '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],\n\n //////////////////////////////////////////////////////////////////////////////////////////\n\n 'no-useless-constructor': 'off',\n '@typescript-eslint/ban-types': 'off',\n '@typescript-eslint/camelcase': 'off',\n '@typescript-eslint/explicit-function-return-type': 'off',\n '@typescript-eslint/explicit-member-accessibility': 'off',\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-namespace': 'off',\n '@typescript-eslint/no-non-null-assertion': 'off',\n '@typescript-eslint/no-parameter-properties': 'off',\n 'array-callback-return': 'error',\n 'arrow-body-style': ['error', 'as-needed'],\n 'arrow-parens': ['error', 'as-needed', { requireForBlockBody: true }],\n 'block-scoped-var': 'error',\n 'camelcase': 'off',\n 'comma-style': ['error', 'last'],\n 'complexity': ['off', 11],\n 'consistent-return': 'off',\n 'curly': ['error', 'multi-or-nest', 'consistent'],\n 'eqeqeq': ['error', 'smart'],\n 'no-alert': 'error',\n 'no-case-declarations': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-confusing-arrow': 'error',\n 'no-console': ['warn', { allow: ['warn', 'error'] }],\n 'no-constant-condition': 'error',\n 'no-debugger': 'error',\n 'no-eval': 'error',\n 'no-implied-eval': 'error',\n 'no-multi-str': 'error',\n 'no-param-reassign': 'off',\n 'no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'],\n 'no-return-assign': 'off',\n 'no-return-await': 'off',\n 'no-trailing-spaces': 'error',\n 'no-useless-escape': 'off',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': ['error', 'always', { avoidQuotes: true, ignoreConstructors: false }],\n 'one-var-declaration-per-line': 'error',\n 'operator-linebreak': ['error', 'before'],\n 'prefer-arrow-callback': ['error', { allowNamedFunctions: false, allowUnboundThis: true }],\n 'prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'quote-props': ['error', 'consistent-as-needed'],\n 'quotes': ['error', 'single'],\n 'require-await': 'off',\n 'space-before-function-paren': ['error', 'never'],\n 'vars-on-top': 'error',\n },\n },\n\n /**\n * Ignore duplicate imports in declaration files as they are often used to re-export\n * types from other packages into multiple namespaces. This is a common pattern\n * in TypeScript declaration files.\n */\n {\n files: ['*.d.ts'],\n rules: {\n '@typescript-eslint/no-use-before-define': 'off',\n 'import/no-duplicates': 'off',\n },\n },\n\n /**\n * Allow console statements in scripts and CLI files since they are not part of the\n * library / production code and are useful for debugging, logging, and testing.\n */\n {\n files: ['**/scripts/**/*', 'cli.*'],\n rules: {\n 'no-console': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport unicornPlugin from 'eslint-plugin-unicorn'\n\n/**\n * @returns ESLint Config for Unicorn.\n * @see https://github.com/sindresorhus/eslint-plugin-unicorn\n */\nexport function unicorn(): Linter.Config[] {\n return [\n unicornPlugin.configs.recommended,\n {\n rules: {\n\n // --- Allow any kind of import style.\n 'unicorn/import-style': 'off',\n\n // --- Improve regexes by making them shorter, consistent, and safer.\n 'unicorn/better-regex': 'error',\n\n // --- Use destructured variables over properties.\n 'unicorn/consistent-destructuring': 'error',\n\n // --- Enforce consistent function scoping except for arrow functions.\n 'unicorn/consistent-function-scoping': ['error', { checkArrowFunctions: false }],\n\n // --- Disable switch-case fallthrough.\n 'unicorn/prefer-switch': 'off',\n\n // --- Enforce camelCase & PascalCase in filenames. Exepct non TS/JS files.\n 'unicorn/filename-case': ['error', {\n multipleFileExtensions: false,\n cases: { camelCase: true, pascalCase: true },\n ignore: [/\\.json$/, /\\.md$/, /\\.yml$/, /\\.yaml$/],\n }],\n\n // --- Improve readability by using numeric separators.\n 'unicorn/numeric-separators-style': ['error', {\n onlyIfContainsSeparator: true,\n }],\n\n // --- Enforce long variable names when they are meaningful.\n 'unicorn/prevent-abbreviations': ['error', {\n allowList: {\n args: true,\n utils: true,\n dir: true,\n fn: true,\n i: true,\n j: true,\n k: true,\n ref: true,\n Ref: true,\n props: true,\n Props: true,\n v: true,\n x: true,\n y: true,\n z: true,\n },\n }],\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'unicorn/no-null': 'off',\n 'unicorn/no-useless-undefined': 'off',\n 'unicorn/no-static-only-class': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport vitestPlugin from '@vitest/eslint-plugin'\n\nexport function vitest(): Linter.Config[] {\n return [\n // @ts-expect-error: the `configs` property is loosely typed.\n vitestPlugin.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Add the `expectTypeOf` function to the list of assert functions.\n 'vitest/expect-expect': ['error', {\n assertFunctionNames: ['expect', 'expectTypeOf'],\n }],\n\n // --- Enforce a single top-level describe block.\n 'vitest/require-top-level-describe': ['error', { maxNumberOfTopLevelDescribes: 1 }],\n\n // --- Enforce 'should' as the prefix for test titles.\n 'vitest/valid-title': ['error', {\n ignoreTypeOfDescribeName: true,\n mustMatch: { test: ['^should'] },\n }],\n\n // --- Prefer strict equality checks.\n 'vitest/prefer-to-be-truthy': 'off',\n 'vitest/prefer-to-be-falsy': 'off',\n\n /// --- Loosen the rules for test files.\n 'vitest/no-hooks': 'off',\n 'vitest/require-hook': 'off',\n 'vitest/no-conditional-in-test': 'off',\n 'vitest/no-conditional-tests': 'off',\n 'vitest/prefer-expect-assertions': 'off',\n 'vitest/padding-around-all': 'off',\n 'vitest/padding-around-expect-groups': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport { mergeProcessors } from 'eslint-merge-processors'\nimport vuePlugin from 'eslint-plugin-vue'\nimport vueProcessorBlocks from 'eslint-processor-vue-blocks'\nimport tslint from 'typescript-eslint'\nimport vueParser from 'vue-eslint-parser'\nimport { typescript } from './typescript'\n\nexport function vue(options: ESLintConfigOptions): Linter.Config[] {\n const TYPESCRIPT_CONFIG = typescript(options).at(1)!\n return [\n ...vuePlugin.configs['flat/recommended'],\n {\n plugins: {\n vue: vuePlugin,\n ...TYPESCRIPT_CONFIG.plugins,\n },\n languageOptions: {\n globals: {\n computed: 'readonly',\n defineEmits: 'readonly',\n defineExpose: 'readonly',\n defineProps: 'readonly',\n onMounted: 'readonly',\n onUnmounted: 'readonly',\n reactive: 'readonly',\n ref: 'readonly',\n shallowReactive: 'readonly',\n shallowRef: 'readonly',\n toRef: 'readonly',\n toRefs: 'readonly',\n watch: 'readonly',\n watchEffect: 'readonly',\n },\n parser: vueParser,\n parserOptions: {\n parser: tslint.parser,\n extraFileExtensions: ['.vue'],\n ...TYPESCRIPT_CONFIG.languageOptions!.parserOptions,\n },\n },\n processor: mergeProcessors([\n vuePlugin.processors.vue as Linter.Processor,\n vueProcessorBlocks(),\n ]),\n files: [\n '**/*.vue',\n '**/*.ts',\n ],\n rules: {\n 'vue/return-in-computed-property': 'off',\n\n // --- Allow multiple component definitions in a single file.\n 'vue/one-component-per-file': 'off',\n\n // --- Enforce Component API style.\n 'vue/prefer-define-options': 'error',\n 'vue/component-api-style': ['error', ['script-setup', 'composition']],\n\n // --- Enforce PascalCase components and allow reserved and single-word names.\n 'vue/multi-word-component-names': 'off',\n 'vue/no-reserved-component-names': 'off',\n 'vue/component-name-in-template-casing': ['error', 'PascalCase', {\n ignores: [String.raw`/\\./`],\n registeredComponentsOnly: false,\n }],\n\n // --- Consistent spacing around HTML comments.\n 'vue/html-comment-indent': ['error', 2],\n 'vue/multiline-html-element-content-newline': ['error', {\n allowEmptyLines: true,\n ignores: [],\n ignoreWhenEmpty: true,\n }],\n 'vue/html-comment-content-spacing': ['error', 'always'],\n 'vue/html-comment-content-newline': ['error', {\n multiline: 'always',\n singleline: 'never',\n }],\n\n // --- Consistent block order in Vue components.\n 'vue/block-order': ['error', { order: ['script', 'template', 'style', 'i18n'] }],\n\n // --- Consistent spacing in and around the block.\n 'vue/block-spacing': ['error', 'always'],\n 'vue/padding-line-between-blocks': ['error', 'always'],\n 'vue/padding-line-between-tags': ['error', [\n { blankLine: 'consistent', next: '*', prev: '*' },\n { blankLine: 'always', next: '*', prev: 'comment' },\n ]],\n\n /**\n * Enforce consistent spacing and newlines in the template. This rule helps\n * to maintain consistency and readability by enforcing a predictable\n *\n * @see https://eslint.vuejs.org/rules/html-indent.html\n * @see https://eslint.vuejs.org/rules/max-attributes-per-line.html\n * @see https://eslint.vuejs.org/rules/html-closing-bracket-newline.html\n */\n 'vue/html-indent': ['error', 2, {\n alignAttributesVertically: true,\n attribute: 1,\n baseIndent: 1,\n closeBracket: 0,\n ignores: [],\n }],\n\n // 'vue/func-call-spacing': ['off', 'never'],\n 'vue/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n 'vue/keyword-spacing': ['error', { after: true, before: true }],\n 'vue/max-attributes-per-line': ['error', {\n multiline: { max: 1 },\n singleline: { max: 5 },\n }],\n\n /**\n * Allow single-word component names. This rule is disabled because we use\n * pascal-casing to distinguish between components and HTML elements.\n *\n * @see https://eslint.vuejs.org/rules/multi-word-component-names.html\n */\n\n /**\n * Reports the destructuring or member expression of props passed to setup\n * causing the value to lose reactivity. This rule helps to avoid common\n * pitfalls when using the Composition API.\n *\n * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html\n */\n 'vue/no-setup-props-reactivity-loss': 'error',\n\n /**\n * Disallow v-if in v-for. This rule helps to avoid common pitfalls when\n * using v-if and v-for together in the same element.\n *\n * @see https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html\n */\n 'vue/no-use-v-if-with-v-for': 'error',\n\n /**\n * Enforce the declaration of emits in the setup function and warn on unused\n * emits declarations. This rule helps reduce the risk stale code.\n *\n * @see https://eslint.vuejs.org/rules/require-explicit-emits.html\n * @see https://eslint.vuejs.org/rules/no-unused-emit-declarations.html\n */\n 'vue/require-explicit-emits': 'error',\n\n /**\n * Enforce the `@` shorthand over `v-on:` and only allow inline callbacks.\n * This rule helps to maintain consistency and readability by enforcing a\n * predictable order of the event handlers in the component.\n *\n * @see https://eslint.vuejs.org/rules/v-on-style.html\n * @see https://eslint.vuejs.org/rules/v-on-handler-style.html\n */\n 'vue/v-on-style': ['error', 'shorthand'],\n 'vue/v-on-handler-style': ['error', 'inline-function'],\n\n /**\n * Sort the vue attributes in a consistent order. This rule helps to maintain\n * consistency and readability by enforcing a predictable order of the\n * attributes in the component.\n *\n * @see https://eslint.vuejs.org/rules/attributes-order.html\n */\n 'vue/attributes-order': ['error', {\n order: [\n 'DEFINITION',\n 'LIST_RENDERING',\n 'CONDITIONALS',\n 'RENDER_MODIFIERS',\n 'GLOBAL',\n ['UNIQUE', 'SLOT'],\n 'TWO_WAY_BINDING',\n 'OTHER_DIRECTIVES',\n 'OTHER_ATTR',\n 'EVENTS',\n 'CONTENT',\n ],\n alphabetical: false,\n }],\n\n /**\n * Enforce consistent spacing around attribute assignments. This ensures that\n * the code is easier to read and maintain.\n *\n * @see https://eslint.vuejs.org/rules/no-spaces-around-equal-signs-in-attribute.html\n */\n 'vue/no-spaces-around-equal-signs-in-attribute': 'error',\n 'vue/no-multi-spaces': 'error',\n\n /**\n * Enforce the use of the `ts` lang attribute in the script block. This rule\n * explicitly dissallows the use of the `js` lang attribute in the script.\n */\n 'vue/block-lang': ['error', {\n script: { lang: 'ts' },\n }],\n\n 'vue/no-sparse-arrays': 'error',\n 'vue/no-unused-emit-declarations': 'error',\n 'vue/no-use-v-else-with-v-for': 'error',\n 'vue/no-useless-v-bind': 'error',\n 'vue/no-v-html': 'off',\n 'vue/no-v-text-v-html-on-component': 'error',\n 'vue/object-curly-newline': ['error', { consistent: true, multiline: true }],\n 'vue/object-curly-spacing': ['error', 'always'],\n 'vue/object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'vue/operator-linebreak': ['error', 'before'],\n 'vue/prefer-import-from-vue': 'off',\n 'vue/prefer-separate-static-class': 'error',\n 'vue/prefer-template': 'error',\n 'vue/quote-props': ['error', 'consistent-as-needed'],\n 'vue/require-default-prop': 'off',\n // reactivity transform\n 'vue/block-tag-newline': ['error', {\n multiline: 'always',\n singleline: 'always',\n }],\n // extensions\n 'vue/array-bracket-spacing': ['error', 'never'],\n 'vue/arrow-spacing': ['error', { after: true, before: true }],\n 'vue/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n 'vue/comma-dangle': ['error', 'always-multiline'],\n 'vue/comma-spacing': ['error', { after: true, before: false }],\n 'vue/comma-style': ['error', 'last'],\n 'vue/component-options-name-casing': ['error', 'PascalCase'],\n 'vue/custom-event-name-casing': ['error', 'camelCase'],\n 'vue/define-macros-order': ['error', {\n order: ['defineProps', 'defineEmits'],\n }],\n 'vue/dot-location': ['error', 'property'],\n 'vue/dot-notation': ['error', { allowKeywords: true }],\n 'vue/eqeqeq': ['error', 'smart'],\n 'vue/first-attribute-linebreak': ['error', {\n multiline: 'below',\n singleline: 'beside',\n }],\n 'vue/html-closing-bracket-newline': ['error', {\n multiline: 'never',\n selfClosingTag: {\n multiline: 'always',\n singleline: 'never',\n },\n singleline: 'never',\n }],\n 'vue/no-constant-condition': 'warn',\n 'vue/no-empty-pattern': 'error',\n 'vue/no-extra-parens': ['error', 'functions'],\n 'vue/no-irregular-whitespace': 'error',\n 'vue/no-loss-of-precision': 'error',\n 'vue/no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n ],\n 'vue/no-restricted-v-bind': ['error', '/^v-/'],\n 'vue/require-prop-types': 'off',\n 'vue/space-in-parens': ['error', 'never'],\n 'vue/space-infix-ops': 'error',\n 'vue/space-unary-ops': ['error', { nonwords: false, words: true }],\n 'vue/template-curly-spacing': 'error',\n },\n },\n\n // --- Disable some TypeScript rules that may conflict with the Vue SFC parser.\n {\n files: [\n '**/*.vue',\n ],\n rules: {\n '@typescript-eslint/no-unsafe-call': 'off',\n '@typescript-eslint/no-unsafe-return': 'off',\n '@typescript-eslint/no-unsafe-argument': 'off',\n '@typescript-eslint/no-unsafe-assignment': 'off',\n '@typescript-eslint/no-unsafe-member-access': 'off',\n '@typescript-eslint/no-misused-promises': 'off',\n },\n },\n\n // --- Disable in test files.\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n 'vue/one-component-per-file': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginYml from 'eslint-plugin-yml'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/\n * @returns ESLint Config for YAML files.\n */\nexport function yml(): Linter.Config[] {\n return [\n ...pluginYml.configs['flat/standard'],\n ...pluginYml.configs['flat/recommended'],\n {\n rules: {\n\n // --- Force single quotes.\n 'yml/quotes': ['error', {\n avoidEscape: true,\n prefer: 'single',\n }],\n\n // --- Remove trailing zeros in numbers.\n 'yml/no-trailing-zeros': 'error',\n\n // --- Prevent empty keys.\n 'yml/require-string-key': 'error',\n\n // --- Prevent empty values or weird newlines in mappings.\n 'yml/block-mapping-colon-indicator-newline': 'error',\n\n // --- No more than one empty line.\n 'yml/no-multiple-empty-lines': ['error', {\n max: 1,\n maxBOF: 0,\n maxEOF: 0,\n }],\n\n // --- Sort environemnt variables alphabetically.\n 'yml/sort-sequence-values': ['error', {\n pathPattern: '^env$',\n order: { type: 'asc' },\n }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport { antfu } from './antfu'\nimport { eslintComments } from './eslintComments'\nimport { jsdoc } from './jsdoc'\nimport { json } from './json'\nimport { jsonPackage } from './jsonPackage'\nimport { jsonTsconfig } from './jsonTsconfig'\nimport { node } from './node'\nimport { sonarjs } from './sonarjs'\nimport { typescript } from './typescript'\nimport { unicorn } from './unicorn'\nimport { vitest } from './vitest'\nimport { vue } from './vue'\nimport { yml } from './yml'\n\nexport interface ESLintConfigOptions {\n tsConfigPath?: string | string[]\n rules?: Linter.RulesRecord\n}\n\nexport function all(options: ESLintConfigOptions = {}) {\n return [\n ...antfu(),\n ...eslintComments(),\n ...jsdoc(),\n ...json(),\n ...jsonPackage(),\n ...jsonTsconfig(),\n ...node(),\n ...sonarjs(),\n ...typescript(options),\n ...unicorn(),\n ...vitest(),\n ...vue(options),\n ...yml(),\n {\n ignores: [\n '**/dist',\n '**/bin',\n '**/node_modules',\n '**/.nuxt',\n '**/.output',\n '**/coverage',\n '**/public',\n '**/__wip__',\n '**/__snapshots__',\n '**/LICENSE*',\n '**/CHANGELOG*',\n 'packages-lock.json',\n 'pnpm-lock.yaml',\n 'yarn.lock',\n ],\n },\n ]\n}\n"],"names":["toArray","getConfigRules","mergeProcessors"],"mappings":"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"}
|
package/dist/configs.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import { E as ESLintConfigOptions } from './chunks/
|
2
|
-
export { a as all } from './chunks/
|
1
|
+
import { E as ESLintConfigOptions } from './chunks/C0LH69I3.js';
|
2
|
+
export { a as all } from './chunks/C0LH69I3.js';
|
3
3
|
import { Linter } from 'eslint';
|
4
4
|
|
5
5
|
/**
|
package/dist/configs.js
CHANGED
@@ -705,7 +705,7 @@ function typescript(options) {
|
|
705
705
|
}
|
706
706
|
function unicorn() {
|
707
707
|
return [
|
708
|
-
unicornPlugin.configs
|
708
|
+
unicornPlugin.configs.recommended,
|
709
709
|
{
|
710
710
|
rules: {
|
711
711
|
// --- Allow any kind of import style.
|
@@ -732,6 +732,7 @@ function unicorn() {
|
|
732
732
|
"unicorn/prevent-abbreviations": ["error", {
|
733
733
|
allowList: {
|
734
734
|
args: !0,
|
735
|
+
utils: !0,
|
735
736
|
dir: !0,
|
736
737
|
fn: !0,
|
737
738
|
i: !0,
|
package/dist/configs.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"configs.js","sources":["../configs/antfu.ts","../configs/eslintComments.ts","../configs/jsdoc.ts","../configs/json.ts","../configs/jsonPackage.ts","../configs/jsonTsconfig.ts","../configs/node.ts","../configs/sonarjs.ts","../configs/typescript.ts","../configs/unicorn.ts","../configs/vitest.ts","../configs/vue.ts","../configs/yml.ts","../configs/all.ts"],"sourcesContent":["import type { Linter } from 'eslint'\nimport pluginAntfu from 'eslint-plugin-antfu'\n\n/**\n * Anthony extended ESLint rules.\n *\n * @see https://github.com/antfu/eslint-plugin-antfu\n * @returns The configuration for antfu plugin.\n */\nexport function antfu(): Linter.Config[] {\n return [\n {\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n\n // --- Enforce consistent line breaks for chaining member access.\n 'antfu/consistent-chaining': 'error',\n\n // --- Enforce consistent line breaks inside braces of object/array/named imports/exports and function parameters.\n 'antfu/consistent-list-newline': 'error',\n\n // --- Deduplicate imports.\n 'antfu/import-dedupe': 'error',\n\n // --- Avoid importing from 'dist' directories.\n 'antfu/no-import-dist': 'error',\n\n // --- Enforce `export default` insteand of `export = {}`.\n 'antfu/no-ts-export-equal': 'error',\n\n // --- Enforce `function()` instead of `() => {}` for top-level functions.\n 'antfu/top-level-function': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport eslintCommentsPlugin from 'eslint-plugin-eslint-comments'\n\n/**\n * @returns The configuration for eslint-comments plugin.\n * @see https://mysticatea.github.io/eslint-plugin-eslint-comments/\n */\nexport function eslintComments(): Linter.Config[] {\n return [\n {\n plugins: {\n 'eslint-comments': eslintCommentsPlugin,\n },\n rules: {\n\n // --- Allow disable without having to enable again.\n 'eslint-comments/disable-enable-pair': 'off',\n\n // --- Disallow eslint-disable comments without rule names. This ensures that we cannot\n 'eslint-comments/no-aggregating-enable': 'error',\n\n // --- Disable must specify rule names.\n 'eslint-comments/no-unlimited-disable': 'error',\n\n // --- Prevent superfluous eslint comments.\n 'eslint-comments/no-duplicate-disable': 'error',\n 'eslint-comments/no-unused-disable': 'error',\n 'eslint-comments/no-unused-enable': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsdoc from 'eslint-plugin-jsdoc'\n\n/**\n * @returns Configuration for JSDoc ESLint rules.\n * @see https://github.com/gajus/eslint-plugin-jsdoc\n */\nexport function jsdoc(): Linter.Config[] {\n return [\n pluginJsdoc.configs['flat/recommended-typescript-error'],\n {\n files: [\n '**/*.{ts,mts,cts,tsx,d.ts}',\n '**/*.{js,mjs,cjs,jsx}',\n '**/*.vue',\n ],\n plugins: {\n jsdoc: pluginJsdoc,\n },\n rules: {\n\n // --- Redudant with TypeScript.\n 'jsdoc/require-jsdoc': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/require-returns-type': 'off',\n\n // --- Reports malformed JSDoc comments.\n 'jsdoc/no-bad-blocks': 'error',\n 'jsdoc/check-alignment': 'error',\n 'jsdoc/check-indentation': 'error',\n\n // --- Reports invalid block tag names.\n 'jsdoc/check-tag-names': ['error', { definedTags: ['category'] }],\n\n // --- Do not use hyphens before param descriptions.\n 'jsdoc/require-hyphen-before-param-description': ['error', 'never'],\n\n // --- Newline after description.\n 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsonc from 'eslint-plugin-jsonc'\n\n/**\n * @returns The configuration for JSON files.\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/\n */\nexport function json(): Linter.Config[] {\n return [\n ...pluginJsonc.configs['flat/recommended-with-json'],\n {\n rules: {\n\n // --- Automatically apply jsonc rules similar to your configured ESLint core rules to JSON.\n 'jsonc/auto': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `package.json` file.\n */\nexport function jsonPackage(): Linter.Config[] {\n return [\n {\n files: [\n '**/package.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'name',\n 'type',\n 'version',\n 'license',\n 'private',\n 'sideEffects',\n\n // --- Publishing\n 'description',\n 'author',\n 'keywords',\n 'bugs',\n 'funding',\n 'homepage',\n 'repository',\n\n // --- Distribution\n 'bin',\n 'main',\n 'module',\n 'types',\n 'typings',\n 'browser',\n 'exports',\n 'files',\n\n // --- Package Manager\n 'packageManager',\n 'pnpm',\n\n // --- Scripts\n 'scripts',\n\n // --- Dependencies\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'dependencies',\n 'devDependencies',\n 'bundledDependencies',\n 'bundleDependencies',\n\n // --- Config\n 'tsup',\n 'husky',\n 'lint-staged',\n 'eslintConfig',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies$',\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `tsconfig.json` file.\n */\nexport function jsonTsconfig(): Linter.Config[] {\n return [\n {\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n ],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^(includes|excludes)$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'extends',\n 'compilerOptions',\n 'references',\n 'files',\n 'include',\n 'exclude',\n ],\n pathPattern: '^$',\n },\n {\n order: [\n\n // --- Project Structure\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n\n // --- Language and Environment\n 'target',\n 'jsx',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'lib',\n 'moduleDetection',\n 'noLib',\n 'reactNamespace',\n 'useDefineForClassFields',\n 'emitDecoratorMetadata',\n 'experimentalDecorators',\n\n // --- Module Resolution\n 'baseUrl',\n 'rootDir',\n 'rootDirs',\n 'customConditions',\n 'module',\n 'moduleResolution',\n 'moduleSuffixes',\n 'noResolve',\n 'paths',\n 'resolveJsonModule',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'typeRoots',\n 'types',\n 'allowArbitraryExtensions',\n 'allowImportingTsExtensions',\n 'allowUmdGlobalAccess',\n\n // --- JavaScript Support\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n\n // --- Type Checking\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n\n // --- Emitting\n 'declaration',\n 'declarationDir',\n 'declarationMap',\n 'downlevelIteration',\n 'emitBOM',\n 'emitDeclarationOnly',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'inlineSourceMap',\n 'inlineSources',\n 'mapRoot',\n 'newLine',\n 'noEmit',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'outDir',\n 'outFile',\n 'preserveConstEnums',\n 'preserveValueImports',\n 'removeComments',\n 'sourceMap',\n 'sourceRoot',\n 'stripInternal',\n\n // --- Interop Constraints\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'forceConsistentCasingInFileNames',\n 'isolatedModules',\n 'preserveSymlinks',\n 'verbatimModuleSyntax',\n\n // --- Completeness\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n {\n order: { type: 'asc' },\n pathPattern: String.raw`^compilerOptions\\.paths$`,\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport nodePlugin from 'eslint-plugin-n'\n\nexport function node(): Linter.Config[] {\n return [\n nodePlugin.configs['flat/recommended'],\n {\n settings: {\n node: {\n version: '>=20.0.0',\n },\n },\n rules: {\n\n // --- Redundant with TypeScript module resolution.\n 'n/no-missing-import': 'off',\n 'n/no-missing-require': 'off',\n 'n/no-unpublished-import': 'off',\n\n // --- Enforce async functions over synchronous functions.\n 'n/no-sync': ['error', { allowAtRootLevel: true }],\n\n // --- Enforce the use of ECMAScript features.\n 'n/no-unsupported-features/es-syntax': 'error',\n 'n/no-unsupported-features/es-builtins': 'error',\n\n // --- Ignore experimental warnings.\n 'n/no-unsupported-features/node-builtins': 'off',\n\n // --- Prefer the use of global objects over built-in modules.\n 'n/prefer-global/buffer': 'error',\n 'n/prefer-global/console': 'error',\n 'n/prefer-global/process': 'error',\n 'n/prefer-global/text-decoder': 'error',\n 'n/prefer-global/text-encoder': 'error',\n 'n/prefer-global/url': 'error',\n 'n/prefer-global/url-search-params': 'error',\n\n // --- Prefer the use of the `node:` protocol for built-in modules.\n 'n/prefer-node-protocol': 'error',\n\n // --- Prefer the use of promises over callbacks.\n 'n/prefer-promises/fs': 'error',\n 'n/prefer-promises/dns': 'error',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable the no-sync rule for tests.\n 'n/no-sync': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginSonarjs from 'eslint-plugin-sonarjs'\n\n/**\n * @see https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md\n * @returns ESLint Config for SonarJS.\n */\nexport function sonarjs(): Linter.Config[] {\n return [\n pluginSonarjs.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Increase the default threshold to 30.\n 'sonarjs/cognitive-complexity': ['error', 30],\n\n // --- Increase the default threshold to 10.\n 'sonarjs/no-duplicate-string': ['error', { threshold: 10 }],\n\n // --- Disable unnecessary rules.\n 'sonarjs/use-type-alias': 'off',\n 'sonarjs/no-use-of-empty-return-value': 'off',\n 'sonarjs/no-nested-functions': 'off',\n\n // --- Disable rules that are already covered by TypeScript.\n 'sonarjs/no-extra-arguments': 'off',\n 'sonarjs/function-return-type': 'off',\n 'sonarjs/no-misused-promises': 'off',\n 'sonarjs/no-invariant-returns': 'off',\n 'sonarjs/no-unused-expressions': 'off',\n 'sonarjs/different-types-comparison': 'off',\n\n // --- Allow control characters in regex.\n 'sonarjs/sonar-no-control-regex': 'off',\n\n // --- Disable rules that are causing issues.\n 'sonarjs/disabled-resource-integrity': 'off',\n 'sonarjs/no-ignored-return': 'off',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'sonarjs/cognitive-complexity': 'off',\n 'sonarjs/no-duplicate-string': 'off',\n 'sonarjs/no-useless-constructor': 'off',\n 'sonarjs/public-static-readonly': 'off',\n },\n },\n ]\n}\n","import type { ESLint, Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport javascript from '@eslint/js'\nimport stylistic from '@stylistic/eslint-plugin'\nimport { toArray } from '@unshared/collection/toArray'\nimport perfectionist from 'eslint-plugin-perfectionist'\nimport tslint from 'typescript-eslint'\nimport { getConfigRules } from '../utils'\n\nexport function typescript(options: ESLintConfigOptions): Linter.Config[] {\n return [\n javascript.configs.recommended,\n // stylistic.configs['recommended-flat'],\n {\n languageOptions: {\n // @ts-expect-error: ignore\n parser: tslint.parser,\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: toArray(options.tsConfigPath ?? './tsconfig.json'),\n tsconfigRootDir: process.cwd(),\n },\n },\n plugins: {\n '@typescript-eslint': tslint.plugin as ESLint.Plugin,\n '@stylistic': stylistic as ESLint.Plugin,\n 'perfectionist': perfectionist,\n },\n files: [\n '**/*.{ts,tsx,cts,mts}',\n '**/*.{js,jsx,cjs,mjs}',\n '**/*.vue',\n ],\n rules: {\n\n /**\n * Inherit all recommended rules from the `@eslint/js` plugin. This is the base\n * configuration for JavaScript files.\n */\n ...getConfigRules(tslint.configs.recommendedTypeChecked),\n ...getConfigRules(tslint.configs.stylisticTypeChecked),\n\n // --- Enforce stroustrup brace style.\n 'brace-style': 'off',\n '@typescript-eslint/brace-style': 'off',\n '@stylistic/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n\n // --- Enforce 2 spaces for indentation and disallow tabs.\n 'no-tabs': 'off',\n 'indent': 'off',\n 'indent-binary-ops': 'off',\n '@typescript-eslint/no-tabs': 'off',\n '@typescript-eslint/indent': 'off',\n '@typescript-eslint/indent-binary-ops': 'off',\n '@stylistic/no-tabs': 'error',\n '@stylistic/indent': ['error', 2],\n '@stylistic/indent-binary-ops': ['error', 2],\n\n // --- No semicolons.\n 'semi': 'off',\n '@typescript-eslint/semi': 'off',\n '@stylistic/semi': ['error', 'never'],\n\n // --- Consistent line breaks.\n 'eol-last': 'off',\n 'no-multiple-empty-lines': 'off',\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 0 }],\n\n // --- Enforce dangling commas in multiline object literals.\n 'comma-dangle': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n '@stylistic/comma-dangle': ['error', 'always-multiline'],\n\n // --- Enforce type interfaces over type aliases.\n '@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],\n '@typescript-eslint/consistent-type-definitions': ['error', 'interface'],\n '@typescript-eslint/array-type': ['error', { default: 'array-simple', readonly: 'array-simple' }],\n\n // --- Enforce declaration and usage from top to bottom.\n 'no-use-before-define': 'off',\n '@typescript-eslint/no-use-before-define': ['error', {\n enums: true,\n classes: false,\n typedefs: true,\n variables: true,\n functions: false,\n ignoreTypeReferences: true,\n }],\n\n // --- Consistent spacing and line breaks between tokens.\n 'key-spacing': 'off',\n 'comma-spacing': 'off',\n 'block-spacing': 'off',\n 'arrow-spacing': 'off',\n 'spaced-comment': 'off',\n 'no-multi-spaces': 'off',\n 'space-before-blocks': 'off',\n 'lines-around-comment': 'off',\n 'object-curly-spacing': 'off',\n 'array-bracket-spacing': 'off',\n 'array-bracket-newline': 'off',\n 'function-call-spacing': 'off',\n 'generator-star-spacing': 'off',\n 'template-curly-spacing': 'off',\n 'object-property-newline ': 'off',\n 'newline-per-chained-call': 'off',\n 'computed-property-spacing': 'off',\n 'lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n '@typescript-eslint/type-annotation-spacing': 'off',\n '@typescript-eslint/lines-around-comment': 'off',\n\n '@stylistic/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n '@stylistic/comma-spacing': ['error', { after: true, before: false }],\n '@stylistic/arrow-spacing': ['error', { before: true, after: true }],\n '@stylistic/type-generic-spacing': 'error',\n '@stylistic/type-named-tuple-spacing': 'error',\n '@stylistic/block-spacing': ['error', 'always'],\n '@stylistic/no-multi-spaces': 'error',\n '@stylistic/keyword-spacing': ['error', { before: true, after: true }],\n '@stylistic/space-before-blocks': ['error', 'always'],\n '@stylistic/object-curly-spacing': ['error', 'always'],\n '@stylistic/array-bracket-spacing': ['error', 'never'],\n '@stylistic/array-bracket-newline': ['error', 'consistent'],\n '@stylistic/function-call-spacing': ['error', 'never'],\n '@stylistic/template-curly-spacing': ['error', 'never'],\n '@stylistic/member-delimiter-style': ['error', { multiline: { delimiter: 'none' } }],\n '@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: true }],\n '@stylistic/generator-star-spacing': ['error', { before: true, after: true }],\n '@stylistic/computed-property-spacing': ['error', 'never'],\n '@stylistic/multiline-ternary': ['error', 'always-multiline'],\n '@stylistic/lines-around-comment': ['error', {\n beforeBlockComment: true,\n beforeLineComment: true,\n ignorePattern: String.raw`^(?! ?---|\\*)`,\n applyDefaultIgnorePatterns: true,\n afterHashbangComment: true,\n }],\n '@stylistic/spaced-comment': ['error', 'always', {\n block: { markers: ['!'], exceptions: ['*'], balanced: true },\n line: { markers: ['/'], exceptions: ['/', '#'] },\n }],\n '@stylistic/lines-between-class-members': ['error', {\n enforce: [{ blankLine: 'always', prev: 'method', next: '*' }],\n }, {\n exceptAfterSingleLine: true,\n }],\n '@stylistic/type-annotation-spacing': ['error', {\n before: true,\n after: true,\n overrides: {\n arrow: { before: true, after: true },\n colon: { before: false, after: true },\n variable: { before: false, after: true },\n property: { before: false, after: true },\n parameter: { before: false, after: true },\n returnType: { before: false, after: true },\n },\n }],\n\n // --- Enforce `@ts-expect-error` over `@ts-ignore`.\n '@typescript-eslint/prefer-ts-expect-error': 'error',\n '@typescript-eslint/ban-ts-comment': ['error', {\n 'ts-check': false,\n 'ts-expect-error': 'allow-with-description',\n 'ts-ignore': false,\n 'ts-nocheck': false,\n }],\n\n /**\n * Disallow dangling expressions and promises. This rule aims to prevent\n * dangling promises and expressions that are not assigned to a variable.\n * This can lead to bugs and unexpected behavior in the codebase.\n *\n * @see https://eslint.org/docs/rules/no-void\n * @see https://typescript-eslint.io/rules/no-floating-promises\n */\n 'no-void': 'off',\n 'no-unused-expressions': 'off',\n '@typescript-eslint/no-unused-expressions': 'error',\n '@typescript-eslint/no-floating-promises': ['error', {\n ignoreVoid: true,\n ignoreIIFE: true,\n }],\n\n /**\n * Sort imports alphabetically and group them without newlines. This rule\n * aims to maintain consistency around the order of imports in JavaScript\n * files. Helps reduce the visual noise in the codebase.\n *\n * @see https://typescript-eslint.io/rules/consistent-type-imports\n * @see https://eslint-plugin-perfectionist.azat.io/rules/sort-imports\n */\n 'sort-imports': 'off',\n '@typescript-eslint/consistent-type-imports': ['error', {\n disallowTypeAnnotations: false,\n prefer: 'type-imports',\n fixStyle: 'separate-type-imports',\n }],\n 'perfectionist/sort-exports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-named-imports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-imports': ['error', {\n newlinesBetween: 'never',\n order: 'asc',\n ignoreCase: true,\n groups: [\n 'type',\n 'internal-type',\n ['parent-type', 'sibling-type', 'index-type'],\n ['builtin', 'external'],\n 'internal',\n ['parent', 'sibling', 'index'],\n 'object',\n 'unknown',\n ],\n }],\n\n /**\n * Sort types and union types alphabetically. This rule aims to maintain\n * consistency around the order of types in TypeScript files. Helps reduce\n * the visual noise in the codebase.\n *\n * @see https://perfectionist.dev/rules/sort-union-types\n */\n '@typescript-eslint/sort-type-constituents': 'off',\n 'perfectionist/sort-intersection-types': ['error', {\n type: 'natural',\n }],\n 'perfectionist/sort-union-types': ['error', {\n type: 'natural',\n ignoreCase: false,\n }],\n\n /**\n * Enforce no unused variables. Helps keep the codebase clean and reduces\n * the chance of bugs from side-effects.\n *\n * @see https://typescript-eslint.io/rules/@typescript-eslint/no-unused-vars\n */\n 'no-redeclare': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/no-redeclare': 'error',\n '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],\n\n //////////////////////////////////////////////////////////////////////////////////////////\n\n 'no-useless-constructor': 'off',\n '@typescript-eslint/ban-types': 'off',\n '@typescript-eslint/camelcase': 'off',\n '@typescript-eslint/explicit-function-return-type': 'off',\n '@typescript-eslint/explicit-member-accessibility': 'off',\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-namespace': 'off',\n '@typescript-eslint/no-non-null-assertion': 'off',\n '@typescript-eslint/no-parameter-properties': 'off',\n 'array-callback-return': 'error',\n 'arrow-body-style': ['error', 'as-needed'],\n 'arrow-parens': ['error', 'as-needed', { requireForBlockBody: true }],\n 'block-scoped-var': 'error',\n 'camelcase': 'off',\n 'comma-style': ['error', 'last'],\n 'complexity': ['off', 11],\n 'consistent-return': 'off',\n 'curly': ['error', 'multi-or-nest', 'consistent'],\n 'eqeqeq': ['error', 'smart'],\n 'no-alert': 'error',\n 'no-case-declarations': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-confusing-arrow': 'error',\n 'no-console': ['warn', { allow: ['warn', 'error'] }],\n 'no-constant-condition': 'error',\n 'no-debugger': 'error',\n 'no-eval': 'error',\n 'no-implied-eval': 'error',\n 'no-multi-str': 'error',\n 'no-param-reassign': 'off',\n 'no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'],\n 'no-return-assign': 'off',\n 'no-return-await': 'off',\n 'no-trailing-spaces': 'error',\n 'no-useless-escape': 'off',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': ['error', 'always', { avoidQuotes: true, ignoreConstructors: false }],\n 'one-var-declaration-per-line': 'error',\n 'operator-linebreak': ['error', 'before'],\n 'prefer-arrow-callback': ['error', { allowNamedFunctions: false, allowUnboundThis: true }],\n 'prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'quote-props': ['error', 'consistent-as-needed'],\n 'quotes': ['error', 'single'],\n 'require-await': 'off',\n 'space-before-function-paren': ['error', 'never'],\n 'vars-on-top': 'error',\n },\n },\n\n /**\n * Ignore duplicate imports in declaration files as they are often used to re-export\n * types from other packages into multiple namespaces. This is a common pattern\n * in TypeScript declaration files.\n */\n {\n files: ['*.d.ts'],\n rules: {\n '@typescript-eslint/no-use-before-define': 'off',\n 'import/no-duplicates': 'off',\n },\n },\n\n /**\n * Allow console statements in scripts and CLI files since they are not part of the\n * library / production code and are useful for debugging, logging, and testing.\n */\n {\n files: ['**/scripts/**/*', 'cli.*'],\n rules: {\n 'no-console': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport unicornPlugin from 'eslint-plugin-unicorn'\n\n/**\n * @returns ESLint Config for Unicorn.\n * @see https://github.com/sindresorhus/eslint-plugin-unicorn\n */\nexport function unicorn(): Linter.Config[] {\n return [\n unicornPlugin.configs['flat/recommended'],\n {\n rules: {\n\n // --- Allow any kind of import style.\n 'unicorn/import-style': 'off',\n\n // --- Improve regexes by making them shorter, consistent, and safer.\n 'unicorn/better-regex': 'error',\n\n // --- Use destructured variables over properties.\n 'unicorn/consistent-destructuring': 'error',\n\n // --- Enforce consistent function scoping except for arrow functions.\n 'unicorn/consistent-function-scoping': ['error', { checkArrowFunctions: false }],\n\n // --- Disable switch-case fallthrough.\n 'unicorn/prefer-switch': 'off',\n\n // --- Enforce camelCase & PascalCase in filenames. Exepct non TS/JS files.\n 'unicorn/filename-case': ['error', {\n multipleFileExtensions: false,\n cases: { camelCase: true, pascalCase: true },\n ignore: [/\\.json$/, /\\.md$/, /\\.yml$/, /\\.yaml$/],\n }],\n\n // --- Improve readability by using numeric separators.\n 'unicorn/numeric-separators-style': ['error', {\n onlyIfContainsSeparator: true,\n }],\n\n // --- Enforce long variable names when they are meaningful.\n 'unicorn/prevent-abbreviations': ['error', {\n allowList: {\n args: true,\n dir: true,\n fn: true,\n i: true,\n j: true,\n k: true,\n ref: true,\n Ref: true,\n props: true,\n Props: true,\n v: true,\n x: true,\n y: true,\n z: true,\n },\n }],\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'unicorn/no-null': 'off',\n 'unicorn/no-useless-undefined': 'off',\n 'unicorn/no-static-only-class': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport vitestPlugin from '@vitest/eslint-plugin'\n\nexport function vitest(): Linter.Config[] {\n return [\n // @ts-expect-error: the `configs` property is loosely typed.\n vitestPlugin.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Add the `expectTypeOf` function to the list of assert functions.\n 'vitest/expect-expect': ['error', {\n assertFunctionNames: ['expect', 'expectTypeOf'],\n }],\n\n // --- Enforce a single top-level describe block.\n 'vitest/require-top-level-describe': ['error', { maxNumberOfTopLevelDescribes: 1 }],\n\n // --- Enforce 'should' as the prefix for test titles.\n 'vitest/valid-title': ['error', {\n ignoreTypeOfDescribeName: true,\n mustMatch: { test: ['^should'] },\n }],\n\n // --- Prefer strict equality checks.\n 'vitest/prefer-to-be-truthy': 'off',\n 'vitest/prefer-to-be-falsy': 'off',\n\n /// --- Loosen the rules for test files.\n 'vitest/no-hooks': 'off',\n 'vitest/require-hook': 'off',\n 'vitest/no-conditional-in-test': 'off',\n 'vitest/no-conditional-tests': 'off',\n 'vitest/prefer-expect-assertions': 'off',\n 'vitest/padding-around-all': 'off',\n 'vitest/padding-around-expect-groups': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport { mergeProcessors } from 'eslint-merge-processors'\nimport vuePlugin from 'eslint-plugin-vue'\nimport vueProcessorBlocks from 'eslint-processor-vue-blocks'\nimport tslint from 'typescript-eslint'\nimport vueParser from 'vue-eslint-parser'\nimport { typescript } from './typescript'\n\nexport function vue(options: ESLintConfigOptions): Linter.Config[] {\n const TYPESCRIPT_CONFIG = typescript(options).at(1)!\n return [\n ...vuePlugin.configs['flat/recommended'],\n {\n plugins: {\n vue: vuePlugin,\n ...TYPESCRIPT_CONFIG.plugins,\n },\n languageOptions: {\n globals: {\n computed: 'readonly',\n defineEmits: 'readonly',\n defineExpose: 'readonly',\n defineProps: 'readonly',\n onMounted: 'readonly',\n onUnmounted: 'readonly',\n reactive: 'readonly',\n ref: 'readonly',\n shallowReactive: 'readonly',\n shallowRef: 'readonly',\n toRef: 'readonly',\n toRefs: 'readonly',\n watch: 'readonly',\n watchEffect: 'readonly',\n },\n parser: vueParser,\n parserOptions: {\n parser: tslint.parser,\n extraFileExtensions: ['.vue'],\n ...TYPESCRIPT_CONFIG.languageOptions!.parserOptions,\n },\n },\n processor: mergeProcessors([\n vuePlugin.processors.vue as Linter.Processor,\n vueProcessorBlocks(),\n ]),\n files: [\n '**/*.vue',\n '**/*.ts',\n ],\n rules: {\n 'vue/return-in-computed-property': 'off',\n\n // --- Allow multiple component definitions in a single file.\n 'vue/one-component-per-file': 'off',\n\n // --- Enforce Component API style.\n 'vue/prefer-define-options': 'error',\n 'vue/component-api-style': ['error', ['script-setup', 'composition']],\n\n // --- Enforce PascalCase components and allow reserved and single-word names.\n 'vue/multi-word-component-names': 'off',\n 'vue/no-reserved-component-names': 'off',\n 'vue/component-name-in-template-casing': ['error', 'PascalCase', {\n ignores: [String.raw`/\\./`],\n registeredComponentsOnly: false,\n }],\n\n // --- Consistent spacing around HTML comments.\n 'vue/html-comment-indent': ['error', 2],\n 'vue/multiline-html-element-content-newline': ['error', {\n allowEmptyLines: true,\n ignores: [],\n ignoreWhenEmpty: true,\n }],\n 'vue/html-comment-content-spacing': ['error', 'always'],\n 'vue/html-comment-content-newline': ['error', {\n multiline: 'always',\n singleline: 'never',\n }],\n\n // --- Consistent block order in Vue components.\n 'vue/block-order': ['error', { order: ['script', 'template', 'style', 'i18n'] }],\n\n // --- Consistent spacing in and around the block.\n 'vue/block-spacing': ['error', 'always'],\n 'vue/padding-line-between-blocks': ['error', 'always'],\n 'vue/padding-line-between-tags': ['error', [\n { blankLine: 'consistent', next: '*', prev: '*' },\n { blankLine: 'always', next: '*', prev: 'comment' },\n ]],\n\n /**\n * Enforce consistent spacing and newlines in the template. This rule helps\n * to maintain consistency and readability by enforcing a predictable\n *\n * @see https://eslint.vuejs.org/rules/html-indent.html\n * @see https://eslint.vuejs.org/rules/max-attributes-per-line.html\n * @see https://eslint.vuejs.org/rules/html-closing-bracket-newline.html\n */\n 'vue/html-indent': ['error', 2, {\n alignAttributesVertically: true,\n attribute: 1,\n baseIndent: 1,\n closeBracket: 0,\n ignores: [],\n }],\n\n // 'vue/func-call-spacing': ['off', 'never'],\n 'vue/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n 'vue/keyword-spacing': ['error', { after: true, before: true }],\n 'vue/max-attributes-per-line': ['error', {\n multiline: { max: 1 },\n singleline: { max: 5 },\n }],\n\n /**\n * Allow single-word component names. This rule is disabled because we use\n * pascal-casing to distinguish between components and HTML elements.\n *\n * @see https://eslint.vuejs.org/rules/multi-word-component-names.html\n */\n\n /**\n * Reports the destructuring or member expression of props passed to setup\n * causing the value to lose reactivity. This rule helps to avoid common\n * pitfalls when using the Composition API.\n *\n * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html\n */\n 'vue/no-setup-props-reactivity-loss': 'error',\n\n /**\n * Disallow v-if in v-for. This rule helps to avoid common pitfalls when\n * using v-if and v-for together in the same element.\n *\n * @see https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html\n */\n 'vue/no-use-v-if-with-v-for': 'error',\n\n /**\n * Enforce the declaration of emits in the setup function and warn on unused\n * emits declarations. This rule helps reduce the risk stale code.\n *\n * @see https://eslint.vuejs.org/rules/require-explicit-emits.html\n * @see https://eslint.vuejs.org/rules/no-unused-emit-declarations.html\n */\n 'vue/require-explicit-emits': 'error',\n\n /**\n * Enforce the `@` shorthand over `v-on:` and only allow inline callbacks.\n * This rule helps to maintain consistency and readability by enforcing a\n * predictable order of the event handlers in the component.\n *\n * @see https://eslint.vuejs.org/rules/v-on-style.html\n * @see https://eslint.vuejs.org/rules/v-on-handler-style.html\n */\n 'vue/v-on-style': ['error', 'shorthand'],\n 'vue/v-on-handler-style': ['error', 'inline-function'],\n\n /**\n * Sort the vue attributes in a consistent order. This rule helps to maintain\n * consistency and readability by enforcing a predictable order of the\n * attributes in the component.\n *\n * @see https://eslint.vuejs.org/rules/attributes-order.html\n */\n 'vue/attributes-order': ['error', {\n order: [\n 'DEFINITION',\n 'LIST_RENDERING',\n 'CONDITIONALS',\n 'RENDER_MODIFIERS',\n 'GLOBAL',\n ['UNIQUE', 'SLOT'],\n 'TWO_WAY_BINDING',\n 'OTHER_DIRECTIVES',\n 'OTHER_ATTR',\n 'EVENTS',\n 'CONTENT',\n ],\n alphabetical: false,\n }],\n\n /**\n * Enforce consistent spacing around attribute assignments. This ensures that\n * the code is easier to read and maintain.\n *\n * @see https://eslint.vuejs.org/rules/no-spaces-around-equal-signs-in-attribute.html\n */\n 'vue/no-spaces-around-equal-signs-in-attribute': 'error',\n 'vue/no-multi-spaces': 'error',\n\n /**\n * Enforce the use of the `ts` lang attribute in the script block. This rule\n * explicitly dissallows the use of the `js` lang attribute in the script.\n */\n 'vue/block-lang': ['error', {\n script: { lang: 'ts' },\n }],\n\n 'vue/no-sparse-arrays': 'error',\n 'vue/no-unused-emit-declarations': 'error',\n 'vue/no-use-v-else-with-v-for': 'error',\n 'vue/no-useless-v-bind': 'error',\n 'vue/no-v-html': 'off',\n 'vue/no-v-text-v-html-on-component': 'error',\n 'vue/object-curly-newline': ['error', { consistent: true, multiline: true }],\n 'vue/object-curly-spacing': ['error', 'always'],\n 'vue/object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'vue/operator-linebreak': ['error', 'before'],\n 'vue/prefer-import-from-vue': 'off',\n 'vue/prefer-separate-static-class': 'error',\n 'vue/prefer-template': 'error',\n 'vue/quote-props': ['error', 'consistent-as-needed'],\n 'vue/require-default-prop': 'off',\n // reactivity transform\n 'vue/block-tag-newline': ['error', {\n multiline: 'always',\n singleline: 'always',\n }],\n // extensions\n 'vue/array-bracket-spacing': ['error', 'never'],\n 'vue/arrow-spacing': ['error', { after: true, before: true }],\n 'vue/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n 'vue/comma-dangle': ['error', 'always-multiline'],\n 'vue/comma-spacing': ['error', { after: true, before: false }],\n 'vue/comma-style': ['error', 'last'],\n 'vue/component-options-name-casing': ['error', 'PascalCase'],\n 'vue/custom-event-name-casing': ['error', 'camelCase'],\n 'vue/define-macros-order': ['error', {\n order: ['defineProps', 'defineEmits'],\n }],\n 'vue/dot-location': ['error', 'property'],\n 'vue/dot-notation': ['error', { allowKeywords: true }],\n 'vue/eqeqeq': ['error', 'smart'],\n 'vue/first-attribute-linebreak': ['error', {\n multiline: 'below',\n singleline: 'beside',\n }],\n 'vue/html-closing-bracket-newline': ['error', {\n multiline: 'never',\n selfClosingTag: {\n multiline: 'always',\n singleline: 'never',\n },\n singleline: 'never',\n }],\n 'vue/no-constant-condition': 'warn',\n 'vue/no-empty-pattern': 'error',\n 'vue/no-extra-parens': ['error', 'functions'],\n 'vue/no-irregular-whitespace': 'error',\n 'vue/no-loss-of-precision': 'error',\n 'vue/no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n ],\n 'vue/no-restricted-v-bind': ['error', '/^v-/'],\n 'vue/require-prop-types': 'off',\n 'vue/space-in-parens': ['error', 'never'],\n 'vue/space-infix-ops': 'error',\n 'vue/space-unary-ops': ['error', { nonwords: false, words: true }],\n 'vue/template-curly-spacing': 'error',\n },\n },\n\n // --- Disable some TypeScript rules that may conflict with the Vue SFC parser.\n {\n files: [\n '**/*.vue',\n ],\n rules: {\n '@typescript-eslint/no-unsafe-call': 'off',\n '@typescript-eslint/no-unsafe-return': 'off',\n '@typescript-eslint/no-unsafe-argument': 'off',\n '@typescript-eslint/no-unsafe-assignment': 'off',\n '@typescript-eslint/no-unsafe-member-access': 'off',\n '@typescript-eslint/no-misused-promises': 'off',\n },\n },\n\n // --- Disable in test files.\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n 'vue/one-component-per-file': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginYml from 'eslint-plugin-yml'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/\n * @returns ESLint Config for YAML files.\n */\nexport function yml(): Linter.Config[] {\n return [\n ...pluginYml.configs['flat/standard'],\n ...pluginYml.configs['flat/recommended'],\n {\n rules: {\n\n // --- Force single quotes.\n 'yml/quotes': ['error', {\n avoidEscape: true,\n prefer: 'single',\n }],\n\n // --- Remove trailing zeros in numbers.\n 'yml/no-trailing-zeros': 'error',\n\n // --- Prevent empty keys.\n 'yml/require-string-key': 'error',\n\n // --- Prevent empty values or weird newlines in mappings.\n 'yml/block-mapping-colon-indicator-newline': 'error',\n\n // --- No more than one empty line.\n 'yml/no-multiple-empty-lines': ['error', {\n max: 1,\n maxBOF: 0,\n maxEOF: 0,\n }],\n\n // --- Sort environemnt variables alphabetically.\n 'yml/sort-sequence-values': ['error', {\n pathPattern: '^env$',\n order: { type: 'asc' },\n }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport { antfu } from './antfu'\nimport { eslintComments } from './eslintComments'\nimport { jsdoc } from './jsdoc'\nimport { json } from './json'\nimport { jsonPackage } from './jsonPackage'\nimport { jsonTsconfig } from './jsonTsconfig'\nimport { node } from './node'\nimport { sonarjs } from './sonarjs'\nimport { typescript } from './typescript'\nimport { unicorn } from './unicorn'\nimport { vitest } from './vitest'\nimport { vue } from './vue'\nimport { yml } from './yml'\n\nexport interface ESLintConfigOptions {\n tsConfigPath?: string | string[]\n rules?: Linter.RulesRecord\n}\n\nexport function all(options: ESLintConfigOptions = {}) {\n return [\n ...antfu(),\n ...eslintComments(),\n ...jsdoc(),\n ...json(),\n ...jsonPackage(),\n ...jsonTsconfig(),\n ...node(),\n ...sonarjs(),\n ...typescript(options),\n ...unicorn(),\n ...vitest(),\n ...vue(options),\n ...yml(),\n {\n ignores: [\n '**/dist',\n '**/bin',\n '**/node_modules',\n '**/.nuxt',\n '**/.output',\n '**/coverage',\n '**/public',\n '**/__wip__',\n '**/__snapshots__',\n '**/LICENSE*',\n '**/CHANGELOG*',\n 'packages-lock.json',\n 'pnpm-lock.yaml',\n 'yarn.lock',\n ],\n },\n ]\n}\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"configs.js","sources":["../configs/antfu.ts","../configs/eslintComments.ts","../configs/jsdoc.ts","../configs/json.ts","../configs/jsonPackage.ts","../configs/jsonTsconfig.ts","../configs/node.ts","../configs/sonarjs.ts","../configs/typescript.ts","../configs/unicorn.ts","../configs/vitest.ts","../configs/vue.ts","../configs/yml.ts","../configs/all.ts"],"sourcesContent":["import type { Linter } from 'eslint'\nimport pluginAntfu from 'eslint-plugin-antfu'\n\n/**\n * Anthony extended ESLint rules.\n *\n * @see https://github.com/antfu/eslint-plugin-antfu\n * @returns The configuration for antfu plugin.\n */\nexport function antfu(): Linter.Config[] {\n return [\n {\n plugins: {\n antfu: pluginAntfu,\n },\n rules: {\n\n // --- Enforce consistent line breaks for chaining member access.\n 'antfu/consistent-chaining': 'error',\n\n // --- Enforce consistent line breaks inside braces of object/array/named imports/exports and function parameters.\n 'antfu/consistent-list-newline': 'error',\n\n // --- Deduplicate imports.\n 'antfu/import-dedupe': 'error',\n\n // --- Avoid importing from 'dist' directories.\n 'antfu/no-import-dist': 'error',\n\n // --- Enforce `export default` insteand of `export = {}`.\n 'antfu/no-ts-export-equal': 'error',\n\n // --- Enforce `function()` instead of `() => {}` for top-level functions.\n 'antfu/top-level-function': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport eslintCommentsPlugin from 'eslint-plugin-eslint-comments'\n\n/**\n * @returns The configuration for eslint-comments plugin.\n * @see https://mysticatea.github.io/eslint-plugin-eslint-comments/\n */\nexport function eslintComments(): Linter.Config[] {\n return [\n {\n plugins: {\n 'eslint-comments': eslintCommentsPlugin,\n },\n rules: {\n\n // --- Allow disable without having to enable again.\n 'eslint-comments/disable-enable-pair': 'off',\n\n // --- Disallow eslint-disable comments without rule names. This ensures that we cannot\n 'eslint-comments/no-aggregating-enable': 'error',\n\n // --- Disable must specify rule names.\n 'eslint-comments/no-unlimited-disable': 'error',\n\n // --- Prevent superfluous eslint comments.\n 'eslint-comments/no-duplicate-disable': 'error',\n 'eslint-comments/no-unused-disable': 'error',\n 'eslint-comments/no-unused-enable': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsdoc from 'eslint-plugin-jsdoc'\n\n/**\n * @returns Configuration for JSDoc ESLint rules.\n * @see https://github.com/gajus/eslint-plugin-jsdoc\n */\nexport function jsdoc(): Linter.Config[] {\n return [\n pluginJsdoc.configs['flat/recommended-typescript-error'],\n {\n files: [\n '**/*.{ts,mts,cts,tsx,d.ts}',\n '**/*.{js,mjs,cjs,jsx}',\n '**/*.vue',\n ],\n plugins: {\n jsdoc: pluginJsdoc,\n },\n rules: {\n\n // --- Redudant with TypeScript.\n 'jsdoc/require-jsdoc': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/require-returns-type': 'off',\n\n // --- Reports malformed JSDoc comments.\n 'jsdoc/no-bad-blocks': 'error',\n 'jsdoc/check-alignment': 'error',\n 'jsdoc/check-indentation': 'error',\n\n // --- Reports invalid block tag names.\n 'jsdoc/check-tag-names': ['error', { definedTags: ['category'] }],\n\n // --- Do not use hyphens before param descriptions.\n 'jsdoc/require-hyphen-before-param-description': ['error', 'never'],\n\n // --- Newline after description.\n 'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginJsonc from 'eslint-plugin-jsonc'\n\n/**\n * @returns The configuration for JSON files.\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/\n */\nexport function json(): Linter.Config[] {\n return [\n ...pluginJsonc.configs['flat/recommended-with-json'],\n {\n rules: {\n\n // --- Automatically apply jsonc rules similar to your configured ESLint core rules to JSON.\n 'jsonc/auto': 'error',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `package.json` file.\n */\nexport function jsonPackage(): Linter.Config[] {\n return [\n {\n files: [\n '**/package.json',\n ],\n rules: {\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'name',\n 'type',\n 'version',\n 'license',\n 'private',\n 'sideEffects',\n\n // --- Publishing\n 'description',\n 'author',\n 'keywords',\n 'bugs',\n 'funding',\n 'homepage',\n 'repository',\n\n // --- Distribution\n 'bin',\n 'main',\n 'module',\n 'types',\n 'typings',\n 'browser',\n 'exports',\n 'files',\n\n // --- Package Manager\n 'packageManager',\n 'pnpm',\n\n // --- Scripts\n 'scripts',\n\n // --- Dependencies\n 'peerDependencies',\n 'peerDependenciesMeta',\n 'optionalDependencies',\n 'dependencies',\n 'devDependencies',\n 'bundledDependencies',\n 'bundleDependencies',\n\n // --- Config\n 'tsup',\n 'husky',\n 'lint-staged',\n 'eslintConfig',\n ],\n pathPattern: '^$',\n },\n {\n order: { type: 'asc' },\n pathPattern: '^(?:dev|peer|optional|bundled)?[Dd]ependencies$',\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-jsonc/rules/sort-keys.html\n * @returns The ESLint configuration for strandardizing the `tsconfig.json` file.\n */\nexport function jsonTsconfig(): Linter.Config[] {\n return [\n {\n files: [\n '**/tsconfig.json',\n '**/tsconfig.*.json',\n ],\n rules: {\n 'jsonc/sort-array-values': [\n 'error',\n {\n order: { type: 'asc' },\n pathPattern: '^(includes|excludes)$',\n },\n ],\n 'jsonc/sort-keys': [\n 'error',\n {\n order: [\n 'extends',\n 'compilerOptions',\n 'references',\n 'files',\n 'include',\n 'exclude',\n ],\n pathPattern: '^$',\n },\n {\n order: [\n\n // --- Project Structure\n 'incremental',\n 'composite',\n 'tsBuildInfoFile',\n 'disableSourceOfProjectReferenceRedirect',\n 'disableSolutionSearching',\n 'disableReferencedProjectLoad',\n\n // --- Language and Environment\n 'target',\n 'jsx',\n 'jsxFactory',\n 'jsxFragmentFactory',\n 'jsxImportSource',\n 'lib',\n 'moduleDetection',\n 'noLib',\n 'reactNamespace',\n 'useDefineForClassFields',\n 'emitDecoratorMetadata',\n 'experimentalDecorators',\n\n // --- Module Resolution\n 'baseUrl',\n 'rootDir',\n 'rootDirs',\n 'customConditions',\n 'module',\n 'moduleResolution',\n 'moduleSuffixes',\n 'noResolve',\n 'paths',\n 'resolveJsonModule',\n 'resolvePackageJsonExports',\n 'resolvePackageJsonImports',\n 'typeRoots',\n 'types',\n 'allowArbitraryExtensions',\n 'allowImportingTsExtensions',\n 'allowUmdGlobalAccess',\n\n // --- JavaScript Support\n 'allowJs',\n 'checkJs',\n 'maxNodeModuleJsDepth',\n\n // --- Type Checking\n 'strict',\n 'strictBindCallApply',\n 'strictFunctionTypes',\n 'strictNullChecks',\n 'strictPropertyInitialization',\n 'allowUnreachableCode',\n 'allowUnusedLabels',\n 'alwaysStrict',\n 'exactOptionalPropertyTypes',\n 'noFallthroughCasesInSwitch',\n 'noImplicitAny',\n 'noImplicitOverride',\n 'noImplicitReturns',\n 'noImplicitThis',\n 'noPropertyAccessFromIndexSignature',\n 'noUncheckedIndexedAccess',\n 'noUnusedLocals',\n 'noUnusedParameters',\n 'useUnknownInCatchVariables',\n\n // --- Emitting\n 'declaration',\n 'declarationDir',\n 'declarationMap',\n 'downlevelIteration',\n 'emitBOM',\n 'emitDeclarationOnly',\n 'importHelpers',\n 'importsNotUsedAsValues',\n 'inlineSourceMap',\n 'inlineSources',\n 'mapRoot',\n 'newLine',\n 'noEmit',\n 'noEmitHelpers',\n 'noEmitOnError',\n 'outDir',\n 'outFile',\n 'preserveConstEnums',\n 'preserveValueImports',\n 'removeComments',\n 'sourceMap',\n 'sourceRoot',\n 'stripInternal',\n\n // --- Interop Constraints\n 'allowSyntheticDefaultImports',\n 'esModuleInterop',\n 'forceConsistentCasingInFileNames',\n 'isolatedModules',\n 'preserveSymlinks',\n 'verbatimModuleSyntax',\n\n // --- Completeness\n 'skipDefaultLibCheck',\n 'skipLibCheck',\n ],\n pathPattern: '^compilerOptions$',\n },\n {\n order: { type: 'asc' },\n pathPattern: String.raw`^compilerOptions\\.paths$`,\n },\n ],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport nodePlugin from 'eslint-plugin-n'\n\nexport function node(): Linter.Config[] {\n return [\n nodePlugin.configs['flat/recommended'],\n {\n settings: {\n node: {\n version: '>=20.0.0',\n },\n },\n rules: {\n\n // --- Redundant with TypeScript module resolution.\n 'n/no-missing-import': 'off',\n 'n/no-missing-require': 'off',\n 'n/no-unpublished-import': 'off',\n\n // --- Enforce async functions over synchronous functions.\n 'n/no-sync': ['error', { allowAtRootLevel: true }],\n\n // --- Enforce the use of ECMAScript features.\n 'n/no-unsupported-features/es-syntax': 'error',\n 'n/no-unsupported-features/es-builtins': 'error',\n\n // --- Ignore experimental warnings.\n 'n/no-unsupported-features/node-builtins': 'off',\n\n // --- Prefer the use of global objects over built-in modules.\n 'n/prefer-global/buffer': 'error',\n 'n/prefer-global/console': 'error',\n 'n/prefer-global/process': 'error',\n 'n/prefer-global/text-decoder': 'error',\n 'n/prefer-global/text-encoder': 'error',\n 'n/prefer-global/url': 'error',\n 'n/prefer-global/url-search-params': 'error',\n\n // --- Prefer the use of the `node:` protocol for built-in modules.\n 'n/prefer-node-protocol': 'error',\n\n // --- Prefer the use of promises over callbacks.\n 'n/prefer-promises/fs': 'error',\n 'n/prefer-promises/dns': 'error',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable the no-sync rule for tests.\n 'n/no-sync': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginSonarjs from 'eslint-plugin-sonarjs'\n\n/**\n * @see https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/README.md\n * @returns ESLint Config for SonarJS.\n */\nexport function sonarjs(): Linter.Config[] {\n return [\n pluginSonarjs.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Increase the default threshold to 30.\n 'sonarjs/cognitive-complexity': ['error', 30],\n\n // --- Increase the default threshold to 10.\n 'sonarjs/no-duplicate-string': ['error', { threshold: 10 }],\n\n // --- Disable unnecessary rules.\n 'sonarjs/use-type-alias': 'off',\n 'sonarjs/no-use-of-empty-return-value': 'off',\n 'sonarjs/no-nested-functions': 'off',\n\n // --- Disable rules that are already covered by TypeScript.\n 'sonarjs/no-extra-arguments': 'off',\n 'sonarjs/function-return-type': 'off',\n 'sonarjs/no-misused-promises': 'off',\n 'sonarjs/no-invariant-returns': 'off',\n 'sonarjs/no-unused-expressions': 'off',\n 'sonarjs/different-types-comparison': 'off',\n\n // --- Allow control characters in regex.\n 'sonarjs/sonar-no-control-regex': 'off',\n\n // --- Disable rules that are causing issues.\n 'sonarjs/disabled-resource-integrity': 'off',\n 'sonarjs/no-ignored-return': 'off',\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'sonarjs/cognitive-complexity': 'off',\n 'sonarjs/no-duplicate-string': 'off',\n 'sonarjs/no-useless-constructor': 'off',\n 'sonarjs/public-static-readonly': 'off',\n },\n },\n ]\n}\n","import type { ESLint, Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport javascript from '@eslint/js'\nimport stylistic from '@stylistic/eslint-plugin'\nimport { toArray } from '@unshared/collection/toArray'\nimport perfectionist from 'eslint-plugin-perfectionist'\nimport tslint from 'typescript-eslint'\nimport { getConfigRules } from '../utils'\n\nexport function typescript(options: ESLintConfigOptions): Linter.Config[] {\n return [\n javascript.configs.recommended,\n // stylistic.configs['recommended-flat'],\n {\n languageOptions: {\n // @ts-expect-error: ignore\n parser: tslint.parser,\n parserOptions: {\n ecmaVersion: 'latest',\n sourceType: 'module',\n project: toArray(options.tsConfigPath ?? './tsconfig.json'),\n tsconfigRootDir: process.cwd(),\n },\n },\n plugins: {\n '@typescript-eslint': tslint.plugin as ESLint.Plugin,\n '@stylistic': stylistic as ESLint.Plugin,\n 'perfectionist': perfectionist,\n },\n files: [\n '**/*.{ts,tsx,cts,mts}',\n '**/*.{js,jsx,cjs,mjs}',\n '**/*.vue',\n ],\n rules: {\n\n /**\n * Inherit all recommended rules from the `@eslint/js` plugin. This is the base\n * configuration for JavaScript files.\n */\n ...getConfigRules(tslint.configs.recommendedTypeChecked),\n ...getConfigRules(tslint.configs.stylisticTypeChecked),\n\n // --- Enforce stroustrup brace style.\n 'brace-style': 'off',\n '@typescript-eslint/brace-style': 'off',\n '@stylistic/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n\n // --- Enforce 2 spaces for indentation and disallow tabs.\n 'no-tabs': 'off',\n 'indent': 'off',\n 'indent-binary-ops': 'off',\n '@typescript-eslint/no-tabs': 'off',\n '@typescript-eslint/indent': 'off',\n '@typescript-eslint/indent-binary-ops': 'off',\n '@stylistic/no-tabs': 'error',\n '@stylistic/indent': ['error', 2],\n '@stylistic/indent-binary-ops': ['error', 2],\n\n // --- No semicolons.\n 'semi': 'off',\n '@typescript-eslint/semi': 'off',\n '@stylistic/semi': ['error', 'never'],\n\n // --- Consistent line breaks.\n 'eol-last': 'off',\n 'no-multiple-empty-lines': 'off',\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/no-multiple-empty-lines': ['error', { max: 1, maxBOF: 0, maxEOF: 0 }],\n\n // --- Enforce dangling commas in multiline object literals.\n 'comma-dangle': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n '@stylistic/comma-dangle': ['error', 'always-multiline'],\n\n // --- Enforce type interfaces over type aliases.\n '@typescript-eslint/consistent-indexed-object-style': ['error', 'record'],\n '@typescript-eslint/consistent-type-definitions': ['error', 'interface'],\n '@typescript-eslint/array-type': ['error', { default: 'array-simple', readonly: 'array-simple' }],\n\n // --- Enforce declaration and usage from top to bottom.\n 'no-use-before-define': 'off',\n '@typescript-eslint/no-use-before-define': ['error', {\n enums: true,\n classes: false,\n typedefs: true,\n variables: true,\n functions: false,\n ignoreTypeReferences: true,\n }],\n\n // --- Consistent spacing and line breaks between tokens.\n 'key-spacing': 'off',\n 'comma-spacing': 'off',\n 'block-spacing': 'off',\n 'arrow-spacing': 'off',\n 'spaced-comment': 'off',\n 'no-multi-spaces': 'off',\n 'space-before-blocks': 'off',\n 'lines-around-comment': 'off',\n 'object-curly-spacing': 'off',\n 'array-bracket-spacing': 'off',\n 'array-bracket-newline': 'off',\n 'function-call-spacing': 'off',\n 'generator-star-spacing': 'off',\n 'template-curly-spacing': 'off',\n 'object-property-newline ': 'off',\n 'newline-per-chained-call': 'off',\n 'computed-property-spacing': 'off',\n 'lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n '@typescript-eslint/type-annotation-spacing': 'off',\n '@typescript-eslint/lines-around-comment': 'off',\n\n '@stylistic/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n '@stylistic/comma-spacing': ['error', { after: true, before: false }],\n '@stylistic/arrow-spacing': ['error', { before: true, after: true }],\n '@stylistic/type-generic-spacing': 'error',\n '@stylistic/type-named-tuple-spacing': 'error',\n '@stylistic/block-spacing': ['error', 'always'],\n '@stylistic/no-multi-spaces': 'error',\n '@stylistic/keyword-spacing': ['error', { before: true, after: true }],\n '@stylistic/space-before-blocks': ['error', 'always'],\n '@stylistic/object-curly-spacing': ['error', 'always'],\n '@stylistic/array-bracket-spacing': ['error', 'never'],\n '@stylistic/array-bracket-newline': ['error', 'consistent'],\n '@stylistic/function-call-spacing': ['error', 'never'],\n '@stylistic/template-curly-spacing': ['error', 'never'],\n '@stylistic/member-delimiter-style': ['error', { multiline: { delimiter: 'none' } }],\n '@stylistic/object-property-newline': ['error', { allowAllPropertiesOnSameLine: true }],\n '@stylistic/generator-star-spacing': ['error', { before: true, after: true }],\n '@stylistic/computed-property-spacing': ['error', 'never'],\n '@stylistic/multiline-ternary': ['error', 'always-multiline'],\n '@stylistic/lines-around-comment': ['error', {\n beforeBlockComment: true,\n beforeLineComment: true,\n ignorePattern: String.raw`^(?! ?---|\\*)`,\n applyDefaultIgnorePatterns: true,\n afterHashbangComment: true,\n }],\n '@stylistic/spaced-comment': ['error', 'always', {\n block: { markers: ['!'], exceptions: ['*'], balanced: true },\n line: { markers: ['/'], exceptions: ['/', '#'] },\n }],\n '@stylistic/lines-between-class-members': ['error', {\n enforce: [{ blankLine: 'always', prev: 'method', next: '*' }],\n }, {\n exceptAfterSingleLine: true,\n }],\n '@stylistic/type-annotation-spacing': ['error', {\n before: true,\n after: true,\n overrides: {\n arrow: { before: true, after: true },\n colon: { before: false, after: true },\n variable: { before: false, after: true },\n property: { before: false, after: true },\n parameter: { before: false, after: true },\n returnType: { before: false, after: true },\n },\n }],\n\n // --- Enforce `@ts-expect-error` over `@ts-ignore`.\n '@typescript-eslint/prefer-ts-expect-error': 'error',\n '@typescript-eslint/ban-ts-comment': ['error', {\n 'ts-check': false,\n 'ts-expect-error': 'allow-with-description',\n 'ts-ignore': false,\n 'ts-nocheck': false,\n }],\n\n /**\n * Disallow dangling expressions and promises. This rule aims to prevent\n * dangling promises and expressions that are not assigned to a variable.\n * This can lead to bugs and unexpected behavior in the codebase.\n *\n * @see https://eslint.org/docs/rules/no-void\n * @see https://typescript-eslint.io/rules/no-floating-promises\n */\n 'no-void': 'off',\n 'no-unused-expressions': 'off',\n '@typescript-eslint/no-unused-expressions': 'error',\n '@typescript-eslint/no-floating-promises': ['error', {\n ignoreVoid: true,\n ignoreIIFE: true,\n }],\n\n /**\n * Sort imports alphabetically and group them without newlines. This rule\n * aims to maintain consistency around the order of imports in JavaScript\n * files. Helps reduce the visual noise in the codebase.\n *\n * @see https://typescript-eslint.io/rules/consistent-type-imports\n * @see https://eslint-plugin-perfectionist.azat.io/rules/sort-imports\n */\n 'sort-imports': 'off',\n '@typescript-eslint/consistent-type-imports': ['error', {\n disallowTypeAnnotations: false,\n prefer: 'type-imports',\n fixStyle: 'separate-type-imports',\n }],\n 'perfectionist/sort-exports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-named-imports': ['error', {\n type: 'alphabetical',\n ignoreCase: true,\n }],\n 'perfectionist/sort-imports': ['error', {\n newlinesBetween: 'never',\n order: 'asc',\n ignoreCase: true,\n groups: [\n 'type',\n 'internal-type',\n ['parent-type', 'sibling-type', 'index-type'],\n ['builtin', 'external'],\n 'internal',\n ['parent', 'sibling', 'index'],\n 'object',\n 'unknown',\n ],\n }],\n\n /**\n * Sort types and union types alphabetically. This rule aims to maintain\n * consistency around the order of types in TypeScript files. Helps reduce\n * the visual noise in the codebase.\n *\n * @see https://perfectionist.dev/rules/sort-union-types\n */\n '@typescript-eslint/sort-type-constituents': 'off',\n 'perfectionist/sort-intersection-types': ['error', {\n type: 'natural',\n }],\n 'perfectionist/sort-union-types': ['error', {\n type: 'natural',\n ignoreCase: false,\n }],\n\n /**\n * Enforce no unused variables. Helps keep the codebase clean and reduces\n * the chance of bugs from side-effects.\n *\n * @see https://typescript-eslint.io/rules/@typescript-eslint/no-unused-vars\n */\n 'no-redeclare': 'off',\n 'no-unused-vars': 'off',\n '@typescript-eslint/no-redeclare': 'error',\n '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],\n\n //////////////////////////////////////////////////////////////////////////////////////////\n\n 'no-useless-constructor': 'off',\n '@typescript-eslint/ban-types': 'off',\n '@typescript-eslint/camelcase': 'off',\n '@typescript-eslint/explicit-function-return-type': 'off',\n '@typescript-eslint/explicit-member-accessibility': 'off',\n '@typescript-eslint/explicit-module-boundary-types': 'off',\n '@typescript-eslint/no-empty-function': 'off',\n '@typescript-eslint/no-empty-interface': 'off',\n '@typescript-eslint/no-explicit-any': 'off',\n '@typescript-eslint/no-namespace': 'off',\n '@typescript-eslint/no-non-null-assertion': 'off',\n '@typescript-eslint/no-parameter-properties': 'off',\n 'array-callback-return': 'error',\n 'arrow-body-style': ['error', 'as-needed'],\n 'arrow-parens': ['error', 'as-needed', { requireForBlockBody: true }],\n 'block-scoped-var': 'error',\n 'camelcase': 'off',\n 'comma-style': ['error', 'last'],\n 'complexity': ['off', 11],\n 'consistent-return': 'off',\n 'curly': ['error', 'multi-or-nest', 'consistent'],\n 'eqeqeq': ['error', 'smart'],\n 'no-alert': 'error',\n 'no-case-declarations': 'error',\n 'no-cond-assign': ['error', 'always'],\n 'no-confusing-arrow': 'error',\n 'no-console': ['warn', { allow: ['warn', 'error'] }],\n 'no-constant-condition': 'error',\n 'no-debugger': 'error',\n 'no-eval': 'error',\n 'no-implied-eval': 'error',\n 'no-multi-str': 'error',\n 'no-param-reassign': 'off',\n 'no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'],\n 'no-return-assign': 'off',\n 'no-return-await': 'off',\n 'no-trailing-spaces': 'error',\n 'no-useless-escape': 'off',\n 'no-var': 'error',\n 'no-with': 'error',\n 'object-shorthand': ['error', 'always', { avoidQuotes: true, ignoreConstructors: false }],\n 'one-var-declaration-per-line': 'error',\n 'operator-linebreak': ['error', 'before'],\n 'prefer-arrow-callback': ['error', { allowNamedFunctions: false, allowUnboundThis: true }],\n 'prefer-const': ['error', { destructuring: 'any', ignoreReadBeforeAssign: true }],\n 'prefer-rest-params': 'error',\n 'prefer-spread': 'error',\n 'prefer-template': 'error',\n 'quote-props': ['error', 'consistent-as-needed'],\n 'quotes': ['error', 'single'],\n 'require-await': 'off',\n 'space-before-function-paren': ['error', 'never'],\n 'vars-on-top': 'error',\n },\n },\n\n /**\n * Ignore duplicate imports in declaration files as they are often used to re-export\n * types from other packages into multiple namespaces. This is a common pattern\n * in TypeScript declaration files.\n */\n {\n files: ['*.d.ts'],\n rules: {\n '@typescript-eslint/no-use-before-define': 'off',\n 'import/no-duplicates': 'off',\n },\n },\n\n /**\n * Allow console statements in scripts and CLI files since they are not part of the\n * library / production code and are useful for debugging, logging, and testing.\n */\n {\n files: ['**/scripts/**/*', 'cli.*'],\n rules: {\n 'no-console': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport unicornPlugin from 'eslint-plugin-unicorn'\n\n/**\n * @returns ESLint Config for Unicorn.\n * @see https://github.com/sindresorhus/eslint-plugin-unicorn\n */\nexport function unicorn(): Linter.Config[] {\n return [\n unicornPlugin.configs.recommended,\n {\n rules: {\n\n // --- Allow any kind of import style.\n 'unicorn/import-style': 'off',\n\n // --- Improve regexes by making them shorter, consistent, and safer.\n 'unicorn/better-regex': 'error',\n\n // --- Use destructured variables over properties.\n 'unicorn/consistent-destructuring': 'error',\n\n // --- Enforce consistent function scoping except for arrow functions.\n 'unicorn/consistent-function-scoping': ['error', { checkArrowFunctions: false }],\n\n // --- Disable switch-case fallthrough.\n 'unicorn/prefer-switch': 'off',\n\n // --- Enforce camelCase & PascalCase in filenames. Exepct non TS/JS files.\n 'unicorn/filename-case': ['error', {\n multipleFileExtensions: false,\n cases: { camelCase: true, pascalCase: true },\n ignore: [/\\.json$/, /\\.md$/, /\\.yml$/, /\\.yaml$/],\n }],\n\n // --- Improve readability by using numeric separators.\n 'unicorn/numeric-separators-style': ['error', {\n onlyIfContainsSeparator: true,\n }],\n\n // --- Enforce long variable names when they are meaningful.\n 'unicorn/prevent-abbreviations': ['error', {\n allowList: {\n args: true,\n utils: true,\n dir: true,\n fn: true,\n i: true,\n j: true,\n k: true,\n ref: true,\n Ref: true,\n props: true,\n Props: true,\n v: true,\n x: true,\n y: true,\n z: true,\n },\n }],\n },\n },\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n\n // --- Disable unnecessary rules for test files.\n 'unicorn/no-null': 'off',\n 'unicorn/no-useless-undefined': 'off',\n 'unicorn/no-static-only-class': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport vitestPlugin from '@vitest/eslint-plugin'\n\nexport function vitest(): Linter.Config[] {\n return [\n // @ts-expect-error: the `configs` property is loosely typed.\n vitestPlugin.configs.recommended as Linter.Config,\n {\n rules: {\n\n // --- Add the `expectTypeOf` function to the list of assert functions.\n 'vitest/expect-expect': ['error', {\n assertFunctionNames: ['expect', 'expectTypeOf'],\n }],\n\n // --- Enforce a single top-level describe block.\n 'vitest/require-top-level-describe': ['error', { maxNumberOfTopLevelDescribes: 1 }],\n\n // --- Enforce 'should' as the prefix for test titles.\n 'vitest/valid-title': ['error', {\n ignoreTypeOfDescribeName: true,\n mustMatch: { test: ['^should'] },\n }],\n\n // --- Prefer strict equality checks.\n 'vitest/prefer-to-be-truthy': 'off',\n 'vitest/prefer-to-be-falsy': 'off',\n\n /// --- Loosen the rules for test files.\n 'vitest/no-hooks': 'off',\n 'vitest/require-hook': 'off',\n 'vitest/no-conditional-in-test': 'off',\n 'vitest/no-conditional-tests': 'off',\n 'vitest/prefer-expect-assertions': 'off',\n 'vitest/padding-around-all': 'off',\n 'vitest/padding-around-expect-groups': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport type { ESLintConfigOptions } from './all'\nimport { mergeProcessors } from 'eslint-merge-processors'\nimport vuePlugin from 'eslint-plugin-vue'\nimport vueProcessorBlocks from 'eslint-processor-vue-blocks'\nimport tslint from 'typescript-eslint'\nimport vueParser from 'vue-eslint-parser'\nimport { typescript } from './typescript'\n\nexport function vue(options: ESLintConfigOptions): Linter.Config[] {\n const TYPESCRIPT_CONFIG = typescript(options).at(1)!\n return [\n ...vuePlugin.configs['flat/recommended'],\n {\n plugins: {\n vue: vuePlugin,\n ...TYPESCRIPT_CONFIG.plugins,\n },\n languageOptions: {\n globals: {\n computed: 'readonly',\n defineEmits: 'readonly',\n defineExpose: 'readonly',\n defineProps: 'readonly',\n onMounted: 'readonly',\n onUnmounted: 'readonly',\n reactive: 'readonly',\n ref: 'readonly',\n shallowReactive: 'readonly',\n shallowRef: 'readonly',\n toRef: 'readonly',\n toRefs: 'readonly',\n watch: 'readonly',\n watchEffect: 'readonly',\n },\n parser: vueParser,\n parserOptions: {\n parser: tslint.parser,\n extraFileExtensions: ['.vue'],\n ...TYPESCRIPT_CONFIG.languageOptions!.parserOptions,\n },\n },\n processor: mergeProcessors([\n vuePlugin.processors.vue as Linter.Processor,\n vueProcessorBlocks(),\n ]),\n files: [\n '**/*.vue',\n '**/*.ts',\n ],\n rules: {\n 'vue/return-in-computed-property': 'off',\n\n // --- Allow multiple component definitions in a single file.\n 'vue/one-component-per-file': 'off',\n\n // --- Enforce Component API style.\n 'vue/prefer-define-options': 'error',\n 'vue/component-api-style': ['error', ['script-setup', 'composition']],\n\n // --- Enforce PascalCase components and allow reserved and single-word names.\n 'vue/multi-word-component-names': 'off',\n 'vue/no-reserved-component-names': 'off',\n 'vue/component-name-in-template-casing': ['error', 'PascalCase', {\n ignores: [String.raw`/\\./`],\n registeredComponentsOnly: false,\n }],\n\n // --- Consistent spacing around HTML comments.\n 'vue/html-comment-indent': ['error', 2],\n 'vue/multiline-html-element-content-newline': ['error', {\n allowEmptyLines: true,\n ignores: [],\n ignoreWhenEmpty: true,\n }],\n 'vue/html-comment-content-spacing': ['error', 'always'],\n 'vue/html-comment-content-newline': ['error', {\n multiline: 'always',\n singleline: 'never',\n }],\n\n // --- Consistent block order in Vue components.\n 'vue/block-order': ['error', { order: ['script', 'template', 'style', 'i18n'] }],\n\n // --- Consistent spacing in and around the block.\n 'vue/block-spacing': ['error', 'always'],\n 'vue/padding-line-between-blocks': ['error', 'always'],\n 'vue/padding-line-between-tags': ['error', [\n { blankLine: 'consistent', next: '*', prev: '*' },\n { blankLine: 'always', next: '*', prev: 'comment' },\n ]],\n\n /**\n * Enforce consistent spacing and newlines in the template. This rule helps\n * to maintain consistency and readability by enforcing a predictable\n *\n * @see https://eslint.vuejs.org/rules/html-indent.html\n * @see https://eslint.vuejs.org/rules/max-attributes-per-line.html\n * @see https://eslint.vuejs.org/rules/html-closing-bracket-newline.html\n */\n 'vue/html-indent': ['error', 2, {\n alignAttributesVertically: true,\n attribute: 1,\n baseIndent: 1,\n closeBracket: 0,\n ignores: [],\n }],\n\n // 'vue/func-call-spacing': ['off', 'never'],\n 'vue/key-spacing': ['error', { afterColon: true, beforeColon: false }],\n 'vue/keyword-spacing': ['error', { after: true, before: true }],\n 'vue/max-attributes-per-line': ['error', {\n multiline: { max: 1 },\n singleline: { max: 5 },\n }],\n\n /**\n * Allow single-word component names. This rule is disabled because we use\n * pascal-casing to distinguish between components and HTML elements.\n *\n * @see https://eslint.vuejs.org/rules/multi-word-component-names.html\n */\n\n /**\n * Reports the destructuring or member expression of props passed to setup\n * causing the value to lose reactivity. This rule helps to avoid common\n * pitfalls when using the Composition API.\n *\n * @see https://eslint.vuejs.org/rules/no-setup-props-reactivity-loss.html\n */\n 'vue/no-setup-props-reactivity-loss': 'error',\n\n /**\n * Disallow v-if in v-for. This rule helps to avoid common pitfalls when\n * using v-if and v-for together in the same element.\n *\n * @see https://eslint.vuejs.org/rules/no-use-v-if-with-v-for.html\n */\n 'vue/no-use-v-if-with-v-for': 'error',\n\n /**\n * Enforce the declaration of emits in the setup function and warn on unused\n * emits declarations. This rule helps reduce the risk stale code.\n *\n * @see https://eslint.vuejs.org/rules/require-explicit-emits.html\n * @see https://eslint.vuejs.org/rules/no-unused-emit-declarations.html\n */\n 'vue/require-explicit-emits': 'error',\n\n /**\n * Enforce the `@` shorthand over `v-on:` and only allow inline callbacks.\n * This rule helps to maintain consistency and readability by enforcing a\n * predictable order of the event handlers in the component.\n *\n * @see https://eslint.vuejs.org/rules/v-on-style.html\n * @see https://eslint.vuejs.org/rules/v-on-handler-style.html\n */\n 'vue/v-on-style': ['error', 'shorthand'],\n 'vue/v-on-handler-style': ['error', 'inline-function'],\n\n /**\n * Sort the vue attributes in a consistent order. This rule helps to maintain\n * consistency and readability by enforcing a predictable order of the\n * attributes in the component.\n *\n * @see https://eslint.vuejs.org/rules/attributes-order.html\n */\n 'vue/attributes-order': ['error', {\n order: [\n 'DEFINITION',\n 'LIST_RENDERING',\n 'CONDITIONALS',\n 'RENDER_MODIFIERS',\n 'GLOBAL',\n ['UNIQUE', 'SLOT'],\n 'TWO_WAY_BINDING',\n 'OTHER_DIRECTIVES',\n 'OTHER_ATTR',\n 'EVENTS',\n 'CONTENT',\n ],\n alphabetical: false,\n }],\n\n /**\n * Enforce consistent spacing around attribute assignments. This ensures that\n * the code is easier to read and maintain.\n *\n * @see https://eslint.vuejs.org/rules/no-spaces-around-equal-signs-in-attribute.html\n */\n 'vue/no-spaces-around-equal-signs-in-attribute': 'error',\n 'vue/no-multi-spaces': 'error',\n\n /**\n * Enforce the use of the `ts` lang attribute in the script block. This rule\n * explicitly dissallows the use of the `js` lang attribute in the script.\n */\n 'vue/block-lang': ['error', {\n script: { lang: 'ts' },\n }],\n\n 'vue/no-sparse-arrays': 'error',\n 'vue/no-unused-emit-declarations': 'error',\n 'vue/no-use-v-else-with-v-for': 'error',\n 'vue/no-useless-v-bind': 'error',\n 'vue/no-v-html': 'off',\n 'vue/no-v-text-v-html-on-component': 'error',\n 'vue/object-curly-newline': ['error', { consistent: true, multiline: true }],\n 'vue/object-curly-spacing': ['error', 'always'],\n 'vue/object-shorthand': [\n 'error',\n 'always',\n {\n avoidQuotes: true,\n ignoreConstructors: false,\n },\n ],\n 'vue/operator-linebreak': ['error', 'before'],\n 'vue/prefer-import-from-vue': 'off',\n 'vue/prefer-separate-static-class': 'error',\n 'vue/prefer-template': 'error',\n 'vue/quote-props': ['error', 'consistent-as-needed'],\n 'vue/require-default-prop': 'off',\n // reactivity transform\n 'vue/block-tag-newline': ['error', {\n multiline: 'always',\n singleline: 'always',\n }],\n // extensions\n 'vue/array-bracket-spacing': ['error', 'never'],\n 'vue/arrow-spacing': ['error', { after: true, before: true }],\n 'vue/brace-style': ['error', 'stroustrup', { allowSingleLine: true }],\n 'vue/comma-dangle': ['error', 'always-multiline'],\n 'vue/comma-spacing': ['error', { after: true, before: false }],\n 'vue/comma-style': ['error', 'last'],\n 'vue/component-options-name-casing': ['error', 'PascalCase'],\n 'vue/custom-event-name-casing': ['error', 'camelCase'],\n 'vue/define-macros-order': ['error', {\n order: ['defineProps', 'defineEmits'],\n }],\n 'vue/dot-location': ['error', 'property'],\n 'vue/dot-notation': ['error', { allowKeywords: true }],\n 'vue/eqeqeq': ['error', 'smart'],\n 'vue/first-attribute-linebreak': ['error', {\n multiline: 'below',\n singleline: 'beside',\n }],\n 'vue/html-closing-bracket-newline': ['error', {\n multiline: 'never',\n selfClosingTag: {\n multiline: 'always',\n singleline: 'never',\n },\n singleline: 'never',\n }],\n 'vue/no-constant-condition': 'warn',\n 'vue/no-empty-pattern': 'error',\n 'vue/no-extra-parens': ['error', 'functions'],\n 'vue/no-irregular-whitespace': 'error',\n 'vue/no-loss-of-precision': 'error',\n 'vue/no-restricted-syntax': [\n 'error',\n 'DebuggerStatement',\n 'LabeledStatement',\n 'WithStatement',\n ],\n 'vue/no-restricted-v-bind': ['error', '/^v-/'],\n 'vue/require-prop-types': 'off',\n 'vue/space-in-parens': ['error', 'never'],\n 'vue/space-infix-ops': 'error',\n 'vue/space-unary-ops': ['error', { nonwords: false, words: true }],\n 'vue/template-curly-spacing': 'error',\n },\n },\n\n // --- Disable some TypeScript rules that may conflict with the Vue SFC parser.\n {\n files: [\n '**/*.vue',\n ],\n rules: {\n '@typescript-eslint/no-unsafe-call': 'off',\n '@typescript-eslint/no-unsafe-return': 'off',\n '@typescript-eslint/no-unsafe-argument': 'off',\n '@typescript-eslint/no-unsafe-assignment': 'off',\n '@typescript-eslint/no-unsafe-member-access': 'off',\n '@typescript-eslint/no-misused-promises': 'off',\n },\n },\n\n // --- Disable in test files.\n {\n files: [\n '**/*.test.ts',\n '**/*.spec.ts',\n ],\n rules: {\n 'vue/one-component-per-file': 'off',\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport pluginYml from 'eslint-plugin-yml'\n\n/**\n * @see https://ota-meshi.github.io/eslint-plugin-yml/rules/\n * @returns ESLint Config for YAML files.\n */\nexport function yml(): Linter.Config[] {\n return [\n ...pluginYml.configs['flat/standard'],\n ...pluginYml.configs['flat/recommended'],\n {\n rules: {\n\n // --- Force single quotes.\n 'yml/quotes': ['error', {\n avoidEscape: true,\n prefer: 'single',\n }],\n\n // --- Remove trailing zeros in numbers.\n 'yml/no-trailing-zeros': 'error',\n\n // --- Prevent empty keys.\n 'yml/require-string-key': 'error',\n\n // --- Prevent empty values or weird newlines in mappings.\n 'yml/block-mapping-colon-indicator-newline': 'error',\n\n // --- No more than one empty line.\n 'yml/no-multiple-empty-lines': ['error', {\n max: 1,\n maxBOF: 0,\n maxEOF: 0,\n }],\n\n // --- Sort environemnt variables alphabetically.\n 'yml/sort-sequence-values': ['error', {\n pathPattern: '^env$',\n order: { type: 'asc' },\n }],\n },\n },\n ]\n}\n","import type { Linter } from 'eslint'\nimport { antfu } from './antfu'\nimport { eslintComments } from './eslintComments'\nimport { jsdoc } from './jsdoc'\nimport { json } from './json'\nimport { jsonPackage } from './jsonPackage'\nimport { jsonTsconfig } from './jsonTsconfig'\nimport { node } from './node'\nimport { sonarjs } from './sonarjs'\nimport { typescript } from './typescript'\nimport { unicorn } from './unicorn'\nimport { vitest } from './vitest'\nimport { vue } from './vue'\nimport { yml } from './yml'\n\nexport interface ESLintConfigOptions {\n tsConfigPath?: string | string[]\n rules?: Linter.RulesRecord\n}\n\nexport function all(options: ESLintConfigOptions = {}) {\n return [\n ...antfu(),\n ...eslintComments(),\n ...jsdoc(),\n ...json(),\n ...jsonPackage(),\n ...jsonTsconfig(),\n ...node(),\n ...sonarjs(),\n ...typescript(options),\n ...unicorn(),\n ...vitest(),\n ...vue(options),\n ...yml(),\n {\n ignores: [\n '**/dist',\n '**/bin',\n '**/node_modules',\n '**/.nuxt',\n '**/.output',\n '**/coverage',\n '**/public',\n '**/__wip__',\n '**/__snapshots__',\n '**/LICENSE*',\n '**/CHANGELOG*',\n 'packages-lock.json',\n 'pnpm-lock.yaml',\n 'yarn.lock',\n ],\n },\n ]\n}\n"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export { a as default } from './chunks/
|
1
|
+
export { a as default } from './chunks/C0LH69I3.js';
|
2
2
|
import 'eslint';
|
package/dist/utils.d.ts
CHANGED
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@unshared/eslint-config",
|
3
3
|
"type": "module",
|
4
|
-
"version": "0.
|
4
|
+
"version": "0.6.1",
|
5
5
|
"license": "MIT",
|
6
6
|
"sideEffects": false,
|
7
7
|
"author": "Stanley Horwood <stanley@hsjm.io>",
|
@@ -42,37 +42,37 @@
|
|
42
42
|
"typescript": ">=5"
|
43
43
|
},
|
44
44
|
"dependencies": {
|
45
|
-
"@eslint/eslintrc": "3.
|
46
|
-
"@eslint/js": "9.
|
47
|
-
"@stylistic/eslint-plugin": "
|
48
|
-
"@unshared/collection": "0.
|
49
|
-
"@unshared/types": "0.
|
50
|
-
"@vitest/eslint-plugin": "1.
|
51
|
-
"eslint-merge-processors": "0.
|
52
|
-
"eslint-plugin-antfu": "
|
45
|
+
"@eslint/eslintrc": "3.3.1",
|
46
|
+
"@eslint/js": "9.28.0",
|
47
|
+
"@stylistic/eslint-plugin": "4.4.1",
|
48
|
+
"@unshared/collection": "0.6.1",
|
49
|
+
"@unshared/types": "0.6.1",
|
50
|
+
"@vitest/eslint-plugin": "1.2.2",
|
51
|
+
"eslint-merge-processors": "2.0.0",
|
52
|
+
"eslint-plugin-antfu": "3.1.1",
|
53
53
|
"eslint-plugin-eslint-comments": "3.2.0",
|
54
|
-
"eslint-plugin-html": "8.1.
|
54
|
+
"eslint-plugin-html": "8.1.3",
|
55
55
|
"eslint-plugin-import": "2.31.0",
|
56
|
-
"eslint-plugin-jsdoc": "50.
|
57
|
-
"eslint-plugin-jsonc": "2.
|
56
|
+
"eslint-plugin-jsdoc": "50.7.1",
|
57
|
+
"eslint-plugin-jsonc": "2.20.1",
|
58
58
|
"eslint-plugin-markdown": "5.1.0",
|
59
|
-
"eslint-plugin-n": "17.
|
60
|
-
"eslint-plugin-perfectionist": "4.
|
59
|
+
"eslint-plugin-n": "17.19.0",
|
60
|
+
"eslint-plugin-perfectionist": "4.14.0",
|
61
61
|
"eslint-plugin-promise": "7.2.1",
|
62
|
-
"eslint-plugin-sonarjs": "3.0.
|
63
|
-
"eslint-plugin-unicorn": "
|
64
|
-
"eslint-plugin-vue": "
|
65
|
-
"eslint-plugin-yml": "1.
|
66
|
-
"eslint-processor-vue-blocks": "0.
|
62
|
+
"eslint-plugin-sonarjs": "3.0.2",
|
63
|
+
"eslint-plugin-unicorn": "59.0.1",
|
64
|
+
"eslint-plugin-vue": "10.2.0",
|
65
|
+
"eslint-plugin-yml": "1.18.0",
|
66
|
+
"eslint-processor-vue-blocks": "2.0.0",
|
67
67
|
"jsonc-eslint-parser": "2.4.0",
|
68
|
-
"typescript-eslint": "8.
|
69
|
-
"vue-eslint-parser": "
|
70
|
-
"yaml-eslint-parser": "1.
|
68
|
+
"typescript-eslint": "8.34.0",
|
69
|
+
"vue-eslint-parser": "10.1.3",
|
70
|
+
"yaml-eslint-parser": "1.3.0"
|
71
71
|
},
|
72
72
|
"devDependencies": {
|
73
|
-
"@types/eslint__eslintrc": "
|
74
|
-
"@types/eslint__js": "
|
75
|
-
"eslint": "9.
|
76
|
-
"typescript": "5.
|
73
|
+
"@types/eslint__eslintrc": "3.3.0",
|
74
|
+
"@types/eslint__js": "9.14.0",
|
75
|
+
"eslint": "9.28.0",
|
76
|
+
"typescript": "5.8.3"
|
77
77
|
}
|
78
78
|
}
|