create-typescript-app 1.58.0 → 1.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/lib/shared/createCleanupCommands.js +1 -1
  3. package/lib/shared/createCleanupCommands.js.map +1 -1
  4. package/lib/shared/options/args.d.ts +0 -5
  5. package/lib/shared/options/args.js +0 -6
  6. package/lib/shared/options/args.js.map +1 -1
  7. package/lib/shared/options/augmentOptionsWithExcludes.js +2 -1
  8. package/lib/shared/options/augmentOptionsWithExcludes.js.map +1 -1
  9. package/lib/shared/options/ensureRepositoryExists.js +2 -1
  10. package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
  11. package/lib/shared/options/exclusionKeys.d.ts +1 -1
  12. package/lib/shared/options/exclusionKeys.js +0 -5
  13. package/lib/shared/options/exclusionKeys.js.map +1 -1
  14. package/lib/shared/options/optionsSchema.d.ts +24 -28
  15. package/lib/shared/options/optionsSchema.js +0 -1
  16. package/lib/shared/options/optionsSchema.js.map +1 -1
  17. package/lib/shared/options/readOptions.js +0 -1
  18. package/lib/shared/options/readOptions.js.map +1 -1
  19. package/lib/shared/types.d.ts +0 -1
  20. package/lib/steps/finalizeDependencies.js +5 -6
  21. package/lib/steps/finalizeDependencies.js.map +1 -1
  22. package/lib/steps/updateLocalFiles.js +1 -1
  23. package/lib/steps/updateLocalFiles.js.map +1 -1
  24. package/lib/steps/writing/creation/{createESLintRC.d.ts → createESLintConfig.d.ts} +2 -2
  25. package/lib/steps/writing/creation/createESLintConfig.js +154 -0
  26. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -0
  27. package/lib/steps/writing/creation/dotGitHub/actions.js +4 -1
  28. package/lib/steps/writing/creation/dotGitHub/actions.js.map +1 -1
  29. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js +1 -0
  30. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js.map +1 -1
  31. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js +1 -1
  32. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js.map +1 -1
  33. package/lib/steps/writing/creation/dotVSCode.js +1 -0
  34. package/lib/steps/writing/creation/dotVSCode.js.map +1 -1
  35. package/lib/steps/writing/creation/rootFiles.d.ts +1 -2
  36. package/lib/steps/writing/creation/rootFiles.js +3 -7
  37. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  38. package/lib/steps/writing/creation/writePackageJson.js +1 -2
  39. package/lib/steps/writing/creation/writePackageJson.js.map +1 -1
  40. package/package.json +35 -35
  41. package/lib/steps/writing/creation/createESLintRC.js +0 -167
  42. package/lib/steps/writing/creation/createESLintRC.js.map +0 -1
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "create-typescript-app",
3
- "version": "1.58.0",
3
+ "version": "1.59.0",
4
4
  "description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 💝",
5
- "repository": "JoshuaKGoldberg/create-typescript-app",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/JoshuaKGoldberg/create-typescript-app"
8
+ },
6
9
  "license": "MIT",
7
10
  "author": {
8
11
  "name": "Josh Goldberg",
@@ -22,15 +25,15 @@
22
25
  "build": "tsup",
23
26
  "format": "prettier .",
24
27
  "initialize": "tsx ./bin/index.js --mode initialize",
25
- "lint": "eslint . .*js --max-warnings 0",
28
+ "lint": "eslint . --max-warnings 0",
26
29
  "lint:knip": "knip",
27
30
  "lint:md": "markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line",
28
31
  "lint:packages": "pnpm dedupe --check",
29
32
  "lint:spelling": "cspell \"**\" \".github/**/*\"",
30
33
  "prepare": "husky",
31
34
  "test": "vitest",
32
- "test:create": "node script/create-test-e2e.js",
33
- "test:initialize": "node script/initialize-test-e2e.js",
35
+ "test:create": "npx tsx script/create-test-e2e.ts",
36
+ "test:initialize": "npx tsx script/initialize-test-e2e.ts",
34
37
  "test:migrate": "vitest run -r script/",
35
38
  "tsc": "tsc"
36
39
  },
@@ -41,13 +44,13 @@
41
44
  "@clack/prompts": "^0.7.0",
42
45
  "all-contributors-for-repository": "^0.2.1",
43
46
  "chalk": "^5.3.0",
44
- "execa": "^8.0.1",
47
+ "execa": "^9.0.0",
45
48
  "git-remote-origin-url": "^4.0.0",
46
49
  "git-url-parse": "^14.0.0",
47
50
  "js-yaml": "^4.1.0",
48
51
  "lazy-value": "^3.0.0",
49
52
  "npm-user": "^6.0.0",
50
- "octokit": "^3.1.2",
53
+ "octokit": "^4.0.0",
51
54
  "parse-author": "^2.0.0",
52
55
  "prettier": "^3.1.0",
53
56
  "replace-in-file": "^7.0.2",
@@ -57,49 +60,46 @@
57
60
  "zod-validation-error": "^3.0.2"
58
61
  },
59
62
  "devDependencies": {
60
- "@octokit/request-error": "^6.0.0",
63
+ "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
64
+ "@eslint/js": "^9.2.0",
65
+ "@octokit/request-error": "^6.1.1",
61
66
  "@release-it/conventional-changelog": "^8.0.1",
62
- "@types/eslint": "^8.44.8",
67
+ "@types/eslint-plugin-markdown": "^2.0.2",
63
68
  "@types/git-url-parse": "^9.0.3",
64
69
  "@types/js-yaml": "^4.0.9",
65
- "@types/node": "^20.10.4",
70
+ "@types/node": "^20.12.7",
66
71
  "@types/parse-author": "^2.0.3",
67
- "@typescript-eslint/eslint-plugin": "^7.2.0",
68
- "@typescript-eslint/parser": "^7.2.0",
69
- "@vitest/coverage-v8": "^1.0.2",
72
+ "@vitest/coverage-v8": "^1.4.0",
70
73
  "c8": "^9.0.0",
71
74
  "console-fail-test": "^0.2.3",
72
75
  "cspell": "^8.1.3",
73
- "eslint": "^8.55.0",
74
- "eslint-plugin-deprecation": "^2.0.0",
75
- "eslint-plugin-eslint-comments": "^3.2.0",
76
- "eslint-plugin-jsdoc": "^48.0.0",
77
- "eslint-plugin-jsonc": "^2.10.0",
78
- "eslint-plugin-markdown": "^4.0.1",
79
- "eslint-plugin-n": "^16.3.1",
80
- "eslint-plugin-package-json": "^0.11.0",
81
- "eslint-plugin-perfectionist": "^2.5.0",
82
- "eslint-plugin-regexp": "^2.1.2",
83
- "eslint-plugin-vitest": "^0.4.0",
84
- "eslint-plugin-yml": "^1.10.0",
76
+ "eslint": "^9.2.0",
77
+ "eslint-plugin-jsdoc": "^48.2.3",
78
+ "eslint-plugin-jsonc": "^2.15.0",
79
+ "eslint-plugin-markdown": "^5.0.0",
80
+ "eslint-plugin-n": "^17.3.1",
81
+ "eslint-plugin-package-json": "^0.13.0",
82
+ "eslint-plugin-perfectionist": "^2.9.0",
83
+ "eslint-plugin-regexp": "^2.5.0",
84
+ "eslint-plugin-vitest": "^0.5.3",
85
+ "eslint-plugin-yml": "^1.14.0",
85
86
  "globby": "^14.0.0",
86
87
  "husky": "^9.0.11",
87
88
  "jsonc-eslint-parser": "^2.4.0",
88
- "knip": "5.7.0",
89
- "lint-staged": "^15.2.0",
89
+ "knip": "5.16.0",
90
+ "lint-staged": "^15.2.2",
90
91
  "markdownlint": "^0.34.0",
91
- "markdownlint-cli": "^0.39.0",
92
+ "markdownlint-cli": "^0.40.0",
92
93
  "prettier-plugin-curly": "^0.2.0",
93
- "prettier-plugin-packagejson": "^2.4.7",
94
- "release-it": "^17.0.0",
94
+ "prettier-plugin-packagejson": "^2.5.0",
95
+ "release-it": "^17.3.0",
95
96
  "sentences-per-line": "^0.2.1",
96
97
  "tsup": "^8.0.1",
97
- "tsx": "^4.6.2",
98
- "typescript": "^5.3.3",
99
- "vitest": "^1.0.2",
100
- "yaml-eslint-parser": "^1.2.2"
98
+ "tsx": "^4.9.0",
99
+ "typescript": "^5.4.3",
100
+ "typescript-eslint": "^7.7.0",
101
+ "vitest": "^1.4.0"
101
102
  },
102
- "packageManager": "pnpm@8.15.4",
103
103
  "engines": {
104
104
  "node": ">=18"
105
105
  },
@@ -1,167 +0,0 @@
1
- import { formatTypeScript } from "./formatters/formatTypeScript.js";
2
- async function createESLintRC(options) {
3
- return await formatTypeScript(`/** @type {import("@types/eslint").Linter.Config} */
4
- module.exports = {
5
- env: {
6
- es2022: true,
7
- node: true,
8
- },
9
- extends: [
10
- "eslint:recommended",
11
- ${options.excludeLintESLint ? "" : `"plugin:eslint-comments/recommended",
12
- `}"plugin:n/recommended",${options.excludeLintPerfectionist ? "" : `
13
- "plugin:perfectionist/recommended-natural",`}${options.excludeLintRegex ? "" : `"plugin:regexp/recommended",`}${options.excludeTests ? "" : `"plugin:vitest/recommended",`}
14
- ],
15
- ignorePatterns: [
16
- "!.*",${options.excludeTests ? "" : `
17
- "coverage",`}
18
- "lib",
19
- "node_modules",
20
- "pnpm-lock.yaml",
21
- ],
22
- overrides: [${options.excludeLintMd ? "" : `
23
- {
24
- extends: ["plugin:markdown/recommended-legacy"],
25
- files: ["**/*.md"],
26
- processor: "markdown/markdown",
27
- },`}
28
- {
29
- extends: [
30
- ${options.excludeLintJSDoc ? "" : `"plugin:jsdoc/recommended-typescript-error",
31
- `}"plugin:@typescript-eslint/${options.excludeLintStrict ? "recommended" : "strict"}",${options.excludeLintStylistic ? "" : `
32
- "plugin:@typescript-eslint/stylistic",`}
33
- ],
34
- files: ["**/*.ts"],
35
- parser: "@typescript-eslint/parser",
36
- rules: {
37
- // These off-by-default rules work well for this repo and we like them on.
38
- ${options.excludeLintJSDoc ? "" : `"jsdoc/informative-docs": "error",
39
- `}"logical-assignment-operators": [
40
- "error",
41
- "always",
42
- { enforceForIfStatements: true },
43
- ],
44
- "operator-assignment": "error",${options.excludeLintJSDoc ? "" : `
45
-
46
- // These on-by-default rules don't work well for this repo and we like them off.
47
- "jsdoc/require-jsdoc": "off",
48
- "jsdoc/require-param": "off",
49
- "jsdoc/require-property": "off",
50
- "jsdoc/require-returns": "off",`}
51
- },
52
- },
53
- {
54
- files: "**/*.md/*.ts",
55
- rules: {
56
- "n/no-missing-import": [
57
- "error",
58
- { allowModules: ["${options.repository}"] },
59
- ],
60
- },
61
- },
62
- {
63
- ${options.excludeLintMd ? "" : `excludedFiles: ["**/*.md/*.ts"],
64
- `}extends: [
65
- "plugin:@typescript-eslint/${options.excludeLintStrict ? "recommended" : "strict"}-type-checked",${options.excludeLintStylistic ? "" : `
66
- "plugin:@typescript-eslint/stylistic-type-checked",`}
67
- ],
68
- files: ["**/*.ts"],
69
- parser: "@typescript-eslint/parser",
70
- parserOptions: {
71
- project: "./tsconfig.eslint.json",
72
- },${options.excludeLintDeprecation ? "" : `rules: {
73
- // These off-by-default rules work well for this repo and we like them on.
74
- "deprecation/deprecation": "error",
75
- },`}
76
- },
77
- ${options.excludeLintJson ? "" : `{
78
- excludedFiles: ["package.json"],
79
- extends: ["plugin:jsonc/recommended-with-json"],
80
- files: ["*.json", "*.jsonc"],
81
- parser: "jsonc-eslint-parser",
82
- rules: {
83
- "jsonc/comma-dangle": "off",
84
- "jsonc/sort-keys": "error",
85
- },
86
- },
87
- {
88
- files: ["*.jsonc"],
89
- rules: {
90
- "jsonc/no-comments": "off",
91
- },
92
- },`}${options.excludeLintPackageJson ? "" : `{
93
- extends: ["plugin:package-json/recommended"],
94
- files: ["package.json"],
95
- parser: "jsonc-eslint-parser",
96
- plugins: ["package-json"],
97
- },`}${options.excludeTests ? "" : `
98
- {
99
- files: "**/*.test.ts",
100
- rules: {
101
- // These on-by-default rules aren't useful in test files.
102
- "@typescript-eslint/no-unsafe-assignment": "off",
103
- "@typescript-eslint/no-unsafe-call": "off",
104
- },
105
- },`}${options.excludeLintYml ? "" : `
106
- {
107
- extends: ["plugin:yml/standard", "plugin:yml/prettier"],
108
- files: ["**/*.{yml,yaml}"],
109
- parser: "yaml-eslint-parser",
110
- rules: {
111
- "yml/file-extension": ["error", { extension: "yml" }],
112
- "yml/sort-keys": [
113
- "error",
114
- {
115
- order: { type: "asc" },
116
- pathPattern: "^.*$",
117
- },
118
- ],
119
- "yml/sort-sequence-values": [
120
- "error",
121
- {
122
- order: { type: "asc" },
123
- pathPattern: "^.*$",
124
- },
125
- ],
126
- },
127
- },
128
- `}],
129
- parser: "@typescript-eslint/parser",
130
- plugins: [
131
- "@typescript-eslint",
132
- ${options.excludeLintDeprecation ? "" : `"deprecation",
133
- `}${options.excludeLintJSDoc ? "" : `"jsdoc",
134
- `}${options.excludeLintPerfectionist ? "" : `"perfectionist",`}${options.excludeLintRegex ? "" : `"regexp",`}${options.excludeTests ? "" : `
135
- "vitest",`}
136
- ],
137
- reportUnusedDisableDirectives: true,
138
- root: true,
139
- rules: {
140
- // These off/less-strict-by-default rules work well for this repo and we like them on.
141
- "@typescript-eslint/no-unused-vars": ["error", { caughtErrors: "all" }],
142
-
143
- // These on-by-default rules don't work well for this repo and we like them off.
144
- "no-case-declarations": "off",
145
- "no-constant-condition": "off",
146
- "no-inner-declarations": "off",
147
- "no-mixed-spaces-and-tabs": "off",
148
-
149
- ${options.excludeLintStylistic ? "" : `// Stylistic concerns that don't interfere with Prettier
150
- "no-useless-rename": "error",
151
- "object-shorthand": "error",
152
- `}${options.excludeLintPerfectionist ? "" : `"perfectionist/sort-objects": [
153
- "error",
154
- {
155
- order: "asc",
156
- "partition-by-comment": true,
157
- type: "natural",
158
- },
159
- ],`}
160
- },
161
- };
162
- `);
163
- }
164
- export {
165
- createESLintRC
166
- };
167
- //# sourceMappingURL=createESLintRC.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/steps/writing/creation/createESLintRC.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { formatTypeScript } from \"./formatters/formatTypeScript.js\";\n\nexport async function createESLintRC(options: Options) {\n\treturn await formatTypeScript(`/** @type {import(\"@types/eslint\").Linter.Config} */\nmodule.exports = {\n\tenv: {\n\t\tes2022: true,\n\t\tnode: true,\n\t},\n\textends: [\n\t\t\"eslint:recommended\",\n\t\t${\n\t\t\toptions.excludeLintESLint\n\t\t\t\t? \"\"\n\t\t\t\t: `\"plugin:eslint-comments/recommended\",\n\t\t`\n\t\t}\"plugin:n/recommended\",${\n\t\t\toptions.excludeLintPerfectionist\n\t\t\t\t? \"\"\n\t\t\t\t: `\n\t\t\"plugin:perfectionist/recommended-natural\",`\n\t\t}${options.excludeLintRegex ? \"\" : `\"plugin:regexp/recommended\",`}${\n\t\t\toptions.excludeTests ? \"\" : `\"plugin:vitest/recommended\",`\n\t\t}\n\t],\n\tignorePatterns: [\n\t\t\"!.*\",${options.excludeTests ? \"\" : `\\n\t\t\"coverage\",`}\n\t\t\"lib\",\n\t\t\"node_modules\",\n\t\t\"pnpm-lock.yaml\",\n\t],\n\toverrides: [${\n\t\toptions.excludeLintMd\n\t\t\t? \"\"\n\t\t\t: `\n\t\t{\n\t\t\textends: [\"plugin:markdown/recommended-legacy\"],\n\t\t\tfiles: [\"**/*.md\"],\n\t\t\tprocessor: \"markdown/markdown\",\n\t\t},`\n\t}\n\t\t{\n\t\t\textends: [\n\t\t\t\t${\n\t\t\t\t\toptions.excludeLintJSDoc\n\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t: `\"plugin:jsdoc/recommended-typescript-error\",\n\t\t\t\t`\n\t\t\t\t}\"plugin:@typescript-eslint/${\n\t\t\t\t\toptions.excludeLintStrict ? \"recommended\" : \"strict\"\n\t\t\t\t}\",${\n\t\t\t\t\toptions.excludeLintStylistic\n\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t: `\n\t\t\t\t\"plugin:@typescript-eslint/stylistic\",`\n\t\t\t\t}\n\t\t\t],\n\t\t\tfiles: [\"**/*.ts\"],\n\t\t\tparser: \"@typescript-eslint/parser\",\n\t\t\trules: {\n\t\t\t\t// These off-by-default rules work well for this repo and we like them on.\n\t\t\t\t${\n\t\t\t\t\toptions.excludeLintJSDoc\n\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t: `\"jsdoc/informative-docs\": \"error\",\n\t\t\t\t`\n\t\t\t\t}\"logical-assignment-operators\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t\"always\",\n\t\t\t\t\t{ enforceForIfStatements: true },\n\t\t\t\t],\n\t\t\t\t\"operator-assignment\": \"error\",${\n\t\t\t\t\toptions.excludeLintJSDoc\n\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t: `\n\n\t\t\t\t// These on-by-default rules don't work well for this repo and we like them off.\n\t\t\t\t\"jsdoc/require-jsdoc\": \"off\",\n\t\t\t\t\"jsdoc/require-param\": \"off\",\n\t\t\t\t\"jsdoc/require-property\": \"off\",\n\t\t\t\t\"jsdoc/require-returns\": \"off\",`\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfiles: \"**/*.md/*.ts\",\n\t\t\trules: {\n\t\t\t\t\"n/no-missing-import\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{ allowModules: [\"${options.repository}\"] },\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t${\n\t\t\t\toptions.excludeLintMd\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `excludedFiles: [\"**/*.md/*.ts\"],\n\t\t\t`\n\t\t\t}extends: [\n\t\t\t\t\"plugin:@typescript-eslint/${\n\t\t\t\t\toptions.excludeLintStrict ? \"recommended\" : \"strict\"\n\t\t\t\t}-type-checked\",${\n\t\t\t\t\toptions.excludeLintStylistic\n\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t: `\n\t\t\t\t\"plugin:@typescript-eslint/stylistic-type-checked\",`\n\t\t\t\t}\n\t\t\t],\n\t\t\tfiles: [\"**/*.ts\"],\n\t\t\tparser: \"@typescript-eslint/parser\",\n\t\t\tparserOptions: {\n\t\t\t\tproject: \"./tsconfig.eslint.json\",\n\t\t\t},${\n\t\t\t\toptions.excludeLintDeprecation\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `rules: {\n\t\t\t\t// These off-by-default rules work well for this repo and we like them on.\n\t\t\t\t\"deprecation/deprecation\": \"error\",\n\t\t\t},`\n\t\t\t}\n\t\t},\n\t\t${\n\t\t\toptions.excludeLintJson\n\t\t\t\t? \"\"\n\t\t\t\t: `{\n\t\t\texcludedFiles: [\"package.json\"],\n\t\t\textends: [\"plugin:jsonc/recommended-with-json\"],\n\t\t\tfiles: [\"*.json\", \"*.jsonc\"],\n\t\t\tparser: \"jsonc-eslint-parser\",\n\t\t\trules: {\n\t\t\t\t\"jsonc/comma-dangle\": \"off\",\n\t\t\t\t\"jsonc/sort-keys\": \"error\",\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tfiles: [\"*.jsonc\"],\n\t\t\trules: {\n\t\t\t\t\"jsonc/no-comments\": \"off\",\n\t\t\t},\n\t\t},`\n\t\t}${\n\t\t\toptions.excludeLintPackageJson\n\t\t\t\t? \"\"\n\t\t\t\t: `{\n\t\t\textends: [\"plugin:package-json/recommended\"],\n\t\t\tfiles: [\"package.json\"],\n\t\t\tparser: \"jsonc-eslint-parser\",\n\t\t\tplugins: [\"package-json\"],\n\t\t},`\n\t\t}${\n\t\t\toptions.excludeTests\n\t\t\t\t? \"\"\n\t\t\t\t: `\\n{\n\t\t\tfiles: \"**/*.test.ts\",\n\t\t\trules: {\n\t\t\t\t// These on-by-default rules aren't useful in test files.\n\t\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"off\",\n\t\t\t\t\"@typescript-eslint/no-unsafe-call\": \"off\",\n\t\t\t},\n\t\t},`\n\t\t}${\n\t\t\toptions.excludeLintYml\n\t\t\t\t? \"\"\n\t\t\t\t: `\\n{\n\t\t\textends: [\"plugin:yml/standard\", \"plugin:yml/prettier\"],\n\t\t\tfiles: [\"**/*.{yml,yaml}\"],\n\t\t\tparser: \"yaml-eslint-parser\",\n\t\t\trules: {\n\t\t\t\t\"yml/file-extension\": [\"error\", { extension: \"yml\" }],\n\t\t\t\t\"yml/sort-keys\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\t\tpathPattern: \"^.*$\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\t\"yml/sort-sequence-values\": [\n\t\t\t\t\t\"error\",\n\t\t\t\t\t{\n\t\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\t\tpathPattern: \"^.*$\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t},\n\t`\n\t\t}],\n\tparser: \"@typescript-eslint/parser\",\n\tplugins: [\n\t\t\"@typescript-eslint\",\n\t\t${\n\t\t\toptions.excludeLintDeprecation\n\t\t\t\t? \"\"\n\t\t\t\t: `\"deprecation\",\n\t\t`\n\t\t}${\n\t\t\toptions.excludeLintJSDoc\n\t\t\t\t? \"\"\n\t\t\t\t: `\"jsdoc\",\n\t\t`\n\t\t}${options.excludeLintPerfectionist ? \"\" : `\"perfectionist\",`}${\n\t\t\toptions.excludeLintRegex ? \"\" : `\"regexp\",`\n\t\t}${options.excludeTests ? \"\" : `\\n\"vitest\",`}\n\t],\n\treportUnusedDisableDirectives: true,\n\troot: true,\n\trules: {\n\t\t// These off/less-strict-by-default rules work well for this repo and we like them on.\n\t\t\"@typescript-eslint/no-unused-vars\": [\"error\", { caughtErrors: \"all\" }],\n\n\t\t// These on-by-default rules don't work well for this repo and we like them off.\n\t\t\"no-case-declarations\": \"off\",\n\t\t\"no-constant-condition\": \"off\",\n\t\t\"no-inner-declarations\": \"off\",\n\t\t\"no-mixed-spaces-and-tabs\": \"off\",\n\n\t\t${\n\t\t\toptions.excludeLintStylistic\n\t\t\t\t? \"\"\n\t\t\t\t: `// Stylistic concerns that don't interfere with Prettier\n\t\t\"no-useless-rename\": \"error\",\n\t\t\"object-shorthand\": \"error\",\n\t\t`\n\t\t}${\n\t\t\toptions.excludeLintPerfectionist\n\t\t\t\t? \"\"\n\t\t\t\t: `\"perfectionist/sort-objects\": [\n\t\t\t\"error\",\n\t\t\t{\n\t\t\t\torder: \"asc\",\n\t\t\t\t\"partition-by-comment\": true,\n\t\t\t\ttype: \"natural\",\n\t\t\t},\n\t\t],`\n\t\t}\n\t},\n};\n`);\n}\n"],"mappings":"AACA,SAAS,wBAAwB;AAEjC,eAAsB,eAAe,SAAkB;AACtD,SAAO,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAS5B,QAAQ,oBACL,KACA;AAAA,GAEJ,0BACC,QAAQ,2BACL,KACA;AAAA,8CAEJ,GAAG,QAAQ,mBAAmB,KAAK,8BAA8B,GAChE,QAAQ,eAAe,KAAK,8BAC7B;AAAA;AAAA;AAAA,UAGQ,QAAQ,eAAe,KAAK;AAAA,cAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,eAMrD,QAAQ,gBACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMJ;AAAA;AAAA;AAAA,MAII,QAAQ,mBACL,KACA;AAAA,KAEJ,8BACC,QAAQ,oBAAoB,gBAAgB,QAC7C,KACC,QAAQ,uBACL,KACA;AAAA,2CAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOC,QAAQ,mBACL,KACA;AAAA,KAEJ;AAAA;AAAA;AAAA;AAAA;AAAA,qCAMC,QAAQ,mBACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAOJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAQqB,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,KAMvC,QAAQ,gBACL,KACA;AAAA,IAEJ;AAAA,iCAEE,QAAQ,oBAAoB,gBAAgB,QAC7C,kBACC,QAAQ,uBACL,KACA;AAAA,wDAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAOA,QAAQ,yBACL,KACA;AAAA;AAAA;AAAA,MAIJ;AAAA;AAAA,IAGA,QAAQ,kBACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAgBJ,GACC,QAAQ,yBACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMJ,GACC,QAAQ,eACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQJ,GACC,QAAQ,iBACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAuBJ;AAAA;AAAA;AAAA;AAAA,IAKC,QAAQ,yBACL,KACA;AAAA,GAEJ,GACC,QAAQ,mBACL,KACA;AAAA,GAEJ,GAAG,QAAQ,2BAA2B,KAAK,kBAAkB,GAC5D,QAAQ,mBAAmB,KAAK,WACjC,GAAG,QAAQ,eAAe,KAAK;AAAA,UAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAe3C,QAAQ,uBACL,KACA;AAAA;AAAA;AAAA,GAIJ,GACC,QAAQ,2BACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQJ;AAAA;AAAA;AAAA,CAGD;AACD;","names":[]}