create-typescript-app 1.80.0 → 1.81.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 (99) hide show
  1. package/README.md +3 -2
  2. package/lib/next/base.d.ts +2 -1
  3. package/lib/next/base.js +10 -6
  4. package/lib/next/base.js.map +1 -1
  5. package/lib/next/blocks/blockAllContributors.d.ts +2 -1
  6. package/lib/next/blocks/blockAllContributors.js +1 -5
  7. package/lib/next/blocks/blockAllContributors.js.map +1 -1
  8. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +2 -1
  9. package/lib/next/blocks/blockCSpell.d.ts +2 -1
  10. package/lib/next/blocks/blockContributingDocs.d.ts +2 -1
  11. package/lib/next/blocks/blockContributorCovenant.d.ts +2 -1
  12. package/lib/next/blocks/blockDevelopmentDocs.d.ts +2 -1
  13. package/lib/next/blocks/blockESLint.d.ts +2 -1
  14. package/lib/next/blocks/blockESLint.js +4 -2
  15. package/lib/next/blocks/blockESLint.js.map +1 -1
  16. package/lib/next/blocks/blockESLintComments.d.ts +2 -1
  17. package/lib/next/blocks/blockESLintJSDoc.d.ts +2 -1
  18. package/lib/next/blocks/blockESLintJSONC.d.ts +2 -1
  19. package/lib/next/blocks/blockESLintMarkdown.d.ts +2 -1
  20. package/lib/next/blocks/blockESLintMoreStyling.d.ts +2 -1
  21. package/lib/next/blocks/blockESLintNode.d.ts +2 -1
  22. package/lib/next/blocks/blockESLintPackageJson.d.ts +2 -1
  23. package/lib/next/blocks/blockESLintPerfectionist.d.ts +2 -1
  24. package/lib/next/blocks/blockESLintRegexp.d.ts +2 -1
  25. package/lib/next/blocks/blockESLintYML.d.ts +2 -1
  26. package/lib/next/blocks/blockExampleFiles.d.ts +2 -1
  27. package/lib/next/blocks/blockFunding.d.ts +2 -1
  28. package/lib/next/blocks/blockGitHubActionsCI.d.ts +3 -1
  29. package/lib/next/blocks/blockGitHubActionsCI.js +1 -0
  30. package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -1
  31. package/lib/next/blocks/blockGitHubApps.d.ts +2 -1
  32. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +2 -1
  33. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +2 -1
  34. package/lib/next/blocks/blockGitignore.d.ts +2 -1
  35. package/lib/next/blocks/blockKnip.d.ts +2 -1
  36. package/lib/next/blocks/blockKnip.js +11 -0
  37. package/lib/next/blocks/blockKnip.js.map +1 -1
  38. package/lib/next/blocks/blockMITLicense.d.ts +2 -1
  39. package/lib/next/blocks/blockMarkdownlint.d.ts +2 -1
  40. package/lib/next/blocks/blockNvmrc.d.ts +2 -1
  41. package/lib/next/blocks/blockPRCompliance.d.ts +2 -1
  42. package/lib/next/blocks/blockPackageJson.d.ts +2 -1
  43. package/lib/next/blocks/blockPackageJson.js +3 -1
  44. package/lib/next/blocks/blockPackageJson.js.map +1 -1
  45. package/lib/next/blocks/blockPnpmDedupe.d.ts +2 -1
  46. package/lib/next/blocks/blockPrettier.d.ts +2 -1
  47. package/lib/next/blocks/blockPrettier.js +2 -2
  48. package/lib/next/blocks/blockPrettier.js.map +1 -1
  49. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +2 -1
  50. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +2 -1
  51. package/lib/next/blocks/blockPrettierPluginSh.d.ts +2 -1
  52. package/lib/next/blocks/blockREADME.d.ts +2 -1
  53. package/lib/next/blocks/blockREADME.js +1 -8
  54. package/lib/next/blocks/blockREADME.js.map +1 -1
  55. package/lib/next/blocks/blockReleaseIt.d.ts +2 -1
  56. package/lib/next/blocks/blockReleaseIt.js +13 -1
  57. package/lib/next/blocks/blockReleaseIt.js.map +1 -1
  58. package/lib/next/blocks/blockRenovate.d.ts +2 -1
  59. package/lib/next/blocks/blockRepositoryBranchRuleset.d.ts +2 -1
  60. package/lib/next/blocks/blockRepositoryLabels.d.ts +2 -1
  61. package/lib/next/blocks/blockRepositorySecrets.d.ts +2 -1
  62. package/lib/next/blocks/blockRepositorySettings.d.ts +2 -1
  63. package/lib/next/blocks/blockRepositorySettings.js +3 -1
  64. package/lib/next/blocks/blockRepositorySettings.js.map +1 -1
  65. package/lib/next/blocks/blockSecurityDocs.d.ts +2 -1
  66. package/lib/next/blocks/blockTSup.d.ts +2 -1
  67. package/lib/next/blocks/blockTemplatedBy.d.ts +2 -1
  68. package/lib/next/blocks/blockTypeScript.d.ts +2 -1
  69. package/lib/next/blocks/blockTypeScript.js +1 -4
  70. package/lib/next/blocks/blockTypeScript.js.map +1 -1
  71. package/lib/next/blocks/blockVSCode.d.ts +2 -1
  72. package/lib/next/blocks/blockVitest.d.ts +8 -4
  73. package/lib/next/blocks/blockVitest.js +18 -14
  74. package/lib/next/blocks/blockVitest.js.map +1 -1
  75. package/lib/next/blocks/sourcePackageJson.d.ts +3 -1
  76. package/lib/next/presets/presetCommon.d.ts +2 -1
  77. package/lib/next/presets/presetEverything.d.ts +2 -1
  78. package/lib/next/presets/presetMinimal.d.ts +2 -1
  79. package/lib/next/readDescription.d.ts +1 -1
  80. package/lib/next/readDescription.js +9 -1
  81. package/lib/next/readDescription.js.map +1 -1
  82. package/lib/next/readDescriptionFromReadme.d.ts +3 -0
  83. package/lib/next/readDescriptionFromReadme.js +18 -0
  84. package/lib/next/readDescriptionFromReadme.js.map +1 -0
  85. package/lib/next/template.d.ts +2 -1
  86. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.d.ts +3 -0
  87. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.js +21 -0
  88. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.js.map +1 -0
  89. package/lib/shared/options/createOptionDefaults/index.d.ts +1 -0
  90. package/lib/shared/options/createOptionDefaults/index.js +4 -2
  91. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  92. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.d.ts +2 -1
  93. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +12 -3
  94. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  95. package/lib/steps/uninstallPackages.js +2 -0
  96. package/lib/steps/uninstallPackages.js.map +1 -1
  97. package/lib/steps/writing/creation/rootFiles.js +13 -3
  98. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  99. package/package.json +3 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  <p align="center">
6
6
  <!-- prettier-ignore-start -->
7
7
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
8
- <a href="#contributors" target="_blank"><img alt="👪 All Contributors: 51" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-51-21bb42.svg" /></a>
8
+ <a href="#contributors" target="_blank"><img alt="👪 All Contributors: 52" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-52-21bb42.svg" /></a>
9
9
  <!-- ALL-CONTRIBUTORS-BADGE:END -->
10
10
  <!-- prettier-ignore-end -->
11
11
  <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/blob/main/.github/CODE_OF_CONDUCT.md" target="_blank"><img alt="🤝 Code of Conduct: Kept" src="https://img.shields.io/badge/%F0%9F%A4%9D_code_of_conduct-kept-21bb42" /></a>
@@ -128,9 +128,10 @@ Thanks! 💖
128
128
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/vasanth9"><img src="https://avatars.githubusercontent.com/u/42891954?v=4?s=100" width="100px;" alt="Vasanth Kumar Cheepurupalli"/><br /><sub><b>Vasanth Kumar Cheepurupalli</b></sub></a><br /><a href="#code-vasanth9" title="Code">💻</a></td>
129
129
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/xl4624"><img src="https://avatars.githubusercontent.com/u/116298054?v=4?s=100" width="100px;" alt="Xiaomin Liu"/><br /><sub><b>Xiaomin Liu</b></sub></a><br /><a href="#code-xl4624" title="Code">💻</a></td>
130
130
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/lcforbes"><img src="https://avatars.githubusercontent.com/u/42080532?v=4?s=100" width="100px;" alt="lcforbes"/><br /><sub><b>lcforbes</b></sub></a><br /><a href="#bug-lcforbes" title="Bug reports">🐛</a></td>
131
- <td align="center" valign="top" width="14.28%"><a href="http://nandertga.ddns.net"><img src="https://avatars.githubusercontent.com/u/65074195?v=4?s=100" width="100px;" alt="nandertga"/><br /><sub><b>nandertga</b></sub></a><br /><a href="#code-nandertga" title="Code">💻</a></td>
131
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/michaelfaith"><img src="https://avatars.githubusercontent.com/u/8071845?v=4?s=100" width="100px;" alt="michael faith"/><br /><sub><b>michael faith</b></sub></a><br /><a href="#code-michaelfaith" title="Code">💻</a></td>
132
132
  </tr>
133
133
  <tr>
134
+ <td align="center" valign="top" width="14.28%"><a href="http://nandertga.ddns.net"><img src="https://avatars.githubusercontent.com/u/65074195?v=4?s=100" width="100px;" alt="nandertga"/><br /><sub><b>nandertga</b></sub></a><br /><a href="#code-nandertga" title="Code">💻</a></td>
134
135
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/rubiesonthesky"><img src="https://avatars.githubusercontent.com/u/2591240?v=4?s=100" width="100px;" alt="rubiesonthesky"/><br /><sub><b>rubiesonthesky</b></sub></a><br /><a href="#ideas-rubiesonthesky" title="Ideas, Planning, & Feedback">🤔</a> <a href="#code-rubiesonthesky" title="Code">💻</a></td>
135
136
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/TAKANOME-DEV"><img src="https://avatars.githubusercontent.com/u/79809121?v=4?s=100" width="100px;" alt="takanomedev"/><br /><sub><b>takanomedev</b></sub></a><br /><a href="#code-TAKANOME-DEV" title="Code">💻</a></td>
136
137
  </tr>
@@ -3,7 +3,7 @@ import { BaseOptionsFor } from 'create';
3
3
  import { z } from 'zod';
4
4
 
5
5
  declare const base: create.Base<{
6
- access: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"restricted">]>>;
6
+ access: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"restricted">]>;
7
7
  author: z.ZodOptional<z.ZodString>;
8
8
  bin: z.ZodOptional<z.ZodString>;
9
9
  contributors: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -99,6 +99,7 @@ declare const base: create.Base<{
99
99
  }>>;
100
100
  repository: z.ZodString;
101
101
  title: z.ZodString;
102
+ usage: z.ZodOptional<z.ZodString>;
102
103
  version: z.ZodOptional<z.ZodString>;
103
104
  }>;
104
105
  type BaseOptions = BaseOptionsFor<typeof base>;
package/lib/next/base.js CHANGED
@@ -14,13 +14,14 @@ import { readEmails } from "../shared/options/createOptionDefaults/readEmails.js
14
14
  import { readFunding } from "../shared/options/createOptionDefaults/readFunding.js";
15
15
  import { readGuide } from "../shared/options/createOptionDefaults/readGuide.js";
16
16
  import { readPackageData } from "../shared/packages.js";
17
+ import { readFileSafe } from "../shared/readFileSafe.js";
17
18
  import { tryCatchLazyValueAsync } from "../shared/tryCatchLazyValueAsync.js";
18
19
  import { readDescription } from "./readDescription.js";
19
20
  import { readDocumentation } from "./readDocumentation.js";
20
21
  import { swallowError } from "./utils/swallowError.js";
21
22
  const base = createBase({
22
23
  options: {
23
- access: z.union([z.literal("public"), z.literal("restricted")]).optional().describe("which `npm publish --access` to release npm packages with"),
24
+ access: z.union([z.literal("public"), z.literal("restricted")]).describe("which `npm publish --access` to release npm packages with"),
24
25
  author: z.string().optional().describe("username on npm to publish packages under"),
25
26
  bin: z.string().optional().describe('value to set in `package.json`\'s `"bin"` property.'),
26
27
  contributors: z.array(
@@ -32,7 +33,7 @@ const base = createBase({
32
33
  profile: z.string()
33
34
  })
34
35
  ).optional().describe("AllContributors contributors to store in .all-contributorsrc"),
35
- description: z.string().describe("sentence case description of the repository"),
36
+ description: z.string().describe("'Sentence case.' description of the repository"),
36
37
  directory: z.string(),
37
38
  documentation: z.string().optional().describe("any additional docs to add to .github/DEVELOPMENT.md"),
38
39
  email: z.union([
@@ -75,8 +76,9 @@ const base = createBase({
75
76
  devDependencies: z.record(z.string(), z.string()).optional(),
76
77
  scripts: z.record(z.string(), z.string()).optional()
77
78
  }).optional().describe("additional properties to include in `package.json`"),
78
- repository: z.string().describe("'Sentence case.' description of the repository"),
79
+ repository: z.string().describe("'kebab-case' or 'PascalCase' title of the repository"),
79
80
  title: z.string().describe("'Title Case' title for the repository"),
81
+ usage: z.string().optional().describe("markdown docs to put in README.md under the ## Usage heading"),
80
82
  version: z.string().optional().describe("package version to publish as and store in `package.json`")
81
83
  },
82
84
  produce({ options, take }) {
@@ -99,6 +101,7 @@ const base = createBase({
99
101
  })
100
102
  )?.stdout?.toString();
101
103
  });
104
+ const readme = lazyValue(async () => await readFileSafe("README.md", ""));
102
105
  const gitDefaults = tryCatchLazyValueAsync(
103
106
  async () => gitUrlParse(await gitRemoteOriginUrl())
104
107
  );
@@ -111,7 +114,7 @@ const base = createBase({
111
114
  async () => parsePackageAuthor(await packageData())
112
115
  );
113
116
  const author = lazyValue(
114
- async () => ((await packageAuthor()).author ?? (await npmDefaults())?.name ?? options.owner)?.toLowerCase()
117
+ async () => (await packageAuthor()).author ?? (await npmDefaults())?.name ?? options.owner
115
118
  );
116
119
  const node = lazyValue(async () => {
117
120
  const { engines } = await packageData();
@@ -122,10 +125,11 @@ const base = createBase({
122
125
  });
123
126
  const version = lazyValue(async () => (await packageData()).version);
124
127
  return {
128
+ access: "public",
125
129
  author,
126
130
  bin: async () => (await packageData()).bin,
127
131
  contributors: allContributors,
128
- description: async () => await readDescription(packageData),
132
+ description: async () => await readDescription(packageData, readme),
129
133
  documentation,
130
134
  email: async () => readEmails(npmDefaults, packageAuthor),
131
135
  funding: readFunding,
@@ -142,7 +146,7 @@ const base = createBase({
142
146
  };
143
147
  },
144
148
  repository: async () => options.repository ?? (await gitDefaults())?.name ?? (await packageData()).name,
145
- ...readDefaultsFromReadme(),
149
+ ...readDefaultsFromReadme(readme, options.repository),
146
150
  version
147
151
  };
148
152
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/next/base.ts"],"sourcesContent":["import { BaseOptionsFor, createBase } from \"create\";\nimport { execaCommand } from \"execa\";\nimport gitRemoteOriginUrl from \"git-remote-origin-url\";\nimport gitUrlParse from \"git-url-parse\";\nimport { inputFromFile } from \"input-from-file\";\nimport { inputFromFileJSON } from \"input-from-file-json\";\nimport { inputFromScript } from \"input-from-script\";\nimport lazyValue from \"lazy-value\";\nimport npmUser from \"npm-user\";\nimport { z } from \"zod\";\n\nimport { parsePackageAuthor } from \"../shared/options/createOptionDefaults/parsePackageAuthor.js\";\nimport { readDefaultsFromReadme } from \"../shared/options/createOptionDefaults/readDefaultsFromReadme.js\";\nimport { readEmails } from \"../shared/options/createOptionDefaults/readEmails.js\";\nimport { readFunding } from \"../shared/options/createOptionDefaults/readFunding.js\";\nimport { readGuide } from \"../shared/options/createOptionDefaults/readGuide.js\";\nimport { readPackageData } from \"../shared/packages.js\";\nimport { tryCatchLazyValueAsync } from \"../shared/tryCatchLazyValueAsync.js\";\nimport { AllContributorsData } from \"../shared/types.js\";\nimport { readDescription } from \"./readDescription.js\";\nimport { readDocumentation } from \"./readDocumentation.js\";\nimport { swallowError } from \"./utils/swallowError.js\";\n\nexport const base = createBase({\n\toptions: {\n\t\taccess: z\n\t\t\t.union([z.literal(\"public\"), z.literal(\"restricted\")])\n\t\t\t.optional()\n\t\t\t.describe(\"which `npm publish --access` to release npm packages with\"),\n\t\tauthor: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"username on npm to publish packages under\"),\n\t\tbin: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe('value to set in `package.json`\\'s `\"bin\"` property.'),\n\t\tcontributors: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tavatar_url: z.string(),\n\t\t\t\t\tcontributions: z.array(z.string()),\n\t\t\t\t\tlogin: z.string(),\n\t\t\t\t\tname: z.string(),\n\t\t\t\t\tprofile: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional()\n\t\t\t.describe(\"AllContributors contributors to store in .all-contributorsrc\"),\n\t\tdescription: z\n\t\t\t.string()\n\t\t\t.describe(\"sentence case description of the repository\"),\n\t\tdirectory: z.string(),\n\t\tdocumentation: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"any additional docs to add to .github/DEVELOPMENT.md\"),\n\t\temail: z\n\t\t\t.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tgithub: z.string(),\n\t\t\t\t\tnpm: z.string(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t.transform((email) =>\n\t\t\t\ttypeof email === \"string\" ? { github: email, npm: email } : email,\n\t\t\t)\n\t\t\t.describe(\n\t\t\t\t\"email address to be listed as the point of contact in docs and packages\",\n\t\t\t),\n\t\tfunding: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub organization or username to mention in `funding.yml`\"),\n\t\tguide: z\n\t\t\t.object({\n\t\t\t\thref: z.string(),\n\t\t\t\ttitle: z.string(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"link to a contribution guide to place at the top of development docs\",\n\t\t\t),\n\t\thideTemplatedBy: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"whether to hide the 'created by ...' notice at the bottom of the README.md\",\n\t\t\t),\n\t\tkeywords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"any number of keywords to include in `package.json`\"),\n\t\tlogo: z\n\t\t\t.object({\n\t\t\t\talt: z.string(),\n\t\t\t\theight: z.number().optional(),\n\t\t\t\tsrc: z.string(),\n\t\t\t\twidth: z.number().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"local image file in the repository to display near the top of the README.md\",\n\t\t\t),\n\t\tnode: z\n\t\t\t.object({\n\t\t\t\tminimum: z.string(),\n\t\t\t\tpinned: z.string().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"node.js engine version(s) to pin and require a minimum of\"),\n\t\towner: z\n\t\t\t.string()\n\t\t\t.describe(\"GitHub organization or user the repository is underneath\"),\n\t\tpackageData: z\n\t\t\t.object({\n\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tscripts: z.record(z.string(), z.string()).optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"additional properties to include in `package.json`\"),\n\t\trepository: z\n\t\t\t.string()\n\t\t\t.describe(\"'Sentence case.' description of the repository\"),\n\t\ttitle: z.string().describe(\"'Title Case' title for the repository\"),\n\t\tversion: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"package version to publish as and store in `package.json`\"),\n\t},\n\tproduce({ options, take }) {\n\t\tconst allContributors = lazyValue(async () => {\n\t\t\tconst contributions = (await take(inputFromFileJSON, {\n\t\t\t\tfilePath: \".all-contributorsrc\",\n\t\t\t})) as AllContributorsData;\n\n\t\t\treturn contributions.contributors;\n\t\t});\n\n\t\tconst documentation = lazyValue(async () => readDocumentation(take));\n\n\t\tconst nvmrc = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".nvmrc\",\n\t\t\t\t}),\n\t\t);\n\n\t\tconst githubCliUser = lazyValue(async () => {\n\t\t\treturn swallowError(\n\t\t\t\tawait take(inputFromScript, {\n\t\t\t\t\tcommand: \"gh config get user -h github.com\",\n\t\t\t\t}),\n\t\t\t)?.stdout?.toString();\n\t\t});\n\n\t\t// TODO: Make these all use take\n\n\t\tconst gitDefaults = tryCatchLazyValueAsync(async () =>\n\t\t\tgitUrlParse(await gitRemoteOriginUrl()),\n\t\t);\n\n\t\tconst npmDefaults = tryCatchLazyValueAsync(async () => {\n\t\t\tconst whoami = (await execaCommand(`npm whoami`)).stdout;\n\t\t\treturn whoami ? await npmUser(whoami) : undefined;\n\t\t});\n\n\t\tconst packageData = lazyValue(readPackageData);\n\t\tconst packageAuthor = lazyValue(async () =>\n\t\t\tparsePackageAuthor(await packageData()),\n\t\t);\n\n\t\tconst author = lazyValue(async () =>\n\t\t\t(\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await npmDefaults())?.name ??\n\t\t\t\toptions.owner\n\t\t\t)?.toLowerCase(),\n\t\t);\n\n\t\tconst node = lazyValue(async () => {\n\t\t\tconst { engines } = await packageData();\n\n\t\t\treturn {\n\t\t\t\tminimum:\n\t\t\t\t\t(engines?.node && /[\\d+.]+/.exec(engines.node))?.[0] ?? \"18.3.0\",\n\t\t\t\tpinned: swallowError(await nvmrc()) ?? \"20.18.0\",\n\t\t\t};\n\t\t});\n\n\t\tconst version = lazyValue(async () => (await packageData()).version);\n\n\t\treturn {\n\t\t\tauthor,\n\t\t\tbin: async () => (await packageData()).bin,\n\t\t\tcontributors: allContributors,\n\t\t\tdescription: async () => await readDescription(packageData),\n\t\t\tdocumentation,\n\t\t\temail: async () => readEmails(npmDefaults, packageAuthor),\n\t\t\tfunding: readFunding,\n\t\t\tguide: readGuide,\n\t\t\tlogin: author,\n\t\t\tnode,\n\t\t\towner: async () =>\n\t\t\t\t(await gitDefaults())?.organization ??\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await githubCliUser()),\n\t\t\tpackageData: async () => {\n\t\t\t\tconst original = await packageData();\n\n\t\t\t\treturn {\n\t\t\t\t\tdependencies: original.dependencies,\n\t\t\t\t\tdevDependencies: original.devDependencies,\n\t\t\t\t\tscripts: original.scripts,\n\t\t\t\t};\n\t\t\t},\n\t\t\trepository: async () =>\n\t\t\t\toptions.repository ??\n\t\t\t\t(await gitDefaults())?.name ??\n\t\t\t\t(await packageData()).name,\n\t\t\t...readDefaultsFromReadme(),\n\t\t\tversion,\n\t\t};\n\t},\n\ttemplate: {\n\t\towner: \"JoshuaKGoldberg\",\n\t\trepository: \"create-typescript-app\",\n\t},\n});\n\nexport type BaseOptions = BaseOptionsFor<typeof base>;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/next/base.ts"],"sourcesContent":["import { BaseOptionsFor, createBase } from \"create\";\nimport { execaCommand } from \"execa\";\nimport gitRemoteOriginUrl from \"git-remote-origin-url\";\nimport gitUrlParse from \"git-url-parse\";\nimport { inputFromFile } from \"input-from-file\";\nimport { inputFromFileJSON } from \"input-from-file-json\";\nimport { inputFromScript } from \"input-from-script\";\nimport lazyValue from \"lazy-value\";\nimport npmUser from \"npm-user\";\nimport { z } from \"zod\";\n\nimport { parsePackageAuthor } from \"../shared/options/createOptionDefaults/parsePackageAuthor.js\";\nimport { readDefaultsFromReadme } from \"../shared/options/createOptionDefaults/readDefaultsFromReadme.js\";\nimport { readEmails } from \"../shared/options/createOptionDefaults/readEmails.js\";\nimport { readFunding } from \"../shared/options/createOptionDefaults/readFunding.js\";\nimport { readGuide } from \"../shared/options/createOptionDefaults/readGuide.js\";\nimport { readPackageData } from \"../shared/packages.js\";\nimport { readFileSafe } from \"../shared/readFileSafe.js\";\nimport { tryCatchLazyValueAsync } from \"../shared/tryCatchLazyValueAsync.js\";\nimport { AllContributorsData } from \"../shared/types.js\";\nimport { readDescription } from \"./readDescription.js\";\nimport { readDocumentation } from \"./readDocumentation.js\";\nimport { swallowError } from \"./utils/swallowError.js\";\n\nexport const base = createBase({\n\toptions: {\n\t\taccess: z\n\t\t\t.union([z.literal(\"public\"), z.literal(\"restricted\")])\n\t\t\t.describe(\"which `npm publish --access` to release npm packages with\"),\n\t\tauthor: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"username on npm to publish packages under\"),\n\t\tbin: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe('value to set in `package.json`\\'s `\"bin\"` property.'),\n\t\tcontributors: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tavatar_url: z.string(),\n\t\t\t\t\tcontributions: z.array(z.string()),\n\t\t\t\t\tlogin: z.string(),\n\t\t\t\t\tname: z.string(),\n\t\t\t\t\tprofile: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional()\n\t\t\t.describe(\"AllContributors contributors to store in .all-contributorsrc\"),\n\t\tdescription: z\n\t\t\t.string()\n\t\t\t.describe(\"'Sentence case.' description of the repository\"),\n\t\tdirectory: z.string(),\n\t\tdocumentation: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"any additional docs to add to .github/DEVELOPMENT.md\"),\n\t\temail: z\n\t\t\t.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tgithub: z.string(),\n\t\t\t\t\tnpm: z.string(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t.transform((email) =>\n\t\t\t\ttypeof email === \"string\" ? { github: email, npm: email } : email,\n\t\t\t)\n\t\t\t.describe(\n\t\t\t\t\"email address to be listed as the point of contact in docs and packages\",\n\t\t\t),\n\t\tfunding: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub organization or username to mention in `funding.yml`\"),\n\t\tguide: z\n\t\t\t.object({\n\t\t\t\thref: z.string(),\n\t\t\t\ttitle: z.string(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"link to a contribution guide to place at the top of development docs\",\n\t\t\t),\n\t\thideTemplatedBy: z\n\t\t\t.boolean()\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"whether to hide the 'created by ...' notice at the bottom of the README.md\",\n\t\t\t),\n\t\tkeywords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"any number of keywords to include in `package.json`\"),\n\t\tlogo: z\n\t\t\t.object({\n\t\t\t\talt: z.string(),\n\t\t\t\theight: z.number().optional(),\n\t\t\t\tsrc: z.string(),\n\t\t\t\twidth: z.number().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"local image file in the repository to display near the top of the README.md\",\n\t\t\t),\n\t\tnode: z\n\t\t\t.object({\n\t\t\t\tminimum: z.string(),\n\t\t\t\tpinned: z.string().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"node.js engine version(s) to pin and require a minimum of\"),\n\t\towner: z\n\t\t\t.string()\n\t\t\t.describe(\"GitHub organization or user the repository is underneath\"),\n\t\tpackageData: z\n\t\t\t.object({\n\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tscripts: z.record(z.string(), z.string()).optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"additional properties to include in `package.json`\"),\n\t\trepository: z\n\t\t\t.string()\n\t\t\t.describe(\"'kebab-case' or 'PascalCase' title of the repository\"),\n\t\ttitle: z.string().describe(\"'Title Case' title for the repository\"),\n\t\tusage: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"markdown docs to put in README.md under the ## Usage heading\"),\n\t\tversion: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"package version to publish as and store in `package.json`\"),\n\t},\n\tproduce({ options, take }) {\n\t\tconst allContributors = lazyValue(async () => {\n\t\t\tconst contributions = (await take(inputFromFileJSON, {\n\t\t\t\tfilePath: \".all-contributorsrc\",\n\t\t\t})) as AllContributorsData;\n\n\t\t\treturn contributions.contributors;\n\t\t});\n\n\t\tconst documentation = lazyValue(async () => readDocumentation(take));\n\n\t\tconst nvmrc = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".nvmrc\",\n\t\t\t\t}),\n\t\t);\n\n\t\tconst githubCliUser = lazyValue(async () => {\n\t\t\treturn swallowError(\n\t\t\t\tawait take(inputFromScript, {\n\t\t\t\t\tcommand: \"gh config get user -h github.com\",\n\t\t\t\t}),\n\t\t\t)?.stdout?.toString();\n\t\t});\n\n\t\tconst readme = lazyValue(async () => await readFileSafe(\"README.md\", \"\"));\n\n\t\t// TODO: Make these all use take\n\n\t\tconst gitDefaults = tryCatchLazyValueAsync(async () =>\n\t\t\tgitUrlParse(await gitRemoteOriginUrl()),\n\t\t);\n\n\t\tconst npmDefaults = tryCatchLazyValueAsync(async () => {\n\t\t\tconst whoami = (await execaCommand(`npm whoami`)).stdout;\n\t\t\treturn whoami ? await npmUser(whoami) : undefined;\n\t\t});\n\n\t\tconst packageData = lazyValue(readPackageData);\n\t\tconst packageAuthor = lazyValue(async () =>\n\t\t\tparsePackageAuthor(await packageData()),\n\t\t);\n\n\t\tconst author = lazyValue(\n\t\t\tasync () =>\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await npmDefaults())?.name ??\n\t\t\t\toptions.owner,\n\t\t);\n\n\t\tconst node = lazyValue(async () => {\n\t\t\tconst { engines } = await packageData();\n\n\t\t\treturn {\n\t\t\t\tminimum:\n\t\t\t\t\t(engines?.node && /[\\d+.]+/.exec(engines.node))?.[0] ?? \"18.3.0\",\n\t\t\t\tpinned: swallowError(await nvmrc()) ?? \"20.18.0\",\n\t\t\t};\n\t\t});\n\n\t\tconst version = lazyValue(async () => (await packageData()).version);\n\n\t\treturn {\n\t\t\taccess: \"public\" as const,\n\t\t\tauthor,\n\t\t\tbin: async () => (await packageData()).bin,\n\t\t\tcontributors: allContributors,\n\t\t\tdescription: async () => await readDescription(packageData, readme),\n\t\t\tdocumentation,\n\t\t\temail: async () => readEmails(npmDefaults, packageAuthor),\n\t\t\tfunding: readFunding,\n\t\t\tguide: readGuide,\n\t\t\tlogin: author,\n\t\t\tnode,\n\t\t\towner: async () =>\n\t\t\t\t(await gitDefaults())?.organization ??\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await githubCliUser()),\n\t\t\tpackageData: async () => {\n\t\t\t\tconst original = await packageData();\n\n\t\t\t\treturn {\n\t\t\t\t\tdependencies: original.dependencies,\n\t\t\t\t\tdevDependencies: original.devDependencies,\n\t\t\t\t\tscripts: original.scripts,\n\t\t\t\t};\n\t\t\t},\n\t\t\trepository: async () =>\n\t\t\t\toptions.repository ??\n\t\t\t\t(await gitDefaults())?.name ??\n\t\t\t\t(await packageData()).name,\n\t\t\t...readDefaultsFromReadme(readme, options.repository),\n\t\t\tversion,\n\t\t};\n\t},\n\ttemplate: {\n\t\towner: \"JoshuaKGoldberg\",\n\t\trepository: \"create-typescript-app\",\n\t},\n});\n\nexport type BaseOptions = BaseOptionsFor<typeof base>;\n"],"mappings":"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","names":[]}
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockAllContributors: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockAllContributors: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockAllContributors: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -1,6 +1,5 @@
1
1
  import { createSoloWorkflowFile } from "../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js";
2
2
  import { base } from "../base.js";
3
- import { blockPrettier } from "./blockPrettier.js";
4
3
  import { blockRepositorySecrets } from "./blockRepositorySecrets.js";
5
4
  import { CommandPhase } from "./phases.js";
6
5
  const blockAllContributors = base.createBlock({
@@ -10,9 +9,6 @@ const blockAllContributors = base.createBlock({
10
9
  produce({ options }) {
11
10
  return {
12
11
  addons: [
13
- blockPrettier({
14
- ignores: ["/.all-contributorsrc"]
15
- }),
16
12
  blockRepositorySecrets({
17
13
  secrets: [
18
14
  {
@@ -55,7 +51,7 @@ const blockAllContributors = base.createBlock({
55
51
  {
56
52
  commands: [
57
53
  `pnpx all-contributors-cli generate`,
58
- `pnpx all-contributors-cli add ${options.owner} code,content,docs,ideas,infra,maintenance,projectManagement,tool`
54
+ `pnpx all-contributors-cli add ${options.owner} code,content,doc,ideas,infra,maintenance,projectManagement,tool`
59
55
  ],
60
56
  phase: CommandPhase.Process
61
57
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/blocks/blockAllContributors.ts"],"sourcesContent":["import { createSoloWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js\";\nimport { base } from \"../base.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\nimport { blockRepositorySecrets } from \"./blockRepositorySecrets.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockAllContributors = base.createBlock({\n\tabout: {\n\t\tname: \"AllContributors\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockPrettier({\n\t\t\t\t\tignores: [\"/.all-contributorsrc\"],\n\t\t\t\t}),\n\t\t\t\tblockRepositorySecrets({\n\t\t\t\t\tsecrets: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: \"a GitHub PAT with repo and workflow permissions\",\n\t\t\t\t\t\t\tname: \"ACCESS_TOKEN\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".all-contributorsrc\": JSON.stringify({\n\t\t\t\t\tbadgeTemplate:\n\t\t\t\t\t\t'\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: <%= contributors.length %>\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-<%= contributors.length %>-21bb42.svg\" /></a>',\n\t\t\t\t\tcontributors: options.contributors ?? [],\n\t\t\t\t\tcontributorsSortAlphabetically: true,\n\t\t\t\t\tprojectName: options.repository,\n\t\t\t\t\tprojectOwner: options.owner,\n\t\t\t\t}),\n\t\t\t\t\".github\": {\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"contributors.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"Contributors\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpush: {\n\t\t\t\t\t\t\t\t\tbranches: [\"main\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ uses: \"actions/checkout@v4\", with: { \"fetch-depth\": 0 } },\n\t\t\t\t\t\t\t\t{ uses: \"./.github/actions/prepare\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tenv: { GITHUB_TOKEN: \"${{ secrets.ACCESS_TOKEN }}\" },\n\t\t\t\t\t\t\t\t\tuses: `JoshuaKGoldberg/all-contributors-auto-action@v0.5.0`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t`pnpx all-contributors-cli generate`,\n\t\t\t\t\t\t`pnpx all-contributors-cli add ${options.owner} code,content,docs,ideas,infra,maintenance,projectManagement,tool`,\n\t\t\t\t\t],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAC9B,SAAS,8BAA8B;AACvC,SAAS,oBAAoB;AAEtB,MAAM,uBAAuB,KAAK,YAAY;AAAA,EACpD,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,QAAQ,GAAG;AACpB,WAAO;AAAA,MACN,QAAQ;AAAA,QACP,cAAc;AAAA,UACb,SAAS,CAAC,sBAAsB;AAAA,QACjC,CAAC;AAAA,QACD,uBAAuB;AAAA,UACtB,SAAS;AAAA,YACR;AAAA,cACC,aAAa;AAAA,cACb,MAAM;AAAA,YACP;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACN,uBAAuB,KAAK,UAAU;AAAA,UACrC,eACC;AAAA,UACD,cAAc,QAAQ,gBAAgB,CAAC;AAAA,UACvC,gCAAgC;AAAA,UAChC,aAAa,QAAQ;AAAA,UACrB,cAAc,QAAQ;AAAA,QACvB,CAAC;AAAA,QACD,WAAW;AAAA,UACV,WAAW;AAAA,YACV,oBAAoB,uBAAuB;AAAA,cAC1C,MAAM;AAAA,cACN,IAAI;AAAA,gBACH,MAAM;AAAA,kBACL,UAAU,CAAC,MAAM;AAAA,gBAClB;AAAA,cACD;AAAA,cACA,OAAO;AAAA,gBACN,EAAE,MAAM,uBAAuB,MAAM,EAAE,eAAe,EAAE,EAAE;AAAA,gBAC1D,EAAE,MAAM,4BAA4B;AAAA,gBACpC;AAAA,kBACC,KAAK,EAAE,cAAc,8BAA8B;AAAA,kBACnD,MAAM;AAAA,gBACP;AAAA,cACD;AAAA,YACD,CAAC;AAAA,UACF;AAAA,QACD;AAAA,MACD;AAAA,MACA,SAAS;AAAA,QACR;AAAA,UACC,UAAU;AAAA,YACT;AAAA,YACA,iCAAiC,QAAQ,KAAK;AAAA,UAC/C;AAAA,UACA,OAAO,aAAa;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/next/blocks/blockAllContributors.ts"],"sourcesContent":["import { createSoloWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js\";\nimport { base } from \"../base.js\";\nimport { blockRepositorySecrets } from \"./blockRepositorySecrets.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockAllContributors = base.createBlock({\n\tabout: {\n\t\tname: \"AllContributors\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRepositorySecrets({\n\t\t\t\t\tsecrets: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: \"a GitHub PAT with repo and workflow permissions\",\n\t\t\t\t\t\t\tname: \"ACCESS_TOKEN\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".all-contributorsrc\": JSON.stringify({\n\t\t\t\t\tbadgeTemplate:\n\t\t\t\t\t\t'\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: <%= contributors.length %>\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-<%= contributors.length %>-21bb42.svg\" /></a>',\n\t\t\t\t\tcontributors: options.contributors ?? [],\n\t\t\t\t\tcontributorsSortAlphabetically: true,\n\t\t\t\t\tprojectName: options.repository,\n\t\t\t\t\tprojectOwner: options.owner,\n\t\t\t\t}),\n\t\t\t\t\".github\": {\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"contributors.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"Contributors\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpush: {\n\t\t\t\t\t\t\t\t\tbranches: [\"main\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ uses: \"actions/checkout@v4\", with: { \"fetch-depth\": 0 } },\n\t\t\t\t\t\t\t\t{ uses: \"./.github/actions/prepare\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tenv: { GITHUB_TOKEN: \"${{ secrets.ACCESS_TOKEN }}\" },\n\t\t\t\t\t\t\t\t\tuses: `JoshuaKGoldberg/all-contributors-auto-action@v0.5.0`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t`pnpx all-contributors-cli generate`,\n\t\t\t\t\t\t`pnpx all-contributors-cli add ${options.owner} code,content,doc,ideas,infra,maintenance,projectManagement,tool`,\n\t\t\t\t\t],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,YAAY;AACrB,SAAS,8BAA8B;AACvC,SAAS,oBAAoB;AAEtB,MAAM,uBAAuB,KAAK,YAAY;AAAA,EACpD,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,QAAQ,GAAG;AACpB,WAAO;AAAA,MACN,QAAQ;AAAA,QACP,uBAAuB;AAAA,UACtB,SAAS;AAAA,YACR;AAAA,cACC,aAAa;AAAA,cACb,MAAM;AAAA,YACP;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACN,uBAAuB,KAAK,UAAU;AAAA,UACrC,eACC;AAAA,UACD,cAAc,QAAQ,gBAAgB,CAAC;AAAA,UACvC,gCAAgC;AAAA,UAChC,aAAa,QAAQ;AAAA,UACrB,cAAc,QAAQ;AAAA,QACvB,CAAC;AAAA,QACD,WAAW;AAAA,UACV,WAAW;AAAA,YACV,oBAAoB,uBAAuB;AAAA,cAC1C,MAAM;AAAA,cACN,IAAI;AAAA,gBACH,MAAM;AAAA,kBACL,UAAU,CAAC,MAAM;AAAA,gBAClB;AAAA,cACD;AAAA,cACA,OAAO;AAAA,gBACN,EAAE,MAAM,uBAAuB,MAAM,EAAE,eAAe,EAAE,EAAE;AAAA,gBAC1D,EAAE,MAAM,4BAA4B;AAAA,gBACpC;AAAA,kBACC,KAAK,EAAE,cAAc,8BAA8B;AAAA,kBACnD,MAAM;AAAA,gBACP;AAAA,cACD;AAAA,YACD,CAAC;AAAA,UACF;AAAA,QACD;AAAA,MACD;AAAA,MACA,SAAS;AAAA,QACR;AAAA,UACC,UAAU;AAAA,YACT;AAAA,YACA,iCAAiC,QAAQ,KAAK;AAAA,UAC/C;AAAA,UACA,OAAO,aAAa;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockAreTheTypesWrong: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockAreTheTypesWrong: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockAreTheTypesWrong: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -5,6 +5,7 @@ declare const blockCSpell: create.BlockWithAddons<{
5
5
  words: string[];
6
6
  }, {
7
7
  description: string;
8
+ access: "public" | "restricted";
8
9
  directory: string;
9
10
  email: {
10
11
  github: string;
@@ -13,7 +14,6 @@ declare const blockCSpell: create.BlockWithAddons<{
13
14
  title: string;
14
15
  owner: string;
15
16
  repository: string;
16
- access?: "public" | "restricted" | undefined;
17
17
  author?: string | undefined;
18
18
  bin?: string | undefined;
19
19
  contributors?: {
@@ -46,6 +46,7 @@ declare const blockCSpell: create.BlockWithAddons<{
46
46
  devDependencies?: Record<string, string> | undefined;
47
47
  scripts?: Record<string, string> | undefined;
48
48
  } | undefined;
49
+ usage?: string | undefined;
49
50
  version?: string | undefined;
50
51
  }>;
51
52
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockContributingDocs: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockContributingDocs: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockContributingDocs: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockContributorCovenant: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockContributorCovenant: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockContributorCovenant: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -16,6 +16,7 @@ declare const blockDevelopmentDocs: create.BlockWithAddons<{
16
16
  }>;
17
17
  }, {
18
18
  description: string;
19
+ access: "public" | "restricted";
19
20
  directory: string;
20
21
  email: {
21
22
  github: string;
@@ -24,7 +25,6 @@ declare const blockDevelopmentDocs: create.BlockWithAddons<{
24
25
  title: string;
25
26
  owner: string;
26
27
  repository: string;
27
- access?: "public" | "restricted" | undefined;
28
28
  author?: string | undefined;
29
29
  bin?: string | undefined;
30
30
  contributors?: {
@@ -57,6 +57,7 @@ declare const blockDevelopmentDocs: create.BlockWithAddons<{
57
57
  devDependencies?: Record<string, string> | undefined;
58
58
  scripts?: Record<string, string> | undefined;
59
59
  } | undefined;
60
+ usage?: string | undefined;
60
61
  version?: string | undefined;
61
62
  }>;
62
63
 
@@ -27,6 +27,7 @@ declare const blockESLint: create.BlockWithAddons<{
27
27
  beforeLint?: string | undefined;
28
28
  }, {
29
29
  description: string;
30
+ access: "public" | "restricted";
30
31
  directory: string;
31
32
  email: {
32
33
  github: string;
@@ -35,7 +36,6 @@ declare const blockESLint: create.BlockWithAddons<{
35
36
  title: string;
36
37
  owner: string;
37
38
  repository: string;
38
- access?: "public" | "restricted" | undefined;
39
39
  author?: string | undefined;
40
40
  bin?: string | undefined;
41
41
  contributors?: {
@@ -68,6 +68,7 @@ declare const blockESLint: create.BlockWithAddons<{
68
68
  devDependencies?: Record<string, string> | undefined;
69
69
  scripts?: Record<string, string> | undefined;
70
70
  } | undefined;
71
+ usage?: string | undefined;
71
72
  version?: string | undefined;
72
73
  }>;
73
74
 
@@ -60,7 +60,7 @@ const blockESLint = base.createBlock({
60
60
  return {
61
61
  scripts: [
62
62
  {
63
- commands: ["rm .eslintrc* .eslintignore"],
63
+ commands: ["rm .eslintrc* .eslintignore eslint.config.*"],
64
64
  phase: CommandPhase.Migrations
65
65
  }
66
66
  ]
@@ -219,7 +219,9 @@ function printExtensionRules(rules) {
219
219
  return [
220
220
  "{",
221
221
  ...rules.flatMap((group) => [
222
- group.comment ? `// ${group.comment}
222
+ group.comment ? `
223
+
224
+ // ${group.comment}
223
225
  ` : "",
224
226
  ...Object.entries(group.entries).map(
225
227
  ([ruleName, options]) => `"${ruleName}": ${JSON.stringify(options)},`
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nconst zRuleOptions = z.union([\n\tz.literal(\"error\"),\n\tz.literal(\"off\"),\n\tz.literal(\"warn\"),\n\tz.union([\n\t\tz.tuple([z.union([z.literal(\"error\"), z.literal(\"warn\")]), z.unknown()]),\n\t\tz.tuple([\n\t\t\tz.union([z.literal(\"error\"), z.literal(\"warn\")]),\n\t\t\tz.unknown(),\n\t\t\tz.unknown(),\n\t\t]),\n\t]),\n]);\n\nconst zExtensionRules = z.union([\n\tz.record(z.string(), zRuleOptions),\n\tz.array(\n\t\tz.object({\n\t\t\tcomment: z.string().optional(),\n\t\t\tentries: z.record(z.string(), zRuleOptions),\n\t\t}),\n\t),\n]);\n\nconst zExtension = z.object({\n\textends: z.array(z.string()).optional(),\n\tfiles: z.array(z.string()).optional(),\n\tlanguageOptions: z.unknown().optional(),\n\tlinterOptions: z.unknown().optional(),\n\tplugins: z.record(z.string(), z.string()).optional(),\n\trules: zExtensionRules.optional(),\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst zPackageImport = z.object({\n\tsource: z.string(),\n\tspecifier: z.string(),\n\ttypes: z.boolean().optional(),\n});\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\textensions: z.array(z.union([z.string(), zExtension])).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t\trules: zExtensionRules.optional(),\n\t\tsettings: z.record(z.string(), z.unknown()).optional(),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm .eslintrc* .eslintignore\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { extensions, ignores, imports, rules, settings } = addons;\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${packageImport.source}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = [\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores]\n\t\t\t.map((ignore) => JSON.stringify(ignore))\n\t\t\t.sort();\n\n\t\tconst extensionLines = [\n\t\t\tprintExtension({\n\t\t\t\textends: [\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [\"**/*.js\", \"**/*.ts\"],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: [\"*.config.*s\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttsconfigRootDir: \"import.meta.dirname\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...(rules && { rules }),\n\t\t\t\t...(settings && { settings }),\n\t\t\t}),\n\t\t\t...extensions.map((extension) =>\n\t\t\t\ttypeof extension === \"string\" ? extension : printExtension(extension),\n\t\t\t),\n\t\t]\n\t\t\t.sort((a, b) => processForSort(a).localeCompare(processForSort(b)))\n\t\t\t.map((t) => t);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\twords: [\"tseslint\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\n\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t...imports.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as { name: string };\n\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\"eslint.config.js\": `${importLines.join(\"\\n\")}\n\nexport default tseslint.config(\n\t{ ignores: [${ignoreLines.join(\", \")}] },\n\t${printExtension({\n\t\tlinterOptions: { reportUnusedDisableDirectives: \"error\" },\n\t})},\n\teslint.configs.recommended,\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction printExtension(extension: z.infer<typeof zExtension>) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\textension.files &&\n\t\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings && `settings: ${JSON.stringify(extension.settings)},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: z.infer<typeof zExtensionRules>) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...rules.flatMap((group) => [\n\t\t\tgroup.comment ? `// ${group.comment}\\n` : \"\",\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction processForSort(line: string) {\n\tif (line.startsWith(\"...\") || /\\w+/.test(line[0])) {\n\t\treturn `A\\n${line.replaceAll(/\\W+/g, \"\")}`;\n\t}\n\n\treturn `B\\n${(/files: (.+)/.exec(line)?.[1] ?? line).replaceAll(/\\W+/g, \"\")}`;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/next/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nconst zRuleOptions = z.union([\n\tz.literal(\"error\"),\n\tz.literal(\"off\"),\n\tz.literal(\"warn\"),\n\tz.union([\n\t\tz.tuple([z.union([z.literal(\"error\"), z.literal(\"warn\")]), z.unknown()]),\n\t\tz.tuple([\n\t\t\tz.union([z.literal(\"error\"), z.literal(\"warn\")]),\n\t\t\tz.unknown(),\n\t\t\tz.unknown(),\n\t\t]),\n\t]),\n]);\n\nconst zExtensionRules = z.union([\n\tz.record(z.string(), zRuleOptions),\n\tz.array(\n\t\tz.object({\n\t\t\tcomment: z.string().optional(),\n\t\t\tentries: z.record(z.string(), zRuleOptions),\n\t\t}),\n\t),\n]);\n\nconst zExtension = z.object({\n\textends: z.array(z.string()).optional(),\n\tfiles: z.array(z.string()).optional(),\n\tlanguageOptions: z.unknown().optional(),\n\tlinterOptions: z.unknown().optional(),\n\tplugins: z.record(z.string(), z.string()).optional(),\n\trules: zExtensionRules.optional(),\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst zPackageImport = z.object({\n\tsource: z.string(),\n\tspecifier: z.string(),\n\ttypes: z.boolean().optional(),\n});\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\textensions: z.array(z.union([z.string(), zExtension])).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t\trules: zExtensionRules.optional(),\n\t\tsettings: z.record(z.string(), z.unknown()).optional(),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm .eslintrc* .eslintignore eslint.config.*\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { extensions, ignores, imports, rules, settings } = addons;\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${packageImport.source}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = [\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores]\n\t\t\t.map((ignore) => JSON.stringify(ignore))\n\t\t\t.sort();\n\n\t\tconst extensionLines = [\n\t\t\tprintExtension({\n\t\t\t\textends: [\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [\"**/*.js\", \"**/*.ts\"],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: [\"*.config.*s\"],\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttsconfigRootDir: \"import.meta.dirname\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...(rules && { rules }),\n\t\t\t\t...(settings && { settings }),\n\t\t\t}),\n\t\t\t...extensions.map((extension) =>\n\t\t\t\ttypeof extension === \"string\" ? extension : printExtension(extension),\n\t\t\t),\n\t\t]\n\t\t\t.sort((a, b) => processForSort(a).localeCompare(processForSort(b)))\n\t\t\t.map((t) => t);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\twords: [\"tseslint\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\n\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t...imports.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as { name: string };\n\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\"eslint.config.js\": `${importLines.join(\"\\n\")}\n\nexport default tseslint.config(\n\t{ ignores: [${ignoreLines.join(\", \")}] },\n\t${printExtension({\n\t\tlinterOptions: { reportUnusedDisableDirectives: \"error\" },\n\t})},\n\teslint.configs.recommended,\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction printExtension(extension: z.infer<typeof zExtension>) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\textension.files &&\n\t\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings && `settings: ${JSON.stringify(extension.settings)},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: z.infer<typeof zExtensionRules>) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...rules.flatMap((group) => [\n\t\t\tgroup.comment ? `\\n\\n// ${group.comment}\\n` : \"\",\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction processForSort(line: string) {\n\tif (line.startsWith(\"...\") || /\\w+/.test(line[0])) {\n\t\treturn `A\\n${line.replaceAll(/\\W+/g, \"\")}`;\n\t}\n\n\treturn `B\\n${(/files: (.+)/.exec(line)?.[1] ?? line).replaceAll(/\\W+/g, \"\")}`;\n}\n"],"mappings":"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","names":[]}
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockESLintComments: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockESLintComments: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockESLintComments: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockESLintJSDoc: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockESLintJSDoc: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockESLintJSDoc: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockESLintJSONC: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockESLintJSONC: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockESLintJSONC: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockESLintMarkdown: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockESLintMarkdown: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockESLintMarkdown: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockESLintMoreStyling: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockESLintMoreStyling: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockESLintMoreStyling: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockESLintNode: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ access: "public" | "restricted";
5
6
  directory: string;
6
7
  email: {
7
8
  github: string;
@@ -10,7 +11,6 @@ declare const blockESLintNode: create.BlockWithoutAddons<{
10
11
  title: string;
11
12
  owner: string;
12
13
  repository: string;
13
- access?: "public" | "restricted" | undefined;
14
14
  author?: string | undefined;
15
15
  bin?: string | undefined;
16
16
  contributors?: {
@@ -43,6 +43,7 @@ declare const blockESLintNode: create.BlockWithoutAddons<{
43
43
  devDependencies?: Record<string, string> | undefined;
44
44
  scripts?: Record<string, string> | undefined;
45
45
  } | undefined;
46
+ usage?: string | undefined;
46
47
  version?: string | undefined;
47
48
  }>;
48
49