create-typescript-app 1.76.0 → 1.77.1

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 (285) hide show
  1. package/README.md +1 -1
  2. package/lib/bin/promptForMode.js +2 -1
  3. package/lib/bin/promptForMode.js.map +1 -1
  4. package/lib/create/createWithOptions.d.ts +3 -4
  5. package/lib/create/createWithOptions.js +19 -12
  6. package/lib/create/createWithOptions.js.map +1 -1
  7. package/lib/index.d.ts +45 -0
  8. package/lib/index.js +5 -0
  9. package/lib/index.js.map +1 -1
  10. package/lib/initialize/initializeWithOptions.d.ts +3 -4
  11. package/lib/initialize/initializeWithOptions.js +4 -4
  12. package/lib/initialize/initializeWithOptions.js.map +1 -1
  13. package/lib/migrate/migrateWithOptions.d.ts +3 -4
  14. package/lib/migrate/migrateWithOptions.js +8 -5
  15. package/lib/migrate/migrateWithOptions.js.map +1 -1
  16. package/lib/next/base.d.ts +101 -0
  17. package/lib/next/base.js +144 -0
  18. package/lib/next/base.js.map +1 -0
  19. package/lib/next/blocks/blockAllContributors.d.ts +48 -0
  20. package/lib/next/blocks/blockAllContributors.js +60 -0
  21. package/lib/next/blocks/blockAllContributors.js.map +1 -0
  22. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +48 -0
  23. package/lib/next/blocks/blockAreTheTypesWrong.js +29 -0
  24. package/lib/next/blocks/blockAreTheTypesWrong.js.map +1 -0
  25. package/lib/next/blocks/blockCSpell.d.ts +51 -0
  26. package/lib/next/blocks/blockCSpell.js +72 -0
  27. package/lib/next/blocks/blockCSpell.js.map +1 -0
  28. package/lib/next/blocks/blockContributingDocs.d.ts +48 -0
  29. package/lib/next/blocks/blockContributingDocs.js +127 -0
  30. package/lib/next/blocks/blockContributingDocs.js.map +1 -0
  31. package/lib/next/blocks/blockContributorCovenant.d.ts +48 -0
  32. package/lib/next/blocks/blockContributorCovenant.js +162 -0
  33. package/lib/next/blocks/blockContributorCovenant.js.map +1 -0
  34. package/lib/next/blocks/blockDevelopmentDocs.d.ts +62 -0
  35. package/lib/next/blocks/blockDevelopmentDocs.js +92 -0
  36. package/lib/next/blocks/blockDevelopmentDocs.js.map +1 -0
  37. package/lib/next/blocks/blockESLint.d.ts +73 -0
  38. package/lib/next/blocks/blockESLint.js +242 -0
  39. package/lib/next/blocks/blockESLint.js.map +1 -0
  40. package/lib/next/blocks/blockESLintComments.d.ts +48 -0
  41. package/lib/next/blocks/blockESLintComments.js +26 -0
  42. package/lib/next/blocks/blockESLintComments.js.map +1 -0
  43. package/lib/next/blocks/blockESLintJSDoc.d.ts +48 -0
  44. package/lib/next/blocks/blockESLintJSDoc.js +25 -0
  45. package/lib/next/blocks/blockESLintJSDoc.js.map +1 -0
  46. package/lib/next/blocks/blockESLintJSONC.d.ts +48 -0
  47. package/lib/next/blocks/blockESLintJSONC.js +21 -0
  48. package/lib/next/blocks/blockESLintJSONC.js.map +1 -0
  49. package/lib/next/blocks/blockESLintMarkdown.d.ts +48 -0
  50. package/lib/next/blocks/blockESLintMarkdown.js +27 -0
  51. package/lib/next/blocks/blockESLintMarkdown.js.map +1 -0
  52. package/lib/next/blocks/blockESLintMoreStyling.d.ts +48 -0
  53. package/lib/next/blocks/blockESLintMoreStyling.js +34 -0
  54. package/lib/next/blocks/blockESLintMoreStyling.js.map +1 -0
  55. package/lib/next/blocks/blockESLintNode.d.ts +48 -0
  56. package/lib/next/blocks/blockESLintNode.js +33 -0
  57. package/lib/next/blocks/blockESLintNode.js.map +1 -0
  58. package/lib/next/blocks/blockESLintPackageJson.d.ts +48 -0
  59. package/lib/next/blocks/blockESLintPackageJson.js +26 -0
  60. package/lib/next/blocks/blockESLintPackageJson.js.map +1 -0
  61. package/lib/next/blocks/blockESLintPerfectionist.d.ts +48 -0
  62. package/lib/next/blocks/blockESLintPerfectionist.js +32 -0
  63. package/lib/next/blocks/blockESLintPerfectionist.js.map +1 -0
  64. package/lib/next/blocks/blockESLintRegexp.d.ts +48 -0
  65. package/lib/next/blocks/blockESLintRegexp.js +23 -0
  66. package/lib/next/blocks/blockESLintRegexp.js.map +1 -0
  67. package/lib/next/blocks/blockESLintYML.d.ts +48 -0
  68. package/lib/next/blocks/blockESLintYML.js +46 -0
  69. package/lib/next/blocks/blockESLintYML.js.map +1 -0
  70. package/lib/next/blocks/blockExampleFiles.d.ts +50 -0
  71. package/lib/next/blocks/blockExampleFiles.js +25 -0
  72. package/lib/next/blocks/blockExampleFiles.js.map +1 -0
  73. package/lib/next/blocks/blockFunding.d.ts +48 -0
  74. package/lib/next/blocks/blockFunding.js +20 -0
  75. package/lib/next/blocks/blockFunding.js.map +1 -0
  76. package/lib/next/blocks/blockGitHubActionsCI.d.ts +60 -0
  77. package/lib/next/blocks/blockGitHubActionsCI.js +133 -0
  78. package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -0
  79. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +48 -0
  80. package/lib/next/blocks/blockGitHubIssueTemplates.js +217 -0
  81. package/lib/next/blocks/blockGitHubIssueTemplates.js.map +1 -0
  82. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +48 -0
  83. package/lib/next/blocks/blockGitHubPRTemplate.js +32 -0
  84. package/lib/next/blocks/blockGitHubPRTemplate.js.map +1 -0
  85. package/lib/next/blocks/blockGitignore.d.ts +50 -0
  86. package/lib/next/blocks/blockGitignore.js +23 -0
  87. package/lib/next/blocks/blockGitignore.js.map +1 -0
  88. package/lib/next/blocks/blockKnip.d.ts +48 -0
  89. package/lib/next/blocks/blockKnip.js +58 -0
  90. package/lib/next/blocks/blockKnip.js.map +1 -0
  91. package/lib/next/blocks/blockMITLicense.d.ts +48 -0
  92. package/lib/next/blocks/blockMITLicense.js +46 -0
  93. package/lib/next/blocks/blockMITLicense.js.map +1 -0
  94. package/lib/next/blocks/blockMarkdownlint.d.ts +50 -0
  95. package/lib/next/blocks/blockMarkdownlint.js +77 -0
  96. package/lib/next/blocks/blockMarkdownlint.js.map +1 -0
  97. package/lib/next/blocks/blockNvmrc.d.ts +48 -0
  98. package/lib/next/blocks/blockNvmrc.js +26 -0
  99. package/lib/next/blocks/blockNvmrc.js.map +1 -0
  100. package/lib/next/blocks/blockPRCompliance.d.ts +48 -0
  101. package/lib/next/blocks/blockPRCompliance.js +48 -0
  102. package/lib/next/blocks/blockPRCompliance.js.map +1 -0
  103. package/lib/next/blocks/blockPackageJson.d.ts +57 -0
  104. package/lib/next/blocks/blockPackageJson.js +92 -0
  105. package/lib/next/blocks/blockPackageJson.js.map +1 -0
  106. package/lib/next/blocks/blockPnpmDedupe.d.ts +48 -0
  107. package/lib/next/blocks/blockPnpmDedupe.js +46 -0
  108. package/lib/next/blocks/blockPnpmDedupe.js.map +1 -0
  109. package/lib/next/blocks/blockPrettier.d.ts +57 -0
  110. package/lib/next/blocks/blockPrettier.js +114 -0
  111. package/lib/next/blocks/blockPrettier.js.map +1 -0
  112. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +48 -0
  113. package/lib/next/blocks/blockPrettierPluginCurly.js +20 -0
  114. package/lib/next/blocks/blockPrettierPluginCurly.js.map +1 -0
  115. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +48 -0
  116. package/lib/next/blocks/blockPrettierPluginPackageJson.js +20 -0
  117. package/lib/next/blocks/blockPrettierPluginPackageJson.js.map +1 -0
  118. package/lib/next/blocks/blockPrettierPluginSh.d.ts +48 -0
  119. package/lib/next/blocks/blockPrettierPluginSh.js +20 -0
  120. package/lib/next/blocks/blockPrettierPluginSh.js.map +1 -0
  121. package/lib/next/blocks/blockREADME.d.ts +50 -0
  122. package/lib/next/blocks/blockREADME.js +63 -0
  123. package/lib/next/blocks/blockREADME.js.map +1 -0
  124. package/lib/next/blocks/blockReleaseIt.d.ts +48 -0
  125. package/lib/next/blocks/blockReleaseIt.js +131 -0
  126. package/lib/next/blocks/blockReleaseIt.js.map +1 -0
  127. package/lib/next/blocks/blockRenovate.d.ts +48 -0
  128. package/lib/next/blocks/blockRenovate.js +34 -0
  129. package/lib/next/blocks/blockRenovate.js.map +1 -0
  130. package/lib/next/blocks/blockRepositoryBranchProtection.d.ts +50 -0
  131. package/lib/next/blocks/blockRepositoryBranchProtection.js +49 -0
  132. package/lib/next/blocks/blockRepositoryBranchProtection.js.map +1 -0
  133. package/lib/next/blocks/blockRepositoryLabels.d.ts +48 -0
  134. package/lib/next/blocks/blockRepositoryLabels.js +18 -0
  135. package/lib/next/blocks/blockRepositoryLabels.js.map +1 -0
  136. package/lib/next/blocks/blockRepositorySettings.d.ts +48 -0
  137. package/lib/next/blocks/blockRepositorySettings.js +42 -0
  138. package/lib/next/blocks/blockRepositorySettings.js.map +1 -0
  139. package/lib/next/blocks/blockSecurityDocs.d.ts +48 -0
  140. package/lib/next/blocks/blockSecurityDocs.js +28 -0
  141. package/lib/next/blocks/blockSecurityDocs.js.map +1 -0
  142. package/lib/next/blocks/blockTSup.d.ts +50 -0
  143. package/lib/next/blocks/blockTSup.js +95 -0
  144. package/lib/next/blocks/blockTSup.js.map +1 -0
  145. package/lib/next/blocks/blockTemplatedBy.d.ts +48 -0
  146. package/lib/next/blocks/blockTemplatedBy.js +30 -0
  147. package/lib/next/blocks/blockTemplatedBy.js.map +1 -0
  148. package/lib/next/blocks/blockTypeScript.d.ts +48 -0
  149. package/lib/next/blocks/blockTypeScript.js +137 -0
  150. package/lib/next/blocks/blockTypeScript.js.map +1 -0
  151. package/lib/next/blocks/blockVSCode.d.ts +57 -0
  152. package/lib/next/blocks/blockVSCode.js +91 -0
  153. package/lib/next/blocks/blockVSCode.js.map +1 -0
  154. package/lib/next/blocks/blockVitest.d.ts +55 -0
  155. package/lib/next/blocks/blockVitest.js +217 -0
  156. package/lib/next/blocks/blockVitest.js.map +1 -0
  157. package/lib/next/blocks/index.d.ts +43 -0
  158. package/lib/next/blocks/index.js +43 -0
  159. package/lib/next/blocks/index.js.map +1 -0
  160. package/lib/next/blocks/options.fakes.d.ts +13 -0
  161. package/lib/next/blocks/options.fakes.js +15 -0
  162. package/lib/next/blocks/options.fakes.js.map +1 -0
  163. package/lib/next/blocks/packageData.d.ts +5 -0
  164. package/lib/next/blocks/packageData.js +25 -0
  165. package/lib/next/blocks/packageData.js.map +1 -0
  166. package/lib/next/blocks/phases.d.ts +9 -0
  167. package/lib/next/blocks/phases.js +11 -0
  168. package/lib/next/blocks/phases.js.map +1 -0
  169. package/lib/next/presetCommon.d.ts +99 -0
  170. package/lib/next/presetCommon.js +21 -0
  171. package/lib/next/presetCommon.js.map +1 -0
  172. package/lib/next/presetEverything.d.ts +99 -0
  173. package/lib/next/presetEverything.js +59 -0
  174. package/lib/next/presetEverything.js.map +1 -0
  175. package/lib/next/presetMinimal.d.ts +99 -0
  176. package/lib/next/presetMinimal.js +53 -0
  177. package/lib/next/presetMinimal.js.map +1 -0
  178. package/lib/next/runCreateEnginePreset.d.ts +7 -0
  179. package/lib/next/runCreateEnginePreset.js +20 -0
  180. package/lib/next/runCreateEnginePreset.js.map +1 -0
  181. package/lib/next/template.d.ts +99 -0
  182. package/lib/next/template.js +21 -0
  183. package/lib/next/template.js.map +1 -0
  184. package/lib/next/utils/sortObject.d.ts +5 -0
  185. package/lib/next/utils/sortObject.js +9 -0
  186. package/lib/next/utils/sortObject.js.map +1 -0
  187. package/lib/next/utils/swallowError.d.ts +3 -0
  188. package/lib/next/utils/swallowError.js +7 -0
  189. package/lib/next/utils/swallowError.js.map +1 -0
  190. package/lib/shared/isUsingCreateEngine.d.ts +3 -0
  191. package/lib/shared/isUsingCreateEngine.js +7 -0
  192. package/lib/shared/isUsingCreateEngine.js.map +1 -0
  193. package/lib/shared/options/createOptionDefaults/index.d.ts +2 -4
  194. package/lib/shared/options/createOptionDefaults/index.js +4 -13
  195. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  196. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +4 -1
  197. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  198. package/lib/shared/options/createOptionDefaults/readEmails.d.ts +11 -0
  199. package/lib/shared/options/createOptionDefaults/readEmails.js +14 -0
  200. package/lib/shared/options/createOptionDefaults/readEmails.js.map +1 -0
  201. package/lib/shared/options/createOptionDefaults/readFunding.d.ts +3 -0
  202. package/lib/shared/options/createOptionDefaults/readFunding.js +11 -0
  203. package/lib/shared/options/createOptionDefaults/readFunding.js.map +1 -0
  204. package/lib/shared/options/createOptionDefaults/readGuide.d.ts +6 -0
  205. package/lib/shared/options/createOptionDefaults/readGuide.js +18 -0
  206. package/lib/shared/options/createOptionDefaults/readGuide.js.map +1 -0
  207. package/lib/shared/options/ensureRepositoryExists.d.ts +3 -4
  208. package/lib/shared/options/ensureRepositoryExists.js +9 -8
  209. package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
  210. package/lib/shared/options/readOptions.d.ts +5 -6
  211. package/lib/shared/options/readOptions.js +7 -4
  212. package/lib/shared/options/readOptions.js.map +1 -1
  213. package/lib/shared/types.d.ts +7 -0
  214. package/lib/steps/addOwnerAsAllContributor.js.map +1 -1
  215. package/lib/steps/clearUnnecessaryFiles.js +0 -1
  216. package/lib/steps/clearUnnecessaryFiles.js.map +1 -1
  217. package/lib/steps/finalizeDependencies.js +5 -7
  218. package/lib/steps/finalizeDependencies.js.map +1 -1
  219. package/lib/steps/initializeGitHubRepository/index.js +7 -2
  220. package/lib/steps/initializeGitHubRepository/index.js.map +1 -1
  221. package/lib/steps/initializeGitHubRepository/outcomeLabels.d.ts +13 -0
  222. package/lib/steps/initializeGitHubRepository/{labels/outcomeLabels.js → outcomeLabels.js} +4 -1
  223. package/lib/steps/initializeGitHubRepository/outcomeLabels.js.map +1 -0
  224. package/lib/steps/removeSetupScripts.js +9 -3
  225. package/lib/steps/removeSetupScripts.js.map +1 -1
  226. package/lib/steps/uninstallPackages.js +14 -5
  227. package/lib/steps/uninstallPackages.js.map +1 -1
  228. package/lib/steps/writing/creation/createCSpellConfig.d.ts +7 -0
  229. package/lib/steps/writing/creation/createCSpellConfig.js +27 -0
  230. package/lib/steps/writing/creation/createCSpellConfig.js.map +1 -0
  231. package/lib/steps/writing/creation/createDotGitignore.js +7 -5
  232. package/lib/steps/writing/creation/createDotGitignore.js.map +1 -1
  233. package/lib/steps/writing/creation/createESLintConfig.js +1 -3
  234. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
  235. package/lib/steps/writing/creation/createTsupConfig.js +10 -10
  236. package/lib/steps/writing/creation/createTsupConfig.js.map +1 -1
  237. package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js +31 -16
  238. package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js.map +1 -1
  239. package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js +1 -1
  240. package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js.map +1 -1
  241. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js +5 -5
  242. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js.map +1 -1
  243. package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.d.ts +3 -1
  244. package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.js.map +1 -1
  245. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js +5 -1
  246. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js.map +1 -1
  247. package/lib/steps/writing/creation/formatters/formatIgnoreFile.d.ts +1 -1
  248. package/lib/steps/writing/creation/formatters/formatIgnoreFile.js +1 -1
  249. package/lib/steps/writing/creation/formatters/formatIgnoreFile.js.map +1 -1
  250. package/lib/steps/writing/creation/formatters/formatTypeScript.js +1 -1
  251. package/lib/steps/writing/creation/formatters/formatTypeScript.js.map +1 -1
  252. package/lib/steps/writing/creation/formatters/formatYaml.js +3 -1
  253. package/lib/steps/writing/creation/formatters/formatYaml.js.map +1 -1
  254. package/lib/steps/writing/creation/index.d.ts +1 -1
  255. package/lib/steps/writing/creation/index.js +48 -1
  256. package/lib/steps/writing/creation/index.js.map +1 -1
  257. package/lib/steps/writing/creation/rootFiles.js +4 -14
  258. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  259. package/lib/steps/writing/creation/writeAllContributorsRC.js +1 -9
  260. package/lib/steps/writing/creation/writeAllContributorsRC.js.map +1 -1
  261. package/lib/steps/writing/creation/writePackageJson.js +69 -62
  262. package/lib/steps/writing/creation/writePackageJson.js.map +1 -1
  263. package/lib/steps/writing/types.d.ts +1 -1
  264. package/lib/steps/writing/writeStructure.js +9 -1
  265. package/lib/steps/writing/writeStructure.js.map +1 -1
  266. package/lib/steps/writing/writeStructureWorker.js +1 -1
  267. package/lib/steps/writing/writeStructureWorker.js.map +1 -1
  268. package/package.json +35 -28
  269. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.d.ts +0 -8
  270. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js +0 -22
  271. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js.map +0 -1
  272. package/lib/shared/options/getGitHub.d.ts +0 -9
  273. package/lib/shared/options/getGitHub.js +0 -17
  274. package/lib/shared/options/getGitHub.js.map +0 -1
  275. package/lib/steps/detectExistingContributors.d.ts +0 -7
  276. package/lib/steps/detectExistingContributors.js +0 -19
  277. package/lib/steps/detectExistingContributors.js.map +0 -1
  278. package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.d.ts +0 -8
  279. package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.js +0 -14
  280. package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.js.map +0 -1
  281. package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.d.ts +0 -8
  282. package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.js +0 -63
  283. package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.js.map +0 -1
  284. package/lib/steps/initializeGitHubRepository/labels/outcomeLabels.d.ts +0 -7
  285. package/lib/steps/initializeGitHubRepository/labels/outcomeLabels.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ import { base } from "./base.js";
2
+ import { blockContributingDocs } from "./blocks/blockContributingDocs.js";
3
+ import { blockContributorCovenant } from "./blocks/blockContributorCovenant.js";
4
+ import { blockDevelopmentDocs } from "./blocks/blockDevelopmentDocs.js";
5
+ import { blockESLint } from "./blocks/blockESLint.js";
6
+ import { blockExampleFiles } from "./blocks/blockExampleFiles.js";
7
+ import { blockFunding } from "./blocks/blockFunding.js";
8
+ import { blockGitHubActionsCI } from "./blocks/blockGitHubActionsCI.js";
9
+ import { blockGitHubIssueTemplates } from "./blocks/blockGitHubIssueTemplates.js";
10
+ import { blockGitHubPRTemplate } from "./blocks/blockGitHubPRTemplate.js";
11
+ import { blockGitignore } from "./blocks/blockGitignore.js";
12
+ import { blockMITLicense } from "./blocks/blockMITLicense.js";
13
+ import { blockPackageJson } from "./blocks/blockPackageJson.js";
14
+ import { blockPrettier } from "./blocks/blockPrettier.js";
15
+ import { blockREADME } from "./blocks/blockREADME.js";
16
+ import { blockRepositoryBranchProtection } from "./blocks/blockRepositoryBranchProtection.js";
17
+ import { blockRepositoryLabels } from "./blocks/blockRepositoryLabels.js";
18
+ import { blockRepositorySettings } from "./blocks/blockRepositorySettings.js";
19
+ import { blockTemplatedBy } from "./blocks/blockTemplatedBy.js";
20
+ import { blockTSup } from "./blocks/blockTSup.js";
21
+ import { blockTypeScript } from "./blocks/blockTypeScript.js";
22
+ const presetMinimal = base.createPreset({
23
+ about: {
24
+ description: "Just bare starter tooling: building, formatting, linting, and type checking.",
25
+ name: "Minimal"
26
+ },
27
+ blocks: [
28
+ blockContributingDocs,
29
+ blockContributorCovenant,
30
+ blockDevelopmentDocs,
31
+ blockESLint,
32
+ blockExampleFiles,
33
+ blockFunding,
34
+ blockGitHubActionsCI,
35
+ blockGitHubIssueTemplates,
36
+ blockGitHubPRTemplate,
37
+ blockGitignore,
38
+ blockMITLicense,
39
+ blockPackageJson,
40
+ blockPrettier,
41
+ blockREADME,
42
+ blockRepositoryBranchProtection,
43
+ blockRepositoryLabels,
44
+ blockRepositorySettings,
45
+ blockTemplatedBy,
46
+ blockTSup,
47
+ blockTypeScript
48
+ ]
49
+ });
50
+ export {
51
+ presetMinimal
52
+ };
53
+ //# sourceMappingURL=presetMinimal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/next/presetMinimal.ts"],"sourcesContent":["import { base } from \"./base.js\";\nimport { blockContributingDocs } from \"./blocks/blockContributingDocs.js\";\nimport { blockContributorCovenant } from \"./blocks/blockContributorCovenant.js\";\nimport { blockDevelopmentDocs } from \"./blocks/blockDevelopmentDocs.js\";\nimport { blockESLint } from \"./blocks/blockESLint.js\";\nimport { blockExampleFiles } from \"./blocks/blockExampleFiles.js\";\nimport { blockFunding } from \"./blocks/blockFunding.js\";\nimport { blockGitHubActionsCI } from \"./blocks/blockGitHubActionsCI.js\";\nimport { blockGitHubIssueTemplates } from \"./blocks/blockGitHubIssueTemplates.js\";\nimport { blockGitHubPRTemplate } from \"./blocks/blockGitHubPRTemplate.js\";\nimport { blockGitignore } from \"./blocks/blockGitignore.js\";\nimport { blockMITLicense } from \"./blocks/blockMITLicense.js\";\nimport { blockPackageJson } from \"./blocks/blockPackageJson.js\";\nimport { blockPrettier } from \"./blocks/blockPrettier.js\";\nimport { blockREADME } from \"./blocks/blockREADME.js\";\nimport { blockRepositoryBranchProtection } from \"./blocks/blockRepositoryBranchProtection.js\";\nimport { blockRepositoryLabels } from \"./blocks/blockRepositoryLabels.js\";\nimport { blockRepositorySettings } from \"./blocks/blockRepositorySettings.js\";\nimport { blockTemplatedBy } from \"./blocks/blockTemplatedBy.js\";\nimport { blockTSup } from \"./blocks/blockTSup.js\";\nimport { blockTypeScript } from \"./blocks/blockTypeScript.js\";\n\nexport const presetMinimal = base.createPreset({\n\tabout: {\n\t\tdescription:\n\t\t\t\"Just bare starter tooling: building, formatting, linting, and type checking.\",\n\t\tname: \"Minimal\",\n\t},\n\tblocks: [\n\t\tblockContributingDocs,\n\t\tblockContributorCovenant,\n\t\tblockDevelopmentDocs,\n\t\tblockESLint,\n\t\tblockExampleFiles,\n\t\tblockFunding,\n\t\tblockGitHubActionsCI,\n\t\tblockGitHubIssueTemplates,\n\t\tblockGitHubPRTemplate,\n\t\tblockGitignore,\n\t\tblockMITLicense,\n\t\tblockPackageJson,\n\t\tblockPrettier,\n\t\tblockREADME,\n\t\tblockRepositoryBranchProtection,\n\t\tblockRepositoryLabels,\n\t\tblockRepositorySettings,\n\t\tblockTemplatedBy,\n\t\tblockTSup,\n\t\tblockTypeScript,\n\t],\n});\n"],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,6BAA6B;AACtC,SAAS,gCAAgC;AACzC,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B,SAAS,4BAA4B;AACrC,SAAS,iCAAiC;AAC1C,SAAS,6BAA6B;AACtC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,uCAAuC;AAChD,SAAS,6BAA6B;AACtC,SAAS,+BAA+B;AACxC,SAAS,wBAAwB;AACjC,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAEzB,MAAM,gBAAgB,KAAK,aAAa;AAAA,EAC9C,OAAO;AAAA,IACN,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP;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;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD,CAAC;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { Options } from '../shared/types.js';
2
+ import 'zod';
3
+ import '../shared/codes.js';
4
+
5
+ declare function runCreateEnginePreset(options: Options): Promise<void>;
6
+
7
+ export { runCreateEnginePreset };
@@ -0,0 +1,20 @@
1
+ import { runPreset } from "create";
2
+ import { presetCommon } from "./presetCommon.js";
3
+ import { presetEverything } from "./presetEverything.js";
4
+ import { presetMinimal } from "./presetMinimal.js";
5
+ const presets = {
6
+ common: presetCommon,
7
+ everything: presetEverything,
8
+ minimal: presetMinimal
9
+ };
10
+ async function runCreateEnginePreset(options) {
11
+ const preset = options.base && options.base !== "prompt" && presets[options.base];
12
+ if (!preset) {
13
+ throw new Error(`Cannot yet use create engine with base ${options.base}.`);
14
+ }
15
+ await runPreset(preset, { mode: "initialize", options });
16
+ }
17
+ export {
18
+ runCreateEnginePreset
19
+ };
20
+ //# sourceMappingURL=runCreateEnginePreset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/next/runCreateEnginePreset.ts"],"sourcesContent":["import { runPreset } from \"create\";\n\nimport { Options } from \"../shared/types.js\";\nimport { presetCommon } from \"./presetCommon.js\";\nimport { presetEverything } from \"./presetEverything.js\";\nimport { presetMinimal } from \"./presetMinimal.js\";\n\nconst presets = {\n\tcommon: presetCommon,\n\teverything: presetEverything,\n\tminimal: presetMinimal,\n};\n\nexport async function runCreateEnginePreset(options: Options) {\n\tconst preset =\n\t\toptions.base && options.base !== \"prompt\" && presets[options.base];\n\n\tif (!preset) {\n\t\tthrow new Error(`Cannot yet use create engine with base ${options.base}.`);\n\t}\n\n\tawait runPreset(preset, { mode: \"initialize\", options });\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAG1B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAE9B,MAAM,UAAU;AAAA,EACf,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AACV;AAEA,eAAsB,sBAAsB,SAAkB;AAC7D,QAAM,SACL,QAAQ,QAAQ,QAAQ,SAAS,YAAY,QAAQ,QAAQ,IAAI;AAElE,MAAI,CAAC,QAAQ;AACZ,UAAM,IAAI,MAAM,0CAA0C,QAAQ,IAAI,GAAG;AAAA,EAC1E;AAEA,QAAM,UAAU,QAAQ,EAAE,MAAM,cAAc,QAAQ,CAAC;AACxD;","names":[]}
@@ -0,0 +1,99 @@
1
+ import * as create from 'create';
2
+ import * as zod from 'zod';
3
+
4
+ declare const template: create.Template<"common" | "everything" | "minimal", {
5
+ access: zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"public">, zod.ZodLiteral<"restricted">]>>;
6
+ author: zod.ZodOptional<zod.ZodString>;
7
+ bin: zod.ZodOptional<zod.ZodString>;
8
+ contributors: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
9
+ avatar_url: zod.ZodString;
10
+ contributions: zod.ZodArray<zod.ZodString, "many">;
11
+ login: zod.ZodString;
12
+ name: zod.ZodString;
13
+ profile: zod.ZodString;
14
+ }, "strip", zod.ZodTypeAny, {
15
+ name: string;
16
+ avatar_url: string;
17
+ contributions: string[];
18
+ login: string;
19
+ profile: string;
20
+ }, {
21
+ name: string;
22
+ avatar_url: string;
23
+ contributions: string[];
24
+ login: string;
25
+ profile: string;
26
+ }>, "many">>;
27
+ description: zod.ZodString;
28
+ documentation: zod.ZodOptional<zod.ZodString>;
29
+ email: zod.ZodEffects<zod.ZodUnion<[zod.ZodString, zod.ZodObject<{
30
+ github: zod.ZodString;
31
+ npm: zod.ZodString;
32
+ }, "strip", zod.ZodTypeAny, {
33
+ github: string;
34
+ npm: string;
35
+ }, {
36
+ github: string;
37
+ npm: string;
38
+ }>]>, {
39
+ github: string;
40
+ npm: string;
41
+ }, string | {
42
+ github: string;
43
+ npm: string;
44
+ }>;
45
+ funding: zod.ZodOptional<zod.ZodString>;
46
+ guide: zod.ZodOptional<zod.ZodObject<{
47
+ href: zod.ZodString;
48
+ title: zod.ZodString;
49
+ }, "strip", zod.ZodTypeAny, {
50
+ href: string;
51
+ title: string;
52
+ }, {
53
+ href: string;
54
+ title: string;
55
+ }>>;
56
+ hideTemplatedBy: zod.ZodOptional<zod.ZodBoolean>;
57
+ keywords: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
58
+ login: zod.ZodOptional<zod.ZodString>;
59
+ logo: zod.ZodOptional<zod.ZodObject<{
60
+ alt: zod.ZodString;
61
+ src: zod.ZodString;
62
+ }, "strip", zod.ZodTypeAny, {
63
+ alt: string;
64
+ src: string;
65
+ }, {
66
+ alt: string;
67
+ src: string;
68
+ }>>;
69
+ node: zod.ZodOptional<zod.ZodObject<{
70
+ minimum: zod.ZodString;
71
+ pinned: zod.ZodOptional<zod.ZodString>;
72
+ }, "strip", zod.ZodTypeAny, {
73
+ minimum: string;
74
+ pinned?: string | undefined;
75
+ }, {
76
+ minimum: string;
77
+ pinned?: string | undefined;
78
+ }>>;
79
+ owner: zod.ZodString;
80
+ packageData: zod.ZodOptional<zod.ZodObject<{
81
+ dependencies: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
82
+ devDependencies: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
83
+ scripts: zod.ZodOptional<zod.ZodRecord<zod.ZodString, zod.ZodString>>;
84
+ }, "strip", zod.ZodTypeAny, {
85
+ dependencies?: Record<string, string> | undefined;
86
+ devDependencies?: Record<string, string> | undefined;
87
+ scripts?: Record<string, string> | undefined;
88
+ }, {
89
+ dependencies?: Record<string, string> | undefined;
90
+ devDependencies?: Record<string, string> | undefined;
91
+ scripts?: Record<string, string> | undefined;
92
+ }>>;
93
+ preserveGeneratedFrom: zod.ZodOptional<zod.ZodBoolean>;
94
+ repository: zod.ZodString;
95
+ title: zod.ZodString;
96
+ version: zod.ZodOptional<zod.ZodString>;
97
+ }>;
98
+
99
+ export { template as default, template };
@@ -0,0 +1,21 @@
1
+ import { createTemplate } from "create";
2
+ import { presetCommon } from "./presetCommon.js";
3
+ import { presetEverything } from "./presetEverything.js";
4
+ import { presetMinimal } from "./presetMinimal.js";
5
+ const template = createTemplate({
6
+ about: {
7
+ name: "TypeScript App"
8
+ },
9
+ default: "common",
10
+ presets: [
11
+ { label: "common", preset: presetCommon },
12
+ { label: "everything", preset: presetEverything },
13
+ { label: "minimal", preset: presetMinimal }
14
+ ]
15
+ });
16
+ var template_default = template;
17
+ export {
18
+ template_default as default,
19
+ template
20
+ };
21
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/next/template.ts"],"sourcesContent":["import { createTemplate } from \"create\";\n\nimport { presetCommon } from \"./presetCommon.js\";\nimport { presetEverything } from \"./presetEverything.js\";\nimport { presetMinimal } from \"./presetMinimal.js\";\n\nexport const template = createTemplate({\n\tabout: {\n\t\tname: \"TypeScript App\",\n\t},\n\tdefault: \"common\",\n\tpresets: [\n\t\t{ label: \"common\", preset: presetCommon },\n\t\t{ label: \"everything\", preset: presetEverything },\n\t\t{ label: \"minimal\", preset: presetMinimal },\n\t],\n});\n\nexport default template;\n"],"mappings":"AAAA,SAAS,sBAAsB;AAE/B,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAEvB,MAAM,WAAW,eAAe;AAAA,EACtC,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,SAAS;AAAA,EACT,SAAS;AAAA,IACR,EAAE,OAAO,UAAU,QAAQ,aAAa;AAAA,IACxC,EAAE,OAAO,cAAc,QAAQ,iBAAiB;AAAA,IAChD,EAAE,OAAO,WAAW,QAAQ,cAAc;AAAA,EAC3C;AACD,CAAC;AAED,IAAO,mBAAQ;","names":[]}
@@ -0,0 +1,5 @@
1
+ declare function sortObject(value: object | Record<string, unknown>): {
2
+ [k: string]: any;
3
+ };
4
+
5
+ export { sortObject };
@@ -0,0 +1,9 @@
1
+ function sortObject(value) {
2
+ return Object.fromEntries(
3
+ Object.entries(value).sort(([a], [b]) => a.localeCompare(b))
4
+ );
5
+ }
6
+ export {
7
+ sortObject
8
+ };
9
+ //# sourceMappingURL=sortObject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/utils/sortObject.ts"],"sourcesContent":["// TODO: move to npm package?\nexport function sortObject(value: object | Record<string, unknown>) {\n\treturn Object.fromEntries(\n\t\tObject.entries(value).sort(([a], [b]) => a.localeCompare(b)),\n\t);\n}\n"],"mappings":"AACO,SAAS,WAAW,OAAyC;AACnE,SAAO,OAAO;AAAA,IACb,OAAO,QAAQ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAAA,EAC5D;AACD;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function swallowError<T>(value: Error | T): T | undefined;
2
+
3
+ export { swallowError };
@@ -0,0 +1,7 @@
1
+ function swallowError(value) {
2
+ return value instanceof Error ? void 0 : value;
3
+ }
4
+ export {
5
+ swallowError
6
+ };
7
+ //# sourceMappingURL=swallowError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/utils/swallowError.ts"],"sourcesContent":["// TODO: What to do about errors? I think this is correct, but ...?\nexport function swallowError<T>(value: Error | T) {\n\treturn value instanceof Error ? undefined : value;\n}\n"],"mappings":"AACO,SAAS,aAAgB,OAAkB;AACjD,SAAO,iBAAiB,QAAQ,SAAY;AAC7C;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function isUsingCreateEngine(): boolean;
2
+
3
+ export { isUsingCreateEngine };
@@ -0,0 +1,7 @@
1
+ function isUsingCreateEngine() {
2
+ return !!process.env.CTA_CREATE_ENGINE && Boolean(process.env.CTA_CREATE_ENGINE);
3
+ }
4
+ export {
5
+ isUsingCreateEngine
6
+ };
7
+ //# sourceMappingURL=isUsingCreateEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/shared/isUsingCreateEngine.ts"],"sourcesContent":["export function isUsingCreateEngine() {\n\treturn (\n\t\t!!process.env.CTA_CREATE_ENGINE && Boolean(process.env.CTA_CREATE_ENGINE)\n\t);\n}\n"],"mappings":"AAAO,SAAS,sBAAsB;AACrC,SACC,CAAC,CAAC,QAAQ,IAAI,qBAAqB,QAAQ,QAAQ,IAAI,iBAAiB;AAE1E;","names":[]}
@@ -1,4 +1,5 @@
1
1
  import { PromptedOptions } from '../../types.js';
2
+ import { readGuide } from './readGuide.js';
2
3
  import 'zod';
3
4
  import '../../codes.js';
4
5
 
@@ -8,10 +9,6 @@ declare function createOptionDefaults(promptedOptions?: PromptedOptions): {
8
9
  src: string;
9
10
  } | undefined>;
10
11
  title: () => Promise<string | undefined>;
11
- guide: () => Promise<{
12
- href: string;
13
- title: string;
14
- } | undefined>;
15
12
  author: () => Promise<string | undefined>;
16
13
  bin: () => Promise<string | undefined>;
17
14
  description: () => Promise<string | undefined>;
@@ -20,6 +17,7 @@ declare function createOptionDefaults(promptedOptions?: PromptedOptions): {
20
17
  npm: string;
21
18
  } | undefined>;
22
19
  funding: () => Promise<string | undefined>;
20
+ guide: typeof readGuide;
23
21
  owner: () => Promise<string | undefined>;
24
22
  repository: () => Promise<string | undefined>;
25
23
  };
@@ -8,9 +8,9 @@ import { readPackageData } from "../../packages.js";
8
8
  import { tryCatchAsync } from "../../tryCatchAsync.js";
9
9
  import { tryCatchLazyValueAsync } from "../../tryCatchLazyValueAsync.js";
10
10
  import { parsePackageAuthor } from "./parsePackageAuthor.js";
11
- import { readDefaultsFromDevelopment } from "./readDefaultsFromDevelopment.js";
12
11
  import { readDefaultsFromReadme } from "./readDefaultsFromReadme.js";
13
- import { readGitHubEmail } from "./readGitHubEmail.js";
12
+ import { readEmails } from "./readEmails.js";
13
+ import { readGuide } from "./readGuide.js";
14
14
  function createOptionDefaults(promptedOptions) {
15
15
  const gitDefaults = tryCatchLazyValueAsync(
16
16
  async () => gitUrlParse(await gitRemoteOriginUrl())
@@ -27,22 +27,13 @@ function createOptionDefaults(promptedOptions) {
27
27
  author: async () => (await packageAuthor()).author ?? (await npmDefaults())?.name,
28
28
  bin: async () => (await packageData()).bin,
29
29
  description: async () => (await packageData()).description,
30
- email: async () => {
31
- const githubEmail = await readGitHubEmail() ?? await tryCatchAsync(
32
- async () => (await $`git config --get user.email`).stdout
33
- );
34
- const npmEmail = (await npmDefaults())?.email ?? (await packageAuthor()).email;
35
- return githubEmail || npmEmail ? {
36
- github: githubEmail || npmEmail,
37
- npm: npmEmail || githubEmail
38
- } : void 0;
39
- },
30
+ email: async () => readEmails(npmDefaults, packageAuthor),
40
31
  funding: async () => await tryCatchAsync(
41
32
  async () => (await fs.readFile(".github/FUNDING.yml")).toString().split(":")[1]?.trim()
42
33
  ),
34
+ guide: readGuide,
43
35
  owner: async () => (await gitDefaults())?.organization ?? (await packageAuthor()).author,
44
36
  repository: async () => promptedOptions?.repository ?? (await gitDefaults())?.name ?? (await packageData()).name,
45
- ...readDefaultsFromDevelopment(),
46
37
  ...readDefaultsFromReadme()
47
38
  };
48
39
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/index.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport gitRemoteOriginUrl from \"git-remote-origin-url\";\nimport gitUrlParse from \"git-url-parse\";\nimport lazyValue from \"lazy-value\";\nimport * as fs from \"node:fs/promises\";\nimport npmUser from \"npm-user\";\n\nimport { readPackageData } from \"../../packages.js\";\nimport { tryCatchAsync } from \"../../tryCatchAsync.js\";\nimport { tryCatchLazyValueAsync } from \"../../tryCatchLazyValueAsync.js\";\nimport { PromptedOptions } from \"../../types.js\";\nimport { parsePackageAuthor } from \"./parsePackageAuthor.js\";\nimport { readDefaultsFromDevelopment } from \"./readDefaultsFromDevelopment.js\";\nimport { readDefaultsFromReadme } from \"./readDefaultsFromReadme.js\";\nimport { readGitHubEmail } from \"./readGitHubEmail.js\";\n\nexport function createOptionDefaults(promptedOptions?: PromptedOptions) {\n\tconst gitDefaults = tryCatchLazyValueAsync(async () =>\n\t\tgitUrlParse(await gitRemoteOriginUrl()),\n\t);\n\n\tconst npmDefaults = tryCatchLazyValueAsync(async () => {\n\t\tconst whoami = (await $`npm whoami`).stdout;\n\t\treturn whoami ? await npmUser(whoami) : undefined;\n\t});\n\n\tconst packageData = lazyValue(readPackageData);\n\tconst packageAuthor = lazyValue(async () =>\n\t\tparsePackageAuthor(await packageData()),\n\t);\n\n\treturn {\n\t\tauthor: async () =>\n\t\t\t(await packageAuthor()).author ?? (await npmDefaults())?.name,\n\t\tbin: async () => (await packageData()).bin,\n\t\tdescription: async () => (await packageData()).description,\n\t\temail: async () => {\n\t\t\tconst githubEmail =\n\t\t\t\t(await readGitHubEmail()) ??\n\t\t\t\t(await tryCatchAsync(\n\t\t\t\t\tasync () => (await $`git config --get user.email`).stdout,\n\t\t\t\t));\n\t\t\tconst npmEmail =\n\t\t\t\t(await npmDefaults())?.email ?? (await packageAuthor()).email;\n\n\t\t\t/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\t\t\treturn githubEmail || npmEmail\n\t\t\t\t? {\n\t\t\t\t\t\tgithub: (githubEmail || npmEmail)!,\n\t\t\t\t\t\tnpm: (npmEmail || githubEmail)!,\n\t\t\t\t\t}\n\t\t\t\t: undefined;\n\t\t\t/* eslint-enable @typescript-eslint/no-non-null-assertion */\n\t\t},\n\t\tfunding: async () =>\n\t\t\tawait tryCatchAsync(async () =>\n\t\t\t\t(await fs.readFile(\".github/FUNDING.yml\"))\n\t\t\t\t\t.toString()\n\t\t\t\t\t.split(\":\")[1]\n\t\t\t\t\t?.trim(),\n\t\t\t),\n\t\towner: async () =>\n\t\t\t(await gitDefaults())?.organization ?? (await packageAuthor()).author,\n\t\trepository: async () =>\n\t\t\tpromptedOptions?.repository ??\n\t\t\t(await gitDefaults())?.name ??\n\t\t\t(await packageData()).name,\n\t\t...readDefaultsFromDevelopment(),\n\t\t...readDefaultsFromReadme(),\n\t};\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,OAAO,wBAAwB;AAC/B,OAAO,iBAAiB;AACxB,OAAO,eAAe;AACtB,YAAY,QAAQ;AACpB,OAAO,aAAa;AAEpB,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,8BAA8B;AAEvC,SAAS,0BAA0B;AACnC,SAAS,mCAAmC;AAC5C,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAEzB,SAAS,qBAAqB,iBAAmC;AACvE,QAAM,cAAc;AAAA,IAAuB,YAC1C,YAAY,MAAM,mBAAmB,CAAC;AAAA,EACvC;AAEA,QAAM,cAAc,uBAAuB,YAAY;AACtD,UAAM,UAAU,MAAM,eAAe;AACrC,WAAO,SAAS,MAAM,QAAQ,MAAM,IAAI;AAAA,EACzC,CAAC;AAED,QAAM,cAAc,UAAU,eAAe;AAC7C,QAAM,gBAAgB;AAAA,IAAU,YAC/B,mBAAmB,MAAM,YAAY,CAAC;AAAA,EACvC;AAEA,SAAO;AAAA,IACN,QAAQ,aACN,MAAM,cAAc,GAAG,WAAW,MAAM,YAAY,IAAI;AAAA,IAC1D,KAAK,aAAa,MAAM,YAAY,GAAG;AAAA,IACvC,aAAa,aAAa,MAAM,YAAY,GAAG;AAAA,IAC/C,OAAO,YAAY;AAClB,YAAM,cACJ,MAAM,gBAAgB,KACtB,MAAM;AAAA,QACN,aAAa,MAAM,gCAAgC;AAAA,MACpD;AACD,YAAM,YACJ,MAAM,YAAY,IAAI,UAAU,MAAM,cAAc,GAAG;AAGzD,aAAO,eAAe,WACnB;AAAA,QACA,QAAS,eAAe;AAAA,QACxB,KAAM,YAAY;AAAA,MACnB,IACC;AAAA,IAEJ;AAAA,IACA,SAAS,YACR,MAAM;AAAA,MAAc,aAClB,MAAM,GAAG,SAAS,qBAAqB,GACtC,SAAS,EACT,MAAM,GAAG,EAAE,CAAC,GACX,KAAK;AAAA,IACT;AAAA,IACD,OAAO,aACL,MAAM,YAAY,IAAI,iBAAiB,MAAM,cAAc,GAAG;AAAA,IAChE,YAAY,YACX,iBAAiB,eAChB,MAAM,YAAY,IAAI,SACtB,MAAM,YAAY,GAAG;AAAA,IACvB,GAAG,4BAA4B;AAAA,IAC/B,GAAG,uBAAuB;AAAA,EAC3B;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/index.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport gitRemoteOriginUrl from \"git-remote-origin-url\";\nimport gitUrlParse from \"git-url-parse\";\nimport lazyValue from \"lazy-value\";\nimport * as fs from \"node:fs/promises\";\nimport npmUser from \"npm-user\";\n\nimport { readPackageData } from \"../../packages.js\";\nimport { tryCatchAsync } from \"../../tryCatchAsync.js\";\nimport { tryCatchLazyValueAsync } from \"../../tryCatchLazyValueAsync.js\";\nimport { PromptedOptions } from \"../../types.js\";\nimport { parsePackageAuthor } from \"./parsePackageAuthor.js\";\nimport { readDefaultsFromReadme } from \"./readDefaultsFromReadme.js\";\nimport { readEmails } from \"./readEmails.js\";\nimport { readGuide } from \"./readGuide.js\";\n\nexport function createOptionDefaults(promptedOptions?: PromptedOptions) {\n\tconst gitDefaults = tryCatchLazyValueAsync(async () =>\n\t\tgitUrlParse(await gitRemoteOriginUrl()),\n\t);\n\n\tconst npmDefaults = tryCatchLazyValueAsync(async () => {\n\t\tconst whoami = (await $`npm whoami`).stdout;\n\t\treturn whoami ? await npmUser(whoami) : undefined;\n\t});\n\n\tconst packageData = lazyValue(readPackageData);\n\tconst packageAuthor = lazyValue(async () =>\n\t\tparsePackageAuthor(await packageData()),\n\t);\n\n\treturn {\n\t\tauthor: async () =>\n\t\t\t(await packageAuthor()).author ?? (await npmDefaults())?.name,\n\t\tbin: async () => (await packageData()).bin,\n\t\tdescription: async () => (await packageData()).description,\n\t\temail: async () => readEmails(npmDefaults, packageAuthor),\n\t\tfunding: async () =>\n\t\t\tawait tryCatchAsync(async () =>\n\t\t\t\t(await fs.readFile(\".github/FUNDING.yml\"))\n\t\t\t\t\t.toString()\n\t\t\t\t\t.split(\":\")[1]\n\t\t\t\t\t?.trim(),\n\t\t\t),\n\t\tguide: readGuide,\n\t\towner: async () =>\n\t\t\t(await gitDefaults())?.organization ?? (await packageAuthor()).author,\n\t\trepository: async () =>\n\t\t\tpromptedOptions?.repository ??\n\t\t\t(await gitDefaults())?.name ??\n\t\t\t(await packageData()).name,\n\t\t...readDefaultsFromReadme(),\n\t};\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,OAAO,wBAAwB;AAC/B,OAAO,iBAAiB;AACxB,OAAO,eAAe;AACtB,YAAY,QAAQ;AACpB,OAAO,aAAa;AAEpB,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,8BAA8B;AAEvC,SAAS,0BAA0B;AACnC,SAAS,8BAA8B;AACvC,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAEnB,SAAS,qBAAqB,iBAAmC;AACvE,QAAM,cAAc;AAAA,IAAuB,YAC1C,YAAY,MAAM,mBAAmB,CAAC;AAAA,EACvC;AAEA,QAAM,cAAc,uBAAuB,YAAY;AACtD,UAAM,UAAU,MAAM,eAAe;AACrC,WAAO,SAAS,MAAM,QAAQ,MAAM,IAAI;AAAA,EACzC,CAAC;AAED,QAAM,cAAc,UAAU,eAAe;AAC7C,QAAM,gBAAgB;AAAA,IAAU,YAC/B,mBAAmB,MAAM,YAAY,CAAC;AAAA,EACvC;AAEA,SAAO;AAAA,IACN,QAAQ,aACN,MAAM,cAAc,GAAG,WAAW,MAAM,YAAY,IAAI;AAAA,IAC1D,KAAK,aAAa,MAAM,YAAY,GAAG;AAAA,IACvC,aAAa,aAAa,MAAM,YAAY,GAAG;AAAA,IAC/C,OAAO,YAAY,WAAW,aAAa,aAAa;AAAA,IACxD,SAAS,YACR,MAAM;AAAA,MAAc,aAClB,MAAM,GAAG,SAAS,qBAAqB,GACtC,SAAS,EACT,MAAM,GAAG,EAAE,CAAC,GACX,KAAK;AAAA,IACT;AAAA,IACD,OAAO;AAAA,IACP,OAAO,aACL,MAAM,YAAY,IAAI,iBAAiB,MAAM,cAAc,GAAG;AAAA,IAChE,YAAY,YACX,iBAAiB,eAChB,MAAM,YAAY,IAAI,SACtB,MAAM,YAAY,GAAG;AAAA,IACvB,GAAG,uBAAuB;AAAA,EAC3B;AACD;","names":[]}
@@ -20,7 +20,10 @@ function readDefaultsFromReadme() {
20
20
  src
21
21
  };
22
22
  },
23
- title: async () => (/^<h1\s+align="center">(.+)<\/h1>/.exec(await readme()) ?? /^# (.+)/.exec(await readme()))?.[1]
23
+ title: async () => {
24
+ const text = await readme();
25
+ return (/^<h1\s+align="center">(.+)<\/h1>/.exec(text) ?? /^# (.+)/.exec(text))?.[1];
26
+ }
24
27
  };
25
28
  }
26
29
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/readDefaultsFromReadme.ts"],"sourcesContent":["import lazyValue from \"lazy-value\";\n\nimport { readFileSafe } from \"../../readFileSafe.js\";\n\nexport function readDefaultsFromReadme() {\n\tconst readme = lazyValue(async () => await readFileSafe(\"README.md\", \"\"));\n\n\tconst imageTag = lazyValue(\n\t\tasync () => /\\n<img.+src=.+>/.exec(await readme())?.[0],\n\t);\n\n\treturn {\n\t\tlogo: async () => {\n\t\t\tconst tag = await imageTag();\n\n\t\t\tif (!tag) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst src = /src\\s*=(.+)['\"/]>/\n\t\t\t\t.exec(tag)?.[1]\n\t\t\t\t?.replaceAll(/^['\"]|['\"]$/g, \"\");\n\n\t\t\tif (!src) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\talt: /alt=['\"](.+)['\"]\\s*src=/.exec(tag)?.[1] ?? \"Project logo\",\n\t\t\t\tsrc,\n\t\t\t};\n\t\t},\n\t\ttitle: async () =>\n\t\t\t(/^<h1\\s+align=\"center\">(.+)<\\/h1>/.exec(await readme()) ??\n\t\t\t\t/^# (.+)/.exec(await readme()))?.[1],\n\t};\n}\n"],"mappings":"AAAA,OAAO,eAAe;AAEtB,SAAS,oBAAoB;AAEtB,SAAS,yBAAyB;AACxC,QAAM,SAAS,UAAU,YAAY,MAAM,aAAa,aAAa,EAAE,CAAC;AAExE,QAAM,WAAW;AAAA,IAChB,YAAY,kBAAkB,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC;AAAA,EACvD;AAEA,SAAO;AAAA,IACN,MAAM,YAAY;AACjB,YAAM,MAAM,MAAM,SAAS;AAE3B,UAAI,CAAC,KAAK;AACT,eAAO;AAAA,MACR;AAEA,YAAM,MAAM,oBACV,KAAK,GAAG,IAAI,CAAC,GACZ,WAAW,gBAAgB,EAAE;AAEhC,UAAI,CAAC,KAAK;AACT,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,QACN,KAAK,0BAA0B,KAAK,GAAG,IAAI,CAAC,KAAK;AAAA,QACjD;AAAA,MACD;AAAA,IACD;AAAA,IACA,OAAO,aACL,mCAAmC,KAAK,MAAM,OAAO,CAAC,KACtD,UAAU,KAAK,MAAM,OAAO,CAAC,KAAK,CAAC;AAAA,EACtC;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/readDefaultsFromReadme.ts"],"sourcesContent":["import lazyValue from \"lazy-value\";\n\nimport { readFileSafe } from \"../../readFileSafe.js\";\n\nexport function readDefaultsFromReadme() {\n\tconst readme = lazyValue(async () => await readFileSafe(\"README.md\", \"\"));\n\n\tconst imageTag = lazyValue(\n\t\tasync () => /\\n<img.+src=.+>/.exec(await readme())?.[0],\n\t);\n\n\treturn {\n\t\tlogo: async () => {\n\t\t\tconst tag = await imageTag();\n\n\t\t\tif (!tag) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tconst src = /src\\s*=(.+)['\"/]>/\n\t\t\t\t.exec(tag)?.[1]\n\t\t\t\t?.replaceAll(/^['\"]|['\"]$/g, \"\");\n\n\t\t\tif (!src) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\talt: /alt=['\"](.+)['\"]\\s*src=/.exec(tag)?.[1] ?? \"Project logo\",\n\t\t\t\tsrc,\n\t\t\t};\n\t\t},\n\t\ttitle: async () => {\n\t\t\tconst text = await readme();\n\t\t\treturn (/^<h1\\s+align=\"center\">(.+)<\\/h1>/.exec(text) ??\n\t\t\t\t/^# (.+)/.exec(text))?.[1];\n\t\t},\n\t};\n}\n"],"mappings":"AAAA,OAAO,eAAe;AAEtB,SAAS,oBAAoB;AAEtB,SAAS,yBAAyB;AACxC,QAAM,SAAS,UAAU,YAAY,MAAM,aAAa,aAAa,EAAE,CAAC;AAExE,QAAM,WAAW;AAAA,IAChB,YAAY,kBAAkB,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC;AAAA,EACvD;AAEA,SAAO;AAAA,IACN,MAAM,YAAY;AACjB,YAAM,MAAM,MAAM,SAAS;AAE3B,UAAI,CAAC,KAAK;AACT,eAAO;AAAA,MACR;AAEA,YAAM,MAAM,oBACV,KAAK,GAAG,IAAI,CAAC,GACZ,WAAW,gBAAgB,EAAE;AAEhC,UAAI,CAAC,KAAK;AACT,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,QACN,KAAK,0BAA0B,KAAK,GAAG,IAAI,CAAC,KAAK;AAAA,QACjD;AAAA,MACD;AAAA,IACD;AAAA,IACA,OAAO,YAAY;AAClB,YAAM,OAAO,MAAM,OAAO;AAC1B,cAAQ,mCAAmC,KAAK,IAAI,KACnD,UAAU,KAAK,IAAI,KAAK,CAAC;AAAA,IAC3B;AAAA,EACD;AACD;","names":[]}
@@ -0,0 +1,11 @@
1
+ import { UserInfo } from 'npm-user';
2
+
3
+ declare function readEmails(npmDefaults: () => Promise<undefined | UserInfo>, packageAuthor: () => Promise<{
4
+ author: string | undefined;
5
+ email: string | undefined;
6
+ }>): Promise<{
7
+ github: string;
8
+ npm: string;
9
+ } | undefined>;
10
+
11
+ export { readEmails };
@@ -0,0 +1,14 @@
1
+ import { $ } from "execa";
2
+ import { tryCatchAsync } from "../../tryCatchAsync.js";
3
+ import { readGitHubEmail } from "./readGitHubEmail.js";
4
+ async function readEmails(npmDefaults, packageAuthor) {
5
+ const github = await readGitHubEmail() ?? await tryCatchAsync(
6
+ async () => (await $`git config --get user.email`).stdout
7
+ );
8
+ const npm = ((await npmDefaults())?.email ?? (await packageAuthor()).email) || github;
9
+ return npm ? { github: github || npm, npm } : void 0;
10
+ }
11
+ export {
12
+ readEmails
13
+ };
14
+ //# sourceMappingURL=readEmails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/readEmails.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport { UserInfo } from \"npm-user\";\n\nimport { tryCatchAsync } from \"../../tryCatchAsync.js\";\nimport { readGitHubEmail } from \"./readGitHubEmail.js\";\n\nexport async function readEmails(\n\tnpmDefaults: () => Promise<undefined | UserInfo>,\n\tpackageAuthor: () => Promise<{\n\t\tauthor: string | undefined;\n\t\temail: string | undefined;\n\t}>,\n) {\n\tconst github =\n\t\t(await readGitHubEmail()) ??\n\t\t(await tryCatchAsync(\n\t\t\tasync () => (await $`git config --get user.email`).stdout,\n\t\t));\n\n\tconst npm =\n\t\t((await npmDefaults())?.email ?? (await packageAuthor()).email) || github;\n\n\treturn npm ? { github: github || npm, npm } : undefined;\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAGlB,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAEhC,eAAsB,WACrB,aACA,eAIC;AACD,QAAM,SACJ,MAAM,gBAAgB,KACtB,MAAM;AAAA,IACN,aAAa,MAAM,gCAAgC;AAAA,EACpD;AAED,QAAM,QACH,MAAM,YAAY,IAAI,UAAU,MAAM,cAAc,GAAG,UAAU;AAEpE,SAAO,MAAM,EAAE,QAAQ,UAAU,KAAK,IAAI,IAAI;AAC/C;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function readFunding(): Promise<string | undefined>;
2
+
3
+ export { readFunding };
@@ -0,0 +1,11 @@
1
+ import fs from "node:fs/promises";
2
+ import { tryCatchAsync } from "../../tryCatchAsync.js";
3
+ async function readFunding() {
4
+ return await tryCatchAsync(
5
+ async () => (await fs.readFile(".github/FUNDING.yml")).toString().split(":")[1]?.trim()
6
+ );
7
+ }
8
+ export {
9
+ readFunding
10
+ };
11
+ //# sourceMappingURL=readFunding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/readFunding.ts"],"sourcesContent":["import fs from \"node:fs/promises\";\n\nimport { tryCatchAsync } from \"../../tryCatchAsync.js\";\n\nexport async function readFunding() {\n\treturn await tryCatchAsync(async () =>\n\t\t(await fs.readFile(\".github/FUNDING.yml\")).toString().split(\":\")[1]?.trim(),\n\t);\n}\n"],"mappings":"AAAA,OAAO,QAAQ;AAEf,SAAS,qBAAqB;AAE9B,eAAsB,cAAc;AACnC,SAAO,MAAM;AAAA,IAAc,aACzB,MAAM,GAAG,SAAS,qBAAqB,GAAG,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK;AAAA,EAC3E;AACD;","names":[]}
@@ -0,0 +1,6 @@
1
+ declare function readGuide(): Promise<{
2
+ href: string;
3
+ title: string;
4
+ } | undefined>;
5
+
6
+ export { readGuide };
@@ -0,0 +1,18 @@
1
+ import { readFileSafe } from "../../readFileSafe.js";
2
+ async function readGuide() {
3
+ const development = await readFileSafe(".github/DEVELOPMENT.md", "");
4
+ const tag = /> .*guided walkthrough, see \[((?!\[).+)\]\((.+)\)/i.exec(
5
+ development
6
+ );
7
+ if (!tag) {
8
+ return void 0;
9
+ }
10
+ return {
11
+ href: tag[2],
12
+ title: tag[1]
13
+ };
14
+ }
15
+ export {
16
+ readGuide
17
+ };
18
+ //# sourceMappingURL=readGuide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/shared/options/createOptionDefaults/readGuide.ts"],"sourcesContent":["import { readFileSafe } from \"../../readFileSafe.js\";\n\nexport async function readGuide() {\n\tconst development = await readFileSafe(\".github/DEVELOPMENT.md\", \"\");\n\tconst tag = /> .*guided walkthrough, see \\[((?!\\[).+)\\]\\((.+)\\)/i.exec(\n\t\tdevelopment,\n\t);\n\n\tif (!tag) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\thref: tag[2],\n\t\ttitle: tag[1],\n\t};\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAE7B,eAAsB,YAAY;AACjC,QAAM,cAAc,MAAM,aAAa,0BAA0B,EAAE;AACnE,QAAM,MAAM,sDAAsD;AAAA,IACjE;AAAA,EACD;AAEA,MAAI,CAAC,KAAK;AACT,WAAO;AAAA,EACR;AAEA,SAAO;AAAA,IACN,MAAM,IAAI,CAAC;AAAA,IACX,OAAO,IAAI,CAAC;AAAA,EACb;AACD;","names":[]}
@@ -1,14 +1,13 @@
1
+ import { Octokit } from 'octokit';
1
2
  import { Options } from '../types.js';
2
- import { GitHub } from './getGitHub.js';
3
3
  import 'zod';
4
4
  import '../codes.js';
5
- import 'octokit';
6
5
 
7
6
  type EnsureRepositoryExistsOptions = Pick<Options, "mode" | "owner" | "preserveGeneratedFrom" | "repository">;
8
7
  interface RepositoryExistsResult {
9
- github: GitHub | undefined;
8
+ octokit: Octokit | undefined;
10
9
  repository: string;
11
10
  }
12
- declare function ensureRepositoryExists(github: GitHub | undefined, options: EnsureRepositoryExistsOptions): Promise<Partial<RepositoryExistsResult>>;
11
+ declare function ensureRepositoryExists(octokit: Octokit | undefined, options: EnsureRepositoryExistsOptions): Promise<Partial<RepositoryExistsResult>>;
13
12
 
14
13
  export { type EnsureRepositoryExistsOptions, type RepositoryExistsResult, ensureRepositoryExists };
@@ -1,13 +1,14 @@
1
1
  import * as prompts from "@clack/prompts";
2
2
  import { doesRepositoryExist } from "../doesRepositoryExist.js";
3
+ import { isUsingCreateEngine } from "../isUsingCreateEngine.js";
3
4
  import { filterPromptCancel } from "../prompts.js";
4
5
  import { createRepositoryWithApi } from "./createRepositoryWithApi.js";
5
- async function ensureRepositoryExists(github, options) {
6
+ async function ensureRepositoryExists(octokit, options) {
6
7
  let { repository } = options;
7
8
  let createRepository = options.mode === "create";
8
- while (github) {
9
- if (await doesRepositoryExist(github.octokit, options)) {
10
- return { github, repository };
9
+ while (octokit) {
10
+ if (isUsingCreateEngine() || await doesRepositoryExist(octokit, options)) {
11
+ return { octokit, repository };
11
12
  }
12
13
  const selection = createRepository ? "create" : filterPromptCancel(
13
14
  await prompts.select({
@@ -32,12 +33,12 @@ async function ensureRepositoryExists(github, options) {
32
33
  case void 0:
33
34
  return {};
34
35
  case "create":
35
- await createRepositoryWithApi(github.octokit, {
36
+ await createRepositoryWithApi(octokit, {
36
37
  owner: options.owner,
37
38
  preserveGeneratedFrom: options.preserveGeneratedFrom,
38
39
  repository
39
40
  });
40
- return { github, repository };
41
+ return { octokit, repository };
41
42
  case "different": {
42
43
  const newRepository = filterPromptCancel(
43
44
  await prompts.text({
@@ -51,11 +52,11 @@ async function ensureRepositoryExists(github, options) {
51
52
  break;
52
53
  }
53
54
  case "local":
54
- github = void 0;
55
+ octokit = void 0;
55
56
  break;
56
57
  }
57
58
  }
58
- return { github, repository };
59
+ return { octokit, repository };
59
60
  }
60
61
  export {
61
62
  ensureRepositoryExists
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/ensureRepositoryExists.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\n\nimport { doesRepositoryExist } from \"../doesRepositoryExist.js\";\nimport { filterPromptCancel } from \"../prompts.js\";\nimport { Options } from \"../types.js\";\nimport { createRepositoryWithApi } from \"./createRepositoryWithApi.js\";\nimport { GitHub } from \"./getGitHub.js\";\n\nexport type EnsureRepositoryExistsOptions = Pick<\n\tOptions,\n\t\"mode\" | \"owner\" | \"preserveGeneratedFrom\" | \"repository\"\n>;\n\nexport interface RepositoryExistsResult {\n\tgithub: GitHub | undefined;\n\trepository: string;\n}\n\nexport async function ensureRepositoryExists(\n\tgithub: GitHub | undefined,\n\toptions: EnsureRepositoryExistsOptions,\n): Promise<Partial<RepositoryExistsResult>> {\n\t// We'll only respect input options once before prompting for them\n\tlet { repository } = options;\n\tlet createRepository = options.mode === \"create\";\n\n\t// We'll continuously pester the user for a repository\n\t// until they bail, create a new one, or it exists.\n\twhile (github) {\n\t\tif (await doesRepositoryExist(github.octokit, options)) {\n\t\t\treturn { github, repository };\n\t\t}\n\n\t\tconst selection = createRepository\n\t\t\t? \"create\"\n\t\t\t: filterPromptCancel(\n\t\t\t\t\t(await prompts.select({\n\t\t\t\t\t\tmessage: `Repository ${options.repository} doesn't seem to exist under ${options.owner}. What would you like to do?`,\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{ label: \"Create a new repository\", value: \"create\" },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Switch to a different repository name\",\n\t\t\t\t\t\t\t\tvalue: \"different\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Keep changes local\",\n\t\t\t\t\t\t\t\tvalue: \"local\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ label: \"Bail out and maybe try again later\", value: \"bail\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t})) as \"bail\" | \"create\" | \"different\" | \"local\",\n\t\t\t\t);\n\n\t\tcreateRepository = false;\n\n\t\tswitch (selection) {\n\t\t\tcase \"bail\":\n\t\t\tcase undefined:\n\t\t\t\treturn {};\n\n\t\t\tcase \"create\":\n\t\t\t\tawait createRepositoryWithApi(github.octokit, {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tpreserveGeneratedFrom: options.preserveGeneratedFrom,\n\t\t\t\t\trepository,\n\t\t\t\t});\n\t\t\t\treturn { github, repository };\n\n\t\t\tcase \"different\": {\n\t\t\t\tconst newRepository = filterPromptCancel(\n\t\t\t\t\tawait prompts.text({\n\t\t\t\t\t\tmessage: `What would you like to call the repository?`,\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tif (!newRepository) {\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\n\t\t\t\trepository = newRepository;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"local\":\n\t\t\t\tgithub = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { github, repository };\n}\n"],"mappings":"AAAA,YAAY,aAAa;AAEzB,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AAEnC,SAAS,+BAA+B;AAaxC,eAAsB,uBACrB,QACA,SAC2C;AAE3C,MAAI,EAAE,WAAW,IAAI;AACrB,MAAI,mBAAmB,QAAQ,SAAS;AAIxC,SAAO,QAAQ;AACd,QAAI,MAAM,oBAAoB,OAAO,SAAS,OAAO,GAAG;AACvD,aAAO,EAAE,QAAQ,WAAW;AAAA,IAC7B;AAEA,UAAM,YAAY,mBACf,WACA;AAAA,MACC,MAAM,QAAQ,OAAO;AAAA,QACrB,SAAS,cAAc,QAAQ,UAAU,gCAAgC,QAAQ,KAAK;AAAA,QACtF,SAAS;AAAA,UACR,EAAE,OAAO,2BAA2B,OAAO,SAAS;AAAA,UACpD;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA,EAAE,OAAO,sCAAsC,OAAO,OAAO;AAAA,QAC9D;AAAA,MACD,CAAC;AAAA,IACF;AAEF,uBAAmB;AAEnB,YAAQ,WAAW;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACJ,eAAO,CAAC;AAAA,MAET,KAAK;AACJ,cAAM,wBAAwB,OAAO,SAAS;AAAA,UAC7C,OAAO,QAAQ;AAAA,UACf,uBAAuB,QAAQ;AAAA,UAC/B;AAAA,QACD,CAAC;AACD,eAAO,EAAE,QAAQ,WAAW;AAAA,MAE7B,KAAK,aAAa;AACjB,cAAM,gBAAgB;AAAA,UACrB,MAAM,QAAQ,KAAK;AAAA,YAClB,SAAS;AAAA,UACV,CAAC;AAAA,QACF;AAEA,YAAI,CAAC,eAAe;AACnB,iBAAO,CAAC;AAAA,QACT;AAEA,qBAAa;AACb;AAAA,MACD;AAAA,MAEA,KAAK;AACJ,iBAAS;AACT;AAAA,IACF;AAAA,EACD;AAEA,SAAO,EAAE,QAAQ,WAAW;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/ensureRepositoryExists.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\nimport { Octokit } from \"octokit\";\n\nimport { doesRepositoryExist } from \"../doesRepositoryExist.js\";\nimport { isUsingCreateEngine } from \"../isUsingCreateEngine.js\";\nimport { filterPromptCancel } from \"../prompts.js\";\nimport { Options } from \"../types.js\";\nimport { createRepositoryWithApi } from \"./createRepositoryWithApi.js\";\n\nexport type EnsureRepositoryExistsOptions = Pick<\n\tOptions,\n\t\"mode\" | \"owner\" | \"preserveGeneratedFrom\" | \"repository\"\n>;\n\nexport interface RepositoryExistsResult {\n\toctokit: Octokit | undefined;\n\trepository: string;\n}\n\nexport async function ensureRepositoryExists(\n\toctokit: Octokit | undefined,\n\toptions: EnsureRepositoryExistsOptions,\n): Promise<Partial<RepositoryExistsResult>> {\n\t// We'll only respect input options once before prompting for them\n\tlet { repository } = options;\n\tlet createRepository = options.mode === \"create\";\n\n\t// We'll continuously pester the user for a repository\n\t// until they bail, create a new one, or it exists.\n\twhile (octokit) {\n\t\tif (\n\t\t\tisUsingCreateEngine() ||\n\t\t\t(await doesRepositoryExist(octokit, options))\n\t\t) {\n\t\t\treturn { octokit, repository };\n\t\t}\n\n\t\tconst selection = createRepository\n\t\t\t? \"create\"\n\t\t\t: filterPromptCancel(\n\t\t\t\t\t(await prompts.select({\n\t\t\t\t\t\tmessage: `Repository ${options.repository} doesn't seem to exist under ${options.owner}. What would you like to do?`,\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{ label: \"Create a new repository\", value: \"create\" },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Switch to a different repository name\",\n\t\t\t\t\t\t\t\tvalue: \"different\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Keep changes local\",\n\t\t\t\t\t\t\t\tvalue: \"local\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ label: \"Bail out and maybe try again later\", value: \"bail\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t})) as \"bail\" | \"create\" | \"different\" | \"local\",\n\t\t\t\t);\n\n\t\tcreateRepository = false;\n\n\t\tswitch (selection) {\n\t\t\tcase \"bail\":\n\t\t\tcase undefined:\n\t\t\t\treturn {};\n\n\t\t\tcase \"create\":\n\t\t\t\tawait createRepositoryWithApi(octokit, {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tpreserveGeneratedFrom: options.preserveGeneratedFrom,\n\t\t\t\t\trepository,\n\t\t\t\t});\n\t\t\t\treturn { octokit, repository };\n\n\t\t\tcase \"different\": {\n\t\t\t\tconst newRepository = filterPromptCancel(\n\t\t\t\t\tawait prompts.text({\n\t\t\t\t\t\tmessage: `What would you like to call the repository?`,\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tif (!newRepository) {\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\n\t\t\t\trepository = newRepository;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"local\":\n\t\t\t\toctokit = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { octokit, repository };\n}\n"],"mappings":"AAAA,YAAY,aAAa;AAGzB,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AAEnC,SAAS,+BAA+B;AAYxC,eAAsB,uBACrB,SACA,SAC2C;AAE3C,MAAI,EAAE,WAAW,IAAI;AACrB,MAAI,mBAAmB,QAAQ,SAAS;AAIxC,SAAO,SAAS;AACf,QACC,oBAAoB,KACnB,MAAM,oBAAoB,SAAS,OAAO,GAC1C;AACD,aAAO,EAAE,SAAS,WAAW;AAAA,IAC9B;AAEA,UAAM,YAAY,mBACf,WACA;AAAA,MACC,MAAM,QAAQ,OAAO;AAAA,QACrB,SAAS,cAAc,QAAQ,UAAU,gCAAgC,QAAQ,KAAK;AAAA,QACtF,SAAS;AAAA,UACR,EAAE,OAAO,2BAA2B,OAAO,SAAS;AAAA,UACpD;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA,EAAE,OAAO,sCAAsC,OAAO,OAAO;AAAA,QAC9D;AAAA,MACD,CAAC;AAAA,IACF;AAEF,uBAAmB;AAEnB,YAAQ,WAAW;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACJ,eAAO,CAAC;AAAA,MAET,KAAK;AACJ,cAAM,wBAAwB,SAAS;AAAA,UACtC,OAAO,QAAQ;AAAA,UACf,uBAAuB,QAAQ;AAAA,UAC/B;AAAA,QACD,CAAC;AACD,eAAO,EAAE,SAAS,WAAW;AAAA,MAE9B,KAAK,aAAa;AACjB,cAAM,gBAAgB;AAAA,UACrB,MAAM,QAAQ,KAAK;AAAA,YAClB,SAAS;AAAA,UACV,CAAC;AAAA,QACF;AAEA,YAAI,CAAC,eAAe;AACnB,iBAAO,CAAC;AAAA,QACT;AAEA,qBAAa;AACb;AAAA,MACD;AAAA,MAEA,KAAK;AACJ,kBAAU;AACV;AAAA,IACF;AAAA,EACD;AAEA,SAAO,EAAE,SAAS,WAAW;AAC9B;","names":[]}
@@ -1,11 +1,10 @@
1
+ import { Octokit } from 'octokit';
1
2
  import { z } from 'zod';
2
3
  import { Options, Mode, PromptedOptions } from '../types.js';
3
- import { GitHub } from './getGitHub.js';
4
4
  import '../codes.js';
5
- import 'octokit';
6
5
 
7
- interface GitHubAndOptions {
8
- github: GitHub | undefined;
6
+ interface OctokitAndOptions {
7
+ octokit: Octokit | undefined;
9
8
  options: Options;
10
9
  }
11
10
  interface OptionsParseCancelled {
@@ -14,9 +13,9 @@ interface OptionsParseCancelled {
14
13
  options: object;
15
14
  }
16
15
  type OptionsParseResult = OptionsParseCancelled | OptionsParseSuccess;
17
- interface OptionsParseSuccess extends GitHubAndOptions {
16
+ interface OptionsParseSuccess extends OctokitAndOptions {
18
17
  cancelled: false;
19
18
  }
20
19
  declare function readOptions(args: string[], mode: Mode, promptedOptions?: PromptedOptions): Promise<OptionsParseResult>;
21
20
 
22
- export { type GitHubAndOptions, type OptionsParseCancelled, type OptionsParseResult, type OptionsParseSuccess, readOptions };
21
+ export { type OctokitAndOptions, type OptionsParseCancelled, type OptionsParseResult, type OptionsParseSuccess, readOptions };