create-typescript-app 1.79.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 (153) hide show
  1. package/README.md +4 -3
  2. package/lib/create/createRerunDirectorySuggestion.d.ts +7 -0
  3. package/lib/create/createRerunDirectorySuggestion.js +8 -0
  4. package/lib/create/createRerunDirectorySuggestion.js.map +1 -0
  5. package/lib/create/createRerunSuggestion.js +3 -1
  6. package/lib/create/createRerunSuggestion.js.map +1 -1
  7. package/lib/index.d.ts +3 -0
  8. package/lib/index.js +1 -0
  9. package/lib/index.js.map +1 -1
  10. package/lib/next/base.d.ts +8 -1
  11. package/lib/next/base.js +14 -7
  12. package/lib/next/base.js.map +1 -1
  13. package/lib/next/blocks/blockAllContributors.d.ts +4 -1
  14. package/lib/next/blocks/blockAllContributors.js +1 -5
  15. package/lib/next/blocks/blockAllContributors.js.map +1 -1
  16. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +4 -1
  17. package/lib/next/blocks/blockCSpell.d.ts +4 -1
  18. package/lib/next/blocks/blockContributingDocs.d.ts +4 -1
  19. package/lib/next/blocks/blockContributorCovenant.d.ts +4 -1
  20. package/lib/next/blocks/blockDevelopmentDocs.d.ts +4 -1
  21. package/lib/next/blocks/blockESLint.d.ts +4 -1
  22. package/lib/next/blocks/blockESLint.js +4 -2
  23. package/lib/next/blocks/blockESLint.js.map +1 -1
  24. package/lib/next/blocks/blockESLintComments.d.ts +4 -1
  25. package/lib/next/blocks/blockESLintJSDoc.d.ts +4 -1
  26. package/lib/next/blocks/blockESLintJSONC.d.ts +4 -1
  27. package/lib/next/blocks/blockESLintMarkdown.d.ts +4 -1
  28. package/lib/next/blocks/blockESLintMoreStyling.d.ts +4 -1
  29. package/lib/next/blocks/blockESLintNode.d.ts +4 -1
  30. package/lib/next/blocks/blockESLintPackageJson.d.ts +4 -1
  31. package/lib/next/blocks/blockESLintPerfectionist.d.ts +4 -1
  32. package/lib/next/blocks/blockESLintRegexp.d.ts +4 -1
  33. package/lib/next/blocks/blockESLintYML.d.ts +4 -1
  34. package/lib/next/blocks/blockExampleFiles.d.ts +4 -1
  35. package/lib/next/blocks/blockFunding.d.ts +4 -1
  36. package/lib/next/blocks/blockGitHubActionsCI.d.ts +5 -1
  37. package/lib/next/blocks/blockGitHubActionsCI.js +1 -0
  38. package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -1
  39. package/lib/next/blocks/blockGitHubApps.d.ts +4 -1
  40. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +4 -1
  41. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +4 -1
  42. package/lib/next/blocks/blockGitignore.d.ts +4 -1
  43. package/lib/next/blocks/blockKnip.d.ts +4 -1
  44. package/lib/next/blocks/blockKnip.js +11 -0
  45. package/lib/next/blocks/blockKnip.js.map +1 -1
  46. package/lib/next/blocks/blockMITLicense.d.ts +4 -1
  47. package/lib/next/blocks/blockMarkdownlint.d.ts +4 -1
  48. package/lib/next/blocks/blockNvmrc.d.ts +4 -1
  49. package/lib/next/blocks/blockPRCompliance.d.ts +4 -1
  50. package/lib/next/blocks/blockPackageJson.d.ts +4 -1
  51. package/lib/next/blocks/blockPackageJson.js +3 -1
  52. package/lib/next/blocks/blockPackageJson.js.map +1 -1
  53. package/lib/next/blocks/blockPnpmDedupe.d.ts +4 -1
  54. package/lib/next/blocks/blockPrettier.d.ts +4 -1
  55. package/lib/next/blocks/blockPrettier.js +2 -2
  56. package/lib/next/blocks/blockPrettier.js.map +1 -1
  57. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +4 -1
  58. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +4 -1
  59. package/lib/next/blocks/blockPrettierPluginSh.d.ts +4 -1
  60. package/lib/next/blocks/blockREADME.d.ts +4 -1
  61. package/lib/next/blocks/blockREADME.js +6 -9
  62. package/lib/next/blocks/blockREADME.js.map +1 -1
  63. package/lib/next/blocks/blockReleaseIt.d.ts +4 -1
  64. package/lib/next/blocks/blockReleaseIt.js +13 -1
  65. package/lib/next/blocks/blockReleaseIt.js.map +1 -1
  66. package/lib/next/blocks/blockRenovate.d.ts +4 -1
  67. package/lib/next/blocks/blockRepositoryBranchRuleset.d.ts +4 -1
  68. package/lib/next/blocks/blockRepositoryLabels.d.ts +4 -1
  69. package/lib/next/blocks/blockRepositorySecrets.d.ts +4 -1
  70. package/lib/next/blocks/blockRepositorySettings.d.ts +4 -1
  71. package/lib/next/blocks/blockRepositorySettings.js +3 -1
  72. package/lib/next/blocks/blockRepositorySettings.js.map +1 -1
  73. package/lib/next/blocks/blockSecurityDocs.d.ts +4 -1
  74. package/lib/next/blocks/blockTSup.d.ts +4 -1
  75. package/lib/next/blocks/blockTemplatedBy.d.ts +4 -1
  76. package/lib/next/blocks/blockTypeScript.d.ts +4 -1
  77. package/lib/next/blocks/blockTypeScript.js +1 -4
  78. package/lib/next/blocks/blockTypeScript.js.map +1 -1
  79. package/lib/next/blocks/blockVSCode.d.ts +4 -1
  80. package/lib/next/blocks/blockVitest.d.ts +10 -4
  81. package/lib/next/blocks/blockVitest.js +18 -14
  82. package/lib/next/blocks/blockVitest.js.map +1 -1
  83. package/lib/next/blocks/packageData.js +2 -7
  84. package/lib/next/blocks/packageData.js.map +1 -1
  85. package/lib/next/blocks/sourcePackageJson.d.ts +164 -0
  86. package/lib/next/blocks/sourcePackageJson.js +10 -0
  87. package/lib/next/blocks/sourcePackageJson.js.map +1 -0
  88. package/lib/next/presets/index.d.ts +5 -0
  89. package/lib/next/presets/index.js +4 -0
  90. package/lib/next/presets/index.js.map +1 -0
  91. package/lib/next/{presetCommon.d.ts → presets/presetCommon.d.ts} +8 -1
  92. package/lib/next/{presetCommon.js → presets/presetCommon.js} +4 -4
  93. package/lib/next/presets/presetCommon.js.map +1 -0
  94. package/lib/next/{presetEverything.d.ts → presets/presetEverything.d.ts} +8 -1
  95. package/lib/next/presets/presetEverything.js +59 -0
  96. package/lib/next/presets/presetEverything.js.map +1 -0
  97. package/lib/next/{presetMinimal.d.ts → presets/presetMinimal.d.ts} +8 -1
  98. package/lib/next/presets/presetMinimal.js +57 -0
  99. package/lib/next/presets/presetMinimal.js.map +1 -0
  100. package/lib/next/readDescription.d.ts +7 -0
  101. package/lib/next/readDescription.js +18 -0
  102. package/lib/next/readDescription.js.map +1 -0
  103. package/lib/next/readDescriptionFromReadme.d.ts +3 -0
  104. package/lib/next/readDescriptionFromReadme.js +18 -0
  105. package/lib/next/readDescriptionFromReadme.js.map +1 -0
  106. package/lib/next/runCreateEnginePreset.js +3 -3
  107. package/lib/next/runCreateEnginePreset.js.map +1 -1
  108. package/lib/next/template.d.ts +8 -1
  109. package/lib/next/template.js +3 -3
  110. package/lib/next/template.js.map +1 -1
  111. package/lib/shared/options/args.d.ts +14 -2
  112. package/lib/shared/options/args.js +18 -2
  113. package/lib/shared/options/args.js.map +1 -1
  114. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.d.ts +3 -0
  115. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.js +21 -0
  116. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.js.map +1 -0
  117. package/lib/shared/options/createOptionDefaults/index.d.ts +3 -0
  118. package/lib/shared/options/createOptionDefaults/index.js +5 -2
  119. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  120. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.d.ts +4 -1
  121. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +15 -4
  122. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  123. package/lib/shared/options/exclusionKeys.js +3 -3
  124. package/lib/shared/options/exclusionKeys.js.map +1 -1
  125. package/lib/shared/options/logInferredOptions.js +6 -0
  126. package/lib/shared/options/logInferredOptions.js.map +1 -1
  127. package/lib/shared/options/optionsSchema.d.ts +8 -8
  128. package/lib/shared/options/optionsSchema.js +1 -1
  129. package/lib/shared/options/optionsSchema.js.map +1 -1
  130. package/lib/shared/options/readLogoSizing.d.ts +7 -0
  131. package/lib/shared/options/readLogoSizing.js +29 -0
  132. package/lib/shared/options/readLogoSizing.js.map +1 -0
  133. package/lib/shared/options/readOptions.js +3 -1
  134. package/lib/shared/options/readOptions.js.map +1 -1
  135. package/lib/shared/types.d.ts +3 -1
  136. package/lib/steps/finalizeDependencies.js +1 -1
  137. package/lib/steps/finalizeDependencies.js.map +1 -1
  138. package/lib/steps/uninstallPackages.js +3 -0
  139. package/lib/steps/uninstallPackages.js.map +1 -1
  140. package/lib/steps/updateReadme.js +1 -1
  141. package/lib/steps/updateReadme.js.map +1 -1
  142. package/lib/steps/writing/creation/createESLintConfig.js +2 -2
  143. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
  144. package/lib/steps/writing/creation/index.js +3 -3
  145. package/lib/steps/writing/creation/index.js.map +1 -1
  146. package/lib/steps/writing/creation/rootFiles.js +13 -3
  147. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  148. package/package.json +5 -2
  149. package/lib/next/presetCommon.js.map +0 -1
  150. package/lib/next/presetEverything.js +0 -59
  151. package/lib/next/presetEverything.js.map +0 -1
  152. package/lib/next/presetMinimal.js +0 -57
  153. package/lib/next/presetMinimal.js.map +0 -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>
@@ -15,7 +15,7 @@
15
15
  <img alt="💪 TypeScript: Strict" src="https://img.shields.io/badge/%F0%9F%92%AA_typescript-strict-21bb42.svg" />
16
16
  </p>
17
17
 
18
- <img align="right" alt="Project logo: the TypeScript blue square with rounded corners, but a plus sign instead of 'TS'" src="./docs/create-typescript-app.png">
18
+ <img align="right" alt="Project logo: the TypeScript blue square with rounded corners, but a plus sign instead of 'TS'" height="128" src="./docs/create-typescript-app.png" width="128">
19
19
 
20
20
  `create-typescript-app` is a one-stop-shop solution to set up a new or existing repository with the latest and greatest TypeScript tooling.
21
21
  It includes options not just for building and testing but also GitHub repository templates, contributor recognition, automated release management, and more.
@@ -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>
@@ -0,0 +1,7 @@
1
+ import { Options } from '../shared/types.js';
2
+ import 'zod';
3
+ import '../shared/codes.js';
4
+
5
+ declare function createRerunDirectorySuggestion(options: Partial<Options>): string | undefined;
6
+
7
+ export { createRerunDirectorySuggestion };
@@ -0,0 +1,8 @@
1
+ function createRerunDirectorySuggestion(options) {
2
+ const defaultValue = options.mode === "create" ? options.repository : ".";
3
+ return options.directory === defaultValue ? void 0 : options.directory;
4
+ }
5
+ export {
6
+ createRerunDirectorySuggestion
7
+ };
8
+ //# sourceMappingURL=createRerunDirectorySuggestion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/create/createRerunDirectorySuggestion.ts"],"sourcesContent":["import { Options } from \"../shared/types.js\";\n\nexport function createRerunDirectorySuggestion(options: Partial<Options>) {\n\tconst defaultValue = options.mode === \"create\" ? options.repository : \".\";\n\n\treturn options.directory === defaultValue ? undefined : options.directory;\n}\n"],"mappings":"AAEO,SAAS,+BAA+B,SAA2B;AACzE,QAAM,eAAe,QAAQ,SAAS,WAAW,QAAQ,aAAa;AAEtE,SAAO,QAAQ,cAAc,eAAe,SAAY,QAAQ;AACjE;","names":[]}
@@ -2,6 +2,7 @@ import { allArgOptions } from "../shared/options/args.js";
2
2
  import {
3
3
  getExclusions
4
4
  } from "../shared/options/exclusionKeys.js";
5
+ import { createRerunDirectorySuggestion } from "./createRerunDirectorySuggestion.js";
5
6
  function getFirstMatchingArg(key) {
6
7
  return Object.keys(allArgOptions).find(
7
8
  (arg) => arg.replaceAll("-", "") === key.toLowerCase()
@@ -27,7 +28,8 @@ function createRerunSuggestion(options) {
27
28
  ...options.offline && {
28
29
  skipAllContributorsApi: void 0,
29
30
  skipGitHubApi: void 0
30
- }
31
+ },
32
+ directory: createRerunDirectorySuggestion(options)
31
33
  };
32
34
  const args = Object.entries(optionsNormalized).sort(
33
35
  ([a], [b]) => a === "base" ? -1 : b === "base" ? 1 : a.localeCompare(b)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/create/createRerunSuggestion.ts"],"sourcesContent":["import { allArgOptions } from \"../shared/options/args.js\";\nimport {\n\tExclusionKey,\n\tgetExclusions,\n} from \"../shared/options/exclusionKeys.js\";\nimport { Options } from \"../shared/types.js\";\n\nfunction getFirstMatchingArg(key: string) {\n\treturn Object.keys(allArgOptions).find(\n\t\t(arg) => arg.replaceAll(\"-\", \"\") === key.toLowerCase(),\n\t);\n}\n\nconst defaultValues = new Map([[\"access\", \"public\"]]);\n\nexport function createRerunSuggestion(options: Partial<Options>): string {\n\tconst optionsNormalized = {\n\t\t...options,\n\t\temail: undefined,\n\t\t...(options.email && {\n\t\t\temailGitHub: options.email.github,\n\t\t\temailNpm: options.email.npm,\n\t\t}),\n\t\t...(options.guide\n\t\t\t? {\n\t\t\t\t\tguide: options.guide.href,\n\t\t\t\t\tguideTitle: options.guide.title,\n\t\t\t\t}\n\t\t\t: { guide: undefined }),\n\t\t...(options.logo\n\t\t\t? {\n\t\t\t\t\tlogo: options.logo.src,\n\t\t\t\t\tlogoAlt: options.logo.alt,\n\t\t\t\t}\n\t\t\t: { logo: undefined }),\n\t\t...(options.offline && {\n\t\t\tskipAllContributorsApi: undefined,\n\t\t\tskipGitHubApi: undefined,\n\t\t}),\n\t};\n\n\tconst args = Object.entries(optionsNormalized)\n\t\t// Sort so the base is first, then the rest are sorted alphabetically\n\t\t.sort(([a], [b]) =>\n\t\t\ta === \"base\" ? -1 : b === \"base\" ? 1 : a.localeCompare(b),\n\t\t)\n\t\t// Filter out entries with an excluded key or a default or falsy value\n\t\t.filter(\n\t\t\t([key, value]) =>\n\t\t\t\tgetExclusions(options, optionsNormalized.base)[key as ExclusionKey] ==\n\t\t\t\t\tundefined &&\n\t\t\t\t!!value &&\n\t\t\t\tvalue !== defaultValues.get(key),\n\t\t)\n\t\t.map(([key, value]) => {\n\t\t\treturn `--${getFirstMatchingArg(key)}${stringifyValue(value)}`;\n\t\t})\n\t\t.join(\" \");\n\n\treturn [\"npx create-typescript-app\", args].filter(Boolean).join(\" \");\n}\n\nfunction stringifyValue(\n\tvalue: boolean | string | string[] | undefined,\n): string {\n\tif (Array.isArray(value)) {\n\t\treturn stringifyValue(value.join(\" \"));\n\t}\n\n\tif (typeof value === \"boolean\" && value) {\n\t\treturn \"\";\n\t}\n\n\tconst valueStringified = `${value}`;\n\n\treturn valueStringified.includes(\" \")\n\t\t? ` \"${valueStringified}\"`\n\t\t: ` ${valueStringified}`;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B;AAAA,EAEC;AAAA,OACM;AAGP,SAAS,oBAAoB,KAAa;AACzC,SAAO,OAAO,KAAK,aAAa,EAAE;AAAA,IACjC,CAAC,QAAQ,IAAI,WAAW,KAAK,EAAE,MAAM,IAAI,YAAY;AAAA,EACtD;AACD;AAEA,MAAM,gBAAgB,oBAAI,IAAI,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC;AAE7C,SAAS,sBAAsB,SAAmC;AACxE,QAAM,oBAAoB;AAAA,IACzB,GAAG;AAAA,IACH,OAAO;AAAA,IACP,GAAI,QAAQ,SAAS;AAAA,MACpB,aAAa,QAAQ,MAAM;AAAA,MAC3B,UAAU,QAAQ,MAAM;AAAA,IACzB;AAAA,IACA,GAAI,QAAQ,QACT;AAAA,MACA,OAAO,QAAQ,MAAM;AAAA,MACrB,YAAY,QAAQ,MAAM;AAAA,IAC3B,IACC,EAAE,OAAO,OAAU;AAAA,IACtB,GAAI,QAAQ,OACT;AAAA,MACA,MAAM,QAAQ,KAAK;AAAA,MACnB,SAAS,QAAQ,KAAK;AAAA,IACvB,IACC,EAAE,MAAM,OAAU;AAAA,IACrB,GAAI,QAAQ,WAAW;AAAA,MACtB,wBAAwB;AAAA,MACxB,eAAe;AAAA,IAChB;AAAA,EACD;AAEA,QAAM,OAAO,OAAO,QAAQ,iBAAiB,EAE3C;AAAA,IAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MACb,MAAM,SAAS,KAAK,MAAM,SAAS,IAAI,EAAE,cAAc,CAAC;AAAA,EACzD,EAEC;AAAA,IACA,CAAC,CAAC,KAAK,KAAK,MACX,cAAc,SAAS,kBAAkB,IAAI,EAAE,GAAmB,KACjE,UACD,CAAC,CAAC,SACF,UAAU,cAAc,IAAI,GAAG;AAAA,EACjC,EACC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtB,WAAO,KAAK,oBAAoB,GAAG,CAAC,GAAG,eAAe,KAAK,CAAC;AAAA,EAC7D,CAAC,EACA,KAAK,GAAG;AAEV,SAAO,CAAC,6BAA6B,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AACpE;AAEA,SAAS,eACR,OACS;AACT,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,eAAe,MAAM,KAAK,GAAG,CAAC;AAAA,EACtC;AAEA,MAAI,OAAO,UAAU,aAAa,OAAO;AACxC,WAAO;AAAA,EACR;AAEA,QAAM,mBAAmB,GAAG,KAAK;AAEjC,SAAO,iBAAiB,SAAS,GAAG,IACjC,KAAK,gBAAgB,MACrB,IAAI,gBAAgB;AACxB;","names":[]}
1
+ {"version":3,"sources":["../../src/create/createRerunSuggestion.ts"],"sourcesContent":["import { allArgOptions } from \"../shared/options/args.js\";\nimport {\n\tExclusionKey,\n\tgetExclusions,\n} from \"../shared/options/exclusionKeys.js\";\nimport { Options } from \"../shared/types.js\";\nimport { createRerunDirectorySuggestion } from \"./createRerunDirectorySuggestion.js\";\n\nfunction getFirstMatchingArg(key: string) {\n\treturn Object.keys(allArgOptions).find(\n\t\t(arg) => arg.replaceAll(\"-\", \"\") === key.toLowerCase(),\n\t);\n}\n\nconst defaultValues = new Map([[\"access\", \"public\"]]);\n\nexport function createRerunSuggestion(options: Partial<Options>): string {\n\tconst optionsNormalized = {\n\t\t...options,\n\t\temail: undefined,\n\t\t...(options.email && {\n\t\t\temailGitHub: options.email.github,\n\t\t\temailNpm: options.email.npm,\n\t\t}),\n\t\t...(options.guide\n\t\t\t? {\n\t\t\t\t\tguide: options.guide.href,\n\t\t\t\t\tguideTitle: options.guide.title,\n\t\t\t\t}\n\t\t\t: { guide: undefined }),\n\t\t...(options.logo\n\t\t\t? {\n\t\t\t\t\tlogo: options.logo.src,\n\t\t\t\t\tlogoAlt: options.logo.alt,\n\t\t\t\t}\n\t\t\t: { logo: undefined }),\n\t\t...(options.offline && {\n\t\t\tskipAllContributorsApi: undefined,\n\t\t\tskipGitHubApi: undefined,\n\t\t}),\n\t\tdirectory: createRerunDirectorySuggestion(options),\n\t};\n\n\tconst args = Object.entries(optionsNormalized)\n\t\t// Sort so the base is first, then the rest are sorted alphabetically\n\t\t.sort(([a], [b]) =>\n\t\t\ta === \"base\" ? -1 : b === \"base\" ? 1 : a.localeCompare(b),\n\t\t)\n\t\t// Filter out entries with an excluded key or a default or falsy value\n\t\t.filter(\n\t\t\t([key, value]) =>\n\t\t\t\tgetExclusions(options, optionsNormalized.base)[key as ExclusionKey] ==\n\t\t\t\t\tundefined &&\n\t\t\t\t!!value &&\n\t\t\t\tvalue !== defaultValues.get(key),\n\t\t)\n\t\t.map(([key, value]) => {\n\t\t\treturn `--${getFirstMatchingArg(key)}${stringifyValue(value)}`;\n\t\t})\n\t\t.join(\" \");\n\n\treturn [\"npx create-typescript-app\", args].filter(Boolean).join(\" \");\n}\n\nfunction stringifyValue(\n\tvalue: boolean | string | string[] | undefined,\n): string {\n\tif (Array.isArray(value)) {\n\t\treturn stringifyValue(value.join(\" \"));\n\t}\n\n\tif (typeof value === \"boolean\" && value) {\n\t\treturn \"\";\n\t}\n\n\tconst valueStringified = `${value}`;\n\n\treturn valueStringified.includes(\" \")\n\t\t? ` \"${valueStringified}\"`\n\t\t: ` ${valueStringified}`;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAC9B;AAAA,EAEC;AAAA,OACM;AAEP,SAAS,sCAAsC;AAE/C,SAAS,oBAAoB,KAAa;AACzC,SAAO,OAAO,KAAK,aAAa,EAAE;AAAA,IACjC,CAAC,QAAQ,IAAI,WAAW,KAAK,EAAE,MAAM,IAAI,YAAY;AAAA,EACtD;AACD;AAEA,MAAM,gBAAgB,oBAAI,IAAI,CAAC,CAAC,UAAU,QAAQ,CAAC,CAAC;AAE7C,SAAS,sBAAsB,SAAmC;AACxE,QAAM,oBAAoB;AAAA,IACzB,GAAG;AAAA,IACH,OAAO;AAAA,IACP,GAAI,QAAQ,SAAS;AAAA,MACpB,aAAa,QAAQ,MAAM;AAAA,MAC3B,UAAU,QAAQ,MAAM;AAAA,IACzB;AAAA,IACA,GAAI,QAAQ,QACT;AAAA,MACA,OAAO,QAAQ,MAAM;AAAA,MACrB,YAAY,QAAQ,MAAM;AAAA,IAC3B,IACC,EAAE,OAAO,OAAU;AAAA,IACtB,GAAI,QAAQ,OACT;AAAA,MACA,MAAM,QAAQ,KAAK;AAAA,MACnB,SAAS,QAAQ,KAAK;AAAA,IACvB,IACC,EAAE,MAAM,OAAU;AAAA,IACrB,GAAI,QAAQ,WAAW;AAAA,MACtB,wBAAwB;AAAA,MACxB,eAAe;AAAA,IAChB;AAAA,IACA,WAAW,+BAA+B,OAAO;AAAA,EAClD;AAEA,QAAM,OAAO,OAAO,QAAQ,iBAAiB,EAE3C;AAAA,IAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MACb,MAAM,SAAS,KAAK,MAAM,SAAS,IAAI,EAAE,cAAc,CAAC;AAAA,EACzD,EAEC;AAAA,IACA,CAAC,CAAC,KAAK,KAAK,MACX,cAAc,SAAS,kBAAkB,IAAI,EAAE,GAAmB,KACjE,UACD,CAAC,CAAC,SACF,UAAU,cAAc,IAAI,GAAG;AAAA,EACjC,EACC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACtB,WAAO,KAAK,oBAAoB,GAAG,CAAC,GAAG,eAAe,KAAK,CAAC;AAAA,EAC7D,CAAC,EACA,KAAK,GAAG;AAEV,SAAO,CAAC,6BAA6B,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AACpE;AAEA,SAAS,eACR,OACS;AACT,MAAI,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO,eAAe,MAAM,KAAK,GAAG,CAAC;AAAA,EACtC;AAEA,MAAI,OAAO,UAAU,aAAa,OAAO;AACxC,WAAO;AAAA,EACR;AAEA,QAAM,mBAAmB,GAAG,KAAK;AAEjC,SAAO,iBAAiB,SAAS,GAAG,IACjC,KAAK,gBAAgB,MACrB,IAAI,gBAAgB;AACxB;","names":[]}
package/lib/index.d.ts CHANGED
@@ -41,6 +41,9 @@ export { blockTSup } from './next/blocks/blockTSup.js';
41
41
  export { blockTypeScript } from './next/blocks/blockTypeScript.js';
42
42
  export { blockVitest } from './next/blocks/blockVitest.js';
43
43
  export { blockVSCode } from './next/blocks/blockVSCode.js';
44
+ export { presetCommon } from './next/presets/presetCommon.js';
45
+ export { presetEverything } from './next/presets/presetEverything.js';
46
+ export { presetMinimal } from './next/presets/presetMinimal.js';
44
47
  export { default } from './next/template.js';
45
48
  export { GreetOptions } from './types.js';
46
49
  import 'create';
package/lib/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from "./greet.js";
2
2
  export * from "./next/blocks/index.js";
3
+ export * from "./next/presets/index.js";
3
4
  import { default as default2 } from "./next/template.js";
4
5
  export * from "./types.js";
5
6
  export {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./greet.js\";\n\n// If you're using create-typescript-app as a template, ignore these.\n// They're plumbing for the create engine. :)\nexport * from \"./next/blocks/index.js\";\nexport { default } from \"./next/template.js\";\n\nexport * from \"./types.js\";\n"],"mappings":"AAAA,cAAc;AAId,cAAc;AACd,SAAS,WAAAA,gBAAe;AAExB,cAAc;","names":["default"]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./greet.js\";\n\n// If you're using create-typescript-app as a template, ignore these.\n// They're plumbing for the create engine. :)\nexport * from \"./next/blocks/index.js\";\nexport * from \"./next/presets/index.js\";\nexport { default } from \"./next/template.js\";\n\nexport * from \"./types.js\";\n"],"mappings":"AAAA,cAAc;AAId,cAAc;AACd,cAAc;AACd,SAAS,WAAAA,gBAAe;AAExB,cAAc;","names":["default"]}
@@ -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<{
@@ -59,13 +59,19 @@ declare const base: create.Base<{
59
59
  keywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
60
60
  logo: z.ZodOptional<z.ZodObject<{
61
61
  alt: z.ZodString;
62
+ height: z.ZodOptional<z.ZodNumber>;
62
63
  src: z.ZodString;
64
+ width: z.ZodOptional<z.ZodNumber>;
63
65
  }, "strip", z.ZodTypeAny, {
64
66
  alt: string;
65
67
  src: string;
68
+ height?: number | undefined;
69
+ width?: number | undefined;
66
70
  }, {
67
71
  alt: string;
68
72
  src: string;
73
+ height?: number | undefined;
74
+ width?: number | undefined;
69
75
  }>>;
70
76
  node: z.ZodOptional<z.ZodObject<{
71
77
  minimum: z.ZodString;
@@ -93,6 +99,7 @@ declare const base: create.Base<{
93
99
  }>>;
94
100
  repository: z.ZodString;
95
101
  title: z.ZodString;
102
+ usage: z.ZodOptional<z.ZodString>;
96
103
  version: z.ZodOptional<z.ZodString>;
97
104
  }>;
98
105
  type BaseOptions = BaseOptionsFor<typeof base>;
package/lib/next/base.js CHANGED
@@ -14,12 +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";
19
+ import { readDescription } from "./readDescription.js";
18
20
  import { readDocumentation } from "./readDocumentation.js";
19
21
  import { swallowError } from "./utils/swallowError.js";
20
22
  const base = createBase({
21
23
  options: {
22
- 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"),
23
25
  author: z.string().optional().describe("username on npm to publish packages under"),
24
26
  bin: z.string().optional().describe('value to set in `package.json`\'s `"bin"` property.'),
25
27
  contributors: z.array(
@@ -31,7 +33,7 @@ const base = createBase({
31
33
  profile: z.string()
32
34
  })
33
35
  ).optional().describe("AllContributors contributors to store in .all-contributorsrc"),
34
- description: z.string().describe("sentence case description of the repository"),
36
+ description: z.string().describe("'Sentence case.' description of the repository"),
35
37
  directory: z.string(),
36
38
  documentation: z.string().optional().describe("any additional docs to add to .github/DEVELOPMENT.md"),
37
39
  email: z.union([
@@ -58,7 +60,9 @@ const base = createBase({
58
60
  keywords: z.array(z.string()).optional().describe("any number of keywords to include in `package.json`"),
59
61
  logo: z.object({
60
62
  alt: z.string(),
61
- src: z.string()
63
+ height: z.number().optional(),
64
+ src: z.string(),
65
+ width: z.number().optional()
62
66
  }).optional().describe(
63
67
  "local image file in the repository to display near the top of the README.md"
64
68
  ),
@@ -72,8 +76,9 @@ const base = createBase({
72
76
  devDependencies: z.record(z.string(), z.string()).optional(),
73
77
  scripts: z.record(z.string(), z.string()).optional()
74
78
  }).optional().describe("additional properties to include in `package.json`"),
75
- repository: z.string().describe("'Sentence case.' description of the repository"),
79
+ repository: z.string().describe("'kebab-case' or 'PascalCase' title of the repository"),
76
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"),
77
82
  version: z.string().optional().describe("package version to publish as and store in `package.json`")
78
83
  },
79
84
  produce({ options, take }) {
@@ -96,6 +101,7 @@ const base = createBase({
96
101
  })
97
102
  )?.stdout?.toString();
98
103
  });
104
+ const readme = lazyValue(async () => await readFileSafe("README.md", ""));
99
105
  const gitDefaults = tryCatchLazyValueAsync(
100
106
  async () => gitUrlParse(await gitRemoteOriginUrl())
101
107
  );
@@ -108,7 +114,7 @@ const base = createBase({
108
114
  async () => parsePackageAuthor(await packageData())
109
115
  );
110
116
  const author = lazyValue(
111
- async () => ((await packageAuthor()).author ?? (await npmDefaults())?.name ?? options.owner)?.toLowerCase()
117
+ async () => (await packageAuthor()).author ?? (await npmDefaults())?.name ?? options.owner
112
118
  );
113
119
  const node = lazyValue(async () => {
114
120
  const { engines } = await packageData();
@@ -119,10 +125,11 @@ const base = createBase({
119
125
  });
120
126
  const version = lazyValue(async () => (await packageData()).version);
121
127
  return {
128
+ access: "public",
122
129
  author,
123
130
  bin: async () => (await packageData()).bin,
124
131
  contributors: allContributors,
125
- description: async () => (await packageData()).description,
132
+ description: async () => await readDescription(packageData, readme),
126
133
  documentation,
127
134
  email: async () => readEmails(npmDefaults, packageAuthor),
128
135
  funding: readFunding,
@@ -139,7 +146,7 @@ const base = createBase({
139
146
  };
140
147
  },
141
148
  repository: async () => options.repository ?? (await gitDefaults())?.name ?? (await packageData()).name,
142
- ...readDefaultsFromReadme(),
149
+ ...readDefaultsFromReadme(readme, options.repository),
143
150
  version
144
151
  };
145
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 { 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\tsrc: z.string(),\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 packageData()).description,\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?: {
@@ -31,6 +31,8 @@ declare const blockAllContributors: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,6 +43,7 @@ declare const blockAllContributors: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
46
+ usage?: string | undefined;
44
47
  version?: string | undefined;
45
48
  }>;
46
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?: {
@@ -31,6 +31,8 @@ declare const blockAreTheTypesWrong: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,6 +43,7 @@ declare const blockAreTheTypesWrong: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
46
+ usage?: string | undefined;
44
47
  version?: string | undefined;
45
48
  }>;
46
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?: {
@@ -34,6 +34,8 @@ declare const blockCSpell: create.BlockWithAddons<{
34
34
  logo?: {
35
35
  alt: string;
36
36
  src: string;
37
+ height?: number | undefined;
38
+ width?: number | undefined;
37
39
  } | undefined;
38
40
  node?: {
39
41
  minimum: string;
@@ -44,6 +46,7 @@ declare const blockCSpell: create.BlockWithAddons<{
44
46
  devDependencies?: Record<string, string> | undefined;
45
47
  scripts?: Record<string, string> | undefined;
46
48
  } | undefined;
49
+ usage?: string | undefined;
47
50
  version?: string | undefined;
48
51
  }>;
49
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?: {
@@ -31,6 +31,8 @@ declare const blockContributingDocs: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,6 +43,7 @@ declare const blockContributingDocs: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
46
+ usage?: string | undefined;
44
47
  version?: string | undefined;
45
48
  }>;
46
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?: {
@@ -31,6 +31,8 @@ declare const blockContributorCovenant: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,6 +43,7 @@ declare const blockContributorCovenant: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
46
+ usage?: string | undefined;
44
47
  version?: string | undefined;
45
48
  }>;
46
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?: {
@@ -45,6 +45,8 @@ declare const blockDevelopmentDocs: create.BlockWithAddons<{
45
45
  logo?: {
46
46
  alt: string;
47
47
  src: string;
48
+ height?: number | undefined;
49
+ width?: number | undefined;
48
50
  } | undefined;
49
51
  node?: {
50
52
  minimum: string;
@@ -55,6 +57,7 @@ declare const blockDevelopmentDocs: create.BlockWithAddons<{
55
57
  devDependencies?: Record<string, string> | undefined;
56
58
  scripts?: Record<string, string> | undefined;
57
59
  } | undefined;
60
+ usage?: string | undefined;
58
61
  version?: string | undefined;
59
62
  }>;
60
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?: {
@@ -56,6 +56,8 @@ declare const blockESLint: create.BlockWithAddons<{
56
56
  logo?: {
57
57
  alt: string;
58
58
  src: string;
59
+ height?: number | undefined;
60
+ width?: number | undefined;
59
61
  } | undefined;
60
62
  node?: {
61
63
  minimum: string;
@@ -66,6 +68,7 @@ declare const blockESLint: create.BlockWithAddons<{
66
68
  devDependencies?: Record<string, string> | undefined;
67
69
  scripts?: Record<string, string> | undefined;
68
70
  } | undefined;
71
+ usage?: string | undefined;
69
72
  version?: string | undefined;
70
73
  }>;
71
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)},`