create-typescript-app 1.67.7 → 1.68.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.
|
@@ -112,12 +112,11 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
112
112
|
skipUninstall: z.ZodOptional<z.ZodBoolean>;
|
|
113
113
|
title: z.ZodOptional<z.ZodString>;
|
|
114
114
|
}, "strip", z.ZodTypeAny, {
|
|
115
|
-
mode?: "create" | "initialize" | "migrate" | undefined;
|
|
116
|
-
auto?: boolean | undefined;
|
|
117
|
-
offline?: boolean | undefined;
|
|
118
115
|
description?: string | undefined;
|
|
116
|
+
offline?: boolean | undefined;
|
|
119
117
|
access?: "public" | "restricted" | undefined;
|
|
120
118
|
author?: string | undefined;
|
|
119
|
+
auto?: boolean | undefined;
|
|
121
120
|
base?: "common" | "everything" | "minimal" | "prompt" | undefined;
|
|
122
121
|
bin?: string | undefined;
|
|
123
122
|
directory?: string | undefined;
|
|
@@ -129,6 +128,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
129
128
|
guide?: string | undefined;
|
|
130
129
|
keywords?: string[] | undefined;
|
|
131
130
|
logo?: string | undefined;
|
|
131
|
+
mode?: "create" | "initialize" | "migrate" | undefined;
|
|
132
132
|
owner?: string | undefined;
|
|
133
133
|
repository?: string | undefined;
|
|
134
134
|
title?: string | undefined;
|
|
@@ -161,12 +161,11 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
161
161
|
guideTitle?: string | undefined;
|
|
162
162
|
logoAlt?: string | undefined;
|
|
163
163
|
}, {
|
|
164
|
-
mode?: "create" | "initialize" | "migrate" | undefined;
|
|
165
|
-
auto?: boolean | undefined;
|
|
166
|
-
offline?: boolean | undefined;
|
|
167
164
|
description?: string | undefined;
|
|
165
|
+
offline?: boolean | undefined;
|
|
168
166
|
access?: "public" | "restricted" | undefined;
|
|
169
167
|
author?: string | undefined;
|
|
168
|
+
auto?: boolean | undefined;
|
|
170
169
|
base?: "common" | "everything" | "minimal" | "prompt" | undefined;
|
|
171
170
|
bin?: string | undefined;
|
|
172
171
|
directory?: string | undefined;
|
|
@@ -178,6 +177,7 @@ declare const optionsSchema: z.ZodObject<{
|
|
|
178
177
|
guide?: string | undefined;
|
|
179
178
|
keywords?: string[] | undefined;
|
|
180
179
|
logo?: string | undefined;
|
|
180
|
+
mode?: "create" | "initialize" | "migrate" | undefined;
|
|
181
181
|
owner?: string | undefined;
|
|
182
182
|
repository?: string | undefined;
|
|
183
183
|
title?: string | undefined;
|
|
@@ -22,7 +22,9 @@ async function createESLintConfig(options) {
|
|
|
22
22
|
!options.excludeLintYml && ` ...yml.configs["flat/recommended"],`,
|
|
23
23
|
!options.excludeLintYml && ` ...yml.configs["flat/prettier"],`,
|
|
24
24
|
!options.excludeLintESLint && ` comments.recommended,`,
|
|
25
|
-
!options.excludeLintJSDoc && ` jsdoc.configs["flat/
|
|
25
|
+
!options.excludeLintJSDoc && ` jsdoc.configs["flat/contents-typescript-error"],
|
|
26
|
+
jsdoc.configs["flat/logical-typescript-error"],
|
|
27
|
+
jsdoc.configs["flat/stylistic-typescript-error"],`,
|
|
26
28
|
` n.configs["flat/recommended"],`,
|
|
27
29
|
!options.excludeLintPackageJson && ` packageJson,`,
|
|
28
30
|
!options.excludeLintPerfectionist && ` perfectionist.configs["recommended-natural"],`,
|
|
@@ -62,8 +64,7 @@ export default tseslint.config(
|
|
|
62
64
|
},
|
|
63
65
|
},
|
|
64
66
|
rules: {
|
|
65
|
-
${!options.excludeLintJSDoc || !options.excludeLintStylistic ? "// These off-by-default rules work well for this repo and we like them on." : ""}${options.
|
|
66
|
-
"jsdoc/informative-docs": "error",`}${options.excludeLintStylistic ? "" : `
|
|
67
|
+
${!options.excludeLintJSDoc || !options.excludeLintStylistic ? "// These off-by-default rules work well for this repo and we like them on." : ""}${options.excludeLintStylistic ? "" : `
|
|
67
68
|
"logical-assignment-operators": [
|
|
68
69
|
"error",
|
|
69
70
|
"always",
|
|
@@ -72,11 +73,7 @@ export default tseslint.config(
|
|
|
72
73
|
"operator-assignment": "error",`}
|
|
73
74
|
|
|
74
75
|
// These on-by-default rules don't work well for this repo and we like them off.${options.excludeLintJSDoc ? "" : `
|
|
75
|
-
"jsdoc/lines-before-block": "off"
|
|
76
|
-
"jsdoc/require-jsdoc": "off",
|
|
77
|
-
"jsdoc/require-param": "off",
|
|
78
|
-
"jsdoc/require-property": "off",
|
|
79
|
-
"jsdoc/require-returns": "off",`}
|
|
76
|
+
"jsdoc/lines-before-block": "off",`}
|
|
80
77
|
"no-constant-condition": "off",
|
|
81
78
|
|
|
82
79
|
// These on-by-default rules work well for this repo if configured
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/steps/writing/creation/createESLintConfig.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { formatTypeScript } from \"./formatters/formatTypeScript.js\";\n\nexport async function createESLintConfig(options: Options) {\n\tconst tseslintBase = options.excludeLintStrict ? \"recommended\" : \"strict\";\n\n\tconst imports = [\n\t\t`import eslint from \"@eslint/js\";`,\n\t\t!options.excludeLintESLint &&\n\t\t\t`import comments from \"@eslint-community/eslint-plugin-eslint-comments/configs\";`,\n\t\t!options.excludeLintJSDoc && `import jsdoc from \"eslint-plugin-jsdoc\";`,\n\t\t!options.excludeLintJson && `import jsonc from \"eslint-plugin-jsonc\";`,\n\t\t!options.excludeLintMd && `import markdown from \"eslint-plugin-markdown\";`,\n\t\t`import n from \"eslint-plugin-n\";`,\n\t\t!options.excludeLintPackageJson &&\n\t\t\t`import packageJson from \"eslint-plugin-package-json/configs/recommended\";`,\n\t\t!options.excludeLintPerfectionist &&\n\t\t\t`import perfectionist from \"eslint-plugin-perfectionist\";`,\n\t\t!options.excludeLintRegex &&\n\t\t\t`import * as regexp from \"eslint-plugin-regexp\";`,\n\t\t!options.excludeTests && `import vitest from \"eslint-plugin-vitest\";`,\n\t\t!options.excludeLintYml && `import yml from \"eslint-plugin-yml\";`,\n\t\t`import tseslint from \"typescript-eslint\";`,\n\t].filter(Boolean);\n\n\tconst elements = [\n\t\t`eslint.configs.recommended,`,\n\t\t!options.excludeLintJson &&\n\t\t\t`\t...jsonc.configs[\"flat/recommended-with-json\"],`,\n\t\t!options.excludeLintMd && `\t...markdown.configs.recommended,`,\n\t\t!options.excludeLintYml && `\t...yml.configs[\"flat/recommended\"],`,\n\t\t!options.excludeLintYml && `\t...yml.configs[\"flat/prettier\"],`,\n\t\t!options.excludeLintESLint && `\tcomments.recommended,`,\n\t\t!options.excludeLintJSDoc &&\n\t\t\t`\tjsdoc.configs[\"flat/
|
|
1
|
+
{"version":3,"sources":["../../../../src/steps/writing/creation/createESLintConfig.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { formatTypeScript } from \"./formatters/formatTypeScript.js\";\n\nexport async function createESLintConfig(options: Options) {\n\tconst tseslintBase = options.excludeLintStrict ? \"recommended\" : \"strict\";\n\n\tconst imports = [\n\t\t`import eslint from \"@eslint/js\";`,\n\t\t!options.excludeLintESLint &&\n\t\t\t`import comments from \"@eslint-community/eslint-plugin-eslint-comments/configs\";`,\n\t\t!options.excludeLintJSDoc && `import jsdoc from \"eslint-plugin-jsdoc\";`,\n\t\t!options.excludeLintJson && `import jsonc from \"eslint-plugin-jsonc\";`,\n\t\t!options.excludeLintMd && `import markdown from \"eslint-plugin-markdown\";`,\n\t\t`import n from \"eslint-plugin-n\";`,\n\t\t!options.excludeLintPackageJson &&\n\t\t\t`import packageJson from \"eslint-plugin-package-json/configs/recommended\";`,\n\t\t!options.excludeLintPerfectionist &&\n\t\t\t`import perfectionist from \"eslint-plugin-perfectionist\";`,\n\t\t!options.excludeLintRegex &&\n\t\t\t`import * as regexp from \"eslint-plugin-regexp\";`,\n\t\t!options.excludeTests && `import vitest from \"eslint-plugin-vitest\";`,\n\t\t!options.excludeLintYml && `import yml from \"eslint-plugin-yml\";`,\n\t\t`import tseslint from \"typescript-eslint\";`,\n\t].filter(Boolean);\n\n\tconst elements = [\n\t\t`eslint.configs.recommended,`,\n\t\t!options.excludeLintJson &&\n\t\t\t`\t...jsonc.configs[\"flat/recommended-with-json\"],`,\n\t\t!options.excludeLintMd && `\t...markdown.configs.recommended,`,\n\t\t!options.excludeLintYml && `\t...yml.configs[\"flat/recommended\"],`,\n\t\t!options.excludeLintYml && `\t...yml.configs[\"flat/prettier\"],`,\n\t\t!options.excludeLintESLint && `\tcomments.recommended,`,\n\t\t!options.excludeLintJSDoc &&\n\t\t\t`\tjsdoc.configs[\"flat/contents-typescript-error\"],\n\tjsdoc.configs[\"flat/logical-typescript-error\"],\n\tjsdoc.configs[\"flat/stylistic-typescript-error\"],`,\n\t\t`\tn.configs[\"flat/recommended\"],`,\n\t\t!options.excludeLintPackageJson && `\tpackageJson,`,\n\t\t!options.excludeLintPerfectionist &&\n\t\t\t`\tperfectionist.configs[\"recommended-natural\"],`,\n\t\t!options.excludeLintRegex && `\tregexp.configs[\"flat/recommended\"],`,\n\t].filter(Boolean);\n\n\treturn await formatTypeScript(`${imports.join(\"\\n\")}\n\nexport default tseslint.config(\n\t{\n\t\tignores: [${\n\t\t\toptions.excludeTests\n\t\t\t\t? \"\"\n\t\t\t\t: `\n\t\t\t\"coverage*\",`\n\t\t}\n\t\t\t\"lib\",\n\t\t\t\"node_modules\",\n\t\t\t\"pnpm-lock.yaml\",\n\t\t\t\"**/*.snap\",\n\t\t],\n\t},\n\t{\n\t\tlinterOptions: {\n\t\t\treportUnusedDisableDirectives: \"error\",\n\t\t},\n\t},\n\t${elements.join(\"\\n\")}\n\t...tseslint.config({\n\t\textends: ${\n\t\t\toptions.excludeLintStylistic\n\t\t\t\t? `tseslint.configs.${tseslintBase}TypeChecked`\n\t\t\t\t: `[\n\t\t\t...tseslint.configs.${tseslintBase}TypeChecked,\n\t\t\t...tseslint.configs.stylisticTypeChecked,\n\t\t]`\n\t\t},\n\t\tfiles: [\"**/*.js\", \"**/*.ts\"],\n\t\tlanguageOptions: {\n\t\t\tparserOptions: {\n\t\t\t\tprojectService: {\n\t\t\t\t\tallowDefaultProject: [\"*.*s\", \"eslint.config.js\"],\n\t\t\t\t\tdefaultProject: \"./tsconfig.json\",\n\t\t\t\t},\n\t\t\t\ttsconfigRootDir: import.meta.dirname\n\t\t\t},\n\t\t},\n\t\trules: {\n\t\t\t${\n\t\t\t\t!options.excludeLintJSDoc || !options.excludeLintStylistic\n\t\t\t\t\t? \"// These off-by-default rules work well for this repo and we like them on.\"\n\t\t\t\t\t: \"\"\n\t\t\t}${\n\t\t\t\toptions.excludeLintStylistic\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `\n\t\t\t\"logical-assignment-operators\": [\n\t\t\t\t\"error\",\n\t\t\t\t\"always\",\n\t\t\t\t{ enforceForIfStatements: true },\n\t\t\t],\n\t\t\t\"operator-assignment\": \"error\",`\n\t\t\t}\n\n\t\t\t// These on-by-default rules don't work well for this repo and we like them off.${\n\t\t\t\toptions.excludeLintJSDoc\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `\n\t\t\t\"jsdoc/lines-before-block\": \"off\",`\n\t\t\t}\n\t\t\t\"no-constant-condition\": \"off\",\n\n\t\t\t// These on-by-default rules work well for this repo if configured\n\t\t\t\"@typescript-eslint/no-unused-vars\": [\"error\", { caughtErrors: \"all\" }],${\n\t\t\t\toptions.excludeLintPerfectionist\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `\n\t\t\t\"n/no-unsupported-features/node-builtins\": [\n\t\t\t\t\"error\",\n\t\t\t\t{ allowExperimental: true },\n\t\t\t],\n\t\t\t\"perfectionist/sort-objects\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: \"asc\",\n\t\t\t\t\tpartitionByComment: true,\n\t\t\t\t\ttype: \"natural\",\n\t\t\t\t},\n\t\t\t],`\n\t\t\t}${\n\t\t\t\toptions.excludeLintStylistic\n\t\t\t\t\t? \"\"\n\t\t\t\t\t: `\n\n\t\t\t// Stylistic concerns that don't interfere with Prettier\n\t\t\t\"no-useless-rename\": \"error\",\n\t\t\t\"object-shorthand\": \"error\",`\n\t\t\t}\n\t\t},\n\t}),\n\t{\n\t\tfiles: [\"*.jsonc\"],\n\t\trules: {\n\t\t\t\"jsonc/comma-dangle\": \"off\",\n\t\t\t\"jsonc/no-comments\": \"off\",\n\t\t\t\"jsonc/sort-keys\": \"error\",\n\t\t},\n\t},\n\t{\n\t\textends: [tseslint.configs.disableTypeChecked],\n\t\tfiles: [\"**/*.md/*.ts\"],\n\t\trules: {\n\t\t\t\"n/no-missing-import\": [\n\t\t\t\t\"error\",\n\t\t\t\t{ allowModules: [\"${options.repository}\"] },\n\t\t\t],\n\t\t},\n\t},${\n\t\toptions.excludeTests\n\t\t\t? \"\"\n\t\t\t: `\n\t{\n\t\tfiles: [\"**/*.test.*\"],\n\t\tlanguageOptions: {\n\t\t\tglobals: vitest.environments.env.globals,\n\t\t},\n\t\tplugins: { vitest, },\n\t\trules: {\n\t\t\t...vitest.configs.recommended.rules,\n\n\t\t\t// These on-by-default rules aren't useful in test files.\n\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"off\",\n\t\t\t\"@typescript-eslint/no-unsafe-call\": \"off\",\n\t\t},\n\t},`\n\t}${\n\t\toptions.excludeLintYml\n\t\t\t? \"\"\n\t\t\t: `\n\t{\n\t\tfiles: [\"**/*.{yml,yaml}\"],\n\t\trules: {\n\t\t\t\"yml/file-extension\": [\"error\", { extension: \"yml\" }],\n\t\t\t\"yml/sort-keys\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^.*$\",\n\t\t\t\t},\n\t\t\t],\n\t\t\t\"yml/sort-sequence-values\": [\n\t\t\t\t\"error\",\n\t\t\t\t{\n\t\t\t\t\torder: { type: \"asc\" },\n\t\t\t\t\tpathPattern: \"^.*$\",\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},`\n\t}\n);\n`);\n}\n"],"mappings":"AACA,SAAS,wBAAwB;AAEjC,eAAsB,mBAAmB,SAAkB;AAC1D,QAAM,eAAe,QAAQ,oBAAoB,gBAAgB;AAEjE,QAAM,UAAU;AAAA,IACf;AAAA,IACA,CAAC,QAAQ,qBACR;AAAA,IACD,CAAC,QAAQ,oBAAoB;AAAA,IAC7B,CAAC,QAAQ,mBAAmB;AAAA,IAC5B,CAAC,QAAQ,iBAAiB;AAAA,IAC1B;AAAA,IACA,CAAC,QAAQ,0BACR;AAAA,IACD,CAAC,QAAQ,4BACR;AAAA,IACD,CAAC,QAAQ,oBACR;AAAA,IACD,CAAC,QAAQ,gBAAgB;AAAA,IACzB,CAAC,QAAQ,kBAAkB;AAAA,IAC3B;AAAA,EACD,EAAE,OAAO,OAAO;AAEhB,QAAM,WAAW;AAAA,IAChB;AAAA,IACA,CAAC,QAAQ,mBACR;AAAA,IACD,CAAC,QAAQ,iBAAiB;AAAA,IAC1B,CAAC,QAAQ,kBAAkB;AAAA,IAC3B,CAAC,QAAQ,kBAAkB;AAAA,IAC3B,CAAC,QAAQ,qBAAqB;AAAA,IAC9B,CAAC,QAAQ,oBACR;AAAA;AAAA;AAAA,IAGD;AAAA,IACA,CAAC,QAAQ,0BAA0B;AAAA,IACnC,CAAC,QAAQ,4BACR;AAAA,IACD,CAAC,QAAQ,oBAAoB;AAAA,EAC9B,EAAE,OAAO,OAAO;AAEhB,SAAO,MAAM,iBAAiB,GAAG,QAAQ,KAAK,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA,cAKjD,QAAQ,eACL,KACA;AAAA,gBAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAYC,SAAS,KAAK,IAAI,CAAC;AAAA;AAAA,aAGnB,QAAQ,uBACL,oBAAoB,YAAY,gBAChC;AAAA,yBACmB,YAAY;AAAA;AAAA,IAGnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAaE,CAAC,QAAQ,oBAAoB,CAAC,QAAQ,uBACnC,+EACA,EACJ,GACC,QAAQ,uBACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAOJ;AAAA;AAAA,qFAGC,QAAQ,mBACL,KACA;AAAA,sCAEJ;AAAA;AAAA;AAAA;AAAA,6EAKC,QAAQ,2BACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAaJ,GACC,QAAQ,uBACL,KACA;AAAA;AAAA;AAAA;AAAA,gCAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAiBqB,QAAQ,UAAU;AAAA;AAAA;AAAA,KAIxC,QAAQ,eACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeJ,GACC,QAAQ,iBACL,KACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAqBJ;AAAA;AAAA,CAEA;AACD;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-typescript-app",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.68.0",
|
|
4
4
|
"description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 💝",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"console-fail-test": "^0.4.4",
|
|
77
77
|
"cspell": "^8.13.1",
|
|
78
78
|
"eslint": "^9.8.0",
|
|
79
|
-
"eslint-plugin-jsdoc": "^50.
|
|
79
|
+
"eslint-plugin-jsdoc": "^50.2.1",
|
|
80
80
|
"eslint-plugin-jsonc": "^2.16.0",
|
|
81
81
|
"eslint-plugin-markdown": "^5.1.0",
|
|
82
82
|
"eslint-plugin-n": "^17.10.2",
|