UNPKG

@danwithabox/eslint-entree

Version:
1 lines • 46.2 kB
{"version":3,"file":"index.cjs","names":["plugin_stylistic","tseslint","plugin_stylistic","tseslint","plugin_vue","parser_vue","plugin_vue_processor","plugin_stylistic","tseslint","reactHooks","reactRefresh","typeScript","vue3","react","rulesFiltered: Linter.RulesRecord","count_rules: number","count_filtered: number","reactHooks","rules_typeScript","rules_vue3","rules_react"],"sources":["../src/eslint-sample-js/config-typescript.entree.js","../src/eslint-sample-js/config-vue3.entree.js","../src/eslint-sample-js/config-react.entree.js","../src/entree-configs.ts","../src/entree-utils.ts","../src/eslint-sample-js/rules-typescript.entree.js","../src/eslint-sample-js/rules-vue3.entree.js","../src/eslint-sample-js/rules-react.entree.js","../src/entree-rules.ts"],"sourcesContent":["//@ts-check\nimport { defineConfig } from \"eslint/config\";\nimport plugin_stylistic from \"@stylistic/eslint-plugin\";\nimport tseslint from \"typescript-eslint\";\n\n/**\n * Provides the needed plugin and parser config for TypeScript.\n * \n * @template { import(\"eslint\").Linter.RulesRecord } T\n * @param { T } rules\n */\nfunction config_typescript(rules) {\n const GLOB_SRC = [\"**/*.?([cm])[jt]s\"];\n\n const flatConfig_typescript = defineConfig({\n files: [...GLOB_SRC],\n plugins: {\n /** @type { import(\"@stylistic/eslint-plugin/define-config-support\") } */\n \"@stylistic\": plugin_stylistic,\n /**\n * Typing irreconcilable due to:\n * - https://github.com/un-ts/eslint-plugin-import-x/issues/203\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10935\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10899\n * @type { any }\n */\n \"@typescript-eslint\": tseslint.plugin,\n },\n languageOptions: {\n /**\n * Typing irreconcilable due to:\n * - https://github.com/un-ts/eslint-plugin-import-x/issues/203\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10935\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10899\n * @type { any }\n */\n parser: tseslint.parser,\n parserOptions: {\n sourceType: \"module\",\n },\n },\n rules,\n });\n\n return flatConfig_typescript;\n}\n\nexport {\n config_typescript,\n};\n","//@ts-check\nimport { defineConfig } from \"eslint/config\";\nimport plugin_stylistic from \"@stylistic/eslint-plugin\";\nimport tseslint from \"typescript-eslint\";\nimport plugin_vue from \"eslint-plugin-vue\";\n// @ts-expect-error: No type definition\nimport plugin_vue_processor from \"eslint-plugin-vue/lib/processor.js\";\nimport parser_vue from \"vue-eslint-parser\";\n\n/**\n * Provides the needed plugin and parser config for Vue 3 with:\n * - TypeScript support in `<script>` blocks and template expressions\n * - Single File Components\n * - Composition API\n * - and `<script setup>`\n * \n * https://eslint.vuejs.org/\n * \n * @template { import(\"eslint\").Linter.RulesRecord } T\n * @param { T } rules\n */\nfunction config_vue(rules) {\n const GLOB_VUE = [\"*.vue\", \"**/*.vue\"];\n const GLOB_SVG_VUE = [\"**/*.svg.vue\"];\n\n const flatConfig_vue = defineConfig({\n files: [...GLOB_VUE],\n ignores: [...GLOB_SVG_VUE],\n plugins: {\n /** @type { import(\"@stylistic/eslint-plugin/define-config-support\") } */\n \"@stylistic\": plugin_stylistic,\n /**\n * Typing irreconcilable due to:\n * - https://github.com/un-ts/eslint-plugin-import-x/issues/203\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10935\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10899\n * @type { any }\n */\n \"@typescript-eslint\": tseslint.plugin,\n /**\n * Typing irreconcilable\n * @type { any }\n */\n vue: plugin_vue,\n },\n languageOptions: {\n parser: parser_vue,\n sourceType: \"module\",\n parserOptions: {\n parser: tseslint.parser,\n sourceType: \"module\",\n ecmaFeatures: {\n jsx: false,\n },\n extraFileExtensions: [\".vue\"],\n },\n },\n processor: plugin_vue_processor,\n rules,\n });\n\n return flatConfig_vue;\n}\n\nexport {\n config_vue,\n};\n\n","//@ts-check\nimport { defineConfig } from \"eslint/config\";\nimport globals from \"globals\";\nimport plugin_stylistic from \"@stylistic/eslint-plugin\";\nimport tseslint from \"typescript-eslint\";\nimport reactHooks from \"eslint-plugin-react-hooks\";\nimport reactRefresh from \"eslint-plugin-react-refresh\";\n\n/**\n * Provides the needed plugin and parser config for React.\n * \n * @template { import(\"eslint\").Linter.RulesRecord } T\n * @param { T } rules\n */\nfunction config_react(rules) {\n const GLOB_SRC = [\"**/*.[jt]sx\"];\n\n const flatConfig_react = defineConfig({\n files: [...GLOB_SRC],\n plugins: {\n /** @type { import(\"@stylistic/eslint-plugin/define-config-support\") } */\n \"@stylistic\": plugin_stylistic,\n /**\n * Typing irreconcilable due to:\n * - https://github.com/un-ts/eslint-plugin-import-x/issues/203\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10935\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10899\n * @type { any }\n */\n \"@typescript-eslint\": tseslint.plugin,\n \"react-hooks\": /** @type {any} */ (reactHooks),\n \"react-refresh\": reactRefresh,\n },\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n /**\n * Typing irreconcilable due to:\n * - https://github.com/un-ts/eslint-plugin-import-x/issues/203\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10935\n * - https://github.com/typescript-eslint/typescript-eslint/issues/10899\n * @type { any }\n */\n parser: tseslint.parser,\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: [\".tsx\"],\n /** @type { any } */\n sourceType: \"module\",\n },\n },\n rules,\n });\n\n return flatConfig_react;\n}\n\nexport {\n config_react,\n};\n","import type { Linter } from \"eslint\";\nimport { defineConfig } from \"eslint/config\";\nimport { config_typescript } from \"./eslint-sample-js/config-typescript.entree.js\";\nimport { config_vue } from \"./eslint-sample-js/config-vue3.entree.js\";\nimport { config_react } from \"./eslint-sample-js/config-react.entree.js\";\nimport { gitignore } from \"./index.js\";\n\n/**\n * ESLint config for TypeScript + .gitignore file support from `eslint-config-flat-gitignore`.\n */\nfunction typeScript(config: {\n gitignore: boolean,\n typeScriptRules: Linter.RulesRecord,\n}): Array<Linter.Config> {\n const { typeScriptRules, gitignore: _gitignore, } = config;\n\n return defineConfig([\n ...(_gitignore ? [gitignore()] : []),\n config_typescript(typeScriptRules),\n ]);\n}\n\n/**\n * ESLint config for TypeScript & Vue 3 + .gitignore file support from `eslint-config-flat-gitignore`.\n * \n * Vue 3 support is focused on Single File Components with Composition API and `<script setup>`\n */\nfunction vue3(config: {\n gitignore: boolean,\n typeScriptRules: Linter.RulesRecord,\n vue3Rules: Linter.RulesRecord,\n}): Array<Linter.Config> {\n const { typeScriptRules, vue3Rules, gitignore: _gitignore, } = config;\n\n return defineConfig([\n ...(_gitignore ? [gitignore()] : []),\n config_typescript(typeScriptRules),\n config_vue({ ...typeScriptRules, ...vue3Rules, }),\n ]);\n}\n\n/**\n * ESLint config for TypeScript & React + .gitignore file support from `eslint-config-flat-gitignore`.\n */\nfunction react(config: {\n gitignore: boolean,\n typeScriptRules: Linter.RulesRecord,\n reactRules: Linter.RulesRecord,\n}): Array<Linter.Config> {\n const { typeScriptRules, reactRules, gitignore: _gitignore, } = config;\n\n return defineConfig([\n ...(_gitignore ? [gitignore()] : []),\n config_typescript(typeScriptRules),\n config_react({ ...typeScriptRules, ...reactRules, }),\n ]);\n}\n\n/**\n * Configs bundled with the library.\n */\nexport const entreeConfigs = {\n typeScript,\n vue3,\n react,\n};\n","import type { Linter } from \"eslint\";\nimport type { RuleOptions as _stylistic_RuleOptions } from \"@stylistic/eslint-plugin\";\nimport type { RuleOptions as _vue_RuleOptions } from \"eslint-plugin-vue/lib/eslint-typegen\";\nimport type { Simplify } from \"type-fest\";\n\ntype stylistic_RuleOptions = {[K in keyof _stylistic_RuleOptions]?: Linter.RuleEntry<_stylistic_RuleOptions[K]> };\n\n// Explicit augmentation even if the packages, e.g. \"eslint-plugin-vue/lib/eslint-typegen\" already do it, to help the reader in learning\ndeclare module \"eslint\" {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace Linter {\n // TODO: react types, maybe with eslint-typegen if needed\n interface RulesRecord extends stylistic_RuleOptions, _vue_RuleOptions {}\n }\n}\n\n/**\n * A simple helper to make working with rules in `@ts-check`-enabled files easier\n * by returning a narrowly typed object with explicitly known keys.\n * \n * Needed for {@link entreeFilterRules} to work correctly.\n * \n * Is not not needed for ESLint otherwise.\n */\nexport function entreeDefineRules<T extends Linter.RulesRecord>(rules: T) { return rules; }\n\n/**\n * Provide a rules object to receive a getter function that returns the option of the given rule.\n * \n * Useful for sharing options between a base rule, and a rule that extends the base rule,\n * e.g. in the case of `eslint-plugin-vue` extension rules and the corresponding base `@stylistic` rules.\n */\nexport function entreeAdoptOptionsFromRules<T extends Linter.RulesRecord>(rules: T) {\n function getOptionsOf<K extends keyof T>(keyOfRule: K): NonNullable<T[K]> {\n const rule = rules[keyOfRule];\n if (!rule) console.warn(`[entree-utils.ts] Unexpectedly missing rule: \"${String(keyOfRule)}\". Rules:`, rules);\n return rule;\n }\n return { getOptionsOf, };\n}\n\n/**\n * Filter rules for adoption or debugging purposes by excluding and picking rules.\n * \n * ---\n * \n * Filtering is meant to help in the adoption process.\n * \n * Ideally, the filtering is entirely removed after processing the whole codebase, and all rules are fully covering the code.\n * \n * - `exclude` is used to cut down on the printed result of eslint, to set aside rules that overwhelm the output\n * - `pick` is used to select from the remaining results the ones you currently want to fix, and to verify their adoption\n * \n * After the rule(s) in `pick` are done, run eslint again, and pick again from the results.\n * \n * After everything you picked is done, process the rules that you previously excluded, if there were any.\n */\nexport function entreeFilterRules<\n T extends Linter.RulesRecord,\n const TExcludeKeys extends keyof T,\n const TPickableKeys extends keyof Omit<T, TExcludeKeys>\n>(\n rules: T,\n opts?: |(\n | { exclude: readonly TExcludeKeys[], pick?: undefined, debug?: boolean, }\n | { exclude: readonly TExcludeKeys[], pick: TPickableKeys[], debug?: boolean, }\n ),\n): Simplify<Pick<Omit<T, TExcludeKeys>, TPickableKeys>> {\n if (opts === void 0) return rules;\n\n const { exclude, pick, debug = false, } = opts;\n const rulesFiltered: Linter.RulesRecord = {};\n\n if (pick !== void 0) {\n for (const key_picked of pick) rulesFiltered[key_picked as string] = rules[key_picked];\n } else {\n for (const [key, rule] of Object.entries(rules)) rulesFiltered[key] = rule;\n for (const key_excluded of exclude) delete rulesFiltered[key_excluded as string];\n }\n\n if (debug) {\n const count_rules: number = Object.keys(rules).length;\n const count_filtered: number = Object.keys(rulesFiltered).length;\n console.info(`Filtered ${count_rules} rules down to ${count_filtered}. Result:`, rulesFiltered);\n }\n\n return rulesFiltered as T;\n}\n","// @ts-check\nimport { entreeDefineRules } from \"../entree-utils.js\";\n\n/**\n * Combines all hand-picked rule collections for TypeScript.\n * \n * https://typescript-eslint.io/\n */\nexport function typeScript() {\n const rules = entreeDefineRules({\n ...typeScript_eslint(),\n ...typeScript_stylistic(),\n ...typeScript_filteredBy_recommended(),\n ...typeScript_filteredBy_tsStylistic(),\n ...typeScript_filteredBy_strict(),\n ...typeScript_filteredBy_miscellaneous(),\n });\n\n return rules;\n}\n\n/**\n * You may want to use the full set of rules provided by `typeScript()`: {@link typeScript}\n * \n * Subset selected from https://eslint.org/docs/latest/rules/\n */\nexport function typeScript_eslint() {\n return entreeDefineRules({\n \"no-compare-neg-zero\": [\"error\"],\n \"no-debugger\": [\"error\"],\n \"no-irregular-whitespace\": [\"error\", { skipComments: true, skipJSXText: true, skipRegExps: true, skipStrings: true, skipTemplates: true, }],\n \"no-promise-executor-return\": [\"warn\", { allowVoid: true, }],\n \"no-self-assign\": [\"warn\", { props: true, }],\n \"no-self-compare\": [\"warn\"],\n \"require-atomic-updates\": [\"error\", { allowProperties: true, }],\n \"use-isnan\": [\"warn\", { enforceForSwitchCase: true, enforceForIndexOf: true, }],\n \"no-caller\": [\"error\"],\n \"eqeqeq\": [\"warn\", \"always\", { null: \"always\", }],\n \"default-case-last\": [\"warn\"],\n \"default-case\": [\"warn\", { commentPattern: \"^skip\\\\sdefault\", }],\n \"no-implicit-coercion\": [\"warn\", { boolean: true, number: true, string: true, disallowTemplateShorthand: false, allow: [], }],\n \"no-octal\": [\"warn\"],\n \"no-nonoctal-decimal-escape\": [\"warn\"],\n \"no-throw-literal\": [\"warn\"],\n \"no-undefined\": [\"warn\"],\n \"no-useless-escape\": [\"warn\"],\n \"no-useless-rename\": [\"warn\", { ignoreImport: false, ignoreExport: false, ignoreDestructuring: false, }],\n \"no-var\": [\"warn\"],\n \"prefer-const\": [\"warn\", { destructuring: \"all\", ignoreReadBeforeAssign: false, }],\n \"prefer-promise-reject-errors\": [\"warn\", { allowEmptyReject: false, }],\n \"prefer-template\": [\"warn\"],\n \"require-unicode-regexp\": [\"warn\"],\n \"symbol-description\": [\"warn\"],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `typeScript()`: {@link typeScript}\n * \n * Subset selected from https://eslint.style/packages/default\n */\nexport function typeScript_stylistic() {\n return entreeDefineRules({\n \"@stylistic/type-annotation-spacing\": [\"warn\", { before: false, after: true, overrides: { arrow: { before: true, after: true, }, }, }],\n \"@stylistic/space-before-function-paren\": [\"warn\", { anonymous: \"always\", named: \"never\", asyncArrow: \"always\", }],\n \"@stylistic/semi\": [\"warn\", \"always\"],\n \"@stylistic/no-extra-semi\": [\"warn\"],\n \"@stylistic/no-trailing-spaces\": [\"warn\", { ignoreComments: true, }],\n \"@stylistic/space-infix-ops\": [\"warn\", { int32Hint: true, }],\n \"@stylistic/object-curly-spacing\": [\"warn\", \"always\", { arraysInObjects: false, objectsInObjects: false, }],\n \"@stylistic/comma-spacing\": [\"warn\", { before: false, after: true, }],\n \"@stylistic/keyword-spacing\": [\"warn\", { before: true, after: true, }],\n \"@stylistic/quotes\": [\"warn\", \"double\", { avoidEscape: true, allowTemplateLiterals: true, }],\n \"@stylistic/space-in-parens\": [\"warn\", \"never\"],\n \"@stylistic/array-bracket-spacing\": [\"warn\", \"never\"],\n \"@stylistic/arrow-spacing\": [\"warn\"],\n \"@stylistic/eol-last\": [\"warn\", \"always\"],\n \"@stylistic/comma-dangle\": [\"warn\", {\n arrays: \"always-multiline\",\n objects: \"always\",\n imports: \"never\",\n exports: \"always-multiline\",\n functions: \"always-multiline\",\n }],\n \"@stylistic/member-delimiter-style\": [\"warn\", {\n singleline: {\n delimiter: \"comma\",\n requireLast: true,\n },\n multiline: {\n delimiter: \"comma\",\n requireLast: true,\n },\n multilineDetection: \"brackets\",\n }],\n \"@stylistic/key-spacing\": [\"warn\", {\n singleLine: {\n beforeColon: false,\n afterColon: true,\n },\n multiLine: {\n beforeColon: false,\n afterColon: true,\n },\n align: {\n beforeColon: false,\n afterColon: true,\n on: \"value\",\n },\n }],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `typeScript()`: {@link typeScript}\n * \n * Subset selected from https://typescript-eslint.io/rules/?=recommended-xtypeInformation\n */\nexport function typeScript_filteredBy_recommended() {\n return entreeDefineRules({\n \"@typescript-eslint/ban-ts-comment\": [\"error\", {\n \"ts-expect-error\": \"allow-with-description\",\n \"ts-ignore\": \"allow-with-description\",\n \"ts-nocheck\": \"allow-with-description\",\n \"ts-check\": false,\n }],\n\n \"@typescript-eslint/no-empty-object-type\": [\"error\", { allowInterfaces: \"never\", allowObjectTypes: \"never\", }],\n \"@typescript-eslint/no-unsafe-function-type\": [\"error\"],\n \"@typescript-eslint/no-wrapper-object-types\": [\"error\"],\n\n \"@typescript-eslint/no-duplicate-enum-values\": [\"error\"],\n\n \"no-loss-of-precision\": [\"off\"],\n \"@typescript-eslint/no-loss-of-precision\": [\"error\"],\n \"@typescript-eslint/no-misused-new\": [\"error\"],\n \"@typescript-eslint/no-namespace\": [\"warn\", {\n allowDeclarations: false,\n allowDefinitionFiles: true,\n }],\n \"@typescript-eslint/no-unnecessary-type-constraint\": [\"error\"],\n \"@typescript-eslint/no-unsafe-declaration-merging\": [\"error\"],\n \"@typescript-eslint/prefer-as-const\": [\"error\"],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `typeScript()`: {@link typeScript}\n * \n * Subset selected from https://typescript-eslint.io/rules/?=stylistic-xtypeInformation\n */\nexport function typeScript_filteredBy_tsStylistic() {\n return entreeDefineRules({\n \"@typescript-eslint/consistent-type-assertions\": [\"warn\", {\n assertionStyle: \"as\",\n objectLiteralTypeAssertions: \"allow-as-parameter\",\n }],\n \"@typescript-eslint/no-confusing-non-null-assertion\": [\"warn\"],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `typeScript()`: {@link typeScript}\n * \n * Subset selected from https://typescript-eslint.io/rules/?=xrecommended-strict-xstylistic-xtypeInformation\n */\nexport function typeScript_filteredBy_strict() {\n return entreeDefineRules({\n \"@typescript-eslint/no-invalid-void-type\": [\"warn\", {\n allowInGenericTypeArguments: true,\n allowAsThisParameter: true,\n }],\n \"@typescript-eslint/no-non-null-assertion\": [\"error\"],\n \"@typescript-eslint/prefer-ts-expect-error\": [\"error\"],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `typeScript()`: {@link typeScript}\n * \n * Subset selected from https://typescript-eslint.io/rules/?=xrecommended-xstrict-xstylistic-xtypeInformation-xdeprecated\n */\nexport function typeScript_filteredBy_miscellaneous() {\n return entreeDefineRules({\n \"@typescript-eslint/no-import-type-side-effects\": [\"warn\"],\n\n \"no-unused-expressions\": [\"off\"],\n \"@typescript-eslint/no-unused-expressions\": [\"warn\", {\n allowShortCircuit: true,\n allowTernary: true,\n allowTaggedTemplates: true,\n }],\n\n \"@typescript-eslint/no-useless-empty-export\": [\"error\"],\n });\n}\n","// @ts-check\nimport { entreeAdoptOptionsFromRules, entreeDefineRules } from \"../entree-utils.js\";\nimport { typeScript_stylistic } from \"./rules-typescript.entree.js\";\n\n/**\n * Combines all hand-picked rule collections for Vue 3.\n * \n * https://eslint.vuejs.org/rules/\n * \n * All rules checked as of eslint-plugin-vue@9.19.2\n */\nexport function vue3() {\n const rules = entreeDefineRules({\n ...vue3_base(),\n ...vue3_essential(),\n ...vue3_strongly_recommended(),\n ...vue3_recommended(),\n ...vue3_uncategorized(),\n ...vue3_extension_rules_forTemplateExpressions(),\n });\n\n return rules;\n}\n\n/**\n * You may want to use the full set of rules provided by `vue3()`: {@link vue3}\n * \n * Subset selected from https://eslint.vuejs.org/rules/#base-rules-enabling-correct-eslint-parsing\n * \n * All rules checked as of eslint-plugin-vue@9.19.2\n */\nexport function vue3_base() {\n return entreeDefineRules({\n \"vue/comment-directive\": [\"error\"],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `vue3()`: {@link vue3}\n * \n * Subset selected from https://eslint.vuejs.org/rules/#priority-a-essential-error-prevention\n * \n * All rules checked as of eslint-plugin-vue@9.19.2\n */\nexport function vue3_essential() {\n return entreeDefineRules({\n \"vue/no-dupe-keys\": [\"error\"],\n \"vue/no-side-effects-in-computed-properties\": [\"error\"],\n \"vue/no-ref-as-operand\": [\"error\"],\n \"vue/no-async-in-computed-properties\": [\"error\"],\n \"vue/no-child-content\": [\"error\"],\n \"vue/no-dupe-v-else-if\": [\"error\"],\n \"vue/no-duplicate-attributes\": [\"error\"],\n \"vue/no-export-in-script-setup\": [\"error\"],\n \"vue/no-expose-after-await\": [\"error\"],\n \"vue/no-lifecycle-after-await\": [\"error\"],\n \"vue/no-reserved-keys\": [\"error\"],\n \"vue/no-reserved-props\": [\"error\"],\n \"vue/no-template-key\": [\"error\"],\n \"vue/no-textarea-mustache\": [\"error\"],\n \"vue/no-use-v-if-with-v-for\": [\"error\"],\n \"vue/no-useless-template-attributes\": [\"error\"],\n \"vue/no-v-for-template-key-on-child\": [\"error\"],\n \"vue/no-v-text-v-html-on-component\": [\"error\"],\n \"vue/no-watch-after-await\": [\"error\"],\n \"vue/prefer-import-from-vue\": [\"error\"],\n \"vue/require-component-is\": [\"error\"],\n \"vue/require-render-return\": [\"error\"],\n \"vue/require-toggle-inside-transition\": [\"error\"],\n \"vue/use-v-on-exact\": [\"error\"],\n \"vue/valid-attribute-name\": [\"error\"],\n \"vue/valid-define-emits\": [\"error\"],\n \"vue/valid-define-props\": [\"error\"],\n \"vue/valid-next-tick\": [\"error\"],\n \"vue/valid-template-root\": [\"error\"],\n \"vue/valid-v-bind\": [\"error\"],\n \"vue/valid-v-cloak\": [\"error\"],\n \"vue/valid-v-else-if\": [\"error\"],\n \"vue/valid-v-else\": [\"error\"],\n \"vue/valid-v-html\": [\"error\"],\n \"vue/valid-v-if\": [\"error\"],\n \"vue/valid-v-is\": [\"error\"],\n \"vue/valid-v-memo\": [\"error\"],\n \"vue/valid-v-model\": [\"error\"],\n \"vue/valid-v-on\": [\"error\"],\n \"vue/valid-v-once\": [\"error\"],\n \"vue/valid-v-pre\": [\"error\"],\n \"vue/valid-v-show\": [\"error\"],\n \"vue/valid-v-slot\": [\"error\"],\n \"vue/valid-v-text\": [\"error\"],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `vue3()`: {@link vue3}\n * \n * Subset selected from https://eslint.vuejs.org/rules/#priority-b-strongly-recommended-improving-readability\n * \n * All rules checked as of eslint-plugin-vue@9.19.2\n */\nexport function vue3_strongly_recommended() {\n return entreeDefineRules({\n \"vue/attribute-hyphenation\": [\"warn\"],\n \"vue/html-closing-bracket-spacing\": [\"warn\"],\n \"vue/html-self-closing\": [\"warn\", {\n html: {\n void: \"never\",\n normal: \"never\",\n component: \"any\",\n },\n svg: \"any\",\n math: \"any\",\n }],\n \"vue/html-quotes\": [\"warn\", \"double\", { avoidEscape: true, }],\n \"vue/mustache-interpolation-spacing\": [\"warn\", \"always\"],\n \"vue/no-multi-spaces\": [\"warn\", { ignoreProperties: true, }],\n \"vue/no-spaces-around-equal-signs-in-attribute\": [\"warn\"],\n \"vue/no-template-shadow\": [\"warn\"],\n \"vue/v-bind-style\": [\"warn\", \"shorthand\"],\n \"vue/v-on-event-hyphenation\": [\"warn\", \"always\", { autofix: true, }],\n \"vue/v-on-style\": [\"warn\", \"shorthand\"],\n \"vue/v-slot-style\": [\"warn\", {\n atComponent: \"shorthand\",\n default: \"shorthand\",\n named: \"shorthand\",\n }],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `vue3()`: {@link vue3}\n * \n * Subset selected from https://eslint.vuejs.org/rules/#priority-c-recommended-potentially-dangerous-patterns\n * \n * All rules checked as of eslint-plugin-vue@9.19.2\n */\nexport function vue3_recommended() {\n return entreeDefineRules({\n \"vue/attributes-order\": [\"warn\", {\n order: [\n \"DEFINITION\",\n \"SLOT\",\n \"LIST_RENDERING\",\n \"CONDITIONALS\",\n \"RENDER_MODIFIERS\",\n \"UNIQUE\",\n \"GLOBAL\",\n \"OTHER_DIRECTIVES\",\n \"ATTR_SHORTHAND_BOOL\",\n \"ATTR_STATIC\",\n \"TWO_WAY_BINDING\",\n \"ATTR_DYNAMIC\",\n \"EVENTS\",\n \"CONTENT\",\n ],\n alphabetical: false,\n }],\n \"vue/no-lone-template\": [\"warn\", { ignoreAccessible: true, }],\n \"vue/no-multiple-slot-args\": [\"warn\"],\n \"vue/no-v-html\": [\"warn\"],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `vue3()`: {@link vue3}\n * \n * Subset selected from https://eslint.vuejs.org/rules/#uncategorized\n * \n * All rules checked as of eslint-plugin-vue@9.19.2\n */\nexport function vue3_uncategorized() {\n const globalComponents = [\"RouterView\", \"RouterLink\"];\n return entreeDefineRules({\n \"vue/block-order\": [\"warn\", { order: [\"template\", \"script:not([setup])\", \"script[setup]\", \"style[scoped]\", \"style:not([scoped])\"], }],\n \"vue/no-duplicate-attr-inheritance\": [\"error\"],\n \"vue/no-required-prop-with-default\": [\"warn\", { autofix: true, }],\n \"vue/no-restricted-v-bind\": [\"error\", {\n argument: \"/^v-/\",\n message: \"Using `:v-xxx` is not allowed. Instead, remove `:` and use it as directive.\",\n }],\n \"vue/no-undef-components\": [\"error\", {\n ignorePatterns: [...globalComponents],\n }],\n \"vue/no-unused-refs\": [\"error\"],\n \"vue/padding-line-between-blocks\": [\"warn\", \"always\"],\n \"vue/prefer-define-options\": [\"warn\"],\n \"vue/prefer-separate-static-class\": [\"warn\"],\n \"vue/require-macro-variable-name\": [\"error\", {\n defineProps: \"props\",\n defineEmits: \"emit\",\n defineSlots: \"slots\",\n useSlots: \"slots\",\n useAttrs: \"attrs\",\n }],\n \"vue/require-typed-ref\": [\"error\"],\n \"vue/v-for-delimiter-style\": [\"warn\", \"in\"],\n \"vue/valid-define-options\": [\"error\"],\n \"vue/block-lang\": [\"error\", { script: { lang: \"ts\", }, }],\n \"vue/component-api-style\": [\"error\", [\"script-setup\"]],\n \"vue/component-name-in-template-casing\": [\"warn\", \"PascalCase\", {\n registeredComponentsOnly: true,\n ignores: [],\n globals: [...globalComponents],\n }],\n \"vue/custom-event-name-casing\": [\"warn\", \"camelCase\", {\n ignores: [],\n }],\n \"vue/define-emits-declaration\": [\"warn\", \"type-literal\"],\n \"vue/define-props-declaration\": [\"warn\", \"type-based\"],\n \"vue/html-button-has-type\": [\"warn\", { button: true, submit: false, reset: false, }],\n });\n}\n\n/**\n * You may want to use the full set of rules provided by `vue3()`: {@link vue3}\n * \n * Subset selected from https://eslint.vuejs.org/rules/#extension-rules\n * \n * All rules checked as of eslint-plugin-vue@9.19.2\n */\nexport function vue3_extension_rules_forTemplateExpressions() {\n const { getOptionsOf: getOptionsOf_stylistic, } = entreeAdoptOptionsFromRules(typeScript_stylistic());\n\n // Commented out rules have no \"@stylistic/*\" equivalent (for now)\n return entreeDefineRules({\n // \"vue/array-bracket-newline\": getOptionsOf_stylistic(\"@stylistic/array-bracket-newline\"),\n \"vue/array-bracket-spacing\": getOptionsOf_stylistic(\"@stylistic/array-bracket-spacing\"),\n // \"vue/array-element-newline\": getOptionsOf_stylistic(\"@stylistic/array-element-newline\"),\n \"vue/arrow-spacing\": getOptionsOf_stylistic(\"@stylistic/arrow-spacing\"),\n // \"vue/block-spacing\": getOptionsOf_stylistic(\"@stylistic/block-spacing\"),\n // \"vue/brace-style\": getOptionsOf_stylistic(\"@stylistic/brace-style\"),\n // \"vue/camelcase\": getOptionsOf_stylistic(\"@stylistic/camelcase\"),\n \"vue/comma-dangle\": getOptionsOf_stylistic(\"@stylistic/comma-dangle\"),\n \"vue/comma-spacing\": getOptionsOf_stylistic(\"@stylistic/comma-spacing\"),\n // \"vue/comma-style\": getOptionsOf_stylistic(\"@stylistic/comma-style\"),\n // \"vue/dot-location\": getOptionsOf_stylistic(\"@stylistic/dot-location\"),\n // \"vue/dot-notation\": getOptionsOf_stylistic(\"@stylistic/dot-notation\"),\n // \"vue/eqeqeq\": getOptionsOf_stylistic(\"@stylistic/eqeqeq\"),\n // \"vue/func-call-spacing\": getOptionsOf_stylistic(\"@stylistic/func-call-spacing\"),\n \"vue/key-spacing\": getOptionsOf_stylistic(\"@stylistic/key-spacing\"),\n \"vue/keyword-spacing\": getOptionsOf_stylistic(\"@stylistic/keyword-spacing\"),\n // \"vue/multiline-ternary\": getOptionsOf_stylistic(\"@stylistic/multiline-ternary\"),\n // \"vue/no-console\": getOptionsOf_stylistic(\"@stylistic/no-console\"),\n // \"vue/no-constant-condition\": getOptionsOf_stylistic(\"@stylistic/no-constant-condition\"),\n // \"vue/no-empty-pattern\": getOptionsOf_stylistic(\"@stylistic/no-empty-pattern\"),\n // \"vue/no-extra-parens\": getOptionsOf_stylistic(\"@stylistic/no-extra-parens\"),\n // \"vue/no-irregular-whitespace\": getOptionsOf_stylistic(\"@stylistic/no-irregular-whitespace\"),\n // \"vue/no-loss-of-precision\": getOptionsOf_stylistic(\"@stylistic/no-loss-of-precision\"),\n // \"vue/no-restricted-syntax\": getOptionsOf_stylistic(\"@stylistic/no-restricted-syntax\"),\n // \"vue/no-sparse-arrays\": getOptionsOf_stylistic(\"@stylistic/no-sparse-arrays\"),\n // \"vue/no-useless-concat\": getOptionsOf_stylistic(\"@stylistic/no-useless-concat\"),\n // \"vue/object-curly-newline\": getOptionsOf_stylistic(\"@stylistic/object-curly-newline\"),\n \"vue/object-curly-spacing\": getOptionsOf_stylistic(\"@stylistic/object-curly-spacing\"),\n // \"vue/object-property-newline\": getOptionsOf_stylistic(\"@stylistic/object-property-newline\"),\n // \"vue/object-shorthand\": getOptionsOf_stylistic(\"@stylistic/object-shorthand\"),\n // \"vue/operator-linebreak\": getOptionsOf_stylistic(\"@stylistic/operator-linebreak\"),\n // \"vue/prefer-template\": getOptionsOf_stylistic(\"@stylistic/prefer-template\"),\n // \"vue/quote-props\": getOptionsOf_stylistic(\"@stylistic/quote-props\"),\n \"vue/space-in-parens\": getOptionsOf_stylistic(\"@stylistic/space-in-parens\"),\n \"vue/space-infix-ops\": getOptionsOf_stylistic(\"@stylistic/space-infix-ops\"),\n // \"vue/space-unary-ops\": getOptionsOf_stylistic(\"@stylistic/space-unary-ops\"),\n // \"vue/template-curly-spacing\": getOptionsOf_stylistic(\"@stylistic/template-curly-spacing\"),\n });\n}\n","// @ts-check\nimport reactHooks from \"eslint-plugin-react-hooks\";\nimport { entreeDefineRules } from \"../entree-utils.js\";\n\n/**\n * WIP. For now, only the rules generated by `npm create vite@latest ./ -- --template react-ts` are added.\n */\nexport function react() {\n const rules = entreeDefineRules({\n // ...react_base(),\n // ...react_essential(),\n // ...react_strongly_recommended(),\n // ...react_recommended(),\n // ...react_uncategorized(),\n // ...react_extension_rules_forTemplateExpressions(),\n ...(/** @type {any} */ (reactHooks.configs.recommended.rules)),\n \"react-refresh/only-export-components\": [\n \"warn\",\n { allowConstantExport: true, },\n ],\n });\n\n return rules;\n}\n","import * as rules_typeScript from \"./eslint-sample-js/rules-typescript.entree.js\";\nimport * as rules_vue3 from \"./eslint-sample-js/rules-vue3.entree.js\";\nimport * as rules_react from \"./eslint-sample-js/rules-react.entree.js\";\n\n/**\n * Every collection of hand-picked rules.\n */\nexport const entreeRules = {\n ...rules_typeScript,\n ...rules_vue3,\n ...rules_react,\n};\n"],"mappings":"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"}