create-typescript-app 1.76.0 → 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 (234) hide show
  1. package/README.md +1 -1
  2. package/lib/create/createWithOptions.js +12 -13
  3. package/lib/create/createWithOptions.js.map +1 -1
  4. package/lib/index.d.ts +45 -0
  5. package/lib/index.js +5 -0
  6. package/lib/index.js.map +1 -1
  7. package/lib/next/base.d.ts +101 -0
  8. package/lib/next/base.js +140 -0
  9. package/lib/next/base.js.map +1 -0
  10. package/lib/next/blocks/blockAllContributors.d.ts +48 -0
  11. package/lib/next/blocks/blockAllContributors.js +59 -0
  12. package/lib/next/blocks/blockAllContributors.js.map +1 -0
  13. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +48 -0
  14. package/lib/next/blocks/blockAreTheTypesWrong.js +29 -0
  15. package/lib/next/blocks/blockAreTheTypesWrong.js.map +1 -0
  16. package/lib/next/blocks/blockCSpell.d.ts +51 -0
  17. package/lib/next/blocks/blockCSpell.js +77 -0
  18. package/lib/next/blocks/blockCSpell.js.map +1 -0
  19. package/lib/next/blocks/blockContributingDocs.d.ts +48 -0
  20. package/lib/next/blocks/blockContributingDocs.js +116 -0
  21. package/lib/next/blocks/blockContributingDocs.js.map +1 -0
  22. package/lib/next/blocks/blockContributorCovenant.d.ts +48 -0
  23. package/lib/next/blocks/blockContributorCovenant.js +151 -0
  24. package/lib/next/blocks/blockContributorCovenant.js.map +1 -0
  25. package/lib/next/blocks/blockDevelopmentDocs.d.ts +62 -0
  26. package/lib/next/blocks/blockDevelopmentDocs.js +86 -0
  27. package/lib/next/blocks/blockDevelopmentDocs.js.map +1 -0
  28. package/lib/next/blocks/blockESLint.d.ts +73 -0
  29. package/lib/next/blocks/blockESLint.js +225 -0
  30. package/lib/next/blocks/blockESLint.js.map +1 -0
  31. package/lib/next/blocks/blockESLintComments.d.ts +48 -0
  32. package/lib/next/blocks/blockESLintComments.js +26 -0
  33. package/lib/next/blocks/blockESLintComments.js.map +1 -0
  34. package/lib/next/blocks/blockESLintJSDoc.d.ts +48 -0
  35. package/lib/next/blocks/blockESLintJSDoc.js +25 -0
  36. package/lib/next/blocks/blockESLintJSDoc.js.map +1 -0
  37. package/lib/next/blocks/blockESLintJSONC.d.ts +48 -0
  38. package/lib/next/blocks/blockESLintJSONC.js +21 -0
  39. package/lib/next/blocks/blockESLintJSONC.js.map +1 -0
  40. package/lib/next/blocks/blockESLintMarkdown.d.ts +48 -0
  41. package/lib/next/blocks/blockESLintMarkdown.js +27 -0
  42. package/lib/next/blocks/blockESLintMarkdown.js.map +1 -0
  43. package/lib/next/blocks/blockESLintMoreStyling.d.ts +48 -0
  44. package/lib/next/blocks/blockESLintMoreStyling.js +34 -0
  45. package/lib/next/blocks/blockESLintMoreStyling.js.map +1 -0
  46. package/lib/next/blocks/blockESLintNode.d.ts +48 -0
  47. package/lib/next/blocks/blockESLintNode.js +33 -0
  48. package/lib/next/blocks/blockESLintNode.js.map +1 -0
  49. package/lib/next/blocks/blockESLintPackageJson.d.ts +48 -0
  50. package/lib/next/blocks/blockESLintPackageJson.js +26 -0
  51. package/lib/next/blocks/blockESLintPackageJson.js.map +1 -0
  52. package/lib/next/blocks/blockESLintPerfectionist.d.ts +48 -0
  53. package/lib/next/blocks/blockESLintPerfectionist.js +32 -0
  54. package/lib/next/blocks/blockESLintPerfectionist.js.map +1 -0
  55. package/lib/next/blocks/blockESLintRegexp.d.ts +48 -0
  56. package/lib/next/blocks/blockESLintRegexp.js +23 -0
  57. package/lib/next/blocks/blockESLintRegexp.js.map +1 -0
  58. package/lib/next/blocks/blockESLintYML.d.ts +48 -0
  59. package/lib/next/blocks/blockESLintYML.js +46 -0
  60. package/lib/next/blocks/blockESLintYML.js.map +1 -0
  61. package/lib/next/blocks/blockFunding.d.ts +48 -0
  62. package/lib/next/blocks/blockFunding.js +20 -0
  63. package/lib/next/blocks/blockFunding.js.map +1 -0
  64. package/lib/next/blocks/blockGitHubActionsCI.d.ts +60 -0
  65. package/lib/next/blocks/blockGitHubActionsCI.js +122 -0
  66. package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -0
  67. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +48 -0
  68. package/lib/next/blocks/blockGitHubIssueTemplates.js +217 -0
  69. package/lib/next/blocks/blockGitHubIssueTemplates.js.map +1 -0
  70. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +48 -0
  71. package/lib/next/blocks/blockGitHubPRTemplate.js +32 -0
  72. package/lib/next/blocks/blockGitHubPRTemplate.js.map +1 -0
  73. package/lib/next/blocks/blockGitignore.d.ts +50 -0
  74. package/lib/next/blocks/blockGitignore.js +23 -0
  75. package/lib/next/blocks/blockGitignore.js.map +1 -0
  76. package/lib/next/blocks/blockKnip.d.ts +48 -0
  77. package/lib/next/blocks/blockKnip.js +58 -0
  78. package/lib/next/blocks/blockKnip.js.map +1 -0
  79. package/lib/next/blocks/blockMITLicense.d.ts +48 -0
  80. package/lib/next/blocks/blockMITLicense.js +46 -0
  81. package/lib/next/blocks/blockMITLicense.js.map +1 -0
  82. package/lib/next/blocks/blockMarkdownlint.d.ts +50 -0
  83. package/lib/next/blocks/blockMarkdownlint.js +77 -0
  84. package/lib/next/blocks/blockMarkdownlint.js.map +1 -0
  85. package/lib/next/blocks/blockNvmrc.d.ts +48 -0
  86. package/lib/next/blocks/blockNvmrc.js +26 -0
  87. package/lib/next/blocks/blockNvmrc.js.map +1 -0
  88. package/lib/next/blocks/blockPRCompliance.d.ts +48 -0
  89. package/lib/next/blocks/blockPRCompliance.js +48 -0
  90. package/lib/next/blocks/blockPRCompliance.js.map +1 -0
  91. package/lib/next/blocks/blockPackageJson.d.ts +56 -0
  92. package/lib/next/blocks/blockPackageJson.js +81 -0
  93. package/lib/next/blocks/blockPackageJson.js.map +1 -0
  94. package/lib/next/blocks/blockPnpmDedupe.d.ts +48 -0
  95. package/lib/next/blocks/blockPnpmDedupe.js +51 -0
  96. package/lib/next/blocks/blockPnpmDedupe.js.map +1 -0
  97. package/lib/next/blocks/blockPrettier.d.ts +57 -0
  98. package/lib/next/blocks/blockPrettier.js +104 -0
  99. package/lib/next/blocks/blockPrettier.js.map +1 -0
  100. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +48 -0
  101. package/lib/next/blocks/blockPrettierPluginCurly.js +20 -0
  102. package/lib/next/blocks/blockPrettierPluginCurly.js.map +1 -0
  103. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +48 -0
  104. package/lib/next/blocks/blockPrettierPluginPackageJson.js +20 -0
  105. package/lib/next/blocks/blockPrettierPluginPackageJson.js.map +1 -0
  106. package/lib/next/blocks/blockPrettierPluginSh.d.ts +48 -0
  107. package/lib/next/blocks/blockPrettierPluginSh.js +20 -0
  108. package/lib/next/blocks/blockPrettierPluginSh.js.map +1 -0
  109. package/lib/next/blocks/blockREADME.d.ts +50 -0
  110. package/lib/next/blocks/blockREADME.js +63 -0
  111. package/lib/next/blocks/blockREADME.js.map +1 -0
  112. package/lib/next/blocks/blockReleaseIt.d.ts +48 -0
  113. package/lib/next/blocks/blockReleaseIt.js +126 -0
  114. package/lib/next/blocks/blockReleaseIt.js.map +1 -0
  115. package/lib/next/blocks/blockRenovate.d.ts +48 -0
  116. package/lib/next/blocks/blockRenovate.js +34 -0
  117. package/lib/next/blocks/blockRenovate.js.map +1 -0
  118. package/lib/next/blocks/blockSecurityDocs.d.ts +48 -0
  119. package/lib/next/blocks/blockSecurityDocs.js +28 -0
  120. package/lib/next/blocks/blockSecurityDocs.js.map +1 -0
  121. package/lib/next/blocks/blockTSup.d.ts +50 -0
  122. package/lib/next/blocks/blockTSup.js +78 -0
  123. package/lib/next/blocks/blockTSup.js.map +1 -0
  124. package/lib/next/blocks/blockTemplatedBy.d.ts +50 -0
  125. package/lib/next/blocks/blockTemplatedBy.js +34 -0
  126. package/lib/next/blocks/blockTemplatedBy.js.map +1 -0
  127. package/lib/next/blocks/blockTypeScript.d.ts +48 -0
  128. package/lib/next/blocks/blockTypeScript.js +109 -0
  129. package/lib/next/blocks/blockTypeScript.js.map +1 -0
  130. package/lib/next/blocks/blockVSCode.d.ts +57 -0
  131. package/lib/next/blocks/blockVSCode.js +87 -0
  132. package/lib/next/blocks/blockVSCode.js.map +1 -0
  133. package/lib/next/blocks/blockVitest.d.ts +55 -0
  134. package/lib/next/blocks/blockVitest.js +154 -0
  135. package/lib/next/blocks/blockVitest.js.map +1 -0
  136. package/lib/next/blocks/index.d.ts +43 -0
  137. package/lib/next/blocks/index.js +43 -0
  138. package/lib/next/blocks/index.js.map +1 -0
  139. package/lib/next/blocks/options.fakes.d.ts +13 -0
  140. package/lib/next/blocks/options.fakes.js +15 -0
  141. package/lib/next/blocks/options.fakes.js.map +1 -0
  142. package/lib/next/blocks/packageData.d.ts +5 -0
  143. package/lib/next/blocks/packageData.js +25 -0
  144. package/lib/next/blocks/packageData.js.map +1 -0
  145. package/lib/next/presetCommon.d.ts +99 -0
  146. package/lib/next/presetCommon.js +21 -0
  147. package/lib/next/presetCommon.js.map +1 -0
  148. package/lib/next/presetEverything.d.ts +99 -0
  149. package/lib/next/presetEverything.js +59 -0
  150. package/lib/next/presetEverything.js.map +1 -0
  151. package/lib/next/presetMinimal.d.ts +99 -0
  152. package/lib/next/presetMinimal.js +45 -0
  153. package/lib/next/presetMinimal.js.map +1 -0
  154. package/lib/next/template.d.ts +99 -0
  155. package/lib/next/template.js +21 -0
  156. package/lib/next/template.js.map +1 -0
  157. package/lib/next/utils/removeTrailingSlash.d.ts +3 -0
  158. package/lib/next/utils/removeTrailingSlash.js +7 -0
  159. package/lib/next/utils/removeTrailingSlash.js.map +1 -0
  160. package/lib/next/utils/sortObject.d.ts +5 -0
  161. package/lib/next/utils/sortObject.js +9 -0
  162. package/lib/next/utils/sortObject.js.map +1 -0
  163. package/lib/next/utils/swallowError.d.ts +3 -0
  164. package/lib/next/utils/swallowError.js +7 -0
  165. package/lib/next/utils/swallowError.js.map +1 -0
  166. package/lib/shared/isUsingCreateEngine.d.ts +3 -0
  167. package/lib/shared/isUsingCreateEngine.js +7 -0
  168. package/lib/shared/isUsingCreateEngine.js.map +1 -0
  169. package/lib/shared/options/createOptionDefaults/index.d.ts +2 -4
  170. package/lib/shared/options/createOptionDefaults/index.js +4 -13
  171. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  172. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +4 -1
  173. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  174. package/lib/shared/options/createOptionDefaults/readEmails.d.ts +11 -0
  175. package/lib/shared/options/createOptionDefaults/readEmails.js +14 -0
  176. package/lib/shared/options/createOptionDefaults/readEmails.js.map +1 -0
  177. package/lib/shared/options/createOptionDefaults/readFunding.d.ts +3 -0
  178. package/lib/shared/options/createOptionDefaults/readFunding.js +11 -0
  179. package/lib/shared/options/createOptionDefaults/readFunding.js.map +1 -0
  180. package/lib/shared/options/createOptionDefaults/readGuide.d.ts +6 -0
  181. package/lib/shared/options/createOptionDefaults/readGuide.js +18 -0
  182. package/lib/shared/options/createOptionDefaults/readGuide.js.map +1 -0
  183. package/lib/shared/types.d.ts +7 -0
  184. package/lib/steps/addOwnerAsAllContributor.js.map +1 -1
  185. package/lib/steps/clearUnnecessaryFiles.js +0 -1
  186. package/lib/steps/clearUnnecessaryFiles.js.map +1 -1
  187. package/lib/steps/finalizeDependencies.js +47 -44
  188. package/lib/steps/finalizeDependencies.js.map +1 -1
  189. package/lib/steps/removeSetupScripts.js +9 -3
  190. package/lib/steps/removeSetupScripts.js.map +1 -1
  191. package/lib/steps/uninstallPackages.js +10 -3
  192. package/lib/steps/uninstallPackages.js.map +1 -1
  193. package/lib/steps/writing/creation/createCSpellConfig.d.ts +7 -0
  194. package/lib/steps/writing/creation/createCSpellConfig.js +27 -0
  195. package/lib/steps/writing/creation/createCSpellConfig.js.map +1 -0
  196. package/lib/steps/writing/creation/createDotGitignore.js +7 -5
  197. package/lib/steps/writing/creation/createDotGitignore.js.map +1 -1
  198. package/lib/steps/writing/creation/createESLintConfig.js +1 -3
  199. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
  200. package/lib/steps/writing/creation/createTsupConfig.js +10 -10
  201. package/lib/steps/writing/creation/createTsupConfig.js.map +1 -1
  202. package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js +31 -16
  203. package/lib/steps/writing/creation/dotGitHub/createDevelopment/index.js.map +1 -1
  204. package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js +1 -1
  205. package/lib/steps/writing/creation/dotGitHub/createDevelopment/splitIntoSections.js.map +1 -1
  206. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js +5 -5
  207. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js.map +1 -1
  208. package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.d.ts +3 -1
  209. package/lib/steps/writing/creation/dotGitHub/createMultiWorkflowFile.js.map +1 -1
  210. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js +5 -1
  211. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js.map +1 -1
  212. package/lib/steps/writing/creation/formatters/formatIgnoreFile.d.ts +1 -1
  213. package/lib/steps/writing/creation/formatters/formatIgnoreFile.js +1 -1
  214. package/lib/steps/writing/creation/formatters/formatIgnoreFile.js.map +1 -1
  215. package/lib/steps/writing/creation/formatters/formatTypeScript.js +1 -1
  216. package/lib/steps/writing/creation/formatters/formatTypeScript.js.map +1 -1
  217. package/lib/steps/writing/creation/formatters/formatYaml.js +3 -1
  218. package/lib/steps/writing/creation/formatters/formatYaml.js.map +1 -1
  219. package/lib/steps/writing/creation/index.d.ts +1 -1
  220. package/lib/steps/writing/creation/index.js +49 -1
  221. package/lib/steps/writing/creation/index.js.map +1 -1
  222. package/lib/steps/writing/creation/rootFiles.js +4 -14
  223. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  224. package/lib/steps/writing/creation/writePackageJson.js +69 -62
  225. package/lib/steps/writing/creation/writePackageJson.js.map +1 -1
  226. package/lib/steps/writing/types.d.ts +1 -1
  227. package/lib/steps/writing/writeStructure.js +9 -1
  228. package/lib/steps/writing/writeStructure.js.map +1 -1
  229. package/lib/steps/writing/writeStructureWorker.js +1 -1
  230. package/lib/steps/writing/writeStructureWorker.js.map +1 -1
  231. package/package.json +13 -8
  232. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.d.ts +0 -8
  233. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js +0 -22
  234. package/lib/shared/options/createOptionDefaults/readDefaultsFromDevelopment.js.map +0 -1
@@ -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":[]}
@@ -2,8 +2,11 @@ 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[];
@@ -32,12 +35,16 @@ interface PartialPackageData {
32
35
  description?: string;
33
36
  devDependencies?: Record<string, string>;
34
37
  email?: string;
38
+ engines?: {
39
+ node?: string;
40
+ };
35
41
  name?: string;
36
42
  repository?: string | {
37
43
  type: string;
38
44
  url: string;
39
45
  };
40
46
  scripts?: Record<string, string>;
47
+ version?: string;
41
48
  }
42
49
  /**
43
50
  * All runtime options that may (or must) be specified for setup.
@@ -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([\"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});\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,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,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",
@@ -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\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;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
+ {"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":[]}
@@ -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":[]}
@@ -0,0 +1,7 @@
1
+ import { Options } from '../../../shared/types.js';
2
+ import 'zod';
3
+ import '../../../shared/codes.js';
4
+
5
+ declare function createCSpellConfig(options: Pick<Options, "excludeAllContributors" | "excludeLintMd" | "excludeReleases" | "excludeRenovate" | "excludeTemplatedBy" | "excludeTests">): Promise<string>;
6
+
7
+ export { createCSpellConfig };
@@ -0,0 +1,27 @@
1
+ import { formatJson } from "./formatters/formatJson.js";
2
+ async function createCSpellConfig(options) {
3
+ const words = [
4
+ "tseslint",
5
+ !options.excludeReleases && "apexskier",
6
+ !options.excludeRenovate && "automerge",
7
+ !options.excludeLintMd && "markdownlintignore",
8
+ !options.excludeTemplatedBy && "joshuakgoldberg"
9
+ ].filter(Boolean).sort();
10
+ return await formatJson({
11
+ dictionaries: ["npm", "node", "typescript"],
12
+ ignorePaths: [
13
+ ...options.excludeAllContributors ? [] : [".all-contributorsrc"],
14
+ ".github",
15
+ "CHANGELOG.md",
16
+ ...options.excludeTests ? [] : ["coverage"],
17
+ "lib",
18
+ "node_modules",
19
+ "pnpm-lock.yaml"
20
+ ],
21
+ words
22
+ });
23
+ }
24
+ export {
25
+ createCSpellConfig
26
+ };
27
+ //# sourceMappingURL=createCSpellConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/steps/writing/creation/createCSpellConfig.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { formatJson } from \"./formatters/formatJson.js\";\n\nexport async function createCSpellConfig(\n\toptions: Pick<\n\t\tOptions,\n\t\t| \"excludeAllContributors\"\n\t\t| \"excludeLintMd\"\n\t\t| \"excludeReleases\"\n\t\t| \"excludeRenovate\"\n\t\t| \"excludeTemplatedBy\"\n\t\t| \"excludeTests\"\n\t>,\n) {\n\tconst words = [\n\t\t\"tseslint\",\n\t\t!options.excludeReleases && \"apexskier\",\n\t\t!options.excludeRenovate && \"automerge\",\n\t\t!options.excludeLintMd && \"markdownlintignore\",\n\t\t!options.excludeTemplatedBy && \"joshuakgoldberg\",\n\t]\n\t\t.filter(Boolean)\n\t\t.sort();\n\n\treturn await formatJson({\n\t\tdictionaries: [\"npm\", \"node\", \"typescript\"],\n\t\tignorePaths: [\n\t\t\t...(options.excludeAllContributors ? [] : [\".all-contributorsrc\"]),\n\t\t\t\".github\",\n\t\t\t\"CHANGELOG.md\",\n\t\t\t...(options.excludeTests ? [] : [\"coverage\"]),\n\t\t\t\"lib\",\n\t\t\t\"node_modules\",\n\t\t\t\"pnpm-lock.yaml\",\n\t\t],\n\t\twords,\n\t});\n}\n"],"mappings":"AACA,SAAS,kBAAkB;AAE3B,eAAsB,mBACrB,SASC;AACD,QAAM,QAAQ;AAAA,IACb;AAAA,IACA,CAAC,QAAQ,mBAAmB;AAAA,IAC5B,CAAC,QAAQ,mBAAmB;AAAA,IAC5B,CAAC,QAAQ,iBAAiB;AAAA,IAC1B,CAAC,QAAQ,sBAAsB;AAAA,EAChC,EACE,OAAO,OAAO,EACd,KAAK;AAEP,SAAO,MAAM,WAAW;AAAA,IACvB,cAAc,CAAC,OAAO,QAAQ,YAAY;AAAA,IAC1C,aAAa;AAAA,MACZ,GAAI,QAAQ,yBAAyB,CAAC,IAAI,CAAC,qBAAqB;AAAA,MAChE;AAAA,MACA;AAAA,MACA,GAAI,QAAQ,eAAe,CAAC,IAAI,CAAC,UAAU;AAAA,MAC3C;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,EACD,CAAC;AACF;","names":[]}
@@ -1,10 +1,12 @@
1
1
  import { formatIgnoreFile } from "./formatters/formatIgnoreFile.js";
2
2
  function createDotGitignore(options) {
3
- return formatIgnoreFile([
4
- ...options.excludeTests ? [] : ["/coverage"],
5
- "/lib",
6
- "/node_modules"
7
- ]);
3
+ return formatIgnoreFile(
4
+ [
5
+ ...options.excludeTests ? [] : ["/coverage"],
6
+ "/lib",
7
+ "/node_modules"
8
+ ].sort()
9
+ );
8
10
  }
9
11
  export {
10
12
  createDotGitignore
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/steps/writing/creation/createDotGitignore.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { formatIgnoreFile } from \"./formatters/formatIgnoreFile.js\";\n\nexport function createDotGitignore(options: Pick<Options, \"excludeTests\">) {\n\treturn formatIgnoreFile([\n\t\t...(options.excludeTests ? [] : [\"/coverage\"]),\n\t\t\"/lib\",\n\t\t\"/node_modules\",\n\t]);\n}\n"],"mappings":"AACA,SAAS,wBAAwB;AAE1B,SAAS,mBAAmB,SAAwC;AAC1E,SAAO,iBAAiB;AAAA,IACvB,GAAI,QAAQ,eAAe,CAAC,IAAI,CAAC,WAAW;AAAA,IAC5C;AAAA,IACA;AAAA,EACD,CAAC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../../src/steps/writing/creation/createDotGitignore.ts"],"sourcesContent":["import { Options } from \"../../../shared/types.js\";\nimport { formatIgnoreFile } from \"./formatters/formatIgnoreFile.js\";\n\nexport function createDotGitignore(options: Pick<Options, \"excludeTests\">) {\n\treturn formatIgnoreFile(\n\t\t[\n\t\t\t...(options.excludeTests ? [] : [\"/coverage\"]),\n\t\t\t\"/lib\",\n\t\t\t\"/node_modules\",\n\t\t].sort(),\n\t);\n}\n"],"mappings":"AACA,SAAS,wBAAwB;AAE1B,SAAS,mBAAmB,SAAwC;AAC1E,SAAO;AAAA,IACN;AAAA,MACC,GAAI,QAAQ,eAAe,CAAC,IAAI,CAAC,WAAW;AAAA,MAC5C;AAAA,MACA;AAAA,IACD,EAAE,KAAK;AAAA,EACR;AACD;","names":[]}
@@ -79,9 +79,7 @@ export default tseslint.config(
79
79
  {
80
80
  extends: [vitest.configs.recommended],
81
81
  files: ["**/*.test.*"],
82
- rules: {
83
- "@typescript-eslint/no-unsafe-assignment": "off",
84
- },
82
+ rules: { "@typescript-eslint/no-unsafe-assignment": "off" },
85
83
  },`}${options.excludeLintYml ? "" : `
86
84
  {
87
85
  extends: [yml.configs["flat/recommended"], yml.configs["flat/prettier"]],