create-typescript-app 1.75.1 → 1.77.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 (266) hide show
  1. package/README.md +1 -1
  2. package/lib/bin/help.js +35 -35
  3. package/lib/bin/help.js.map +1 -1
  4. package/lib/bin/promptForMode.js +6 -6
  5. package/lib/bin/promptForMode.js.map +1 -1
  6. package/lib/create/createWithOptions.js +12 -13
  7. package/lib/create/createWithOptions.js.map +1 -1
  8. package/lib/index.d.ts +45 -0
  9. package/lib/index.js +5 -0
  10. package/lib/index.js.map +1 -1
  11. package/lib/next/base.d.ts +101 -0
  12. package/lib/next/base.js +140 -0
  13. package/lib/next/base.js.map +1 -0
  14. package/lib/next/blocks/blockAllContributors.d.ts +48 -0
  15. package/lib/next/blocks/blockAllContributors.js +59 -0
  16. package/lib/next/blocks/blockAllContributors.js.map +1 -0
  17. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +48 -0
  18. package/lib/next/blocks/blockAreTheTypesWrong.js +29 -0
  19. package/lib/next/blocks/blockAreTheTypesWrong.js.map +1 -0
  20. package/lib/next/blocks/blockCSpell.d.ts +51 -0
  21. package/lib/next/blocks/blockCSpell.js +77 -0
  22. package/lib/next/blocks/blockCSpell.js.map +1 -0
  23. package/lib/next/blocks/blockContributingDocs.d.ts +48 -0
  24. package/lib/next/blocks/blockContributingDocs.js +116 -0
  25. package/lib/next/blocks/blockContributingDocs.js.map +1 -0
  26. package/lib/next/blocks/blockContributorCovenant.d.ts +48 -0
  27. package/lib/next/blocks/blockContributorCovenant.js +151 -0
  28. package/lib/next/blocks/blockContributorCovenant.js.map +1 -0
  29. package/lib/next/blocks/blockDevelopmentDocs.d.ts +62 -0
  30. package/lib/next/blocks/blockDevelopmentDocs.js +86 -0
  31. package/lib/next/blocks/blockDevelopmentDocs.js.map +1 -0
  32. package/lib/next/blocks/blockESLint.d.ts +73 -0
  33. package/lib/next/blocks/blockESLint.js +225 -0
  34. package/lib/next/blocks/blockESLint.js.map +1 -0
  35. package/lib/next/blocks/blockESLintComments.d.ts +48 -0
  36. package/lib/next/blocks/blockESLintComments.js +26 -0
  37. package/lib/next/blocks/blockESLintComments.js.map +1 -0
  38. package/lib/next/blocks/blockESLintJSDoc.d.ts +48 -0
  39. package/lib/next/blocks/blockESLintJSDoc.js +25 -0
  40. package/lib/next/blocks/blockESLintJSDoc.js.map +1 -0
  41. package/lib/next/blocks/blockESLintJSONC.d.ts +48 -0
  42. package/lib/next/blocks/blockESLintJSONC.js +21 -0
  43. package/lib/next/blocks/blockESLintJSONC.js.map +1 -0
  44. package/lib/next/blocks/blockESLintMarkdown.d.ts +48 -0
  45. package/lib/next/blocks/blockESLintMarkdown.js +27 -0
  46. package/lib/next/blocks/blockESLintMarkdown.js.map +1 -0
  47. package/lib/next/blocks/blockESLintMoreStyling.d.ts +48 -0
  48. package/lib/next/blocks/blockESLintMoreStyling.js +34 -0
  49. package/lib/next/blocks/blockESLintMoreStyling.js.map +1 -0
  50. package/lib/next/blocks/blockESLintNode.d.ts +48 -0
  51. package/lib/next/blocks/blockESLintNode.js +33 -0
  52. package/lib/next/blocks/blockESLintNode.js.map +1 -0
  53. package/lib/next/blocks/blockESLintPackageJson.d.ts +48 -0
  54. package/lib/next/blocks/blockESLintPackageJson.js +26 -0
  55. package/lib/next/blocks/blockESLintPackageJson.js.map +1 -0
  56. package/lib/next/blocks/blockESLintPerfectionist.d.ts +48 -0
  57. package/lib/next/blocks/blockESLintPerfectionist.js +32 -0
  58. package/lib/next/blocks/blockESLintPerfectionist.js.map +1 -0
  59. package/lib/next/blocks/blockESLintRegexp.d.ts +48 -0
  60. package/lib/next/blocks/blockESLintRegexp.js +23 -0
  61. package/lib/next/blocks/blockESLintRegexp.js.map +1 -0
  62. package/lib/next/blocks/blockESLintYML.d.ts +48 -0
  63. package/lib/next/blocks/blockESLintYML.js +46 -0
  64. package/lib/next/blocks/blockESLintYML.js.map +1 -0
  65. package/lib/next/blocks/blockFunding.d.ts +48 -0
  66. package/lib/next/blocks/blockFunding.js +20 -0
  67. package/lib/next/blocks/blockFunding.js.map +1 -0
  68. package/lib/next/blocks/blockGitHubActionsCI.d.ts +60 -0
  69. package/lib/next/blocks/blockGitHubActionsCI.js +122 -0
  70. package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -0
  71. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +48 -0
  72. package/lib/next/blocks/blockGitHubIssueTemplates.js +217 -0
  73. package/lib/next/blocks/blockGitHubIssueTemplates.js.map +1 -0
  74. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +48 -0
  75. package/lib/next/blocks/blockGitHubPRTemplate.js +32 -0
  76. package/lib/next/blocks/blockGitHubPRTemplate.js.map +1 -0
  77. package/lib/next/blocks/blockGitignore.d.ts +50 -0
  78. package/lib/next/blocks/blockGitignore.js +23 -0
  79. package/lib/next/blocks/blockGitignore.js.map +1 -0
  80. package/lib/next/blocks/blockKnip.d.ts +48 -0
  81. package/lib/next/blocks/blockKnip.js +58 -0
  82. package/lib/next/blocks/blockKnip.js.map +1 -0
  83. package/lib/next/blocks/blockMITLicense.d.ts +48 -0
  84. package/lib/next/blocks/blockMITLicense.js +46 -0
  85. package/lib/next/blocks/blockMITLicense.js.map +1 -0
  86. package/lib/next/blocks/blockMarkdownlint.d.ts +50 -0
  87. package/lib/next/blocks/blockMarkdownlint.js +77 -0
  88. package/lib/next/blocks/blockMarkdownlint.js.map +1 -0
  89. package/lib/next/blocks/blockNvmrc.d.ts +48 -0
  90. package/lib/next/blocks/blockNvmrc.js +26 -0
  91. package/lib/next/blocks/blockNvmrc.js.map +1 -0
  92. package/lib/next/blocks/blockPRCompliance.d.ts +48 -0
  93. package/lib/next/blocks/blockPRCompliance.js +48 -0
  94. package/lib/next/blocks/blockPRCompliance.js.map +1 -0
  95. package/lib/next/blocks/blockPackageJson.d.ts +56 -0
  96. package/lib/next/blocks/blockPackageJson.js +81 -0
  97. package/lib/next/blocks/blockPackageJson.js.map +1 -0
  98. package/lib/next/blocks/blockPnpmDedupe.d.ts +48 -0
  99. package/lib/next/blocks/blockPnpmDedupe.js +51 -0
  100. package/lib/next/blocks/blockPnpmDedupe.js.map +1 -0
  101. package/lib/next/blocks/blockPrettier.d.ts +57 -0
  102. package/lib/next/blocks/blockPrettier.js +104 -0
  103. package/lib/next/blocks/blockPrettier.js.map +1 -0
  104. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +48 -0
  105. package/lib/next/blocks/blockPrettierPluginCurly.js +20 -0
  106. package/lib/next/blocks/blockPrettierPluginCurly.js.map +1 -0
  107. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +48 -0
  108. package/lib/next/blocks/blockPrettierPluginPackageJson.js +20 -0
  109. package/lib/next/blocks/blockPrettierPluginPackageJson.js.map +1 -0
  110. package/lib/next/blocks/blockPrettierPluginSh.d.ts +48 -0
  111. package/lib/next/blocks/blockPrettierPluginSh.js +20 -0
  112. package/lib/next/blocks/blockPrettierPluginSh.js.map +1 -0
  113. package/lib/next/blocks/blockREADME.d.ts +50 -0
  114. package/lib/next/blocks/blockREADME.js +63 -0
  115. package/lib/next/blocks/blockREADME.js.map +1 -0
  116. package/lib/next/blocks/blockReleaseIt.d.ts +48 -0
  117. package/lib/next/blocks/blockReleaseIt.js +126 -0
  118. package/lib/next/blocks/blockReleaseIt.js.map +1 -0
  119. package/lib/next/blocks/blockRenovate.d.ts +48 -0
  120. package/lib/next/blocks/blockRenovate.js +34 -0
  121. package/lib/next/blocks/blockRenovate.js.map +1 -0
  122. package/lib/next/blocks/blockSecurityDocs.d.ts +48 -0
  123. package/lib/next/blocks/blockSecurityDocs.js +28 -0
  124. package/lib/next/blocks/blockSecurityDocs.js.map +1 -0
  125. package/lib/next/blocks/blockTSup.d.ts +50 -0
  126. package/lib/next/blocks/blockTSup.js +78 -0
  127. package/lib/next/blocks/blockTSup.js.map +1 -0
  128. package/lib/next/blocks/blockTemplatedBy.d.ts +50 -0
  129. package/lib/next/blocks/blockTemplatedBy.js +34 -0
  130. package/lib/next/blocks/blockTemplatedBy.js.map +1 -0
  131. package/lib/next/blocks/blockTypeScript.d.ts +48 -0
  132. package/lib/next/blocks/blockTypeScript.js +109 -0
  133. package/lib/next/blocks/blockTypeScript.js.map +1 -0
  134. package/lib/next/blocks/blockVSCode.d.ts +57 -0
  135. package/lib/next/blocks/blockVSCode.js +87 -0
  136. package/lib/next/blocks/blockVSCode.js.map +1 -0
  137. package/lib/next/blocks/blockVitest.d.ts +55 -0
  138. package/lib/next/blocks/blockVitest.js +154 -0
  139. package/lib/next/blocks/blockVitest.js.map +1 -0
  140. package/lib/next/blocks/index.d.ts +43 -0
  141. package/lib/next/blocks/index.js +43 -0
  142. package/lib/next/blocks/index.js.map +1 -0
  143. package/lib/next/blocks/options.fakes.d.ts +13 -0
  144. package/lib/next/blocks/options.fakes.js +15 -0
  145. package/lib/next/blocks/options.fakes.js.map +1 -0
  146. package/lib/next/blocks/packageData.d.ts +5 -0
  147. package/lib/next/blocks/packageData.js +25 -0
  148. package/lib/next/blocks/packageData.js.map +1 -0
  149. package/lib/next/presetCommon.d.ts +99 -0
  150. package/lib/next/presetCommon.js +21 -0
  151. package/lib/next/presetCommon.js.map +1 -0
  152. package/lib/next/presetEverything.d.ts +99 -0
  153. package/lib/next/presetEverything.js +59 -0
  154. package/lib/next/presetEverything.js.map +1 -0
  155. package/lib/next/presetMinimal.d.ts +99 -0
  156. package/lib/next/presetMinimal.js +45 -0
  157. package/lib/next/presetMinimal.js.map +1 -0
  158. package/lib/next/template.d.ts +99 -0
  159. package/lib/next/template.js +21 -0
  160. package/lib/next/template.js.map +1 -0
  161. package/lib/next/utils/removeTrailingSlash.d.ts +3 -0
  162. package/lib/next/utils/removeTrailingSlash.js +7 -0
  163. package/lib/next/utils/removeTrailingSlash.js.map +1 -0
  164. package/lib/next/utils/sortObject.d.ts +5 -0
  165. package/lib/next/utils/sortObject.js +9 -0
  166. package/lib/next/utils/sortObject.js.map +1 -0
  167. package/lib/next/utils/swallowError.d.ts +3 -0
  168. package/lib/next/utils/swallowError.js +7 -0
  169. package/lib/next/utils/swallowError.js.map +1 -0
  170. package/lib/shared/cli/spinners.d.ts +1 -1
  171. package/lib/shared/cli/spinners.js.map +1 -1
  172. package/lib/shared/isUsingCreateEngine.d.ts +3 -0
  173. package/lib/shared/isUsingCreateEngine.js +7 -0
  174. package/lib/shared/isUsingCreateEngine.js.map +1 -0
  175. package/lib/shared/options/args.d.ts +39 -13
  176. package/lib/shared/options/args.js +5 -0
  177. package/lib/shared/options/args.js.map +1 -1
  178. package/lib/shared/options/augmentOptionsWithExcludes.js +2 -2
  179. package/lib/shared/options/augmentOptionsWithExcludes.js.map +1 -1
  180. package/lib/shared/options/createOptionDefaults/index.d.ts +2 -4
  181. package/lib/shared/options/createOptionDefaults/index.js +4 -13
  182. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  183. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +4 -1
  184. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  185. package/lib/shared/options/createOptionDefaults/readEmails.d.ts +11 -0
  186. package/lib/shared/options/createOptionDefaults/readEmails.js +14 -0
  187. package/lib/shared/options/createOptionDefaults/readEmails.js.map +1 -0
  188. package/lib/shared/options/createOptionDefaults/readFunding.d.ts +3 -0
  189. package/lib/shared/options/createOptionDefaults/readFunding.js +11 -0
  190. package/lib/shared/options/createOptionDefaults/readFunding.js.map +1 -0
  191. package/lib/shared/options/createOptionDefaults/readGuide.d.ts +6 -0
  192. package/lib/shared/options/createOptionDefaults/readGuide.js +18 -0
  193. package/lib/shared/options/createOptionDefaults/readGuide.js.map +1 -0
  194. package/lib/shared/options/ensureRepositoryExists.js +1 -1
  195. package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
  196. package/lib/shared/options/exclusionKeys.d.ts +1 -1
  197. package/lib/shared/options/exclusionKeys.js +6 -0
  198. package/lib/shared/options/exclusionKeys.js.map +1 -1
  199. package/lib/shared/options/optionsSchema.d.ts +6 -2
  200. package/lib/shared/options/optionsSchema.js +1 -0
  201. package/lib/shared/options/optionsSchema.js.map +1 -1
  202. package/lib/shared/options/readOptions.d.ts +1 -1
  203. package/lib/shared/options/readOptions.js +1 -0
  204. package/lib/shared/options/readOptions.js.map +1 -1
  205. package/lib/shared/types.d.ts +32 -24
  206. package/lib/steps/addOwnerAsAllContributor.js +2 -2
  207. package/lib/steps/addOwnerAsAllContributor.js.map +1 -1
  208. package/lib/steps/clearUnnecessaryFiles.js +3 -4
  209. package/lib/steps/clearUnnecessaryFiles.js.map +1 -1
  210. package/lib/steps/finalizeDependencies.js +47 -44
  211. package/lib/steps/finalizeDependencies.js.map +1 -1
  212. package/lib/steps/populateCSpellDictionary.js +7 -7
  213. package/lib/steps/populateCSpellDictionary.js.map +1 -1
  214. package/lib/steps/removeSetupScripts.js +9 -3
  215. package/lib/steps/removeSetupScripts.js.map +1 -1
  216. package/lib/steps/uninstallPackages.js +10 -3
  217. package/lib/steps/uninstallPackages.js.map +1 -1
  218. package/lib/steps/updateReadme.d.ts +1 -1
  219. package/lib/steps/updateReadme.js +1 -1
  220. package/lib/steps/updateReadme.js.map +1 -1
  221. package/lib/steps/writeReadme/index.js +19 -19
  222. package/lib/steps/writeReadme/index.js.map +1 -1
  223. package/lib/steps/writing/creation/createCSpellConfig.d.ts +7 -0
  224. package/lib/steps/writing/creation/createCSpellConfig.js +27 -0
  225. package/lib/steps/writing/creation/createCSpellConfig.js.map +1 -0
  226. package/lib/steps/writing/creation/createDotGitignore.js +7 -5
  227. package/lib/steps/writing/creation/createDotGitignore.js.map +1 -1
  228. package/lib/steps/writing/creation/createESLintConfig.js +22 -46
  229. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
  230. package/lib/steps/writing/creation/createTsupConfig.js +10 -10
  231. package/lib/steps/writing/creation/createTsupConfig.js.map +1 -1
  232. package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js +57 -41
  233. package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js.map +1 -1
  234. package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js +1 -1
  235. package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js.map +1 -1
  236. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js +5 -5
  237. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js.map +1 -1
  238. package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.d.ts +11 -9
  239. package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.js.map +1 -1
  240. package/lib/steps/writing/creation/dotGitHub/createSoloWorkflowFile.d.ts +16 -16
  241. package/lib/steps/writing/creation/dotGitHub/createSoloWorkflowFile.js.map +1 -1
  242. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js +5 -1
  243. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js.map +1 -1
  244. package/lib/steps/writing/creation/formatters/formatIgnoreFile.d.ts +1 -1
  245. package/lib/steps/writing/creation/formatters/formatIgnoreFile.js +1 -1
  246. package/lib/steps/writing/creation/formatters/formatIgnoreFile.js.map +1 -1
  247. package/lib/steps/writing/creation/formatters/formatTypeScript.js +1 -1
  248. package/lib/steps/writing/creation/formatters/formatTypeScript.js.map +1 -1
  249. package/lib/steps/writing/creation/formatters/formatYaml.js +3 -1
  250. package/lib/steps/writing/creation/formatters/formatYaml.js.map +1 -1
  251. package/lib/steps/writing/creation/index.d.ts +1 -1
  252. package/lib/steps/writing/creation/index.js +49 -1
  253. package/lib/steps/writing/creation/index.js.map +1 -1
  254. package/lib/steps/writing/creation/rootFiles.js +5 -15
  255. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  256. package/lib/steps/writing/creation/writePackageJson.js +69 -62
  257. package/lib/steps/writing/creation/writePackageJson.js.map +1 -1
  258. package/lib/steps/writing/types.d.ts +1 -1
  259. package/lib/steps/writing/writeStructure.js +9 -1
  260. package/lib/steps/writing/writeStructure.js.map +1 -1
  261. package/lib/steps/writing/writeStructureWorker.js +1 -1
  262. package/lib/steps/writing/writeStructureWorker.js.map +1 -1
  263. package/package.json +57 -52
  264. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.d.ts +0 -8
  265. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js +0 -22
  266. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js.map +0 -1
@@ -36,6 +36,7 @@ declare const optionsSchemaShape: {
36
36
  excludeLintYml: z.ZodOptional<z.ZodBoolean>;
37
37
  excludeReleases: z.ZodOptional<z.ZodBoolean>;
38
38
  excludeRenovate: z.ZodOptional<z.ZodBoolean>;
39
+ excludeTemplatedBy: z.ZodOptional<z.ZodBoolean>;
39
40
  excludeTests: z.ZodOptional<z.ZodBoolean>;
40
41
  funding: z.ZodOptional<z.ZodString>;
41
42
  guide: z.ZodOptional<z.ZodString>;
@@ -92,6 +93,7 @@ declare const optionsSchema: z.ZodObject<{
92
93
  excludeLintYml: z.ZodOptional<z.ZodBoolean>;
93
94
  excludeReleases: z.ZodOptional<z.ZodBoolean>;
94
95
  excludeRenovate: z.ZodOptional<z.ZodBoolean>;
96
+ excludeTemplatedBy: z.ZodOptional<z.ZodBoolean>;
95
97
  excludeTests: z.ZodOptional<z.ZodBoolean>;
96
98
  funding: z.ZodOptional<z.ZodString>;
97
99
  guide: z.ZodOptional<z.ZodString>;
@@ -112,13 +114,13 @@ declare const optionsSchema: z.ZodObject<{
112
114
  skipUninstall: z.ZodOptional<z.ZodBoolean>;
113
115
  title: z.ZodOptional<z.ZodString>;
114
116
  }, "strip", z.ZodTypeAny, {
115
- description?: string | undefined;
116
117
  offline?: boolean | undefined;
117
118
  access?: "public" | "restricted" | undefined;
118
119
  author?: string | undefined;
119
120
  auto?: boolean | undefined;
120
121
  base?: "common" | "everything" | "minimal" | "prompt" | undefined;
121
122
  bin?: string | undefined;
123
+ description?: string | undefined;
122
124
  directory?: string | undefined;
123
125
  email?: {
124
126
  github: string;
@@ -150,6 +152,7 @@ declare const optionsSchema: z.ZodObject<{
150
152
  excludeLintYml?: boolean | undefined;
151
153
  excludeReleases?: boolean | undefined;
152
154
  excludeRenovate?: boolean | undefined;
155
+ excludeTemplatedBy?: boolean | undefined;
153
156
  excludeTests?: boolean | undefined;
154
157
  preserveGeneratedFrom?: boolean | undefined;
155
158
  skipAllContributorsApi?: boolean | undefined;
@@ -161,13 +164,13 @@ declare const optionsSchema: z.ZodObject<{
161
164
  guideTitle?: string | undefined;
162
165
  logoAlt?: string | undefined;
163
166
  }, {
164
- description?: string | undefined;
165
167
  offline?: boolean | undefined;
166
168
  access?: "public" | "restricted" | undefined;
167
169
  author?: string | undefined;
168
170
  auto?: boolean | undefined;
169
171
  base?: "common" | "everything" | "minimal" | "prompt" | undefined;
170
172
  bin?: string | undefined;
173
+ description?: string | undefined;
171
174
  directory?: string | undefined;
172
175
  email?: {
173
176
  github: string;
@@ -199,6 +202,7 @@ declare const optionsSchema: z.ZodObject<{
199
202
  excludeLintYml?: boolean | undefined;
200
203
  excludeReleases?: boolean | undefined;
201
204
  excludeRenovate?: boolean | undefined;
205
+ excludeTemplatedBy?: boolean | undefined;
202
206
  excludeTests?: boolean | undefined;
203
207
  preserveGeneratedFrom?: boolean | undefined;
204
208
  skipAllContributorsApi?: boolean | undefined;
@@ -34,6 +34,7 @@ const optionsSchemaShape = {
34
34
  excludeLintYml: z.boolean().optional(),
35
35
  excludeReleases: z.boolean().optional(),
36
36
  excludeRenovate: z.boolean().optional(),
37
+ excludeTemplatedBy: z.boolean().optional(),
37
38
  excludeTests: z.boolean().optional(),
38
39
  funding: z.string().optional(),
39
40
  guide: z.string().url().optional(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/optionsSchema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const optionsSchemaShape = {\n\taccess: z.union([z.literal(\"public\"), z.literal(\"restricted\")]).optional(),\n\tauthor: z.string().optional(),\n\tauto: z.boolean().optional(),\n\tbase: z\n\t\t.union([\n\t\t\tz.literal(\"common\"),\n\t\t\tz.literal(\"everything\"),\n\t\t\tz.literal(\"minimal\"),\n\t\t\tz.literal(\"prompt\"),\n\t\t])\n\t\t.optional(),\n\tbin: z.string().optional(),\n\tdescription: z.string().optional(),\n\tdirectory: z.string().optional(),\n\temail: z\n\t\t.object({\n\t\t\tgithub: z.string().email(),\n\t\t\tnpm: z.string().email(),\n\t\t})\n\t\t.optional(),\n\texcludeAllContributors: z.boolean().optional(),\n\texcludeBuild: z.boolean().optional(),\n\texcludeCompliance: z.boolean().optional(),\n\texcludeLintESLint: z.boolean().optional(),\n\texcludeLintJSDoc: z.boolean().optional(),\n\texcludeLintJson: z.boolean().optional(),\n\texcludeLintKnip: z.boolean().optional(),\n\texcludeLintMd: z.boolean().optional(),\n\texcludeLintPackageJson: z.boolean().optional(),\n\texcludeLintPackages: z.boolean().optional(),\n\texcludeLintPerfectionist: z.boolean().optional(),\n\texcludeLintRegex: z.boolean().optional(),\n\texcludeLintSpelling: z.boolean().optional(),\n\texcludeLintStrict: z.boolean().optional(),\n\texcludeLintStylistic: z.boolean().optional(),\n\texcludeLintYml: z.boolean().optional(),\n\texcludeReleases: z.boolean().optional(),\n\texcludeRenovate: z.boolean().optional(),\n\texcludeTests: z.boolean().optional(),\n\tfunding: z.string().optional(),\n\tguide: z.string().url().optional(),\n\tguideTitle: z.string().optional(),\n\tkeywords: z.array(z.string()).optional(),\n\tlogo: z.string().optional(),\n\tlogoAlt: z.string().optional(),\n\tmode: z\n\t\t.union([z.literal(\"create\"), z.literal(\"initialize\"), z.literal(\"migrate\")])\n\t\t.optional(),\n\toffline: z.boolean().optional(),\n\towner: z.string().optional(),\n\tpreserveGeneratedFrom: z.boolean().optional(),\n\trepository: z.string().optional(),\n\tskipAllContributorsApi: z.boolean().optional(),\n\tskipGitHubApi: z.boolean().optional(),\n\tskipInstall: z.boolean().optional(),\n\tskipRemoval: z.boolean().optional(),\n\tskipRestore: z.boolean().optional(),\n\tskipUninstall: z.boolean().optional(),\n\ttitle: z.string().optional(),\n};\n\nexport const optionsSchema = z.object(optionsSchemaShape);\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/optionsSchema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const optionsSchemaShape = {\n\taccess: z.union([z.literal(\"public\"), z.literal(\"restricted\")]).optional(),\n\tauthor: z.string().optional(),\n\tauto: z.boolean().optional(),\n\tbase: z\n\t\t.union([\n\t\t\tz.literal(\"common\"),\n\t\t\tz.literal(\"everything\"),\n\t\t\tz.literal(\"minimal\"),\n\t\t\tz.literal(\"prompt\"),\n\t\t])\n\t\t.optional(),\n\tbin: z.string().optional(),\n\tdescription: z.string().optional(),\n\tdirectory: z.string().optional(),\n\temail: z\n\t\t.object({\n\t\t\tgithub: z.string().email(),\n\t\t\tnpm: z.string().email(),\n\t\t})\n\t\t.optional(),\n\texcludeAllContributors: z.boolean().optional(),\n\texcludeBuild: z.boolean().optional(),\n\texcludeCompliance: z.boolean().optional(),\n\texcludeLintESLint: z.boolean().optional(),\n\texcludeLintJSDoc: z.boolean().optional(),\n\texcludeLintJson: z.boolean().optional(),\n\texcludeLintKnip: z.boolean().optional(),\n\texcludeLintMd: z.boolean().optional(),\n\texcludeLintPackageJson: z.boolean().optional(),\n\texcludeLintPackages: z.boolean().optional(),\n\texcludeLintPerfectionist: z.boolean().optional(),\n\texcludeLintRegex: z.boolean().optional(),\n\texcludeLintSpelling: z.boolean().optional(),\n\texcludeLintStrict: z.boolean().optional(),\n\texcludeLintStylistic: z.boolean().optional(),\n\texcludeLintYml: z.boolean().optional(),\n\texcludeReleases: z.boolean().optional(),\n\texcludeRenovate: z.boolean().optional(),\n\texcludeTemplatedBy: z.boolean().optional(),\n\texcludeTests: z.boolean().optional(),\n\tfunding: z.string().optional(),\n\tguide: z.string().url().optional(),\n\tguideTitle: z.string().optional(),\n\tkeywords: z.array(z.string()).optional(),\n\tlogo: z.string().optional(),\n\tlogoAlt: z.string().optional(),\n\tmode: z\n\t\t.union([z.literal(\"create\"), z.literal(\"initialize\"), z.literal(\"migrate\")])\n\t\t.optional(),\n\toffline: z.boolean().optional(),\n\towner: z.string().optional(),\n\tpreserveGeneratedFrom: z.boolean().optional(),\n\trepository: z.string().optional(),\n\tskipAllContributorsApi: z.boolean().optional(),\n\tskipGitHubApi: z.boolean().optional(),\n\tskipInstall: z.boolean().optional(),\n\tskipRemoval: z.boolean().optional(),\n\tskipRestore: z.boolean().optional(),\n\tskipUninstall: z.boolean().optional(),\n\ttitle: z.string().optional(),\n};\n\nexport const optionsSchema = z.object(optionsSchemaShape);\n"],"mappings":"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","names":[]}
@@ -13,10 +13,10 @@ interface OptionsParseCancelled {
13
13
  error?: string | z.ZodError<object>;
14
14
  options: object;
15
15
  }
16
+ type OptionsParseResult = OptionsParseCancelled | OptionsParseSuccess;
16
17
  interface OptionsParseSuccess extends GitHubAndOptions {
17
18
  cancelled: false;
18
19
  }
19
- type OptionsParseResult = OptionsParseCancelled | OptionsParseSuccess;
20
20
  declare function readOptions(args: string[], mode: Mode, promptedOptions?: PromptedOptions): Promise<OptionsParseResult>;
21
21
 
22
22
  export { type GitHubAndOptions, type OptionsParseCancelled, type OptionsParseResult, type OptionsParseSuccess, readOptions };
@@ -50,6 +50,7 @@ async function readOptions(args, mode, promptedOptions = {}) {
50
50
  excludeLintYml: values["exclude-lint-yml"],
51
51
  excludeReleases: values["exclude-releases"],
52
52
  excludeRenovate: values["exclude-renovate"],
53
+ excludeTemplatedBy: values["exclude-templated-by"],
53
54
  excludeTests: values["unit-tests"],
54
55
  funding: values.funding,
55
56
  guide: values.guide,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/readOptions.ts"],"sourcesContent":["import { parseArgs } from \"node:util\";\nimport { titleCase } from \"title-case\";\nimport { z } from \"zod\";\n\nimport { withSpinner } from \"../cli/spinners.js\";\nimport { Mode, OptionsGuide, PromptedOptions } from \"../types.js\";\nimport { Options, OptionsLogo } from \"../types.js\";\nimport { allArgOptions } from \"./args.js\";\nimport { augmentOptionsWithExcludes } from \"./augmentOptionsWithExcludes.js\";\nimport { createOptionDefaults } from \"./createOptionDefaults/index.js\";\nimport { detectEmailRedundancy } from \"./detectEmailRedundancy.js\";\nimport { ensureRepositoryExists } from \"./ensureRepositoryExists.js\";\nimport { getBase } from \"./getBase.js\";\nimport { getGitHub, GitHub } from \"./getGitHub.js\";\nimport { getPrefillOrPromptedOption } from \"./getPrefillOrPromptedOption.js\";\nimport { logInferredOptions } from \"./logInferredOptions.js\";\nimport { optionsSchema } from \"./optionsSchema.js\";\n\nexport interface GitHubAndOptions {\n\tgithub: GitHub | undefined;\n\toptions: Options;\n}\n\nexport interface OptionsParseCancelled {\n\tcancelled: true;\n\terror?: string | z.ZodError<object>;\n\toptions: object;\n}\n\nexport interface OptionsParseSuccess extends GitHubAndOptions {\n\tcancelled: false;\n}\n\nexport type OptionsParseResult = OptionsParseCancelled | OptionsParseSuccess;\n\nexport async function readOptions(\n\targs: string[],\n\tmode: Mode,\n\tpromptedOptions: PromptedOptions = {},\n): Promise<OptionsParseResult> {\n\tconst defaults = createOptionDefaults(promptedOptions);\n\tconst { values } = parseArgs({\n\t\targs,\n\t\toptions: allArgOptions,\n\t\tstrict: false,\n\t\ttokens: true,\n\t});\n\n\tif (mode === \"migrate\" && !values.base) {\n\t\tvalues.base = await getBase();\n\t}\n\n\tconst mappedOptions = {\n\t\taccess: values.access,\n\t\tauthor: values.author,\n\t\tauto: !!values.auto,\n\t\tbase: values.base,\n\t\tbin: values.bin,\n\t\tdescription: values.description,\n\t\tdirectory: values.directory,\n\t\temail:\n\t\t\t(values.email ?? values[\"email-github\"] ?? values[\"email-npm\"])\n\t\t\t\t? {\n\t\t\t\t\t\tgithub: values.email ?? values[\"email-github\"],\n\t\t\t\t\t\tnpm: values.email ?? values[\"email-npm\"],\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\texcludeAllContributors: values[\"exclude-all-contributors\"],\n\t\texcludeCompliance: values[\"exclude-compliance\"],\n\t\texcludeLintESLint: values[\"exclude-lint-eslint\"],\n\t\texcludeLintJSDoc: values[\"exclude-lint-jsdoc\"],\n\t\texcludeLintJson: values[\"exclude-lint-json\"],\n\t\texcludeLintKnip: values[\"exclude-lint-knip\"],\n\t\texcludeLintMd: values[\"exclude-lint-md\"],\n\t\texcludeLintPackageJson: values[\"exclude-lint-package-json\"],\n\t\texcludeLintPackages: values[\"exclude-lint-packages\"],\n\t\texcludeLintPerfectionist: values[\"exclude-lint-perfectionist\"],\n\t\texcludeLintRegex: values[\"exclude-lint-regex\"],\n\t\texcludeLintSpelling: values[\"exclude-lint-spelling\"],\n\t\texcludeLintStrict: values[\"exclude-lint-strict\"],\n\t\texcludeLintYml: values[\"exclude-lint-yml\"],\n\t\texcludeReleases: values[\"exclude-releases\"],\n\t\texcludeRenovate: values[\"exclude-renovate\"],\n\t\texcludeTests: values[\"unit-tests\"],\n\t\tfunding: values.funding,\n\t\tguide: values.guide,\n\t\tguideTitle: values[\"guide-title\"],\n\t\tlogo: values.logo,\n\t\tlogoAlt: values[\"logo-alt\"],\n\t\toffline: values.offline,\n\t\towner: values.owner,\n\t\tpreserveGeneratedFrom:\n\t\t\tvalues[\"preserve-generated-from\"] ?? values.owner === \"JoshuaKGoldberg\",\n\t\trepository: values.repository,\n\t\tskipAllContributorsApi:\n\t\t\tvalues[\"skip-all-contributors-api\"] ?? values.offline,\n\t\tskipGitHubApi: values[\"skip-github-api\"] ?? values.offline,\n\t\tskipInstall: values[\"skip-install\"],\n\t\tskipRemoval: values[\"skip-removal\"],\n\t\tskipRestore: values[\"skip-restore\"],\n\t\tskipUninstall: values[\"skip-uninstall\"],\n\t\ttitle: values.title,\n\t};\n\n\tconst emailError = detectEmailRedundancy(values);\n\tif (emailError) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: emailError,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst optionsParseResult = optionsSchema.safeParse(mappedOptions);\n\n\tif (!optionsParseResult.success) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: optionsParseResult.error,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst options = optionsParseResult.data;\n\n\tconst ownerOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.owner,\n\t\tmessage: \"What organization or user will the repository be under?\",\n\t\tname: \"owner\",\n\t\tprovided: options.owner,\n\t});\n\n\toptions.owner ??= ownerOption.value;\n\n\tif (!options.owner) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: ownerOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst repositoryOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.repository,\n\t\tmessage: \"What will the kebab-case name of the repository be?\",\n\t\tname: \"repository\",\n\t\tprovided: options.repository,\n\t});\n\n\toptions.repository ??= repositoryOption.value;\n\n\tif (!options.repository) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: repositoryOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst { github, repository } = await ensureRepositoryExists(\n\t\toptions.skipGitHubApi\n\t\t\t? undefined\n\t\t\t: await withSpinner(\"Checking GitHub authentication\", getGitHub),\n\t\t{\n\t\t\tmode,\n\t\t\towner: options.owner,\n\t\t\trepository: options.repository,\n\t\t},\n\t);\n\n\tif (!repository) {\n\t\treturn { cancelled: true, error: repositoryOption.error, options };\n\t}\n\n\tconst descriptionOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.description()) ?? \"A very lovely package. Hooray!\",\n\t\tmessage: \"How would you describe the new package?\",\n\t\tname: \"description\",\n\t\tprovided: options.description,\n\t});\n\n\toptions.description ??= descriptionOption.value;\n\n\tif (!options.description) {\n\t\treturn { cancelled: true, error: descriptionOption.error, options };\n\t}\n\n\tconst titleOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.title()) ?? titleCase(repository).replaceAll(\"-\", \" \"),\n\t\tmessage: \"What will the Title Case title of the repository be?\",\n\t\tname: \"title\",\n\t\tprovided: options.title,\n\t});\n\n\toptions.title ??= titleOption.value;\n\n\tif (!options.title) {\n\t\treturn { cancelled: true, error: titleOption.error, options };\n\t}\n\n\tlet guide: OptionsGuide | undefined;\n\n\tif (options.guide) {\n\t\tif (options.guideTitle) {\n\t\t\tguide = { href: options.guide, title: options.guideTitle };\n\t\t} else {\n\t\t\tconst titleOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the title text for the guide?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!titleOption.value) {\n\t\t\t\treturn { cancelled: true, error: titleOption.error, options };\n\t\t\t}\n\n\t\t\tguide = { href: options.guide, title: titleOption.value };\n\t\t}\n\t}\n\n\tlet logo: OptionsLogo | undefined;\n\n\tif (options.logo) {\n\t\tif (options.logoAlt) {\n\t\t\tlogo = { alt: options.logoAlt, src: options.logo };\n\t\t} else {\n\t\t\tconst logoAltOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the alt text (non-visual description) of the logo?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!logoAltOption.value) {\n\t\t\t\treturn { cancelled: true, error: logoAltOption.error, options };\n\t\t\t}\n\n\t\t\tlogo = { alt: logoAltOption.value, src: options.logo };\n\t\t}\n\t}\n\n\tlet email = options.email ?? (await defaults.email());\n\n\tif (!email) {\n\t\tconst emailOption = await getPrefillOrPromptedOption({\n\t\t\tauto: !!mappedOptions.auto,\n\t\t\tmessage: \"What email should be used in package.json and .md files?\",\n\t\t\tname: \"email\",\n\t\t});\n\n\t\tif (!emailOption.value) {\n\t\t\treturn { cancelled: true, error: emailOption.error, options };\n\t\t}\n\n\t\temail = { github: emailOption.value, npm: emailOption.value };\n\t}\n\n\tconst augmentedOptions = await augmentOptionsWithExcludes({\n\t\t...options,\n\t\taccess: options.access ?? \"public\",\n\t\tauthor:\n\t\t\toptions.author ?? (await defaults.author()) ?? (await defaults.owner()),\n\t\tbin: options.bin ?? (await defaults.bin()),\n\t\tdescription: options.description,\n\t\tdirectory:\n\t\t\toptions.directory ?? promptedOptions.directory ?? options.repository,\n\t\temail,\n\t\tfunding: options.funding ?? (await defaults.funding()),\n\t\tguide: guide ?? (await defaults.guide()),\n\t\tlogo: logo ?? (await defaults.logo()),\n\t\tmode,\n\t\towner: options.owner,\n\t\trepository,\n\t\ttitle: options.title,\n\t});\n\n\tif (!augmentedOptions) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tif (options.auto) {\n\t\tlogInferredOptions(augmentedOptions);\n\t}\n\n\treturn {\n\t\tcancelled: false,\n\t\tgithub,\n\t\toptions: augmentedOptions,\n\t};\n}\n"],"mappings":"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","names":["titleOption"]}
1
+ {"version":3,"sources":["../../../src/shared/options/readOptions.ts"],"sourcesContent":["import { parseArgs } from \"node:util\";\nimport { titleCase } from \"title-case\";\nimport { z } from \"zod\";\n\nimport { withSpinner } from \"../cli/spinners.js\";\nimport { Mode, OptionsGuide, PromptedOptions } from \"../types.js\";\nimport { Options, OptionsLogo } from \"../types.js\";\nimport { allArgOptions } from \"./args.js\";\nimport { augmentOptionsWithExcludes } from \"./augmentOptionsWithExcludes.js\";\nimport { createOptionDefaults } from \"./createOptionDefaults/index.js\";\nimport { detectEmailRedundancy } from \"./detectEmailRedundancy.js\";\nimport { ensureRepositoryExists } from \"./ensureRepositoryExists.js\";\nimport { getBase } from \"./getBase.js\";\nimport { getGitHub, GitHub } from \"./getGitHub.js\";\nimport { getPrefillOrPromptedOption } from \"./getPrefillOrPromptedOption.js\";\nimport { logInferredOptions } from \"./logInferredOptions.js\";\nimport { optionsSchema } from \"./optionsSchema.js\";\n\nexport interface GitHubAndOptions {\n\tgithub: GitHub | undefined;\n\toptions: Options;\n}\n\nexport interface OptionsParseCancelled {\n\tcancelled: true;\n\terror?: string | z.ZodError<object>;\n\toptions: object;\n}\n\nexport type OptionsParseResult = OptionsParseCancelled | OptionsParseSuccess;\n\nexport interface OptionsParseSuccess extends GitHubAndOptions {\n\tcancelled: false;\n}\n\nexport async function readOptions(\n\targs: string[],\n\tmode: Mode,\n\tpromptedOptions: PromptedOptions = {},\n): Promise<OptionsParseResult> {\n\tconst defaults = createOptionDefaults(promptedOptions);\n\tconst { values } = parseArgs({\n\t\targs,\n\t\toptions: allArgOptions,\n\t\tstrict: false,\n\t\ttokens: true,\n\t});\n\n\tif (mode === \"migrate\" && !values.base) {\n\t\tvalues.base = await getBase();\n\t}\n\n\tconst mappedOptions = {\n\t\taccess: values.access,\n\t\tauthor: values.author,\n\t\tauto: !!values.auto,\n\t\tbase: values.base,\n\t\tbin: values.bin,\n\t\tdescription: values.description,\n\t\tdirectory: values.directory,\n\t\temail:\n\t\t\t(values.email ?? values[\"email-github\"] ?? values[\"email-npm\"])\n\t\t\t\t? {\n\t\t\t\t\t\tgithub: values.email ?? values[\"email-github\"],\n\t\t\t\t\t\tnpm: values.email ?? values[\"email-npm\"],\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\texcludeAllContributors: values[\"exclude-all-contributors\"],\n\t\texcludeCompliance: values[\"exclude-compliance\"],\n\t\texcludeLintESLint: values[\"exclude-lint-eslint\"],\n\t\texcludeLintJSDoc: values[\"exclude-lint-jsdoc\"],\n\t\texcludeLintJson: values[\"exclude-lint-json\"],\n\t\texcludeLintKnip: values[\"exclude-lint-knip\"],\n\t\texcludeLintMd: values[\"exclude-lint-md\"],\n\t\texcludeLintPackageJson: values[\"exclude-lint-package-json\"],\n\t\texcludeLintPackages: values[\"exclude-lint-packages\"],\n\t\texcludeLintPerfectionist: values[\"exclude-lint-perfectionist\"],\n\t\texcludeLintRegex: values[\"exclude-lint-regex\"],\n\t\texcludeLintSpelling: values[\"exclude-lint-spelling\"],\n\t\texcludeLintStrict: values[\"exclude-lint-strict\"],\n\t\texcludeLintYml: values[\"exclude-lint-yml\"],\n\t\texcludeReleases: values[\"exclude-releases\"],\n\t\texcludeRenovate: values[\"exclude-renovate\"],\n\t\texcludeTemplatedBy: values[\"exclude-templated-by\"],\n\t\texcludeTests: values[\"unit-tests\"],\n\t\tfunding: values.funding,\n\t\tguide: values.guide,\n\t\tguideTitle: values[\"guide-title\"],\n\t\tlogo: values.logo,\n\t\tlogoAlt: values[\"logo-alt\"],\n\t\toffline: values.offline,\n\t\towner: values.owner,\n\t\tpreserveGeneratedFrom:\n\t\t\tvalues[\"preserve-generated-from\"] ?? values.owner === \"JoshuaKGoldberg\",\n\t\trepository: values.repository,\n\t\tskipAllContributorsApi:\n\t\t\tvalues[\"skip-all-contributors-api\"] ?? values.offline,\n\t\tskipGitHubApi: values[\"skip-github-api\"] ?? values.offline,\n\t\tskipInstall: values[\"skip-install\"],\n\t\tskipRemoval: values[\"skip-removal\"],\n\t\tskipRestore: values[\"skip-restore\"],\n\t\tskipUninstall: values[\"skip-uninstall\"],\n\t\ttitle: values.title,\n\t};\n\n\tconst emailError = detectEmailRedundancy(values);\n\tif (emailError) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: emailError,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst optionsParseResult = optionsSchema.safeParse(mappedOptions);\n\n\tif (!optionsParseResult.success) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: optionsParseResult.error,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst options = optionsParseResult.data;\n\n\tconst ownerOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.owner,\n\t\tmessage: \"What organization or user will the repository be under?\",\n\t\tname: \"owner\",\n\t\tprovided: options.owner,\n\t});\n\n\toptions.owner ??= ownerOption.value;\n\n\tif (!options.owner) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: ownerOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst repositoryOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.repository,\n\t\tmessage: \"What will the kebab-case name of the repository be?\",\n\t\tname: \"repository\",\n\t\tprovided: options.repository,\n\t});\n\n\toptions.repository ??= repositoryOption.value;\n\n\tif (!options.repository) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: repositoryOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst { github, repository } = await ensureRepositoryExists(\n\t\toptions.skipGitHubApi\n\t\t\t? undefined\n\t\t\t: await withSpinner(\"Checking GitHub authentication\", getGitHub),\n\t\t{\n\t\t\tmode,\n\t\t\towner: options.owner,\n\t\t\trepository: options.repository,\n\t\t},\n\t);\n\n\tif (!repository) {\n\t\treturn { cancelled: true, error: repositoryOption.error, options };\n\t}\n\n\tconst descriptionOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.description()) ?? \"A very lovely package. Hooray!\",\n\t\tmessage: \"How would you describe the new package?\",\n\t\tname: \"description\",\n\t\tprovided: options.description,\n\t});\n\n\toptions.description ??= descriptionOption.value;\n\n\tif (!options.description) {\n\t\treturn { cancelled: true, error: descriptionOption.error, options };\n\t}\n\n\tconst titleOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.title()) ?? titleCase(repository).replaceAll(\"-\", \" \"),\n\t\tmessage: \"What will the Title Case title of the repository be?\",\n\t\tname: \"title\",\n\t\tprovided: options.title,\n\t});\n\n\toptions.title ??= titleOption.value;\n\n\tif (!options.title) {\n\t\treturn { cancelled: true, error: titleOption.error, options };\n\t}\n\n\tlet guide: OptionsGuide | undefined;\n\n\tif (options.guide) {\n\t\tif (options.guideTitle) {\n\t\t\tguide = { href: options.guide, title: options.guideTitle };\n\t\t} else {\n\t\t\tconst titleOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the title text for the guide?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!titleOption.value) {\n\t\t\t\treturn { cancelled: true, error: titleOption.error, options };\n\t\t\t}\n\n\t\t\tguide = { href: options.guide, title: titleOption.value };\n\t\t}\n\t}\n\n\tlet logo: OptionsLogo | undefined;\n\n\tif (options.logo) {\n\t\tif (options.logoAlt) {\n\t\t\tlogo = { alt: options.logoAlt, src: options.logo };\n\t\t} else {\n\t\t\tconst logoAltOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the alt text (non-visual description) of the logo?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!logoAltOption.value) {\n\t\t\t\treturn { cancelled: true, error: logoAltOption.error, options };\n\t\t\t}\n\n\t\t\tlogo = { alt: logoAltOption.value, src: options.logo };\n\t\t}\n\t}\n\n\tlet email = options.email ?? (await defaults.email());\n\n\tif (!email) {\n\t\tconst emailOption = await getPrefillOrPromptedOption({\n\t\t\tauto: !!mappedOptions.auto,\n\t\t\tmessage: \"What email should be used in package.json and .md files?\",\n\t\t\tname: \"email\",\n\t\t});\n\n\t\tif (!emailOption.value) {\n\t\t\treturn { cancelled: true, error: emailOption.error, options };\n\t\t}\n\n\t\temail = { github: emailOption.value, npm: emailOption.value };\n\t}\n\n\tconst augmentedOptions = await augmentOptionsWithExcludes({\n\t\t...options,\n\t\taccess: options.access ?? \"public\",\n\t\tauthor:\n\t\t\toptions.author ?? (await defaults.author()) ?? (await defaults.owner()),\n\t\tbin: options.bin ?? (await defaults.bin()),\n\t\tdescription: options.description,\n\t\tdirectory:\n\t\t\toptions.directory ?? promptedOptions.directory ?? options.repository,\n\t\temail,\n\t\tfunding: options.funding ?? (await defaults.funding()),\n\t\tguide: guide ?? (await defaults.guide()),\n\t\tlogo: logo ?? (await defaults.logo()),\n\t\tmode,\n\t\towner: options.owner,\n\t\trepository,\n\t\ttitle: options.title,\n\t});\n\n\tif (!augmentedOptions) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tif (options.auto) {\n\t\tlogInferredOptions(augmentedOptions);\n\t}\n\n\treturn {\n\t\tcancelled: false,\n\t\tgithub,\n\t\toptions: augmentedOptions,\n\t};\n}\n"],"mappings":"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","names":["titleOption"]}
@@ -2,29 +2,15 @@ import { z } from 'zod';
2
2
  import { StatusCode } from './codes.js';
3
3
 
4
4
  interface AllContributorContributor {
5
+ avatar_url: string;
5
6
  contributions: string[];
6
7
  login: string;
8
+ name: string;
9
+ profile: string;
7
10
  }
8
11
  interface AllContributorsData {
9
12
  contributors: AllContributorContributor[];
10
13
  }
11
- interface PartialPackageData {
12
- author?: {
13
- email: string;
14
- name: string;
15
- } | string;
16
- bin?: string;
17
- dependencies?: Record<string, string>;
18
- description?: string;
19
- devDependencies?: Record<string, string>;
20
- email?: string;
21
- name?: string;
22
- repository?: {
23
- type: string;
24
- url: string;
25
- } | string;
26
- scripts?: Record<string, string>;
27
- }
28
14
  type OptionsAccess = "public" | "restricted";
29
15
  type OptionsBase = "common" | "everything" | "minimal" | "prompt";
30
16
  interface OptionsEmail {
@@ -39,6 +25,27 @@ interface OptionsLogo {
39
25
  alt: string;
40
26
  src: string;
41
27
  }
28
+ interface PartialPackageData {
29
+ author?: string | {
30
+ email: string;
31
+ name: string;
32
+ };
33
+ bin?: string;
34
+ dependencies?: Record<string, string>;
35
+ description?: string;
36
+ devDependencies?: Record<string, string>;
37
+ email?: string;
38
+ engines?: {
39
+ node?: string;
40
+ };
41
+ name?: string;
42
+ repository?: string | {
43
+ type: string;
44
+ url: string;
45
+ };
46
+ scripts?: Record<string, string>;
47
+ version?: string;
48
+ }
42
49
  /**
43
50
  * All runtime options that may (or must) be specified for setup.
44
51
  */
@@ -68,6 +75,7 @@ interface Options {
68
75
  excludeLintYml?: boolean;
69
76
  excludeReleases?: boolean;
70
77
  excludeRenovate?: boolean;
78
+ excludeTemplatedBy?: boolean;
71
79
  excludeTests?: boolean;
72
80
  funding?: string;
73
81
  guide?: OptionsGuide;
@@ -89,6 +97,13 @@ interface Options {
89
97
  /**
90
98
  * Options that might be suggested by how the user is running setup.
91
99
  */
100
+ type Mode = "create" | "initialize" | "migrate";
101
+ interface ModeResult {
102
+ code: StatusCode;
103
+ error?: string | z.ZodError<object>;
104
+ options: Partial<Options>;
105
+ }
106
+ type ModeRunner = (args: string[], promptedOptions?: PromptedOptions) => Promise<ModeResult>;
92
107
  interface PromptedOptions {
93
108
  /**
94
109
  * Directory for the repository, if it may differ from the repository name.
@@ -99,12 +114,5 @@ interface PromptedOptions {
99
114
  */
100
115
  repository?: string;
101
116
  }
102
- interface ModeResult {
103
- code: StatusCode;
104
- error?: string | z.ZodError<object>;
105
- options: Partial<Options>;
106
- }
107
- type ModeRunner = (args: string[], promptedOptions?: PromptedOptions) => Promise<ModeResult>;
108
- type Mode = "create" | "initialize" | "migrate";
109
117
 
110
118
  export type { AllContributorContributor, AllContributorsData, Mode, ModeResult, ModeRunner, Options, OptionsAccess, OptionsBase, OptionsEmail, OptionsGuide, OptionsLogo, PartialPackageData, PromptedOptions };
@@ -16,8 +16,8 @@ async function addOwnerAsAllContributor(octokit, options) {
16
16
  (contributor) => contributor.login === "JoshuaKGoldberg" ? { ...contributor, contributions: ["tool"] } : {
17
17
  ...contributor,
18
18
  contributions: Array.from(
19
- /* @__PURE__ */ new Set([...contributor.contributions, "tool"])
20
- )
19
+ /* @__PURE__ */ new Set(["tool", ...contributor.contributions])
20
+ ).sort()
21
21
  }
22
22
  );
23
23
  if (!contributors.some((contributor) => contributor.login === user)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/steps/addOwnerAsAllContributor.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\nimport { Octokit } from \"octokit\";\n\nimport { getGitHubUserAsAllContributor } from \"../shared/getGitHubUserAsAllContributor.js\";\nimport { readFileAsJson } from \"../shared/readFileAsJson.js\";\nimport { AllContributorsData, Options } from \"../shared/types.js\";\nimport { formatJson } from \"./writing/creation/formatters/formatJson.js\";\n\nexport async function addOwnerAsAllContributor(\n\toctokit: Octokit | undefined,\n\toptions: Pick<Options, \"offline\" | \"owner\">,\n) {\n\tconst user = await getGitHubUserAsAllContributor(octokit, options);\n\n\tconst existingContributors = (await readFileAsJson(\n\t\t\"./.all-contributorsrc\",\n\t)) as AllContributorsData;\n\tif (!isValidAllContributorsData(existingContributors)) {\n\t\tthrow new Error(\n\t\t\t`Invalid .all-contributorsrc: ${JSON.stringify(existingContributors)}`,\n\t\t);\n\t}\n\n\tconst contributors = existingContributors.contributors\n\t\t.filter(({ login }) => [\"JoshuaKGoldberg\", user].includes(login))\n\t\t.map((contributor) =>\n\t\t\tcontributor.login === \"JoshuaKGoldberg\"\n\t\t\t\t? { ...contributor, contributions: [\"tool\"] }\n\t\t\t\t: {\n\t\t\t\t\t\t...contributor,\n\t\t\t\t\t\tcontributions: Array.from(\n\t\t\t\t\t\t\tnew Set([...contributor.contributions, \"tool\"]),\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t);\n\n\tif (!contributors.some((contributor) => contributor.login === user)) {\n\t\tcontributors.push({\n\t\t\tcontributions: [\"tool\"],\n\t\t\tlogin: user,\n\t\t});\n\t}\n\n\tawait fs.writeFile(\n\t\t\"./.all-contributorsrc\",\n\t\tawait formatJson({\n\t\t\t...existingContributors,\n\t\t\tcontributors,\n\t\t}),\n\t);\n}\n\nfunction isValidAllContributorsData(\n\tvalue: unknown,\n): value is AllContributorsData {\n\treturn !!value && typeof value === \"object\" && \"contributors\" in value;\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AAGpB,SAAS,qCAAqC;AAC9C,SAAS,sBAAsB;AAE/B,SAAS,kBAAkB;AAE3B,eAAsB,yBACrB,SACA,SACC;AACD,QAAM,OAAO,MAAM,8BAA8B,SAAS,OAAO;AAEjE,QAAM,uBAAwB,MAAM;AAAA,IACnC;AAAA,EACD;AACA,MAAI,CAAC,2BAA2B,oBAAoB,GAAG;AACtD,UAAM,IAAI;AAAA,MACT,gCAAgC,KAAK,UAAU,oBAAoB,CAAC;AAAA,IACrE;AAAA,EACD;AAEA,QAAM,eAAe,qBAAqB,aACxC,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC,mBAAmB,IAAI,EAAE,SAAS,KAAK,CAAC,EAC/D;AAAA,IAAI,CAAC,gBACL,YAAY,UAAU,oBACnB,EAAE,GAAG,aAAa,eAAe,CAAC,MAAM,EAAE,IAC1C;AAAA,MACA,GAAG;AAAA,MACH,eAAe,MAAM;AAAA,QACpB,oBAAI,IAAI,CAAC,GAAG,YAAY,eAAe,MAAM,CAAC;AAAA,MAC/C;AAAA,IACD;AAAA,EACH;AAED,MAAI,CAAC,aAAa,KAAK,CAAC,gBAAgB,YAAY,UAAU,IAAI,GAAG;AACpE,iBAAa,KAAK;AAAA,MACjB,eAAe,CAAC,MAAM;AAAA,MACtB,OAAO;AAAA,IACR,CAAC;AAAA,EACF;AAEA,QAAM,GAAG;AAAA,IACR;AAAA,IACA,MAAM,WAAW;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACD,CAAC;AAAA,EACF;AACD;AAEA,SAAS,2BACR,OAC+B;AAC/B,SAAO,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,kBAAkB;AAClE;","names":[]}
1
+ {"version":3,"sources":["../../src/steps/addOwnerAsAllContributor.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\nimport { Octokit } from \"octokit\";\n\nimport { getGitHubUserAsAllContributor } from \"../shared/getGitHubUserAsAllContributor.js\";\nimport { readFileAsJson } from \"../shared/readFileAsJson.js\";\nimport {\n\tAllContributorContributor,\n\tAllContributorsData,\n\tOptions,\n} from \"../shared/types.js\";\nimport { formatJson } from \"./writing/creation/formatters/formatJson.js\";\n\nexport async function addOwnerAsAllContributor(\n\toctokit: Octokit | undefined,\n\toptions: Pick<Options, \"offline\" | \"owner\">,\n) {\n\tconst user = await getGitHubUserAsAllContributor(octokit, options);\n\n\tconst existingContributors = (await readFileAsJson(\n\t\t\"./.all-contributorsrc\",\n\t)) as AllContributorsData;\n\tif (!isValidAllContributorsData(existingContributors)) {\n\t\tthrow new Error(\n\t\t\t`Invalid .all-contributorsrc: ${JSON.stringify(existingContributors)}`,\n\t\t);\n\t}\n\n\tconst contributors = existingContributors.contributors\n\t\t.filter(({ login }) => [\"JoshuaKGoldberg\", user].includes(login))\n\t\t.map((contributor) =>\n\t\t\tcontributor.login === \"JoshuaKGoldberg\"\n\t\t\t\t? { ...contributor, contributions: [\"tool\"] }\n\t\t\t\t: {\n\t\t\t\t\t\t...contributor,\n\t\t\t\t\t\tcontributions: Array.from(\n\t\t\t\t\t\t\tnew Set([\"tool\", ...contributor.contributions]),\n\t\t\t\t\t\t).sort(),\n\t\t\t\t\t},\n\t\t);\n\n\tif (!contributors.some((contributor) => contributor.login === user)) {\n\t\tcontributors.push({\n\t\t\tcontributions: [\"tool\"],\n\t\t\tlogin: user,\n\t\t} as AllContributorContributor);\n\t}\n\n\tawait fs.writeFile(\n\t\t\"./.all-contributorsrc\",\n\t\tawait formatJson({\n\t\t\t...existingContributors,\n\t\t\tcontributors,\n\t\t}),\n\t);\n}\n\nfunction isValidAllContributorsData(\n\tvalue: unknown,\n): value is AllContributorsData {\n\treturn !!value && typeof value === \"object\" && \"contributors\" in value;\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AAGpB,SAAS,qCAAqC;AAC9C,SAAS,sBAAsB;AAM/B,SAAS,kBAAkB;AAE3B,eAAsB,yBACrB,SACA,SACC;AACD,QAAM,OAAO,MAAM,8BAA8B,SAAS,OAAO;AAEjE,QAAM,uBAAwB,MAAM;AAAA,IACnC;AAAA,EACD;AACA,MAAI,CAAC,2BAA2B,oBAAoB,GAAG;AACtD,UAAM,IAAI;AAAA,MACT,gCAAgC,KAAK,UAAU,oBAAoB,CAAC;AAAA,IACrE;AAAA,EACD;AAEA,QAAM,eAAe,qBAAqB,aACxC,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC,mBAAmB,IAAI,EAAE,SAAS,KAAK,CAAC,EAC/D;AAAA,IAAI,CAAC,gBACL,YAAY,UAAU,oBACnB,EAAE,GAAG,aAAa,eAAe,CAAC,MAAM,EAAE,IAC1C;AAAA,MACA,GAAG;AAAA,MACH,eAAe,MAAM;AAAA,QACpB,oBAAI,IAAI,CAAC,QAAQ,GAAG,YAAY,aAAa,CAAC;AAAA,MAC/C,EAAE,KAAK;AAAA,IACR;AAAA,EACH;AAED,MAAI,CAAC,aAAa,KAAK,CAAC,gBAAgB,YAAY,UAAU,IAAI,GAAG;AACpE,iBAAa,KAAK;AAAA,MACjB,eAAe,CAAC,MAAM;AAAA,MACtB,OAAO;AAAA,IACR,CAA8B;AAAA,EAC/B;AAEA,QAAM,GAAG;AAAA,IACR;AAAA,IACA,MAAM,WAAW;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,IACD,CAAC;AAAA,EACF;AACD;AAEA,SAAS,2BACR,OAC+B;AAC/B,SAAO,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,kBAAkB;AAClE;","names":[]}
@@ -16,7 +16,6 @@ const globPaths = [
16
16
  ".eslintrc",
17
17
  "CODE_OF_CONDUCT.md",
18
18
  "CONTRIBUTING.md",
19
- ".npmpackagejsonlintrc.json",
20
19
  "codecov.yml",
21
20
  "DEVELOPMENT.md",
22
21
  "dist",
@@ -25,14 +24,14 @@ const globPaths = [
25
24
  "travis.yml",
26
25
  "yarn.lock"
27
26
  ];
28
- function extensions(base, ...extensions2) {
29
- return extensions2.map((extension) => [base, extension].join("."));
30
- }
31
27
  async function clearUnnecessaryFiles() {
32
28
  for (const globPath of globPaths) {
33
29
  await fs.rm(globPath, { force: true, recursive: true });
34
30
  }
35
31
  }
32
+ function extensions(base, ...extensions2) {
33
+ return extensions2.map((extension) => [base, extension].join("."));
34
+ }
36
35
  export {
37
36
  clearUnnecessaryFiles
38
37
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/steps/clearUnnecessaryFiles.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\n\nconst globPaths = [\n\t...extensions(\".babelrc\", \"cjs\", \"cts\", \"js\", \"json\", \"mjs\"),\n\t...extensions(\".eslintrc\", \"js\", \"json\", \"yml\"),\n\t...extensions(\".mocha\", \"cjs\", \"js\", \"json\", \"jsonc\", \"yaml\", \"yml\"),\n\t...extensions(\".prettierrc\", \"json\", \"json5\", \"yaml\", \"yml\"),\n\t...extensions(\"prettier.config\", \"js\", \"mjs\", \"cjs\"),\n\t...extensions(\"babel.config\", \"cjs\", \"cts\", \"js\", \"json\", \"mjs\"),\n\t...extensions(\"jest.config\", \"cjs\", \"js\", \"json\", \"mjs\", \"ts\"),\n\t\"./src/**/*.js\",\n\t\".circleci/config.yml\",\n\t\".github/codecov.yml\",\n\t\".babelrc\",\n\t\".npmignore\",\n\t\".eslintignore\",\n\t\".eslintrc\",\n\t\"CODE_OF_CONDUCT.md\",\n\t\"CONTRIBUTING.md\",\n\t\".npmpackagejsonlintrc.json\",\n\t\"codecov.yml\",\n\t\"DEVELOPMENT.md\",\n\t\"dist\",\n\t\"lib\",\n\t\"package-lock.json\",\n\t\"travis.yml\",\n\t\"yarn.lock\",\n];\n\nfunction extensions(base: string, ...extensions: string[]) {\n\treturn extensions.map((extension) => [base, extension].join(\".\"));\n}\n\nexport async function clearUnnecessaryFiles() {\n\tfor (const globPath of globPaths) {\n\t\tawait fs.rm(globPath, { force: true, recursive: true });\n\t}\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AAEpB,MAAM,YAAY;AAAA,EACjB,GAAG,WAAW,YAAY,OAAO,OAAO,MAAM,QAAQ,KAAK;AAAA,EAC3D,GAAG,WAAW,aAAa,MAAM,QAAQ,KAAK;AAAA,EAC9C,GAAG,WAAW,UAAU,OAAO,MAAM,QAAQ,SAAS,QAAQ,KAAK;AAAA,EACnE,GAAG,WAAW,eAAe,QAAQ,SAAS,QAAQ,KAAK;AAAA,EAC3D,GAAG,WAAW,mBAAmB,MAAM,OAAO,KAAK;AAAA,EACnD,GAAG,WAAW,gBAAgB,OAAO,OAAO,MAAM,QAAQ,KAAK;AAAA,EAC/D,GAAG,WAAW,eAAe,OAAO,MAAM,QAAQ,OAAO,IAAI;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,SAAS,WAAW,SAAiBA,aAAsB;AAC1D,SAAOA,YAAW,IAAI,CAAC,cAAc,CAAC,MAAM,SAAS,EAAE,KAAK,GAAG,CAAC;AACjE;AAEA,eAAsB,wBAAwB;AAC7C,aAAW,YAAY,WAAW;AACjC,UAAM,GAAG,GAAG,UAAU,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EACvD;AACD;","names":["extensions"]}
1
+ {"version":3,"sources":["../../src/steps/clearUnnecessaryFiles.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\n\nconst globPaths = [\n\t...extensions(\".babelrc\", \"cjs\", \"cts\", \"js\", \"json\", \"mjs\"),\n\t...extensions(\".eslintrc\", \"js\", \"json\", \"yml\"),\n\t...extensions(\".mocha\", \"cjs\", \"js\", \"json\", \"jsonc\", \"yaml\", \"yml\"),\n\t...extensions(\".prettierrc\", \"json\", \"json5\", \"yaml\", \"yml\"),\n\t...extensions(\"prettier.config\", \"js\", \"mjs\", \"cjs\"),\n\t...extensions(\"babel.config\", \"cjs\", \"cts\", \"js\", \"json\", \"mjs\"),\n\t...extensions(\"jest.config\", \"cjs\", \"js\", \"json\", \"mjs\", \"ts\"),\n\t\"./src/**/*.js\",\n\t\".circleci/config.yml\",\n\t\".github/codecov.yml\",\n\t\".babelrc\",\n\t\".npmignore\",\n\t\".eslintignore\",\n\t\".eslintrc\",\n\t\"CODE_OF_CONDUCT.md\",\n\t\"CONTRIBUTING.md\",\n\t\"codecov.yml\",\n\t\"DEVELOPMENT.md\",\n\t\"dist\",\n\t\"lib\",\n\t\"package-lock.json\",\n\t\"travis.yml\",\n\t\"yarn.lock\",\n];\n\nexport async function clearUnnecessaryFiles() {\n\tfor (const globPath of globPaths) {\n\t\tawait fs.rm(globPath, { force: true, recursive: true });\n\t}\n}\n\nfunction extensions(base: string, ...extensions: string[]) {\n\treturn extensions.map((extension) => [base, extension].join(\".\"));\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AAEpB,MAAM,YAAY;AAAA,EACjB,GAAG,WAAW,YAAY,OAAO,OAAO,MAAM,QAAQ,KAAK;AAAA,EAC3D,GAAG,WAAW,aAAa,MAAM,QAAQ,KAAK;AAAA,EAC9C,GAAG,WAAW,UAAU,OAAO,MAAM,QAAQ,SAAS,QAAQ,KAAK;AAAA,EACnE,GAAG,WAAW,eAAe,QAAQ,SAAS,QAAQ,KAAK;AAAA,EAC3D,GAAG,WAAW,mBAAmB,MAAM,OAAO,KAAK;AAAA,EACnD,GAAG,WAAW,gBAAgB,OAAO,OAAO,MAAM,QAAQ,KAAK;AAAA,EAC/D,GAAG,WAAW,eAAe,OAAO,MAAM,QAAQ,OAAO,IAAI;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,eAAsB,wBAAwB;AAC7C,aAAW,YAAY,WAAW;AACjC,UAAM,GAAG,GAAG,UAAU,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EACvD;AACD;AAEA,SAAS,WAAW,SAAiBA,aAAsB;AAC1D,SAAOA,YAAW,IAAI,CAAC,cAAc,CAAC,MAAM,SAAS,EAAE,KAAK,GAAG,CAAC;AACjE;","names":["extensions"]}
@@ -1,50 +1,53 @@
1
1
  import { execaCommand } from "execa";
2
+ import { isUsingCreateEngine } from "../shared/isUsingCreateEngine.js";
2
3
  import { readPackageData, removeDependencies } from "../shared/packages.js";
3
4
  async function finalizeDependencies(options) {
4
- const devDependencies = [
5
- "@eslint/js",
6
- "@types/eslint__js",
7
- "@types/node",
8
- "eslint",
9
- "eslint-plugin-n",
10
- "husky",
11
- "lint-staged",
12
- "prettier",
13
- "prettier-plugin-curly",
14
- "prettier-plugin-sh",
15
- "prettier-plugin-packagejson",
16
- "tsup",
17
- "typescript",
18
- "typescript-eslint",
19
- ...options.excludeAllContributors ? [] : ["all-contributors-cli"],
20
- ...options.excludeLintESLint ? [] : ["@eslint-community/eslint-plugin-eslint-comments"],
21
- ...options.excludeLintJSDoc ? [] : ["eslint-plugin-jsdoc"],
22
- ...options.excludeLintJson ? [] : ["eslint-plugin-jsonc"],
23
- ...options.excludeLintJson && options.excludeLintPackageJson ? [] : ["jsonc-eslint-parser"],
24
- ...options.excludeLintKnip ? [] : ["knip"],
25
- ...options.excludeLintMd ? [] : [
26
- "@types/eslint-plugin-markdown",
27
- "eslint-plugin-markdown",
28
- "markdownlint",
29
- "markdownlint-cli",
30
- "sentences-per-line"
31
- ],
32
- ...options.excludeLintPackageJson ? [] : ["eslint-plugin-package-json"],
33
- ...options.excludeLintPerfectionist ? [] : ["eslint-plugin-perfectionist"],
34
- ...options.excludeLintRegex ? [] : ["eslint-plugin-regexp"],
35
- ...options.excludeLintSpelling ? [] : ["cspell"],
36
- ...options.excludeLintYml ? [] : ["eslint-plugin-yml"],
37
- ...options.excludeReleases ? [] : ["@release-it/conventional-changelog", "release-it"],
38
- ...options.excludeTests ? [] : [
39
- "@vitest/coverage-v8",
40
- "@vitest/eslint-plugin",
41
- "console-fail-test",
42
- "vitest"
43
- ]
44
- ].filter(Boolean).sort().map((packageName) => `${packageName}@latest`).join(" ");
45
- await execaCommand(
46
- `pnpm add ${devDependencies} -D${options.offline ? " --offline" : ""}`
47
- );
5
+ if (isUsingCreateEngine()) {
6
+ await execaCommand("pnpm install");
7
+ } else {
8
+ const devDependencies = [
9
+ "@eslint/js",
10
+ "@types/node",
11
+ "eslint-plugin-n",
12
+ "eslint",
13
+ "husky",
14
+ "lint-staged",
15
+ "prettier-plugin-curly",
16
+ "prettier-plugin-packagejson",
17
+ "prettier-plugin-sh",
18
+ "prettier",
19
+ "tsup",
20
+ "typescript-eslint",
21
+ "typescript",
22
+ ...options.excludeAllContributors ? [] : ["all-contributors-cli"],
23
+ ...options.excludeLintESLint ? [] : ["@eslint-community/eslint-plugin-eslint-comments"],
24
+ ...options.excludeLintJSDoc ? [] : ["eslint-plugin-jsdoc"],
25
+ ...options.excludeLintJson ? [] : ["eslint-plugin-jsonc"],
26
+ ...options.excludeLintKnip ? [] : ["knip"],
27
+ ...options.excludeLintMd ? [] : [
28
+ "@types/eslint-plugin-markdown",
29
+ "eslint-plugin-markdown",
30
+ "markdownlint",
31
+ "markdownlint-cli",
32
+ "sentences-per-line"
33
+ ],
34
+ ...options.excludeLintPackageJson ? [] : ["eslint-plugin-package-json"],
35
+ ...options.excludeLintPerfectionist ? [] : ["eslint-plugin-perfectionist"],
36
+ ...options.excludeLintRegex ? [] : ["eslint-plugin-regexp"],
37
+ ...options.excludeLintSpelling ? [] : ["cspell"],
38
+ ...options.excludeLintYml ? [] : ["eslint-plugin-yml"],
39
+ ...options.excludeReleases ? [] : ["@release-it/conventional-changelog", "release-it"],
40
+ ...options.excludeTests ? [] : [
41
+ "@vitest/coverage-v8",
42
+ "@vitest/eslint-plugin",
43
+ "console-fail-test",
44
+ "vitest"
45
+ ]
46
+ ].filter(Boolean).sort().map((packageName) => `${packageName}@latest`).join(" ");
47
+ await execaCommand(
48
+ `pnpm add ${devDependencies} -D${options.offline ? " --offline" : ""}`
49
+ );
50
+ }
48
51
  if (!options.excludeAllContributors) {
49
52
  await execaCommand(`npx all-contributors-cli generate`);
50
53
  await removeDependencies(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/steps/finalizeDependencies.ts"],"sourcesContent":["import { execaCommand } from \"execa\";\n\nimport { readPackageData, removeDependencies } from \"../shared/packages.js\";\nimport { Options } from \"../shared/types.js\";\n\nexport async function finalizeDependencies(options: Options) {\n\tconst devDependencies = [\n\t\t\"@eslint/js\",\n\t\t\"@types/eslint__js\",\n\t\t\"@types/node\",\n\t\t\"eslint\",\n\t\t\"eslint-plugin-n\",\n\t\t\"husky\",\n\t\t\"lint-staged\",\n\t\t\"prettier\",\n\t\t\"prettier-plugin-curly\",\n\t\t\"prettier-plugin-sh\",\n\t\t\"prettier-plugin-packagejson\",\n\t\t\"tsup\",\n\t\t\"typescript\",\n\t\t\"typescript-eslint\",\n\t\t...(options.excludeAllContributors ? [] : [\"all-contributors-cli\"]),\n\t\t...(options.excludeLintESLint\n\t\t\t? []\n\t\t\t: [\"@eslint-community/eslint-plugin-eslint-comments\"]),\n\t\t...(options.excludeLintJSDoc ? [] : [\"eslint-plugin-jsdoc\"]),\n\t\t...(options.excludeLintJson ? [] : [\"eslint-plugin-jsonc\"]),\n\t\t...(options.excludeLintJson && options.excludeLintPackageJson\n\t\t\t? []\n\t\t\t: [\"jsonc-eslint-parser\"]),\n\t\t...(options.excludeLintKnip ? [] : [\"knip\"]),\n\t\t...(options.excludeLintMd\n\t\t\t? []\n\t\t\t: [\n\t\t\t\t\t\"@types/eslint-plugin-markdown\",\n\t\t\t\t\t\"eslint-plugin-markdown\",\n\t\t\t\t\t\"markdownlint\",\n\t\t\t\t\t\"markdownlint-cli\",\n\t\t\t\t\t\"sentences-per-line\",\n\t\t\t\t]),\n\t\t...(options.excludeLintPackageJson ? [] : [\"eslint-plugin-package-json\"]),\n\t\t...(options.excludeLintPerfectionist\n\t\t\t? []\n\t\t\t: [\"eslint-plugin-perfectionist\"]),\n\t\t...(options.excludeLintRegex ? [] : [\"eslint-plugin-regexp\"]),\n\t\t...(options.excludeLintSpelling ? [] : [\"cspell\"]),\n\t\t...(options.excludeLintYml ? [] : [\"eslint-plugin-yml\"]),\n\t\t...(options.excludeReleases\n\t\t\t? []\n\t\t\t: [\"@release-it/conventional-changelog\", \"release-it\"]),\n\t\t...(options.excludeTests\n\t\t\t? []\n\t\t\t: [\n\t\t\t\t\t\"@vitest/coverage-v8\",\n\t\t\t\t\t\"@vitest/eslint-plugin\",\n\t\t\t\t\t\"console-fail-test\",\n\t\t\t\t\t\"vitest\",\n\t\t\t\t]),\n\t]\n\t\t.filter(Boolean)\n\t\t.sort()\n\t\t.map((packageName) => `${packageName}@latest`)\n\t\t.join(\" \");\n\n\tawait execaCommand(\n\t\t`pnpm add ${devDependencies} -D${options.offline ? \" --offline\" : \"\"}`,\n\t);\n\n\tif (!options.excludeAllContributors) {\n\t\tawait execaCommand(`npx all-contributors-cli generate`);\n\t\tawait removeDependencies(\n\t\t\t[\"all-contributors-cli\", \"all-contributors-for-repository\"],\n\t\t\t(await readPackageData()).devDependencies,\n\t\t\t\"-D\",\n\t\t);\n\t}\n\n\tawait execaCommand(`pnpm dedupe --offline`);\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAE7B,SAAS,iBAAiB,0BAA0B;AAGpD,eAAsB,qBAAqB,SAAkB;AAC5D,QAAM,kBAAkB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAI,QAAQ,yBAAyB,CAAC,IAAI,CAAC,sBAAsB;AAAA,IACjE,GAAI,QAAQ,oBACT,CAAC,IACD,CAAC,iDAAiD;AAAA,IACrD,GAAI,QAAQ,mBAAmB,CAAC,IAAI,CAAC,qBAAqB;AAAA,IAC1D,GAAI,QAAQ,kBAAkB,CAAC,IAAI,CAAC,qBAAqB;AAAA,IACzD,GAAI,QAAQ,mBAAmB,QAAQ,yBACpC,CAAC,IACD,CAAC,qBAAqB;AAAA,IACzB,GAAI,QAAQ,kBAAkB,CAAC,IAAI,CAAC,MAAM;AAAA,IAC1C,GAAI,QAAQ,gBACT,CAAC,IACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACF,GAAI,QAAQ,yBAAyB,CAAC,IAAI,CAAC,4BAA4B;AAAA,IACvE,GAAI,QAAQ,2BACT,CAAC,IACD,CAAC,6BAA6B;AAAA,IACjC,GAAI,QAAQ,mBAAmB,CAAC,IAAI,CAAC,sBAAsB;AAAA,IAC3D,GAAI,QAAQ,sBAAsB,CAAC,IAAI,CAAC,QAAQ;AAAA,IAChD,GAAI,QAAQ,iBAAiB,CAAC,IAAI,CAAC,mBAAmB;AAAA,IACtD,GAAI,QAAQ,kBACT,CAAC,IACD,CAAC,sCAAsC,YAAY;AAAA,IACtD,GAAI,QAAQ,eACT,CAAC,IACD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACH,EACE,OAAO,OAAO,EACd,KAAK,EACL,IAAI,CAAC,gBAAgB,GAAG,WAAW,SAAS,EAC5C,KAAK,GAAG;AAEV,QAAM;AAAA,IACL,YAAY,eAAe,MAAM,QAAQ,UAAU,eAAe,EAAE;AAAA,EACrE;AAEA,MAAI,CAAC,QAAQ,wBAAwB;AACpC,UAAM,aAAa,mCAAmC;AACtD,UAAM;AAAA,MACL,CAAC,wBAAwB,iCAAiC;AAAA,OACzD,MAAM,gBAAgB,GAAG;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAEA,QAAM,aAAa,uBAAuB;AAC3C;","names":[]}
1
+ {"version":3,"sources":["../../src/steps/finalizeDependencies.ts"],"sourcesContent":["import { execaCommand } from \"execa\";\n\nimport { isUsingCreateEngine } from \"../shared/isUsingCreateEngine.js\";\nimport { readPackageData, removeDependencies } from \"../shared/packages.js\";\nimport { Options } from \"../shared/types.js\";\n\nexport async function finalizeDependencies(options: Options) {\n\tif (isUsingCreateEngine()) {\n\t\t// TODO: How to switch from \"latest\" to the actual versions?\n\t\t// Maybe an eslint-plugin-package-json lint rule?\n\t\tawait execaCommand(\"pnpm install\");\n\t} else {\n\t\tconst devDependencies = [\n\t\t\t\"@eslint/js\",\n\t\t\t\"@types/node\",\n\t\t\t\"eslint-plugin-n\",\n\t\t\t\"eslint\",\n\t\t\t\"husky\",\n\t\t\t\"lint-staged\",\n\t\t\t\"prettier-plugin-curly\",\n\t\t\t\"prettier-plugin-packagejson\",\n\t\t\t\"prettier-plugin-sh\",\n\t\t\t\"prettier\",\n\t\t\t\"tsup\",\n\t\t\t\"typescript-eslint\",\n\t\t\t\"typescript\",\n\t\t\t...(options.excludeAllContributors ? [] : [\"all-contributors-cli\"]),\n\t\t\t...(options.excludeLintESLint\n\t\t\t\t? []\n\t\t\t\t: [\"@eslint-community/eslint-plugin-eslint-comments\"]),\n\t\t\t...(options.excludeLintJSDoc ? [] : [\"eslint-plugin-jsdoc\"]),\n\t\t\t...(options.excludeLintJson ? [] : [\"eslint-plugin-jsonc\"]),\n\t\t\t...(options.excludeLintKnip ? [] : [\"knip\"]),\n\t\t\t...(options.excludeLintMd\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t\"@types/eslint-plugin-markdown\",\n\t\t\t\t\t\t\"eslint-plugin-markdown\",\n\t\t\t\t\t\t\"markdownlint\",\n\t\t\t\t\t\t\"markdownlint-cli\",\n\t\t\t\t\t\t\"sentences-per-line\",\n\t\t\t\t\t]),\n\t\t\t...(options.excludeLintPackageJson ? [] : [\"eslint-plugin-package-json\"]),\n\t\t\t...(options.excludeLintPerfectionist\n\t\t\t\t? []\n\t\t\t\t: [\"eslint-plugin-perfectionist\"]),\n\t\t\t...(options.excludeLintRegex ? [] : [\"eslint-plugin-regexp\"]),\n\t\t\t...(options.excludeLintSpelling ? [] : [\"cspell\"]),\n\t\t\t...(options.excludeLintYml ? [] : [\"eslint-plugin-yml\"]),\n\t\t\t...(options.excludeReleases\n\t\t\t\t? []\n\t\t\t\t: [\"@release-it/conventional-changelog\", \"release-it\"]),\n\t\t\t...(options.excludeTests\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t\"@vitest/coverage-v8\",\n\t\t\t\t\t\t\"@vitest/eslint-plugin\",\n\t\t\t\t\t\t\"console-fail-test\",\n\t\t\t\t\t\t\"vitest\",\n\t\t\t\t\t]),\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.sort()\n\t\t\t.map((packageName) => `${packageName}@latest`)\n\t\t\t.join(\" \");\n\n\t\tawait execaCommand(\n\t\t\t`pnpm add ${devDependencies} -D${options.offline ? \" --offline\" : \"\"}`,\n\t\t);\n\t}\n\n\tif (!options.excludeAllContributors) {\n\t\tawait execaCommand(`npx all-contributors-cli generate`);\n\t\tawait removeDependencies(\n\t\t\t[\"all-contributors-cli\", \"all-contributors-for-repository\"],\n\t\t\t(await readPackageData()).devDependencies,\n\t\t\t\"-D\",\n\t\t);\n\t}\n\n\tawait execaCommand(`pnpm dedupe --offline`);\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAE7B,SAAS,2BAA2B;AACpC,SAAS,iBAAiB,0BAA0B;AAGpD,eAAsB,qBAAqB,SAAkB;AAC5D,MAAI,oBAAoB,GAAG;AAG1B,UAAM,aAAa,cAAc;AAAA,EAClC,OAAO;AACN,UAAM,kBAAkB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAI,QAAQ,yBAAyB,CAAC,IAAI,CAAC,sBAAsB;AAAA,MACjE,GAAI,QAAQ,oBACT,CAAC,IACD,CAAC,iDAAiD;AAAA,MACrD,GAAI,QAAQ,mBAAmB,CAAC,IAAI,CAAC,qBAAqB;AAAA,MAC1D,GAAI,QAAQ,kBAAkB,CAAC,IAAI,CAAC,qBAAqB;AAAA,MACzD,GAAI,QAAQ,kBAAkB,CAAC,IAAI,CAAC,MAAM;AAAA,MAC1C,GAAI,QAAQ,gBACT,CAAC,IACD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACF,GAAI,QAAQ,yBAAyB,CAAC,IAAI,CAAC,4BAA4B;AAAA,MACvE,GAAI,QAAQ,2BACT,CAAC,IACD,CAAC,6BAA6B;AAAA,MACjC,GAAI,QAAQ,mBAAmB,CAAC,IAAI,CAAC,sBAAsB;AAAA,MAC3D,GAAI,QAAQ,sBAAsB,CAAC,IAAI,CAAC,QAAQ;AAAA,MAChD,GAAI,QAAQ,iBAAiB,CAAC,IAAI,CAAC,mBAAmB;AAAA,MACtD,GAAI,QAAQ,kBACT,CAAC,IACD,CAAC,sCAAsC,YAAY;AAAA,MACtD,GAAI,QAAQ,eACT,CAAC,IACD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACH,EACE,OAAO,OAAO,EACd,KAAK,EACL,IAAI,CAAC,gBAAgB,GAAG,WAAW,SAAS,EAC5C,KAAK,GAAG;AAEV,UAAM;AAAA,MACL,YAAY,eAAe,MAAM,QAAQ,UAAU,eAAe,EAAE;AAAA,IACrE;AAAA,EACD;AAEA,MAAI,CAAC,QAAQ,wBAAwB;AACpC,UAAM,aAAa,mCAAmC;AACtD,UAAM;AAAA,MACL,CAAC,wBAAwB,iCAAiC;AAAA,OACzD,MAAM,gBAAgB,GAAG;AAAA,MAC1B;AAAA,IACD;AAAA,EACD;AAEA,QAAM,aAAa,uBAAuB;AAC3C;","names":[]}
@@ -2,13 +2,6 @@ import { $ } from "execa";
2
2
  import * as fs from "node:fs/promises";
3
3
  import { readFileAsJson } from "../shared/readFileAsJson.js";
4
4
  import { formatJson } from "./writing/creation/formatters/formatJson.js";
5
- async function getStdout() {
6
- try {
7
- return await $`pnpm run lint:spelling`;
8
- } catch (error) {
9
- return error;
10
- }
11
- }
12
5
  async function populateCSpellDictionary() {
13
6
  const { stdout } = await getStdout();
14
7
  const unknownWords = new Set(
@@ -30,6 +23,13 @@ async function populateCSpellDictionary() {
30
23
  })
31
24
  );
32
25
  }
26
+ async function getStdout() {
27
+ try {
28
+ return await $`pnpm run lint:spelling`;
29
+ } catch (error) {
30
+ return error;
31
+ }
32
+ }
33
33
  export {
34
34
  populateCSpellDictionary
35
35
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/steps/populateCSpellDictionary.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport * as fs from \"node:fs/promises\";\n\nimport { readFileAsJson } from \"../shared/readFileAsJson.js\";\nimport { formatJson } from \"./writing/creation/formatters/formatJson.js\";\n\nasync function getStdout() {\n\ttry {\n\t\treturn await $`pnpm run lint:spelling`;\n\t} catch (error) {\n\t\treturn error as { stdout: string };\n\t}\n}\n\nexport async function populateCSpellDictionary() {\n\tconst { stdout } = await getStdout();\n\tconst unknownWords = new Set(\n\t\tArray.from(stdout.matchAll(/Unknown word \\((.+)\\)/g)).map(\n\t\t\t([, matched]) => matched,\n\t\t),\n\t);\n\n\tconst existing = (await readFileAsJson(\"cspell.json\")) as Partial<\n\t\ttypeof import(\"../../cspell.json\")\n\t>;\n\n\tconst allWords = [...(existing.words ?? []), ...unknownWords];\n\tconst allWordsUnique = new Set(allWords);\n\n\tawait fs.writeFile(\n\t\t\"cspell.json\",\n\t\tawait formatJson({\n\t\t\t...existing,\n\t\t\twords: allWords\n\t\t\t\t.filter((word) => {\n\t\t\t\t\tconst wordLowerCase = word.toLowerCase();\n\t\t\t\t\treturn word === wordLowerCase || !allWordsUnique.has(wordLowerCase);\n\t\t\t\t})\n\t\t\t\t.sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())),\n\t\t}),\n\t);\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,YAAY,QAAQ;AAEpB,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAE3B,eAAe,YAAY;AAC1B,MAAI;AACH,WAAO,MAAM;AAAA,EACd,SAAS,OAAO;AACf,WAAO;AAAA,EACR;AACD;AAEA,eAAsB,2BAA2B;AAChD,QAAM,EAAE,OAAO,IAAI,MAAM,UAAU;AACnC,QAAM,eAAe,IAAI;AAAA,IACxB,MAAM,KAAK,OAAO,SAAS,wBAAwB,CAAC,EAAE;AAAA,MACrD,CAAC,CAAC,EAAE,OAAO,MAAM;AAAA,IAClB;AAAA,EACD;AAEA,QAAM,WAAY,MAAM,eAAe,aAAa;AAIpD,QAAM,WAAW,CAAC,GAAI,SAAS,SAAS,CAAC,GAAI,GAAG,YAAY;AAC5D,QAAM,iBAAiB,IAAI,IAAI,QAAQ;AAEvC,QAAM,GAAG;AAAA,IACR;AAAA,IACA,MAAM,WAAW;AAAA,MAChB,GAAG;AAAA,MACH,OAAO,SACL,OAAO,CAAC,SAAS;AACjB,cAAM,gBAAgB,KAAK,YAAY;AACvC,eAAO,SAAS,iBAAiB,CAAC,eAAe,IAAI,aAAa;AAAA,MACnE,CAAC,EACA,KAAK,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;AAAA,IAChE,CAAC;AAAA,EACF;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/steps/populateCSpellDictionary.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport * as fs from \"node:fs/promises\";\n\nimport { readFileAsJson } from \"../shared/readFileAsJson.js\";\nimport { formatJson } from \"./writing/creation/formatters/formatJson.js\";\n\nexport async function populateCSpellDictionary() {\n\tconst { stdout } = await getStdout();\n\tconst unknownWords = new Set(\n\t\tArray.from(stdout.matchAll(/Unknown word \\((.+)\\)/g)).map(\n\t\t\t([, matched]) => matched,\n\t\t),\n\t);\n\n\tconst existing = (await readFileAsJson(\"cspell.json\")) as Partial<\n\t\ttypeof import(\"../../cspell.json\")\n\t>;\n\n\tconst allWords = [...(existing.words ?? []), ...unknownWords];\n\tconst allWordsUnique = new Set(allWords);\n\n\tawait fs.writeFile(\n\t\t\"cspell.json\",\n\t\tawait formatJson({\n\t\t\t...existing,\n\t\t\twords: allWords\n\t\t\t\t.filter((word) => {\n\t\t\t\t\tconst wordLowerCase = word.toLowerCase();\n\t\t\t\t\treturn word === wordLowerCase || !allWordsUnique.has(wordLowerCase);\n\t\t\t\t})\n\t\t\t\t.sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase())),\n\t\t}),\n\t);\n}\n\nasync function getStdout() {\n\ttry {\n\t\treturn await $`pnpm run lint:spelling`;\n\t} catch (error) {\n\t\treturn error as { stdout: string };\n\t}\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,YAAY,QAAQ;AAEpB,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAE3B,eAAsB,2BAA2B;AAChD,QAAM,EAAE,OAAO,IAAI,MAAM,UAAU;AACnC,QAAM,eAAe,IAAI;AAAA,IACxB,MAAM,KAAK,OAAO,SAAS,wBAAwB,CAAC,EAAE;AAAA,MACrD,CAAC,CAAC,EAAE,OAAO,MAAM;AAAA,IAClB;AAAA,EACD;AAEA,QAAM,WAAY,MAAM,eAAe,aAAa;AAIpD,QAAM,WAAW,CAAC,GAAI,SAAS,SAAS,CAAC,GAAI,GAAG,YAAY;AAC5D,QAAM,iBAAiB,IAAI,IAAI,QAAQ;AAEvC,QAAM,GAAG;AAAA,IACR;AAAA,IACA,MAAM,WAAW;AAAA,MAChB,GAAG;AAAA,MACH,OAAO,SACL,OAAO,CAAC,SAAS;AACjB,cAAM,gBAAgB,KAAK,YAAY;AACvC,eAAO,SAAS,iBAAiB,CAAC,eAAe,IAAI,aAAa;AAAA,MACnE,CAAC,EACA,KAAK,CAAC,GAAG,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;AAAA,IAChE,CAAC;AAAA,EACF;AACD;AAEA,eAAe,YAAY;AAC1B,MAAI;AACH,WAAO,MAAM;AAAA,EACd,SAAS,OAAO;AACf,WAAO;AAAA,EACR;AACD;","names":[]}
@@ -1,4 +1,5 @@
1
1
  import * as fs from "node:fs/promises";
2
+ import { formatTypeScript } from "./writing/creation/formatters/formatTypeScript.js";
2
3
  const globPaths = [
3
4
  "./bin",
4
5
  "./docs",
@@ -7,15 +8,20 @@ const globPaths = [
7
8
  "./src/create",
8
9
  "./src/initialize",
9
10
  "./src/migrate",
11
+ "./src/next",
10
12
  "./src/shared",
11
- "./src/steps",
12
- ".github/workflows/test-initialize.yml",
13
- ".github/workflows/test-migrate.yml"
13
+ "./src/steps"
14
14
  ];
15
15
  async function removeSetupScripts() {
16
16
  for (const globPath of globPaths) {
17
17
  await fs.rm(globPath, { force: true, recursive: true });
18
18
  }
19
+ await fs.writeFile(
20
+ "./src/index.ts",
21
+ await formatTypeScript(
22
+ [`export * from "./greet.js";`, `export * from "./types.js";`].join("\n")
23
+ )
24
+ );
19
25
  }
20
26
  export {
21
27
  removeSetupScripts
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/steps/removeSetupScripts.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\n\nconst globPaths = [\n\t\"./bin\",\n\t\"./docs\",\n\t\"./script\",\n\t\"./src/bin\",\n\t\"./src/create\",\n\t\"./src/initialize\",\n\t\"./src/migrate\",\n\t\"./src/shared\",\n\t\"./src/steps\",\n\t\".github/workflows/test-initialize.yml\",\n\t\".github/workflows/test-migrate.yml\",\n];\n\nexport async function removeSetupScripts() {\n\tfor (const globPath of globPaths) {\n\t\tawait fs.rm(globPath, { force: true, recursive: true });\n\t}\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AAEpB,MAAM,YAAY;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,eAAsB,qBAAqB;AAC1C,aAAW,YAAY,WAAW;AACjC,UAAM,GAAG,GAAG,UAAU,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EACvD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/steps/removeSetupScripts.ts"],"sourcesContent":["import * as fs from \"node:fs/promises\";\n\nimport { formatTypeScript } from \"./writing/creation/formatters/formatTypeScript.js\";\n\nconst globPaths = [\n\t\"./bin\",\n\t\"./docs\",\n\t\"./script\",\n\t\"./src/bin\",\n\t\"./src/create\",\n\t\"./src/initialize\",\n\t\"./src/migrate\",\n\t\"./src/next\",\n\t\"./src/shared\",\n\t\"./src/steps\",\n];\n\nexport async function removeSetupScripts() {\n\tfor (const globPath of globPaths) {\n\t\tawait fs.rm(globPath, { force: true, recursive: true });\n\t}\n\n\tawait fs.writeFile(\n\t\t\"./src/index.ts\",\n\t\tawait formatTypeScript(\n\t\t\t[`export * from \"./greet.js\";`, `export * from \"./types.js\";`].join(\"\\n\"),\n\t\t),\n\t);\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AAEpB,SAAS,wBAAwB;AAEjC,MAAM,YAAY;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD;AAEA,eAAsB,qBAAqB;AAC1C,aAAW,YAAY,WAAW;AACjC,UAAM,GAAG,GAAG,UAAU,EAAE,OAAO,MAAM,WAAW,KAAK,CAAC;AAAA,EACvD;AAEA,QAAM,GAAG;AAAA,IACR;AAAA,IACA,MAAM;AAAA,MACL,CAAC,+BAA+B,6BAA6B,EAAE,KAAK,IAAI;AAAA,IACzE;AAAA,EACD;AACD;","names":[]}
@@ -5,20 +5,26 @@ async function uninstallPackages(offline) {
5
5
  await removeDependencies(
6
6
  [
7
7
  "@clack/prompts",
8
+ "@prettier/sync",
8
9
  "all-contributors-for-repository",
9
10
  "chalk",
11
+ "create",
10
12
  "execa",
11
13
  "get-github-auth-token",
12
14
  "git-remote-origin-url",
13
15
  "git-url-parse",
14
- "lazy-value",
16
+ "input-from-file",
17
+ "input-from-file-json",
15
18
  "js-yaml",
19
+ "lazy-value",
16
20
  "npm-user",
17
- "parse-author",
18
- "rimraf",
19
21
  "octokit",
22
+ "parse-author",
23
+ "parse-package-name",
20
24
  "prettier",
21
25
  "replace-in-file",
26
+ "rimraf",
27
+ "sort-package-json",
22
28
  "title-case",
23
29
  "zod",
24
30
  "zod-validation-error"
@@ -33,6 +39,7 @@ async function uninstallPackages(offline) {
33
39
  "@types/parse-author",
34
40
  "all-contributors-cli",
35
41
  "c8",
42
+ "create-testers",
36
43
  "eslint-config-prettier",
37
44
  "globby",
38
45
  "tsx"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/steps/uninstallPackages.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport { readPackageData, removeDependencies } from \"../shared/packages.js\";\n\nexport async function uninstallPackages(offline: boolean | undefined) {\n\tconst packageData = await readPackageData();\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@clack/prompts\",\n\t\t\t\"all-contributors-for-repository\",\n\t\t\t\"chalk\",\n\t\t\t\"execa\",\n\t\t\t\"get-github-auth-token\",\n\t\t\t\"git-remote-origin-url\",\n\t\t\t\"git-url-parse\",\n\t\t\t\"lazy-value\",\n\t\t\t\"js-yaml\",\n\t\t\t\"npm-user\",\n\t\t\t\"parse-author\",\n\t\t\t\"rimraf\",\n\t\t\t\"octokit\",\n\t\t\t\"prettier\",\n\t\t\t\"replace-in-file\",\n\t\t\t\"title-case\",\n\t\t\t\"zod\",\n\t\t\t\"zod-validation-error\",\n\t\t],\n\t\tpackageData.dependencies,\n\t);\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@octokit/request-error\",\n\t\t\t\"@types/git-url-parse\",\n\t\t\t\"@types/js-yaml\",\n\t\t\t\"@types/parse-author\",\n\t\t\t\"all-contributors-cli\",\n\t\t\t\"c8\",\n\t\t\t\"eslint-config-prettier\",\n\t\t\t\"globby\",\n\t\t\t\"tsx\",\n\t\t],\n\t\tpackageData.devDependencies,\n\t\t\"-D\",\n\t);\n\n\tawait $`pnpm add prettier -D${offline ? \" --offline\" : \"\"}`;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,iBAAiB,0BAA0B;AAEpD,eAAsB,kBAAkB,SAA8B;AACrE,QAAM,cAAc,MAAM,gBAAgB;AAE1C,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,EACb;AAEA,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACD;AAEA,QAAM,wBAAwB,UAAU,eAAe,EAAE;AAC1D;","names":[]}
1
+ {"version":3,"sources":["../../src/steps/uninstallPackages.ts"],"sourcesContent":["import { $ } from \"execa\";\n\nimport { readPackageData, removeDependencies } from \"../shared/packages.js\";\n\nexport async function uninstallPackages(offline: boolean | undefined) {\n\tconst packageData = await readPackageData();\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@clack/prompts\",\n\t\t\t\"@prettier/sync\",\n\t\t\t\"all-contributors-for-repository\",\n\t\t\t\"chalk\",\n\t\t\t\"create\",\n\t\t\t\"execa\",\n\t\t\t\"get-github-auth-token\",\n\t\t\t\"git-remote-origin-url\",\n\t\t\t\"git-url-parse\",\n\t\t\t\"input-from-file\",\n\t\t\t\"input-from-file-json\",\n\t\t\t\"js-yaml\",\n\t\t\t\"lazy-value\",\n\t\t\t\"npm-user\",\n\t\t\t\"octokit\",\n\t\t\t\"parse-author\",\n\t\t\t\"parse-package-name\",\n\t\t\t\"prettier\",\n\t\t\t\"replace-in-file\",\n\t\t\t\"rimraf\",\n\t\t\t\"sort-package-json\",\n\t\t\t\"title-case\",\n\t\t\t\"zod\",\n\t\t\t\"zod-validation-error\",\n\t\t],\n\t\tpackageData.dependencies,\n\t);\n\n\tawait removeDependencies(\n\t\t[\n\t\t\t\"@octokit/request-error\",\n\t\t\t\"@types/git-url-parse\",\n\t\t\t\"@types/js-yaml\",\n\t\t\t\"@types/parse-author\",\n\t\t\t\"all-contributors-cli\",\n\t\t\t\"c8\",\n\t\t\t\"create-testers\",\n\t\t\t\"eslint-config-prettier\",\n\t\t\t\"globby\",\n\t\t\t\"tsx\",\n\t\t],\n\t\tpackageData.devDependencies,\n\t\t\"-D\",\n\t);\n\n\tawait $`pnpm add prettier -D${offline ? \" --offline\" : \"\"}`;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,iBAAiB,0BAA0B;AAEpD,eAAsB,kBAAkB,SAA8B;AACrE,QAAM,cAAc,MAAM,gBAAgB;AAE1C,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,EACb;AAEA,QAAM;AAAA,IACL;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,EACD;AAEA,QAAM,wBAAwB,UAAU,eAAe,EAAE;AAC1D;","names":[]}