create-typescript-app 1.57.11 → 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.
- package/README.md +3 -2
- package/lib/shared/createCleanupCommands.js +1 -1
- package/lib/shared/createCleanupCommands.js.map +1 -1
- package/lib/shared/options/args.d.ts +0 -5
- package/lib/shared/options/args.js +0 -6
- package/lib/shared/options/args.js.map +1 -1
- package/lib/shared/options/augmentOptionsWithExcludes.js +2 -1
- package/lib/shared/options/augmentOptionsWithExcludes.js.map +1 -1
- package/lib/shared/options/ensureRepositoryExists.js +2 -1
- package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
- package/lib/shared/options/exclusionKeys.d.ts +1 -1
- package/lib/shared/options/exclusionKeys.js +0 -5
- package/lib/shared/options/exclusionKeys.js.map +1 -1
- package/lib/shared/options/optionsSchema.d.ts +24 -28
- package/lib/shared/options/optionsSchema.js +0 -1
- package/lib/shared/options/optionsSchema.js.map +1 -1
- package/lib/shared/options/readOptions.js +0 -1
- package/lib/shared/options/readOptions.js.map +1 -1
- package/lib/shared/types.d.ts +0 -1
- package/lib/steps/finalizeDependencies.js +5 -6
- package/lib/steps/finalizeDependencies.js.map +1 -1
- package/lib/steps/updateLocalFiles.js +1 -1
- package/lib/steps/updateLocalFiles.js.map +1 -1
- package/lib/steps/writing/creation/{createESLintRC.d.ts → createESLintConfig.d.ts} +2 -2
- package/lib/steps/writing/creation/createESLintConfig.js +154 -0
- package/lib/steps/writing/creation/createESLintConfig.js.map +1 -0
- package/lib/steps/writing/creation/dotGitHub/actions.js +4 -1
- package/lib/steps/writing/creation/dotGitHub/actions.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js +1 -0
- package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js.map +1 -1
- package/lib/steps/writing/creation/dotGitHub/createWorkflows.js +1 -1
- package/lib/steps/writing/creation/dotGitHub/createWorkflows.js.map +1 -1
- package/lib/steps/writing/creation/dotVSCode.js +1 -0
- package/lib/steps/writing/creation/dotVSCode.js.map +1 -1
- package/lib/steps/writing/creation/rootFiles.d.ts +1 -2
- package/lib/steps/writing/creation/rootFiles.js +3 -7
- package/lib/steps/writing/creation/rootFiles.js.map +1 -1
- package/lib/steps/writing/creation/writePackageJson.js +1 -2
- package/lib/steps/writing/creation/writePackageJson.js.map +1 -1
- package/package.json +35 -35
- package/lib/steps/writing/creation/createESLintRC.js +0 -171
- 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.
|
|
3
|
+
"version": "1.59.0",
|
|
4
4
|
"description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 💝",
|
|
5
|
-
"repository":
|
|
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 .
|
|
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": "
|
|
33
|
-
"test:initialize": "
|
|
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": "^
|
|
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": "^
|
|
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
|
-
"@
|
|
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": "^
|
|
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.
|
|
70
|
+
"@types/node": "^20.12.7",
|
|
66
71
|
"@types/parse-author": "^2.0.3",
|
|
67
|
-
"@
|
|
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": "^
|
|
74
|
-
"eslint-plugin-
|
|
75
|
-
"eslint-plugin-
|
|
76
|
-
"eslint-plugin-
|
|
77
|
-
"eslint-plugin-
|
|
78
|
-
"eslint-plugin-
|
|
79
|
-
"eslint-plugin-
|
|
80
|
-
"eslint-plugin-
|
|
81
|
-
"eslint-plugin-
|
|
82
|
-
"eslint-plugin-
|
|
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.
|
|
89
|
-
"lint-staged": "^15.2.
|
|
89
|
+
"knip": "5.16.0",
|
|
90
|
+
"lint-staged": "^15.2.2",
|
|
90
91
|
"markdownlint": "^0.34.0",
|
|
91
|
-
"markdownlint-cli": "^0.
|
|
92
|
+
"markdownlint-cli": "^0.40.0",
|
|
92
93
|
"prettier-plugin-curly": "^0.2.0",
|
|
93
|
-
"prettier-plugin-packagejson": "^2.
|
|
94
|
-
"release-it": "^17.
|
|
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.
|
|
98
|
-
"typescript": "^5.
|
|
99
|
-
"
|
|
100
|
-
"
|
|
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,171 +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
|
-
"@typescript-eslint/padding-line-between-statements": [
|
|
151
|
-
"error",
|
|
152
|
-
{ blankLine: "always", next: "*", prev: "block-like" },
|
|
153
|
-
],
|
|
154
|
-
"no-useless-rename": "error",
|
|
155
|
-
"object-shorthand": "error",
|
|
156
|
-
`}${options.excludeLintPerfectionist ? "" : `"perfectionist/sort-objects": [
|
|
157
|
-
"error",
|
|
158
|
-
{
|
|
159
|
-
order: "asc",
|
|
160
|
-
"partition-by-comment": true,
|
|
161
|
-
type: "natural",
|
|
162
|
-
},
|
|
163
|
-
],`}
|
|
164
|
-
},
|
|
165
|
-
};
|
|
166
|
-
`);
|
|
167
|
-
}
|
|
168
|
-
export {
|
|
169
|
-
createESLintRC
|
|
170
|
-
};
|
|
171
|
-
//# 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\"@typescript-eslint/padding-line-between-statements\": [\n\t\t\t\"error\",\n\t\t\t{ blankLine: \"always\", next: \"*\", prev: \"block-like\" },\n\t\t],\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;AAAA;AAAA;AAAA;AAAA,GAQJ,GACC,QAAQ,2BACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAQJ;AAAA;AAAA;AAAA,CAGD;AACD;","names":[]}
|