create-typescript-app 1.78.0 → 1.80.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 (183) hide show
  1. package/README.md +49 -49
  2. package/lib/create/createAndEnterGitDirectory.d.ts +1 -1
  3. package/lib/create/createAndEnterGitDirectory.js +4 -3
  4. package/lib/create/createAndEnterGitDirectory.js.map +1 -1
  5. package/lib/create/createRerunDirectorySuggestion.d.ts +7 -0
  6. package/lib/create/createRerunDirectorySuggestion.js +8 -0
  7. package/lib/create/createRerunDirectorySuggestion.js.map +1 -0
  8. package/lib/create/createRerunSuggestion.js +3 -1
  9. package/lib/create/createRerunSuggestion.js.map +1 -1
  10. package/lib/create/createWithOptions.d.ts +1 -1
  11. package/lib/create/createWithOptions.js +7 -8
  12. package/lib/create/createWithOptions.js.map +1 -1
  13. package/lib/create/index.js +8 -2
  14. package/lib/create/index.js.map +1 -1
  15. package/lib/index.d.ts +3 -0
  16. package/lib/index.js +1 -0
  17. package/lib/index.js.map +1 -1
  18. package/lib/next/base.d.ts +7 -2
  19. package/lib/next/base.js +42 -29
  20. package/lib/next/base.js.map +1 -1
  21. package/lib/next/blocks/blockAllContributors.d.ts +3 -2
  22. package/lib/next/blocks/blockAllContributors.js +11 -2
  23. package/lib/next/blocks/blockAllContributors.js.map +1 -1
  24. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +3 -2
  25. package/lib/next/blocks/blockCSpell.d.ts +3 -2
  26. package/lib/next/blocks/blockCSpell.js +16 -0
  27. package/lib/next/blocks/blockCSpell.js.map +1 -1
  28. package/lib/next/blocks/blockContributingDocs.d.ts +3 -2
  29. package/lib/next/blocks/blockContributorCovenant.d.ts +3 -2
  30. package/lib/next/blocks/blockDevelopmentDocs.d.ts +3 -2
  31. package/lib/next/blocks/blockESLint.d.ts +3 -2
  32. package/lib/next/blocks/blockESLintComments.d.ts +3 -2
  33. package/lib/next/blocks/blockESLintJSDoc.d.ts +3 -2
  34. package/lib/next/blocks/blockESLintJSONC.d.ts +3 -2
  35. package/lib/next/blocks/blockESLintMarkdown.d.ts +3 -2
  36. package/lib/next/blocks/blockESLintMoreStyling.d.ts +3 -2
  37. package/lib/next/blocks/blockESLintNode.d.ts +3 -2
  38. package/lib/next/blocks/blockESLintPackageJson.d.ts +3 -2
  39. package/lib/next/blocks/blockESLintPerfectionist.d.ts +3 -2
  40. package/lib/next/blocks/blockESLintRegexp.d.ts +3 -2
  41. package/lib/next/blocks/blockESLintYML.d.ts +3 -2
  42. package/lib/next/blocks/blockExampleFiles.d.ts +3 -2
  43. package/lib/next/blocks/blockFunding.d.ts +3 -2
  44. package/lib/next/blocks/blockGitHubActionsCI.d.ts +3 -2
  45. package/lib/next/blocks/blockGitHubApps.d.ts +54 -0
  46. package/lib/next/blocks/blockGitHubApps.js +34 -0
  47. package/lib/next/blocks/blockGitHubApps.js.map +1 -0
  48. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +3 -2
  49. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +3 -2
  50. package/lib/next/blocks/blockGitignore.d.ts +3 -2
  51. package/lib/next/blocks/blockKnip.d.ts +3 -2
  52. package/lib/next/blocks/blockKnip.js +2 -2
  53. package/lib/next/blocks/blockKnip.js.map +1 -1
  54. package/lib/next/blocks/blockMITLicense.d.ts +3 -2
  55. package/lib/next/blocks/blockMarkdownlint.d.ts +3 -2
  56. package/lib/next/blocks/blockNvmrc.d.ts +3 -2
  57. package/lib/next/blocks/blockPRCompliance.d.ts +3 -2
  58. package/lib/next/blocks/blockPackageJson.d.ts +3 -2
  59. package/lib/next/blocks/blockPackageJson.js +46 -41
  60. package/lib/next/blocks/blockPackageJson.js.map +1 -1
  61. package/lib/next/blocks/blockPnpmDedupe.d.ts +3 -2
  62. package/lib/next/blocks/blockPrettier.d.ts +3 -2
  63. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +3 -2
  64. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +3 -2
  65. package/lib/next/blocks/blockPrettierPluginSh.d.ts +3 -2
  66. package/lib/next/blocks/blockREADME.d.ts +3 -2
  67. package/lib/next/blocks/blockREADME.js +5 -1
  68. package/lib/next/blocks/blockREADME.js.map +1 -1
  69. package/lib/next/blocks/blockReleaseIt.d.ts +3 -2
  70. package/lib/next/blocks/blockReleaseIt.js +13 -0
  71. package/lib/next/blocks/blockReleaseIt.js.map +1 -1
  72. package/lib/next/blocks/blockRenovate.d.ts +3 -2
  73. package/lib/next/blocks/blockRenovate.js +9 -0
  74. package/lib/next/blocks/blockRenovate.js.map +1 -1
  75. package/lib/next/blocks/blockRepositoryBranchRuleset.d.ts +3 -2
  76. package/lib/next/blocks/blockRepositoryBranchRuleset.js +9 -0
  77. package/lib/next/blocks/blockRepositoryBranchRuleset.js.map +1 -1
  78. package/lib/next/blocks/blockRepositoryLabels.d.ts +3 -2
  79. package/lib/next/blocks/blockRepositoryLabels.js +12 -2
  80. package/lib/next/blocks/blockRepositoryLabels.js.map +1 -1
  81. package/lib/next/blocks/blockRepositorySecrets.d.ts +54 -0
  82. package/lib/next/blocks/blockRepositorySecrets.js +34 -0
  83. package/lib/next/blocks/blockRepositorySecrets.js.map +1 -0
  84. package/lib/next/blocks/blockRepositorySettings.d.ts +3 -2
  85. package/lib/next/blocks/blockRepositorySettings.js +1 -1
  86. package/lib/next/blocks/blockRepositorySettings.js.map +1 -1
  87. package/lib/next/blocks/blockSecurityDocs.d.ts +3 -2
  88. package/lib/next/blocks/blockTSup.d.ts +3 -2
  89. package/lib/next/blocks/blockTemplatedBy.d.ts +3 -2
  90. package/lib/next/blocks/blockTypeScript.d.ts +3 -2
  91. package/lib/next/blocks/blockVSCode.d.ts +3 -2
  92. package/lib/next/blocks/blockVitest.d.ts +3 -2
  93. package/lib/next/blocks/blockVitest.js +26 -17
  94. package/lib/next/blocks/blockVitest.js.map +1 -1
  95. package/lib/next/blocks/options.fakes.d.ts +1 -0
  96. package/lib/next/blocks/options.fakes.js +1 -0
  97. package/lib/next/blocks/options.fakes.js.map +1 -1
  98. package/lib/next/blocks/packageData.d.ts +3 -2
  99. package/lib/next/blocks/packageData.js +22 -21
  100. package/lib/next/blocks/packageData.js.map +1 -1
  101. package/lib/next/blocks/sourcePackageJson.d.ts +162 -0
  102. package/lib/next/blocks/sourcePackageJson.js +10 -0
  103. package/lib/next/blocks/sourcePackageJson.js.map +1 -0
  104. package/lib/next/presets/index.d.ts +5 -0
  105. package/lib/next/presets/index.js +4 -0
  106. package/lib/next/presets/index.js.map +1 -0
  107. package/lib/next/{presetCommon.d.ts → presets/presetCommon.d.ts} +7 -2
  108. package/lib/next/{presetCommon.js → presets/presetCommon.js} +4 -4
  109. package/lib/next/presets/presetCommon.js.map +1 -0
  110. package/lib/next/{presetEverything.d.ts → presets/presetEverything.d.ts} +7 -2
  111. package/lib/next/presets/presetEverything.js +59 -0
  112. package/lib/next/presets/presetEverything.js.map +1 -0
  113. package/lib/next/{presetMinimal.d.ts → presets/presetMinimal.d.ts} +7 -2
  114. package/lib/next/presets/presetMinimal.js +57 -0
  115. package/lib/next/presets/presetMinimal.js.map +1 -0
  116. package/lib/next/readDescription.d.ts +7 -0
  117. package/lib/next/readDescription.js +10 -0
  118. package/lib/next/readDescription.js.map +1 -0
  119. package/lib/next/readDocumentation.d.ts +5 -0
  120. package/lib/next/readDocumentation.js +28 -0
  121. package/lib/next/readDocumentation.js.map +1 -0
  122. package/lib/next/runCreateEnginePreset.js +3 -3
  123. package/lib/next/runCreateEnginePreset.js.map +1 -1
  124. package/lib/next/template.d.ts +8 -3
  125. package/lib/next/template.js +5 -9
  126. package/lib/next/template.js.map +1 -1
  127. package/lib/next/utils/resolveBin.d.ts +3 -0
  128. package/lib/next/utils/resolveBin.js +7 -0
  129. package/lib/next/utils/resolveBin.js.map +1 -0
  130. package/lib/shared/getGitHubUserAsAllContributor.js +1 -1
  131. package/lib/shared/getGitHubUserAsAllContributor.js.map +1 -1
  132. package/lib/shared/options/args.d.ts +14 -2
  133. package/lib/shared/options/args.js +18 -2
  134. package/lib/shared/options/args.js.map +1 -1
  135. package/lib/shared/options/createOptionDefaults/index.d.ts +2 -0
  136. package/lib/shared/options/createOptionDefaults/index.js +2 -1
  137. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  138. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.d.ts +2 -0
  139. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +3 -1
  140. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  141. package/lib/shared/options/exclusionKeys.js +3 -3
  142. package/lib/shared/options/exclusionKeys.js.map +1 -1
  143. package/lib/shared/options/logInferredOptions.js +6 -0
  144. package/lib/shared/options/logInferredOptions.js.map +1 -1
  145. package/lib/shared/options/optionsSchema.d.ts +4 -4
  146. package/lib/shared/options/optionsSchema.js +1 -1
  147. package/lib/shared/options/optionsSchema.js.map +1 -1
  148. package/lib/shared/options/readLogoSizing.d.ts +7 -0
  149. package/lib/shared/options/readLogoSizing.js +29 -0
  150. package/lib/shared/options/readLogoSizing.js.map +1 -0
  151. package/lib/shared/options/readOptions.js +4 -2
  152. package/lib/shared/options/readOptions.js.map +1 -1
  153. package/lib/shared/packages.js +1 -3
  154. package/lib/shared/packages.js.map +1 -1
  155. package/lib/shared/types.d.ts +3 -1
  156. package/lib/steps/addToolAllContributors.js +1 -1
  157. package/lib/steps/addToolAllContributors.js.map +1 -1
  158. package/lib/steps/finalizeDependencies.js +1 -1
  159. package/lib/steps/finalizeDependencies.js.map +1 -1
  160. package/lib/steps/initializeGitHubRepository/initializeBranchProtectionSettings.js +9 -0
  161. package/lib/steps/initializeGitHubRepository/initializeBranchProtectionSettings.js.map +1 -1
  162. package/lib/steps/uninstallPackages.js +5 -0
  163. package/lib/steps/uninstallPackages.js.map +1 -1
  164. package/lib/steps/updateAllContributorsTable.js +1 -1
  165. package/lib/steps/updateAllContributorsTable.js.map +1 -1
  166. package/lib/steps/updateReadme.js +1 -1
  167. package/lib/steps/updateReadme.js.map +1 -1
  168. package/lib/steps/writing/creation/createESLintConfig.js +2 -2
  169. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
  170. package/lib/steps/writing/creation/createKnipConfig.d.ts +3 -0
  171. package/lib/steps/writing/creation/createKnipConfig.js +20 -0
  172. package/lib/steps/writing/creation/createKnipConfig.js.map +1 -0
  173. package/lib/steps/writing/creation/index.d.ts +2 -1
  174. package/lib/steps/writing/creation/index.js +24 -11
  175. package/lib/steps/writing/creation/index.js.map +1 -1
  176. package/lib/steps/writing/creation/rootFiles.js +2 -9
  177. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  178. package/package.json +18 -13
  179. package/lib/next/presetCommon.js.map +0 -1
  180. package/lib/next/presetEverything.js +0 -59
  181. package/lib/next/presetEverything.js.map +0 -1
  182. package/lib/next/presetMinimal.js +0 -53
  183. package/lib/next/presetMinimal.js.map +0 -1
package/README.md CHANGED
@@ -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.
@@ -68,71 +68,71 @@ Thanks! 💖
68
68
  <table>
69
69
  <tbody>
70
70
  <tr>
71
- <td align="center" valign="top" width="14.28%"><a href="https://katt.dev"><img src="https://avatars.githubusercontent.com/u/459267?v=4?s=100" width="100px;" alt="Alex / KATT"/><br /><sub><b>Alex / KATT</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Akatt" title="Bug reports">🐛</a></td>
72
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/garuna-m6"><img src="https://avatars.githubusercontent.com/u/23234342?v=4?s=100" width="100px;" alt="Anurag"/><br /><sub><b>Anurag</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=garuna-m6" title="Code">💻</a></td>
73
- <td align="center" valign="top" width="14.28%"><a href="https://atila.io"><img src="https://avatars.githubusercontent.com/u/2382552?v=4?s=100" width="100px;" alt="Atila Fassina"/><br /><sub><b>Atila Fassina</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Aatilafassina" title="Bug reports">🐛</a></td>
74
- <td align="center" valign="top" width="14.28%"><a href="http://biplobsd.me"><img src="https://avatars.githubusercontent.com/u/43641536?v=4?s=100" width="100px;" alt="Biplob Sutradhar"/><br /><sub><b>Biplob Sutradhar</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=biplobsd" title="Code">💻</a></td>
75
- <td align="center" valign="top" width="14.28%"><a href="https://conormeagher.com/"><img src="https://avatars.githubusercontent.com/u/363781?v=4?s=100" width="100px;" alt="Conor Meagher"/><br /><sub><b>Conor Meagher</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=conrmahr" title="Code">💻</a></td>
76
- <td align="center" valign="top" width="14.28%"><a href="https://effectivetypescript.com"><img src="https://avatars.githubusercontent.com/u/98301?v=4?s=100" width="100px;" alt="Dan Vanderkam"/><br /><sub><b>Dan Vanderkam</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Adanvk" title="Bug reports">🐛</a> <a href="#ideas-danvk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tool-danvk" title="Tools">🔧</a></td>
71
+ <td align="center" valign="top" width="14.28%"><a href="https://katt.dev"><img src="https://avatars.githubusercontent.com/u/459267?v=4?s=100" width="100px;" alt="Alex / KATT"/><br /><sub><b>Alex / KATT</b></sub></a><br /><a href="#bug-katt" title="Bug reports">🐛</a></td>
72
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/garuna-m6"><img src="https://avatars.githubusercontent.com/u/23234342?v=4?s=100" width="100px;" alt="Anurag"/><br /><sub><b>Anurag</b></sub></a><br /><a href="#code-garuna-m6" title="Code">💻</a></td>
73
+ <td align="center" valign="top" width="14.28%"><a href="https://atila.io"><img src="https://avatars.githubusercontent.com/u/2382552?v=4?s=100" width="100px;" alt="Atila Fassina"/><br /><sub><b>Atila Fassina</b></sub></a><br /><a href="#bug-atilafassina" title="Bug reports">🐛</a></td>
74
+ <td align="center" valign="top" width="14.28%"><a href="http://biplobsd.me"><img src="https://avatars.githubusercontent.com/u/43641536?v=4?s=100" width="100px;" alt="Biplob Sutradhar"/><br /><sub><b>Biplob Sutradhar</b></sub></a><br /><a href="#code-biplobsd" title="Code">💻</a></td>
75
+ <td align="center" valign="top" width="14.28%"><a href="https://conormeagher.com/"><img src="https://avatars.githubusercontent.com/u/363781?v=4?s=100" width="100px;" alt="Conor Meagher"/><br /><sub><b>Conor Meagher</b></sub></a><br /><a href="#code-conrmahr" title="Code">💻</a></td>
76
+ <td align="center" valign="top" width="14.28%"><a href="https://effectivetypescript.com"><img src="https://avatars.githubusercontent.com/u/98301?v=4?s=100" width="100px;" alt="Dan Vanderkam"/><br /><sub><b>Dan Vanderkam</b></sub></a><br /><a href="#bug-danvk" title="Bug reports">🐛</a> <a href="#ideas-danvk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tool-danvk" title="Tools">🔧</a></td>
77
77
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/DanexQ"><img src="https://avatars.githubusercontent.com/u/72567464?v=4?s=100" width="100px;" alt="Daniel"/><br /><sub><b>Daniel</b></sub></a><br /><a href="#infra-DanexQ" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
78
78
  </tr>
79
79
  <tr>
80
- <td align="center" valign="top" width="14.28%"><a href="https://roe.dev/"><img src="https://avatars.githubusercontent.com/u/28706372?v=4?s=100" width="100px;" alt="Daniel Roe"/><br /><sub><b>Daniel Roe</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=danielroe" title="Code">💻</a></td>
81
- <td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/DemianParkhomenko"><img src="https://avatars.githubusercontent.com/u/95881717?v=4?s=100" width="100px;" alt="Demian Parkhomenko"/><br /><sub><b>Demian Parkhomenko</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Ademianparkhomenko" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=demianparkhomenko" title="Code">💻</a></td>
82
- <td align="center" valign="top" width="14.28%"><a href="https://dominicduffin.uk"><img src="https://avatars.githubusercontent.com/u/26224873?v=4?s=100" width="100px;" alt="Dominic Duffin"/><br /><sub><b>Dominic Duffin</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=dominicduffin1" title="Code">💻</a></td>
83
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/nowyDEV"><img src="https://avatars.githubusercontent.com/u/12304307?v=4?s=100" width="100px;" alt="Dominik Nowik"/><br /><sub><b>Dominik Nowik</b></sub></a><br /><a href="#tool-nowyDEV" title="Tools">🔧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=nowyDEV" title="Code">💻</a> <a href="#ideas-nowyDEV" title="Ideas, Planning, & Feedback">🤔</a></td>
84
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/emday4prez"><img src="https://avatars.githubusercontent.com/u/35363144?v=4?s=100" width="100px;" alt="Emerson"/><br /><sub><b>Emerson</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=emday4prez" title="Code">💻</a></td>
85
- <td align="center" valign="top" width="14.28%"><a href="https://farazpatankar.com/"><img src="https://avatars.githubusercontent.com/u/10681116?v=4?s=100" width="100px;" alt="Faraz Patankar"/><br /><sub><b>Faraz Patankar</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3AFarazPatankar" title="Bug reports">🐛</a></td>
86
- <td align="center" valign="top" width="14.28%"><a href="https://feedic.com"><img src="https://avatars.githubusercontent.com/u/188768?v=4?s=100" width="100px;" alt="Felix Boehm"/><br /><sub><b>Felix Boehm</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Afb55" title="Bug reports">🐛</a></td>
80
+ <td align="center" valign="top" width="14.28%"><a href="https://roe.dev/"><img src="https://avatars.githubusercontent.com/u/28706372?v=4?s=100" width="100px;" alt="Daniel Roe"/><br /><sub><b>Daniel Roe</b></sub></a><br /><a href="#code-danielroe" title="Code">💻</a></td>
81
+ <td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/DemianParkhomenko"><img src="https://avatars.githubusercontent.com/u/95881717?v=4?s=100" width="100px;" alt="Demian Parkhomenko"/><br /><sub><b>Demian Parkhomenko</b></sub></a><br /><a href="#bug-demianparkhomenko" title="Bug reports">🐛</a> <a href="#code-demianparkhomenko" title="Code">💻</a></td>
82
+ <td align="center" valign="top" width="14.28%"><a href="https://dominicduffin.uk"><img src="https://avatars.githubusercontent.com/u/26224873?v=4?s=100" width="100px;" alt="Dominic Duffin"/><br /><sub><b>Dominic Duffin</b></sub></a><br /><a href="#code-dominicduffin1" title="Code">💻</a></td>
83
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/nowyDEV"><img src="https://avatars.githubusercontent.com/u/12304307?v=4?s=100" width="100px;" alt="Dominik Nowik"/><br /><sub><b>Dominik Nowik</b></sub></a><br /><a href="#tool-nowyDEV" title="Tools">🔧</a> <a href="#code-nowyDEV" title="Code">💻</a> <a href="#ideas-nowyDEV" title="Ideas, Planning, & Feedback">🤔</a></td>
84
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/emday4prez"><img src="https://avatars.githubusercontent.com/u/35363144?v=4?s=100" width="100px;" alt="Emerson"/><br /><sub><b>Emerson</b></sub></a><br /><a href="#code-emday4prez" title="Code">💻</a></td>
85
+ <td align="center" valign="top" width="14.28%"><a href="https://farazpatankar.com/"><img src="https://avatars.githubusercontent.com/u/10681116?v=4?s=100" width="100px;" alt="Faraz Patankar"/><br /><sub><b>Faraz Patankar</b></sub></a><br /><a href="#bug-FarazPatankar" title="Bug reports">🐛</a></td>
86
+ <td align="center" valign="top" width="14.28%"><a href="https://feedic.com"><img src="https://avatars.githubusercontent.com/u/188768?v=4?s=100" width="100px;" alt="Felix Boehm"/><br /><sub><b>Felix Boehm</b></sub></a><br /><a href="#bug-fb55" title="Bug reports">🐛</a></td>
87
87
  </tr>
88
88
  <tr>
89
- <td align="center" valign="top" width="14.28%"><a href="https://gvasquez.dev"><img src="https://avatars.githubusercontent.com/u/7041175?v=4?s=100" width="100px;" alt="Graham Vasquez"/><br /><sub><b>Graham Vasquez</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=gv14982" title="Code">💻</a></td>
89
+ <td align="center" valign="top" width="14.28%"><a href="https://gvasquez.dev"><img src="https://avatars.githubusercontent.com/u/7041175?v=4?s=100" width="100px;" alt="Graham Vasquez"/><br /><sub><b>Graham Vasquez</b></sub></a><br /><a href="#code-gv14982" title="Code">💻</a></td>
90
90
  <td align="center" valign="top" width="14.28%"><a href="https://jamiemagee.co.uk"><img src="https://avatars.githubusercontent.com/u/1358764?v=4?s=100" width="100px;" alt="Jamie Magee"/><br /><sub><b>Jamie Magee</b></sub></a><br /><a href="#ideas-jamiemagee" title="Ideas, Planning, & Feedback">🤔</a></td>
91
- <td align="center" valign="top" width="14.28%"><a href="https://niklas-wortmann.com"><img src="https://avatars.githubusercontent.com/u/6104311?v=4?s=100" width="100px;" alt="Jan-Niklas W."/><br /><sub><b>Jan-Niklas W.</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=niklas-wortmann" title="Code">💻</a></td>
92
- <td align="center" valign="top" width="14.28%"><a href="https://sinchang.me"><img src="https://avatars.githubusercontent.com/u/3297859?v=4?s=100" width="100px;" alt="Jeff Wen"/><br /><sub><b>Jeff Wen</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=sinchang" title="Code">💻</a></td>
93
- <td align="center" valign="top" width="14.28%"><a href="https://jessicawilkins.dev/"><img src="https://avatars.githubusercontent.com/u/67210629?v=4?s=100" width="100px;" alt="Jessica Wilkins "/><br /><sub><b>Jessica Wilkins </b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jdwilkin4" title="Code">💻</a></td>
94
- <td align="center" valign="top" width="14.28%"><a href="https://typescriptcourse.com/tutorials"><img src="https://avatars.githubusercontent.com/u/3806031?v=4?s=100" width="100px;" alt="Joe Previte"/><br /><sub><b>Joe Previte</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Ajsjoeio" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jsjoeio" title="Code">💻</a></td>
95
- <td align="center" valign="top" width="14.28%"><a href="https://blog.johnnyreilly.com/"><img src="https://avatars.githubusercontent.com/u/1010525?v=4?s=100" width="100px;" alt="John Reilly"/><br /><sub><b>John Reilly</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=johnnyreilly" title="Code">💻</a> <a href="#ideas-johnnyreilly" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Ajohnnyreilly" title="Bug reports">🐛</a> <a href="#maintenance-johnnyreilly" title="Maintenance">🚧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=johnnyreilly" title="Documentation">📖</a> <a href="#tool-johnnyreilly" title="Tools">🔧</a></td>
91
+ <td align="center" valign="top" width="14.28%"><a href="https://niklas-wortmann.com"><img src="https://avatars.githubusercontent.com/u/6104311?v=4?s=100" width="100px;" alt="Jan-Niklas W."/><br /><sub><b>Jan-Niklas W.</b></sub></a><br /><a href="#code-niklas-wortmann" title="Code">💻</a></td>
92
+ <td align="center" valign="top" width="14.28%"><a href="https://sinchang.me"><img src="https://avatars.githubusercontent.com/u/3297859?v=4?s=100" width="100px;" alt="Jeff Wen"/><br /><sub><b>Jeff Wen</b></sub></a><br /><a href="#code-sinchang" title="Code">💻</a></td>
93
+ <td align="center" valign="top" width="14.28%"><a href="https://jessicawilkins.dev/"><img src="https://avatars.githubusercontent.com/u/67210629?v=4?s=100" width="100px;" alt="Jessica Wilkins "/><br /><sub><b>Jessica Wilkins </b></sub></a><br /><a href="#code-jdwilkin4" title="Code">💻</a></td>
94
+ <td align="center" valign="top" width="14.28%"><a href="https://typescriptcourse.com/tutorials"><img src="https://avatars.githubusercontent.com/u/3806031?v=4?s=100" width="100px;" alt="Joe Previte"/><br /><sub><b>Joe Previte</b></sub></a><br /><a href="#bug-jsjoeio" title="Bug reports">🐛</a> <a href="#code-jsjoeio" title="Code">💻</a></td>
95
+ <td align="center" valign="top" width="14.28%"><a href="https://blog.johnnyreilly.com/"><img src="https://avatars.githubusercontent.com/u/1010525?v=4?s=100" width="100px;" alt="John Reilly"/><br /><sub><b>John Reilly</b></sub></a><br /><a href="#code-johnnyreilly" title="Code">💻</a> <a href="#ideas-johnnyreilly" title="Ideas, Planning, & Feedback">🤔</a> <a href="#bug-johnnyreilly" title="Bug reports">🐛</a> <a href="#maintenance-johnnyreilly" title="Maintenance">🚧</a> <a href="#doc-johnnyreilly" title="Documentation">📖</a> <a href="#tool-johnnyreilly" title="Tools">🔧</a></td>
96
96
  </tr>
97
97
  <tr>
98
- <td align="center" valign="top" width="14.28%"><a href="http://www.joshuakgoldberg.com"><img src="https://avatars.githubusercontent.com/u/3335181?v=4?s=100" width="100px;" alt="Josh Goldberg"/><br /><sub><b>Josh Goldberg</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3AJoshuaKGoldberg" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=JoshuaKGoldberg" title="Code">💻</a> <a href="#maintenance-JoshuaKGoldberg" title="Maintenance">🚧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/pulls?q=is%3Apr+reviewed-by%3AJoshuaKGoldberg" title="Reviewed Pull Requests">👀</a> <a href="#tool-JoshuaKGoldberg" title="Tools">🔧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=JoshuaKGoldberg" title="Documentation">📖</a> <a href="#infra-JoshuaKGoldberg" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=JoshuaKGoldberg" title="Tests">⚠️</a> <a href="#ideas-JoshuaKGoldberg" title="Ideas, Planning, & Feedback">🤔</a></td>
99
- <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/Jolg42"><img src="https://avatars.githubusercontent.com/u/1328733?v=4?s=100" width="100px;" alt="Joël Galeran"/><br /><sub><b>Joël Galeran</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jolg42" title="Code">💻</a></td>
100
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/jaas666"><img src="https://avatars.githubusercontent.com/u/30204147?v=4?s=100" width="100px;" alt="Juan A."/><br /><sub><b>Juan A.</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jaas666" title="Code">💻</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jaas666" title="Documentation">📖</a></td>
101
- <td align="center" valign="top" width="14.28%"><a href="https://kristo-baricevic.github.io/"><img src="https://avatars.githubusercontent.com/u/108290619?v=4?s=100" width="100px;" alt="Kristo Baricevic"/><br /><sub><b>Kristo Baricevic</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=kristo-baricevic" title="Code">💻</a></td>
102
- <td align="center" valign="top" width="14.28%"><a href="https://webpro.nl"><img src="https://avatars.githubusercontent.com/u/456426?v=4?s=100" width="100px;" alt="Lars Kappert"/><br /><sub><b>Lars Kappert</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=webpro" title="Code">💻</a></td>
103
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/Aslemammad"><img src="https://avatars.githubusercontent.com/u/37929992?v=4?s=100" width="100px;" alt="Mohammad Bagher Abiyat"/><br /><sub><b>Mohammad Bagher Abiyat</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=aslemammad" title="Code">💻</a></td>
104
- <td align="center" valign="top" width="14.28%"><a href="https://navinmoorthy.me/"><img src="https://avatars.githubusercontent.com/u/39694575?v=4?s=100" width="100px;" alt="Navin Moorthy"/><br /><sub><b>Navin Moorthy</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Anavin-moorthy" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=navin-moorthy" title="Code">💻</a> <a href="#ideas-navin-moorthy" title="Ideas, Planning, & Feedback">🤔</a></td>
98
+ <td align="center" valign="top" width="14.28%"><a href="http://www.joshuakgoldberg.com"><img src="https://avatars.githubusercontent.com/u/3335181?v=4?s=100" width="100px;" alt="Josh Goldberg"/><br /><sub><b>Josh Goldberg</b></sub></a><br /><a href="#bug-JoshuaKGoldberg" title="Bug reports">🐛</a> <a href="#code-JoshuaKGoldberg" title="Code">💻</a> <a href="#maintenance-JoshuaKGoldberg" title="Maintenance">🚧</a> <a href="#review-JoshuaKGoldberg" title="Reviewed Pull Requests">👀</a> <a href="#tool-JoshuaKGoldberg" title="Tools">🔧</a> <a href="#doc-JoshuaKGoldberg" title="Documentation">📖</a> <a href="#infra-JoshuaKGoldberg" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#test-JoshuaKGoldberg" title="Tests">⚠️</a> <a href="#ideas-JoshuaKGoldberg" title="Ideas, Planning, & Feedback">🤔</a></td>
99
+ <td align="center" valign="top" width="14.28%"><a href="https://twitter.com/Jolg42"><img src="https://avatars.githubusercontent.com/u/1328733?v=4?s=100" width="100px;" alt="Joël Galeran"/><br /><sub><b>Joël Galeran</b></sub></a><br /><a href="#code-jolg42" title="Code">💻</a></td>
100
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jaas666"><img src="https://avatars.githubusercontent.com/u/30204147?v=4?s=100" width="100px;" alt="Juan A."/><br /><sub><b>Juan A.</b></sub></a><br /><a href="#code-jaas666" title="Code">💻</a> <a href="#doc-jaas666" title="Documentation">📖</a></td>
101
+ <td align="center" valign="top" width="14.28%"><a href="https://kristo-baricevic.github.io/"><img src="https://avatars.githubusercontent.com/u/108290619?v=4?s=100" width="100px;" alt="Kristo Baricevic"/><br /><sub><b>Kristo Baricevic</b></sub></a><br /><a href="#code-kristo-baricevic" title="Code">💻</a></td>
102
+ <td align="center" valign="top" width="14.28%"><a href="https://webpro.nl"><img src="https://avatars.githubusercontent.com/u/456426?v=4?s=100" width="100px;" alt="Lars Kappert"/><br /><sub><b>Lars Kappert</b></sub></a><br /><a href="#code-webpro" title="Code">💻</a></td>
103
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Aslemammad"><img src="https://avatars.githubusercontent.com/u/37929992?v=4?s=100" width="100px;" alt="Mohammad Bagher Abiyat"/><br /><sub><b>Mohammad Bagher Abiyat</b></sub></a><br /><a href="#code-aslemammad" title="Code">💻</a></td>
104
+ <td align="center" valign="top" width="14.28%"><a href="https://navinmoorthy.me/"><img src="https://avatars.githubusercontent.com/u/39694575?v=4?s=100" width="100px;" alt="Navin Moorthy"/><br /><sub><b>Navin Moorthy</b></sub></a><br /><a href="#bug-navin-moorthy" title="Bug reports">🐛</a> <a href="#code-navin-moorthy" title="Code">💻</a> <a href="#ideas-navin-moorthy" title="Ideas, Planning, & Feedback">🤔</a></td>
105
105
  </tr>
106
106
  <tr>
107
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/NazCodeland"><img src="https://avatars.githubusercontent.com/u/113494366?v=4?s=100" width="100px;" alt="NazCodeland"/><br /><sub><b>NazCodeland</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=NazCodeland" title="Code">💻</a></td>
108
- <td align="center" valign="top" width="14.28%"><a href="https://orta.io"><img src="https://avatars.githubusercontent.com/u/49038?v=4?s=100" width="100px;" alt="Orta Therox"/><br /><sub><b>Orta Therox</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=orta" title="Code">💻</a></td>
109
- <td align="center" valign="top" width="14.28%"><a href="https://paulisaweso.me/"><img src="https://avatars.githubusercontent.com/u/6335792?v=4?s=100" width="100px;" alt="Paul Esch-Laurent"/><br /><sub><b>Paul Esch-Laurent</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=Pinjasaur" title="Code">💻</a></td>
107
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/NazCodeland"><img src="https://avatars.githubusercontent.com/u/113494366?v=4?s=100" width="100px;" alt="NazCodeland"/><br /><sub><b>NazCodeland</b></sub></a><br /><a href="#code-NazCodeland" title="Code">💻</a></td>
108
+ <td align="center" valign="top" width="14.28%"><a href="https://orta.io"><img src="https://avatars.githubusercontent.com/u/49038?v=4?s=100" width="100px;" alt="Orta Therox"/><br /><sub><b>Orta Therox</b></sub></a><br /><a href="#code-orta" title="Code">💻</a> <a href="#ideas-orta" title="Ideas, Planning, & Feedback">🤔</a></td>
109
+ <td align="center" valign="top" width="14.28%"><a href="https://paulisaweso.me/"><img src="https://avatars.githubusercontent.com/u/6335792?v=4?s=100" width="100px;" alt="Paul Esch-Laurent"/><br /><sub><b>Paul Esch-Laurent</b></sub></a><br /><a href="#code-Pinjasaur" title="Code">💻</a></td>
110
110
  <td align="center" valign="top" width="14.28%"><a href="https://kodfabrik.se/"><img src="https://avatars.githubusercontent.com/u/34457?v=4?s=100" width="100px;" alt="Pelle Wessman"/><br /><sub><b>Pelle Wessman</b></sub></a><br /><a href="#ideas-voxpelli" title="Ideas, Planning, & Feedback">🤔</a></td>
111
- <td align="center" valign="top" width="14.28%"><a href="https://praveenshinde.vercel.app/"><img src="https://avatars.githubusercontent.com/u/107350270?v=4?s=100" width="100px;" alt="Praveen Shinde"/><br /><sub><b>Praveen Shinde</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=praveenshinde3" title="Code">💻</a></td>
112
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/promise-dash"><img src="https://avatars.githubusercontent.com/u/86062880?v=4?s=100" width="100px;" alt="Promise Dash"/><br /><sub><b>Promise Dash</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=promise-dash" title="Code">💻</a></td>
113
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/RebeccaStevens"><img src="https://avatars.githubusercontent.com/u/7224206?v=4?s=100" width="100px;" alt="Rebecca Stevens"/><br /><sub><b>Rebecca Stevens</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=RebeccaStevens" title="Code">💻</a> <a href="#infra-RebeccaStevens" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
111
+ <td align="center" valign="top" width="14.28%"><a href="https://praveenshinde.vercel.app/"><img src="https://avatars.githubusercontent.com/u/107350270?v=4?s=100" width="100px;" alt="Praveen Shinde"/><br /><sub><b>Praveen Shinde</b></sub></a><br /><a href="#code-praveenshinde3" title="Code">💻</a></td>
112
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/promise-dash"><img src="https://avatars.githubusercontent.com/u/86062880?v=4?s=100" width="100px;" alt="Promise Dash"/><br /><sub><b>Promise Dash</b></sub></a><br /><a href="#code-promise-dash" title="Code">💻</a></td>
113
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/RebeccaStevens"><img src="https://avatars.githubusercontent.com/u/7224206?v=4?s=100" width="100px;" alt="Rebecca Stevens"/><br /><sub><b>Rebecca Stevens</b></sub></a><br /><a href="#code-RebeccaStevens" title="Code">💻</a> <a href="#infra-RebeccaStevens" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
114
114
  </tr>
115
115
  <tr>
116
- <td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/ronbraha"><img src="https://avatars.githubusercontent.com/u/45559220?v=4?s=100" width="100px;" alt="Ron Braha"/><br /><sub><b>Ron Braha</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=RNR1" title="Code">💻</a> <a href="#design-RNR1" title="Design">🎨</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=RNR1" title="Tests">⚠️</a></td>
117
- <td align="center" valign="top" width="14.28%"><a href="http://ronjeanfrancois.com"><img src="https://avatars.githubusercontent.com/u/105710107?v=4?s=100" width="100px;" alt="Ron Jean-Francois"/><br /><sub><b>Ron Jean-Francois</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=ronthetech" title="Code">💻</a> <a href="#infra-ronthetech" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
118
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/RuthwikReddy09"><img src="https://avatars.githubusercontent.com/u/126862059?v=4?s=100" width="100px;" alt="Ruthwik"/><br /><sub><b>Ruthwik</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=ruthwikreddy09" title="Code">💻</a></td>
119
- <td align="center" valign="top" width="14.28%"><a href="https://ryota-murakami.github.io/"><img src="https://avatars.githubusercontent.com/u/5501268?v=4?s=100" width="100px;" alt="Ryota Murakami"/><br /><sub><b>Ryota Murakami</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=ryota-murakami" title="Code">💻</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Aryota-murakami" title="Bug reports">🐛</a></td>
120
- <td align="center" valign="top" width="14.28%"><a href="https://www.shraddha.tech"><img src="https://avatars.githubusercontent.com/u/27571141?v=4?s=100" width="100px;" alt="Shraddha"/><br /><sub><b>Shraddha</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=5hraddha" title="Code">💻</a></td>
121
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/the-lazy-learner"><img src="https://avatars.githubusercontent.com/u/13695177?v=4?s=100" width="100px;" alt="Sudhansu"/><br /><sub><b>Sudhansu</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=the-lazy-learner" title="Code">💻</a></td>
122
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/mrswastik-robot"><img src="https://avatars.githubusercontent.com/u/107865087?v=4?s=100" width="100px;" alt="Swastik Patel"/><br /><sub><b>Swastik Patel</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=mrswastik-robot" title="Documentation">📖</a></td>
116
+ <td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/ronbraha"><img src="https://avatars.githubusercontent.com/u/45559220?v=4?s=100" width="100px;" alt="Ron Braha"/><br /><sub><b>Ron Braha</b></sub></a><br /><a href="#code-RNR1" title="Code">💻</a> <a href="#design-RNR1" title="Design">🎨</a> <a href="#test-RNR1" title="Tests">⚠️</a></td>
117
+ <td align="center" valign="top" width="14.28%"><a href="http://ronjeanfrancois.com"><img src="https://avatars.githubusercontent.com/u/105710107?v=4?s=100" width="100px;" alt="Ron Jean-Francois"/><br /><sub><b>Ron Jean-Francois</b></sub></a><br /><a href="#code-ronthetech" title="Code">💻</a> <a href="#infra-ronthetech" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
118
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/RuthwikReddy09"><img src="https://avatars.githubusercontent.com/u/126862059?v=4?s=100" width="100px;" alt="Ruthwik"/><br /><sub><b>Ruthwik</b></sub></a><br /><a href="#code-ruthwikreddy09" title="Code">💻</a></td>
119
+ <td align="center" valign="top" width="14.28%"><a href="https://ryota-murakami.github.io/"><img src="https://avatars.githubusercontent.com/u/5501268?v=4?s=100" width="100px;" alt="Ryota Murakami"/><br /><sub><b>Ryota Murakami</b></sub></a><br /><a href="#code-ryota-murakami" title="Code">💻</a> <a href="#bug-ryota-murakami" title="Bug reports">🐛</a></td>
120
+ <td align="center" valign="top" width="14.28%"><a href="https://www.shraddha.tech"><img src="https://avatars.githubusercontent.com/u/27571141?v=4?s=100" width="100px;" alt="Shraddha"/><br /><sub><b>Shraddha</b></sub></a><br /><a href="#code-5hraddha" title="Code">💻</a></td>
121
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/the-lazy-learner"><img src="https://avatars.githubusercontent.com/u/13695177?v=4?s=100" width="100px;" alt="Sudhansu"/><br /><sub><b>Sudhansu</b></sub></a><br /><a href="#code-the-lazy-learner" title="Code">💻</a></td>
122
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/mrswastik-robot"><img src="https://avatars.githubusercontent.com/u/107865087?v=4?s=100" width="100px;" alt="Swastik Patel"/><br /><sub><b>Swastik Patel</b></sub></a><br /><a href="#doc-mrswastik-robot" title="Documentation">📖</a></td>
123
123
  </tr>
124
124
  <tr>
125
- <td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/timonjurschitsch/"><img src="https://avatars.githubusercontent.com/u/103483059?v=4?s=100" width="100px;" alt="Timon Jurschitsch"/><br /><sub><b>Timon Jurschitsch</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=dertimonius" title="Code">💻</a></td>
126
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/tungbq"><img src="https://avatars.githubusercontent.com/u/85242618?v=4?s=100" width="100px;" alt="Tung Bui (Leo)"/><br /><sub><b>Tung Bui (Leo)</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=tungbq" title="Code">💻</a></td>
127
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/valon-loshaj"><img src="https://avatars.githubusercontent.com/u/73202963?v=4?s=100" width="100px;" alt="Valon"/><br /><sub><b>Valon</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=valon-loshaj" title="Documentation">📖</a></td>
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="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=vasanth9" title="Code">💻</a></td>
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="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=xl4624" title="Code">💻</a></td>
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="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Alcforbes" 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="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=nandertga" title="Code">💻</a></td>
125
+ <td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/timonjurschitsch/"><img src="https://avatars.githubusercontent.com/u/103483059?v=4?s=100" width="100px;" alt="Timon Jurschitsch"/><br /><sub><b>Timon Jurschitsch</b></sub></a><br /><a href="#code-dertimonius" title="Code">💻</a></td>
126
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/tungbq"><img src="https://avatars.githubusercontent.com/u/85242618?v=4?s=100" width="100px;" alt="Tung Bui (Leo)"/><br /><sub><b>Tung Bui (Leo)</b></sub></a><br /><a href="#code-tungbq" title="Code">💻</a></td>
127
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/valon-loshaj"><img src="https://avatars.githubusercontent.com/u/73202963?v=4?s=100" width="100px;" alt="Valon"/><br /><sub><b>Valon</b></sub></a><br /><a href="#doc-valon-loshaj" title="Documentation">📖</a></td>
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
+ <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
+ <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>
132
132
  </tr>
133
133
  <tr>
134
- <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="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=rubiesonthesky" title="Code">💻</a></td>
135
- <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="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=TAKANOME-DEV" title="Code">💻</a></td>
134
+ <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
+ <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
136
  </tr>
137
137
  </tbody>
138
138
  </table>
@@ -1,3 +1,3 @@
1
- declare function createAndEnterGitDirectory(directory: string): Promise<boolean>;
1
+ declare function createAndEnterGitDirectory(directory: string): Promise<string | undefined>;
2
2
 
3
3
  export { createAndEnterGitDirectory };
@@ -5,13 +5,14 @@ async function createAndEnterGitDirectory(directory) {
5
5
  if (directory !== "." && !(await fs.readdir(".")).includes(directory)) {
6
6
  await fs.mkdir(directory);
7
7
  } else if ((await fs.readdir(directory)).length) {
8
- return false;
8
+ return void 0;
9
9
  }
10
10
  if (directory !== ".") {
11
11
  process.chdir(directory);
12
12
  }
13
- await $`git init -b main`;
14
- return true;
13
+ const cwd = process.cwd();
14
+ await $({ cwd })`git init -b main`;
15
+ return cwd;
15
16
  }
16
17
  export {
17
18
  createAndEnterGitDirectory
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/create/createAndEnterGitDirectory.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport * as fs from \"node:fs/promises\";\nimport * as process from \"node:process\";\n\nexport async function createAndEnterGitDirectory(directory: string) {\n\tif (directory !== \".\" && !(await fs.readdir(\".\")).includes(directory)) {\n\t\tawait fs.mkdir(directory);\n\t} else if ((await fs.readdir(directory)).length) {\n\t\treturn false;\n\t}\n\n\tif (directory !== \".\") {\n\t\tprocess.chdir(directory);\n\t}\n\n\tawait $`git init -b main`;\n\n\treturn true;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,YAAY,QAAQ;AACpB,YAAY,aAAa;AAEzB,eAAsB,2BAA2B,WAAmB;AACnE,MAAI,cAAc,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,GAAG,SAAS,SAAS,GAAG;AACtE,UAAM,GAAG,MAAM,SAAS;AAAA,EACzB,YAAY,MAAM,GAAG,QAAQ,SAAS,GAAG,QAAQ;AAChD,WAAO;AAAA,EACR;AAEA,MAAI,cAAc,KAAK;AACtB,YAAQ,MAAM,SAAS;AAAA,EACxB;AAEA,QAAM;AAEN,SAAO;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/create/createAndEnterGitDirectory.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport * as fs from \"node:fs/promises\";\nimport * as process from \"node:process\";\n\nexport async function createAndEnterGitDirectory(directory: string) {\n\tif (directory !== \".\" && !(await fs.readdir(\".\")).includes(directory)) {\n\t\tawait fs.mkdir(directory);\n\t} else if ((await fs.readdir(directory)).length) {\n\t\treturn undefined;\n\t}\n\n\tif (directory !== \".\") {\n\t\tprocess.chdir(directory);\n\t}\n\n\t// https://github.com/JoshuaKGoldberg/create-typescript-app/pull/1781\n\t// For some reason, after this function returns, the cwd was resetting back?\n\t// Also $ commands seem to preserve the cwd from the start of the script?!\n\t// Maybe some parallelized running of scripts was messing with it?\n\t// All this code will be gone soon once the create engine takes over anyway.\n\tconst cwd = process.cwd();\n\n\tawait $({ cwd })`git init -b main`;\n\n\treturn cwd;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,YAAY,QAAQ;AACpB,YAAY,aAAa;AAEzB,eAAsB,2BAA2B,WAAmB;AACnE,MAAI,cAAc,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,GAAG,SAAS,SAAS,GAAG;AACtE,UAAM,GAAG,MAAM,SAAS;AAAA,EACzB,YAAY,MAAM,GAAG,QAAQ,SAAS,GAAG,QAAQ;AAChD,WAAO;AAAA,EACR;AAEA,MAAI,cAAc,KAAK;AACtB,YAAQ,MAAM,SAAS;AAAA,EACxB;AAOA,QAAM,MAAM,QAAQ,IAAI;AAExB,QAAM,EAAE,EAAE,IAAI,CAAC;AAEf,SAAO;AACR;","names":[]}
@@ -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":[]}
@@ -4,7 +4,7 @@ import 'zod';
4
4
  import '../shared/types.js';
5
5
  import '../shared/codes.js';
6
6
 
7
- declare function createWithOptions({ octokit, options, }: OctokitAndOptions): Promise<{
7
+ declare function createWithOptions({ octokit, options }: OctokitAndOptions, repositoryDirectory: string): Promise<{
8
8
  sentToGitHub: boolean | undefined;
9
9
  }>;
10
10
 
@@ -14,10 +14,9 @@ import { initializeGitHubRepository } from "../steps/initializeGitHubRepository/
14
14
  import { runCleanup } from "../steps/runCleanup.js";
15
15
  import { writeReadme } from "../steps/writeReadme/index.js";
16
16
  import { writeStructure } from "../steps/writing/writeStructure.js";
17
- async function createWithOptions({
18
- octokit,
19
- options
20
- }) {
17
+ async function createWithOptions({ octokit, options }, repositoryDirectory) {
18
+ process.chdir(repositoryDirectory);
19
+ const $$ = $({ cwd: repositoryDirectory });
21
20
  if (isUsingCreateEngine()) {
22
21
  await withSpinner("Creating repository", async () => {
23
22
  await runCreateEnginePreset(options);
@@ -54,10 +53,10 @@ async function createWithOptions({
54
53
  const sendToGitHub = octokit && await doesRepositoryExist(octokit, options);
55
54
  if (sendToGitHub) {
56
55
  await withSpinner("Initializing GitHub repository", async () => {
57
- await $`git remote add origin https://github.com/${options.owner}/${options.repository}`;
58
- await $`git add -A`;
59
- await $`git commit --message ${"feat: initialized repo \u2728"} --no-gpg-sign`;
60
- await $`git push -u origin main --force`;
56
+ await $$`git remote add origin https://github.com/${options.owner}/${options.repository}`;
57
+ await $$`git add -A`;
58
+ await $$`git commit --message ${"feat: initialized repo \u2728"} --no-gpg-sign`;
59
+ await $$`git push -u origin main --force`;
61
60
  await initializeGitHubRepository(octokit, options);
62
61
  });
63
62
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/create/createWithOptions.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport { runCreateEnginePreset } from \"../next/runCreateEnginePreset.js\";\nimport {\n\tLabeledSpinnerTask,\n\twithSpinner,\n\twithSpinners,\n} from \"../shared/cli/spinners.js\";\nimport { createCleanupCommands } from \"../shared/createCleanupCommands.js\";\nimport { doesRepositoryExist } from \"../shared/doesRepositoryExist.js\";\nimport { isUsingCreateEngine } from \"../shared/isUsingCreateEngine.js\";\nimport { OctokitAndOptions } from \"../shared/options/readOptions.js\";\nimport { addToolAllContributors } from \"../steps/addToolAllContributors.js\";\nimport { clearLocalGitTags } from \"../steps/clearLocalGitTags.js\";\nimport { finalizeDependencies } from \"../steps/finalizeDependencies.js\";\nimport { initializeGitHubRepository } from \"../steps/initializeGitHubRepository/index.js\";\nimport { runCleanup } from \"../steps/runCleanup.js\";\nimport { writeReadme } from \"../steps/writeReadme/index.js\";\nimport { writeStructure } from \"../steps/writing/writeStructure.js\";\n\nexport async function createWithOptions({\n\toctokit,\n\toptions,\n}: OctokitAndOptions) {\n\tif (isUsingCreateEngine()) {\n\t\tawait withSpinner(\"Creating repository\", async () => {\n\t\t\tawait runCreateEnginePreset(options);\n\t\t});\n\t\treturn { sentToGitHub: false };\n\t}\n\n\tawait withSpinners(\"Creating repository structure\", [\n\t\t[\n\t\t\t\"Writing structure\",\n\t\t\tasync () => {\n\t\t\t\tawait writeStructure(options);\n\t\t\t},\n\t\t],\n\t\t[\n\t\t\t\"Writing README.md\",\n\t\t\tasync () => {\n\t\t\t\tawait writeReadme(options);\n\t\t\t},\n\t\t] satisfies LabeledSpinnerTask<void>,\n\t]);\n\n\tif (!options.excludeAllContributors && !options.skipAllContributorsApi) {\n\t\tawait withSpinner(\"Adding contributors to table\", async () => {\n\t\t\tawait addToolAllContributors(octokit, options);\n\t\t});\n\t}\n\n\tif (!options.skipInstall) {\n\t\tawait withSpinner(\"Installing packages\", async () =>\n\t\t\tfinalizeDependencies(options),\n\t\t);\n\n\t\tawait runCleanup(createCleanupCommands(options.bin), options.mode);\n\t}\n\n\tawait withSpinner(\"Clearing any local Git tags\", clearLocalGitTags);\n\n\tconst sendToGitHub = octokit && (await doesRepositoryExist(octokit, options));\n\n\tif (sendToGitHub) {\n\t\tawait withSpinner(\"Initializing GitHub repository\", async () => {\n\t\t\tawait $`git remote add origin https://github.com/${options.owner}/${options.repository}`;\n\t\t\tawait $`git add -A`;\n\t\t\tawait $`git commit --message ${\"feat: initialized repo ✨\"} --no-gpg-sign`;\n\t\t\tawait $`git push -u origin main --force`;\n\t\t\tawait initializeGitHubRepository(octokit, options);\n\t\t});\n\t}\n\n\treturn { sentToGitHub: sendToGitHub };\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,6BAA6B;AACtC;AAAA,EAEC;AAAA,EACA;AAAA,OACM;AACP,SAAS,6BAA6B;AACtC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AAEpC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,kCAAkC;AAC3C,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAE/B,eAAsB,kBAAkB;AAAA,EACvC;AAAA,EACA;AACD,GAAsB;AACrB,MAAI,oBAAoB,GAAG;AAC1B,UAAM,YAAY,uBAAuB,YAAY;AACpD,YAAM,sBAAsB,OAAO;AAAA,IACpC,CAAC;AACD,WAAO,EAAE,cAAc,MAAM;AAAA,EAC9B;AAEA,QAAM,aAAa,iCAAiC;AAAA,IACnD;AAAA,MACC;AAAA,MACA,YAAY;AACX,cAAM,eAAe,OAAO;AAAA,MAC7B;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA,YAAY;AACX,cAAM,YAAY,OAAO;AAAA,MAC1B;AAAA,IACD;AAAA,EACD,CAAC;AAED,MAAI,CAAC,QAAQ,0BAA0B,CAAC,QAAQ,wBAAwB;AACvE,UAAM,YAAY,gCAAgC,YAAY;AAC7D,YAAM,uBAAuB,SAAS,OAAO;AAAA,IAC9C,CAAC;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ,aAAa;AACzB,UAAM;AAAA,MAAY;AAAA,MAAuB,YACxC,qBAAqB,OAAO;AAAA,IAC7B;AAEA,UAAM,WAAW,sBAAsB,QAAQ,GAAG,GAAG,QAAQ,IAAI;AAAA,EAClE;AAEA,QAAM,YAAY,+BAA+B,iBAAiB;AAElE,QAAM,eAAe,WAAY,MAAM,oBAAoB,SAAS,OAAO;AAE3E,MAAI,cAAc;AACjB,UAAM,YAAY,kCAAkC,YAAY;AAC/D,YAAM,6CAA6C,QAAQ,KAAK,IAAI,QAAQ,UAAU;AACtF,YAAM;AACN,YAAM,yBAAyB,+BAA0B;AACzD,YAAM;AACN,YAAM,2BAA2B,SAAS,OAAO;AAAA,IAClD,CAAC;AAAA,EACF;AAEA,SAAO,EAAE,cAAc,aAAa;AACrC;","names":[]}
1
+ {"version":3,"sources":["../../src/create/createWithOptions.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport { runCreateEnginePreset } from \"../next/runCreateEnginePreset.js\";\nimport {\n\tLabeledSpinnerTask,\n\twithSpinner,\n\twithSpinners,\n} from \"../shared/cli/spinners.js\";\nimport { createCleanupCommands } from \"../shared/createCleanupCommands.js\";\nimport { doesRepositoryExist } from \"../shared/doesRepositoryExist.js\";\nimport { isUsingCreateEngine } from \"../shared/isUsingCreateEngine.js\";\nimport { OctokitAndOptions } from \"../shared/options/readOptions.js\";\nimport { addToolAllContributors } from \"../steps/addToolAllContributors.js\";\nimport { clearLocalGitTags } from \"../steps/clearLocalGitTags.js\";\nimport { finalizeDependencies } from \"../steps/finalizeDependencies.js\";\nimport { initializeGitHubRepository } from \"../steps/initializeGitHubRepository/index.js\";\nimport { runCleanup } from \"../steps/runCleanup.js\";\nimport { writeReadme } from \"../steps/writeReadme/index.js\";\nimport { writeStructure } from \"../steps/writing/writeStructure.js\";\n\nexport async function createWithOptions(\n\t{ octokit, options }: OctokitAndOptions,\n\trepositoryDirectory: string,\n) {\n\t// https://github.com/JoshuaKGoldberg/create-typescript-app/pull/1781\n\t// I don't know why the chdir wasn't sticking from createAndEnterGitDirectory\n\tprocess.chdir(repositoryDirectory);\n\tconst $$ = $({ cwd: repositoryDirectory });\n\n\tif (isUsingCreateEngine()) {\n\t\tawait withSpinner(\"Creating repository\", async () => {\n\t\t\tawait runCreateEnginePreset(options);\n\t\t});\n\t\treturn { sentToGitHub: false };\n\t}\n\n\tawait withSpinners(\"Creating repository structure\", [\n\t\t[\n\t\t\t\"Writing structure\",\n\t\t\tasync () => {\n\t\t\t\tawait writeStructure(options);\n\t\t\t},\n\t\t],\n\t\t[\n\t\t\t\"Writing README.md\",\n\t\t\tasync () => {\n\t\t\t\tawait writeReadme(options);\n\t\t\t},\n\t\t] satisfies LabeledSpinnerTask<void>,\n\t]);\n\n\tif (!options.excludeAllContributors && !options.skipAllContributorsApi) {\n\t\tawait withSpinner(\"Adding contributors to table\", async () => {\n\t\t\tawait addToolAllContributors(octokit, options);\n\t\t});\n\t}\n\n\tif (!options.skipInstall) {\n\t\tawait withSpinner(\"Installing packages\", async () =>\n\t\t\tfinalizeDependencies(options),\n\t\t);\n\n\t\tawait runCleanup(createCleanupCommands(options.bin), options.mode);\n\t}\n\n\tawait withSpinner(\"Clearing any local Git tags\", clearLocalGitTags);\n\n\tconst sendToGitHub = octokit && (await doesRepositoryExist(octokit, options));\n\n\tif (sendToGitHub) {\n\t\tawait withSpinner(\"Initializing GitHub repository\", async () => {\n\t\t\tawait $$`git remote add origin https://github.com/${options.owner}/${options.repository}`;\n\t\t\tawait $$`git add -A`;\n\t\t\tawait $$`git commit --message ${\"feat: initialized repo ✨\"} --no-gpg-sign`;\n\t\t\tawait $$`git push -u origin main --force`;\n\t\t\tawait initializeGitHubRepository(octokit, options);\n\t\t});\n\t}\n\n\treturn { sentToGitHub: sendToGitHub };\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,6BAA6B;AACtC;AAAA,EAEC;AAAA,EACA;AAAA,OACM;AACP,SAAS,6BAA6B;AACtC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AAEpC,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,kCAAkC;AAC3C,SAAS,kBAAkB;AAC3B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAE/B,eAAsB,kBACrB,EAAE,SAAS,QAAQ,GACnB,qBACC;AAGD,UAAQ,MAAM,mBAAmB;AACjC,QAAM,KAAK,EAAE,EAAE,KAAK,oBAAoB,CAAC;AAEzC,MAAI,oBAAoB,GAAG;AAC1B,UAAM,YAAY,uBAAuB,YAAY;AACpD,YAAM,sBAAsB,OAAO;AAAA,IACpC,CAAC;AACD,WAAO,EAAE,cAAc,MAAM;AAAA,EAC9B;AAEA,QAAM,aAAa,iCAAiC;AAAA,IACnD;AAAA,MACC;AAAA,MACA,YAAY;AACX,cAAM,eAAe,OAAO;AAAA,MAC7B;AAAA,IACD;AAAA,IACA;AAAA,MACC;AAAA,MACA,YAAY;AACX,cAAM,YAAY,OAAO;AAAA,MAC1B;AAAA,IACD;AAAA,EACD,CAAC;AAED,MAAI,CAAC,QAAQ,0BAA0B,CAAC,QAAQ,wBAAwB;AACvE,UAAM,YAAY,gCAAgC,YAAY;AAC7D,YAAM,uBAAuB,SAAS,OAAO;AAAA,IAC9C,CAAC;AAAA,EACF;AAEA,MAAI,CAAC,QAAQ,aAAa;AACzB,UAAM;AAAA,MAAY;AAAA,MAAuB,YACxC,qBAAqB,OAAO;AAAA,IAC7B;AAEA,UAAM,WAAW,sBAAsB,QAAQ,GAAG,GAAG,QAAQ,IAAI;AAAA,EAClE;AAEA,QAAM,YAAY,+BAA+B,iBAAiB;AAElE,QAAM,eAAe,WAAY,MAAM,oBAAoB,SAAS,OAAO;AAE3E,MAAI,cAAc;AACjB,UAAM,YAAY,kCAAkC,YAAY;AAC/D,YAAM,8CAA8C,QAAQ,KAAK,IAAI,QAAQ,UAAU;AACvF,YAAM;AACN,YAAM,0BAA0B,+BAA0B;AAC1D,YAAM;AACN,YAAM,2BAA2B,SAAS,OAAO;AAAA,IAClD,CAAC;AAAA,EACF;AAEA,SAAO,EAAE,cAAc,aAAa;AACrC;","names":[]}
@@ -17,7 +17,10 @@ const create = async (args, promptedOptions) => {
17
17
  options: inputs.options
18
18
  };
19
19
  }
20
- if (!await createAndEnterGitDirectory(inputs.options.directory)) {
20
+ const repositoryDirectory = await createAndEnterGitDirectory(
21
+ inputs.options.directory
22
+ );
23
+ if (!repositoryDirectory) {
21
24
  prompts.outro(
22
25
  chalk.red(
23
26
  `The ${inputs.options.directory} directory already exists and is not empty. Please clear the directory, run with --mode initialize, or try a different directory.`
@@ -28,7 +31,10 @@ const create = async (args, promptedOptions) => {
28
31
  return {
29
32
  code: await runOrRestore({
30
33
  run: async () => {
31
- const { sentToGitHub } = await createWithOptions(inputs);
34
+ const { sentToGitHub } = await createWithOptions(
35
+ inputs,
36
+ repositoryDirectory
37
+ );
32
38
  const nextSteps = generateNextSteps(inputs.options);
33
39
  outro(
34
40
  sentToGitHub ? nextSteps : [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/create/index.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\nimport chalk from \"chalk\";\n\nimport { outro } from \"../shared/cli/outro.js\";\nimport { StatusCodes } from \"../shared/codes.js\";\nimport { generateNextSteps } from \"../shared/generateNextSteps.js\";\nimport { readOptions } from \"../shared/options/readOptions.js\";\nimport { runOrRestore } from \"../shared/runOrRestore.js\";\nimport { ModeRunner } from \"../shared/types.js\";\nimport { createAndEnterGitDirectory } from \"./createAndEnterGitDirectory.js\";\nimport { createRerunSuggestion } from \"./createRerunSuggestion.js\";\nimport { createWithOptions } from \"./createWithOptions.js\";\n\nexport const create: ModeRunner = async (args, promptedOptions) => {\n\tconst inputs = await readOptions(args, \"create\", promptedOptions);\n\tif (inputs.cancelled) {\n\t\treturn {\n\t\t\tcode: StatusCodes.Cancelled,\n\t\t\terror: inputs.error,\n\t\t\toptions: inputs.options,\n\t\t};\n\t}\n\n\tif (!(await createAndEnterGitDirectory(inputs.options.directory))) {\n\t\tprompts.outro(\n\t\t\tchalk.red(\n\t\t\t\t`The ${inputs.options.directory} directory already exists and is not empty. Please clear the directory, run with --mode initialize, or try a different directory.`,\n\t\t\t),\n\t\t);\n\t\treturn { code: StatusCodes.Failure, options: inputs.options };\n\t}\n\n\treturn {\n\t\tcode: await runOrRestore({\n\t\t\trun: async () => {\n\t\t\t\tconst { sentToGitHub } = await createWithOptions(inputs);\n\t\t\t\tconst nextSteps = generateNextSteps(inputs.options);\n\n\t\t\t\toutro(\n\t\t\t\t\tsentToGitHub\n\t\t\t\t\t\t? nextSteps\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\"Consider creating a GitHub repository from the new directory:\",\n\t\t\t\t\t\t\t\t\tlines: [\n\t\t\t\t\t\t\t\t\t\t`cd ${inputs.options.repository}`,\n\t\t\t\t\t\t\t\t\t\tcreateRerunSuggestion({\n\t\t\t\t\t\t\t\t\t\t\t...inputs.options,\n\t\t\t\t\t\t\t\t\t\t\tmode: \"initialize\",\n\t\t\t\t\t\t\t\t\t\t\tskipGitHubApi: false,\n\t\t\t\t\t\t\t\t\t\t\tskipInstall: false,\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t`git add -A`,\n\t\t\t\t\t\t\t\t\t\t`git commit -m \"feat: initial commit ✨\"`,\n\t\t\t\t\t\t\t\t\t\t`git push -u origin main`,\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tvariant: \"code\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...nextSteps,\n\t\t\t\t\t\t\t],\n\t\t\t\t);\n\t\t\t},\n\t\t\tskipRestore: inputs.options.skipRestore,\n\t\t}),\n\t\toptions: inputs.options,\n\t};\n};\n"],"mappings":"AAAA,YAAY,aAAa;AACzB,OAAO,WAAW;AAElB,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAE7B,SAAS,kCAAkC;AAC3C,SAAS,6BAA6B;AACtC,SAAS,yBAAyB;AAE3B,MAAM,SAAqB,OAAO,MAAM,oBAAoB;AAClE,QAAM,SAAS,MAAM,YAAY,MAAM,UAAU,eAAe;AAChE,MAAI,OAAO,WAAW;AACrB,WAAO;AAAA,MACN,MAAM,YAAY;AAAA,MAClB,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,IACjB;AAAA,EACD;AAEA,MAAI,CAAE,MAAM,2BAA2B,OAAO,QAAQ,SAAS,GAAI;AAClE,YAAQ;AAAA,MACP,MAAM;AAAA,QACL,OAAO,OAAO,QAAQ,SAAS;AAAA,MAChC;AAAA,IACD;AACA,WAAO,EAAE,MAAM,YAAY,SAAS,SAAS,OAAO,QAAQ;AAAA,EAC7D;AAEA,SAAO;AAAA,IACN,MAAM,MAAM,aAAa;AAAA,MACxB,KAAK,YAAY;AAChB,cAAM,EAAE,aAAa,IAAI,MAAM,kBAAkB,MAAM;AACvD,cAAM,YAAY,kBAAkB,OAAO,OAAO;AAElD;AAAA,UACC,eACG,YACA;AAAA,YACA;AAAA,cACC,OACC;AAAA,cACD,OAAO;AAAA,gBACN,MAAM,OAAO,QAAQ,UAAU;AAAA,gBAC/B,sBAAsB;AAAA,kBACrB,GAAG,OAAO;AAAA,kBACV,MAAM;AAAA,kBACN,eAAe;AAAA,kBACf,aAAa;AAAA,gBACd,CAAC;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACD;AAAA,cACA,SAAS;AAAA,YACV;AAAA,YACA,GAAG;AAAA,UACJ;AAAA,QACH;AAAA,MACD;AAAA,MACA,aAAa,OAAO,QAAQ;AAAA,IAC7B,CAAC;AAAA,IACD,SAAS,OAAO;AAAA,EACjB;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/create/index.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\nimport chalk from \"chalk\";\n\nimport { outro } from \"../shared/cli/outro.js\";\nimport { StatusCodes } from \"../shared/codes.js\";\nimport { generateNextSteps } from \"../shared/generateNextSteps.js\";\nimport { readOptions } from \"../shared/options/readOptions.js\";\nimport { runOrRestore } from \"../shared/runOrRestore.js\";\nimport { ModeRunner } from \"../shared/types.js\";\nimport { createAndEnterGitDirectory } from \"./createAndEnterGitDirectory.js\";\nimport { createRerunSuggestion } from \"./createRerunSuggestion.js\";\nimport { createWithOptions } from \"./createWithOptions.js\";\n\nexport const create: ModeRunner = async (args, promptedOptions) => {\n\tconst inputs = await readOptions(args, \"create\", promptedOptions);\n\tif (inputs.cancelled) {\n\t\treturn {\n\t\t\tcode: StatusCodes.Cancelled,\n\t\t\terror: inputs.error,\n\t\t\toptions: inputs.options,\n\t\t};\n\t}\n\n\tconst repositoryDirectory = await createAndEnterGitDirectory(\n\t\tinputs.options.directory,\n\t);\n\tif (!repositoryDirectory) {\n\t\tprompts.outro(\n\t\t\tchalk.red(\n\t\t\t\t`The ${inputs.options.directory} directory already exists and is not empty. Please clear the directory, run with --mode initialize, or try a different directory.`,\n\t\t\t),\n\t\t);\n\t\treturn { code: StatusCodes.Failure, options: inputs.options };\n\t}\n\n\treturn {\n\t\tcode: await runOrRestore({\n\t\t\trun: async () => {\n\t\t\t\tconst { sentToGitHub } = await createWithOptions(\n\t\t\t\t\tinputs,\n\t\t\t\t\trepositoryDirectory,\n\t\t\t\t);\n\t\t\t\tconst nextSteps = generateNextSteps(inputs.options);\n\n\t\t\t\toutro(\n\t\t\t\t\tsentToGitHub\n\t\t\t\t\t\t? nextSteps\n\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel:\n\t\t\t\t\t\t\t\t\t\t\"Consider creating a GitHub repository from the new directory:\",\n\t\t\t\t\t\t\t\t\tlines: [\n\t\t\t\t\t\t\t\t\t\t`cd ${inputs.options.repository}`,\n\t\t\t\t\t\t\t\t\t\tcreateRerunSuggestion({\n\t\t\t\t\t\t\t\t\t\t\t...inputs.options,\n\t\t\t\t\t\t\t\t\t\t\tmode: \"initialize\",\n\t\t\t\t\t\t\t\t\t\t\tskipGitHubApi: false,\n\t\t\t\t\t\t\t\t\t\t\tskipInstall: false,\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t`git add -A`,\n\t\t\t\t\t\t\t\t\t\t`git commit -m \"feat: initial commit ✨\"`,\n\t\t\t\t\t\t\t\t\t\t`git push -u origin main`,\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tvariant: \"code\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...nextSteps,\n\t\t\t\t\t\t\t],\n\t\t\t\t);\n\t\t\t},\n\t\t\tskipRestore: inputs.options.skipRestore,\n\t\t}),\n\t\toptions: inputs.options,\n\t};\n};\n"],"mappings":"AAAA,YAAY,aAAa;AACzB,OAAO,WAAW;AAElB,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAE7B,SAAS,kCAAkC;AAC3C,SAAS,6BAA6B;AACtC,SAAS,yBAAyB;AAE3B,MAAM,SAAqB,OAAO,MAAM,oBAAoB;AAClE,QAAM,SAAS,MAAM,YAAY,MAAM,UAAU,eAAe;AAChE,MAAI,OAAO,WAAW;AACrB,WAAO;AAAA,MACN,MAAM,YAAY;AAAA,MAClB,OAAO,OAAO;AAAA,MACd,SAAS,OAAO;AAAA,IACjB;AAAA,EACD;AAEA,QAAM,sBAAsB,MAAM;AAAA,IACjC,OAAO,QAAQ;AAAA,EAChB;AACA,MAAI,CAAC,qBAAqB;AACzB,YAAQ;AAAA,MACP,MAAM;AAAA,QACL,OAAO,OAAO,QAAQ,SAAS;AAAA,MAChC;AAAA,IACD;AACA,WAAO,EAAE,MAAM,YAAY,SAAS,SAAS,OAAO,QAAQ;AAAA,EAC7D;AAEA,SAAO;AAAA,IACN,MAAM,MAAM,aAAa;AAAA,MACxB,KAAK,YAAY;AAChB,cAAM,EAAE,aAAa,IAAI,MAAM;AAAA,UAC9B;AAAA,UACA;AAAA,QACD;AACA,cAAM,YAAY,kBAAkB,OAAO,OAAO;AAElD;AAAA,UACC,eACG,YACA;AAAA,YACA;AAAA,cACC,OACC;AAAA,cACD,OAAO;AAAA,gBACN,MAAM,OAAO,QAAQ,UAAU;AAAA,gBAC/B,sBAAsB;AAAA,kBACrB,GAAG,OAAO;AAAA,kBACV,MAAM;AAAA,kBACN,eAAe;AAAA,kBACf,aAAa;AAAA,gBACd,CAAC;AAAA,gBACD;AAAA,gBACA;AAAA,gBACA;AAAA,cACD;AAAA,cACA,SAAS;AAAA,YACV;AAAA,YACA,GAAG;AAAA,UACJ;AAAA,QACH;AAAA,MACD;AAAA,MACA,aAAa,OAAO,QAAQ;AAAA,IAC7B,CAAC;AAAA,IACD,SAAS,OAAO;AAAA,EACjB;AACD;","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"]}
@@ -26,6 +26,7 @@ declare const base: create.Base<{
26
26
  profile: string;
27
27
  }>, "many">>;
28
28
  description: z.ZodString;
29
+ directory: z.ZodString;
29
30
  documentation: z.ZodOptional<z.ZodString>;
30
31
  email: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodObject<{
31
32
  github: z.ZodString;
@@ -56,16 +57,21 @@ declare const base: create.Base<{
56
57
  }>>;
57
58
  hideTemplatedBy: z.ZodOptional<z.ZodBoolean>;
58
59
  keywords: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
59
- login: z.ZodOptional<z.ZodString>;
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;
@@ -91,7 +97,6 @@ declare const base: create.Base<{
91
97
  devDependencies?: Record<string, string> | undefined;
92
98
  scripts?: Record<string, string> | undefined;
93
99
  }>>;
94
- preserveGeneratedFrom: z.ZodOptional<z.ZodBoolean>;
95
100
  repository: z.ZodString;
96
101
  title: z.ZodString;
97
102
  version: z.ZodOptional<z.ZodString>;