create-typescript-app 1.79.0 → 1.81.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/README.md +4 -3
  2. package/lib/create/createRerunDirectorySuggestion.d.ts +7 -0
  3. package/lib/create/createRerunDirectorySuggestion.js +8 -0
  4. package/lib/create/createRerunDirectorySuggestion.js.map +1 -0
  5. package/lib/create/createRerunSuggestion.js +3 -1
  6. package/lib/create/createRerunSuggestion.js.map +1 -1
  7. package/lib/index.d.ts +3 -0
  8. package/lib/index.js +1 -0
  9. package/lib/index.js.map +1 -1
  10. package/lib/next/base.d.ts +8 -1
  11. package/lib/next/base.js +14 -7
  12. package/lib/next/base.js.map +1 -1
  13. package/lib/next/blocks/blockAllContributors.d.ts +4 -1
  14. package/lib/next/blocks/blockAllContributors.js +1 -5
  15. package/lib/next/blocks/blockAllContributors.js.map +1 -1
  16. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +4 -1
  17. package/lib/next/blocks/blockCSpell.d.ts +4 -1
  18. package/lib/next/blocks/blockContributingDocs.d.ts +4 -1
  19. package/lib/next/blocks/blockContributorCovenant.d.ts +4 -1
  20. package/lib/next/blocks/blockDevelopmentDocs.d.ts +4 -1
  21. package/lib/next/blocks/blockESLint.d.ts +4 -1
  22. package/lib/next/blocks/blockESLint.js +4 -2
  23. package/lib/next/blocks/blockESLint.js.map +1 -1
  24. package/lib/next/blocks/blockESLintComments.d.ts +4 -1
  25. package/lib/next/blocks/blockESLintJSDoc.d.ts +4 -1
  26. package/lib/next/blocks/blockESLintJSONC.d.ts +4 -1
  27. package/lib/next/blocks/blockESLintMarkdown.d.ts +4 -1
  28. package/lib/next/blocks/blockESLintMoreStyling.d.ts +4 -1
  29. package/lib/next/blocks/blockESLintNode.d.ts +4 -1
  30. package/lib/next/blocks/blockESLintPackageJson.d.ts +4 -1
  31. package/lib/next/blocks/blockESLintPerfectionist.d.ts +4 -1
  32. package/lib/next/blocks/blockESLintRegexp.d.ts +4 -1
  33. package/lib/next/blocks/blockESLintYML.d.ts +4 -1
  34. package/lib/next/blocks/blockExampleFiles.d.ts +4 -1
  35. package/lib/next/blocks/blockFunding.d.ts +4 -1
  36. package/lib/next/blocks/blockGitHubActionsCI.d.ts +5 -1
  37. package/lib/next/blocks/blockGitHubActionsCI.js +1 -0
  38. package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -1
  39. package/lib/next/blocks/blockGitHubApps.d.ts +4 -1
  40. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +4 -1
  41. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +4 -1
  42. package/lib/next/blocks/blockGitignore.d.ts +4 -1
  43. package/lib/next/blocks/blockKnip.d.ts +4 -1
  44. package/lib/next/blocks/blockKnip.js +11 -0
  45. package/lib/next/blocks/blockKnip.js.map +1 -1
  46. package/lib/next/blocks/blockMITLicense.d.ts +4 -1
  47. package/lib/next/blocks/blockMarkdownlint.d.ts +4 -1
  48. package/lib/next/blocks/blockNvmrc.d.ts +4 -1
  49. package/lib/next/blocks/blockPRCompliance.d.ts +4 -1
  50. package/lib/next/blocks/blockPackageJson.d.ts +4 -1
  51. package/lib/next/blocks/blockPackageJson.js +3 -1
  52. package/lib/next/blocks/blockPackageJson.js.map +1 -1
  53. package/lib/next/blocks/blockPnpmDedupe.d.ts +4 -1
  54. package/lib/next/blocks/blockPrettier.d.ts +4 -1
  55. package/lib/next/blocks/blockPrettier.js +2 -2
  56. package/lib/next/blocks/blockPrettier.js.map +1 -1
  57. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +4 -1
  58. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +4 -1
  59. package/lib/next/blocks/blockPrettierPluginSh.d.ts +4 -1
  60. package/lib/next/blocks/blockREADME.d.ts +4 -1
  61. package/lib/next/blocks/blockREADME.js +6 -9
  62. package/lib/next/blocks/blockREADME.js.map +1 -1
  63. package/lib/next/blocks/blockReleaseIt.d.ts +4 -1
  64. package/lib/next/blocks/blockReleaseIt.js +13 -1
  65. package/lib/next/blocks/blockReleaseIt.js.map +1 -1
  66. package/lib/next/blocks/blockRenovate.d.ts +4 -1
  67. package/lib/next/blocks/blockRepositoryBranchRuleset.d.ts +4 -1
  68. package/lib/next/blocks/blockRepositoryLabels.d.ts +4 -1
  69. package/lib/next/blocks/blockRepositorySecrets.d.ts +4 -1
  70. package/lib/next/blocks/blockRepositorySettings.d.ts +4 -1
  71. package/lib/next/blocks/blockRepositorySettings.js +3 -1
  72. package/lib/next/blocks/blockRepositorySettings.js.map +1 -1
  73. package/lib/next/blocks/blockSecurityDocs.d.ts +4 -1
  74. package/lib/next/blocks/blockTSup.d.ts +4 -1
  75. package/lib/next/blocks/blockTemplatedBy.d.ts +4 -1
  76. package/lib/next/blocks/blockTypeScript.d.ts +4 -1
  77. package/lib/next/blocks/blockTypeScript.js +1 -4
  78. package/lib/next/blocks/blockTypeScript.js.map +1 -1
  79. package/lib/next/blocks/blockVSCode.d.ts +4 -1
  80. package/lib/next/blocks/blockVitest.d.ts +10 -4
  81. package/lib/next/blocks/blockVitest.js +18 -14
  82. package/lib/next/blocks/blockVitest.js.map +1 -1
  83. package/lib/next/blocks/packageData.js +2 -7
  84. package/lib/next/blocks/packageData.js.map +1 -1
  85. package/lib/next/blocks/sourcePackageJson.d.ts +164 -0
  86. package/lib/next/blocks/sourcePackageJson.js +10 -0
  87. package/lib/next/blocks/sourcePackageJson.js.map +1 -0
  88. package/lib/next/presets/index.d.ts +5 -0
  89. package/lib/next/presets/index.js +4 -0
  90. package/lib/next/presets/index.js.map +1 -0
  91. package/lib/next/{presetCommon.d.ts → presets/presetCommon.d.ts} +8 -1
  92. package/lib/next/{presetCommon.js → presets/presetCommon.js} +4 -4
  93. package/lib/next/presets/presetCommon.js.map +1 -0
  94. package/lib/next/{presetEverything.d.ts → presets/presetEverything.d.ts} +8 -1
  95. package/lib/next/presets/presetEverything.js +59 -0
  96. package/lib/next/presets/presetEverything.js.map +1 -0
  97. package/lib/next/{presetMinimal.d.ts → presets/presetMinimal.d.ts} +8 -1
  98. package/lib/next/presets/presetMinimal.js +57 -0
  99. package/lib/next/presets/presetMinimal.js.map +1 -0
  100. package/lib/next/readDescription.d.ts +7 -0
  101. package/lib/next/readDescription.js +18 -0
  102. package/lib/next/readDescription.js.map +1 -0
  103. package/lib/next/readDescriptionFromReadme.d.ts +3 -0
  104. package/lib/next/readDescriptionFromReadme.js +18 -0
  105. package/lib/next/readDescriptionFromReadme.js.map +1 -0
  106. package/lib/next/runCreateEnginePreset.js +3 -3
  107. package/lib/next/runCreateEnginePreset.js.map +1 -1
  108. package/lib/next/template.d.ts +8 -1
  109. package/lib/next/template.js +3 -3
  110. package/lib/next/template.js.map +1 -1
  111. package/lib/shared/options/args.d.ts +14 -2
  112. package/lib/shared/options/args.js +18 -2
  113. package/lib/shared/options/args.js.map +1 -1
  114. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.d.ts +3 -0
  115. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.js +21 -0
  116. package/lib/shared/options/createOptionDefaults/getUsageFromReadme.js.map +1 -0
  117. package/lib/shared/options/createOptionDefaults/index.d.ts +3 -0
  118. package/lib/shared/options/createOptionDefaults/index.js +5 -2
  119. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  120. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.d.ts +4 -1
  121. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +15 -4
  122. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  123. package/lib/shared/options/exclusionKeys.js +3 -3
  124. package/lib/shared/options/exclusionKeys.js.map +1 -1
  125. package/lib/shared/options/logInferredOptions.js +6 -0
  126. package/lib/shared/options/logInferredOptions.js.map +1 -1
  127. package/lib/shared/options/optionsSchema.d.ts +8 -8
  128. package/lib/shared/options/optionsSchema.js +1 -1
  129. package/lib/shared/options/optionsSchema.js.map +1 -1
  130. package/lib/shared/options/readLogoSizing.d.ts +7 -0
  131. package/lib/shared/options/readLogoSizing.js +29 -0
  132. package/lib/shared/options/readLogoSizing.js.map +1 -0
  133. package/lib/shared/options/readOptions.js +3 -1
  134. package/lib/shared/options/readOptions.js.map +1 -1
  135. package/lib/shared/types.d.ts +3 -1
  136. package/lib/steps/finalizeDependencies.js +1 -1
  137. package/lib/steps/finalizeDependencies.js.map +1 -1
  138. package/lib/steps/uninstallPackages.js +3 -0
  139. package/lib/steps/uninstallPackages.js.map +1 -1
  140. package/lib/steps/updateReadme.js +1 -1
  141. package/lib/steps/updateReadme.js.map +1 -1
  142. package/lib/steps/writing/creation/createESLintConfig.js +2 -2
  143. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
  144. package/lib/steps/writing/creation/index.js +3 -3
  145. package/lib/steps/writing/creation/index.js.map +1 -1
  146. package/lib/steps/writing/creation/rootFiles.js +13 -3
  147. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  148. package/package.json +5 -2
  149. package/lib/next/presetCommon.js.map +0 -1
  150. package/lib/next/presetEverything.js +0 -59
  151. package/lib/next/presetEverything.js.map +0 -1
  152. package/lib/next/presetMinimal.js +0 -57
  153. package/lib/next/presetMinimal.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/blocks/blockVitest.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitHubApps } from \"./blockGitHubApps.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\nimport { blockTSup } from \"./blockTSup.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockVitest = base.createBlock({\n\tabout: {\n\t\tname: \"Vitest\",\n\t},\n\taddons: {\n\t\tcoverage: z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string(),\n\t\t\t\tflags: z.string().optional(),\n\t\t\t})\n\t\t\t.default({ directory: \"coverage\" }),\n\t\texclude: z.array(z.string()).default([]),\n\t\tinclude: z.array(z.string()).default([]),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t\"rm .github/codecov.yml .mocha* codecov.yml jest.config.*\",\n\t\t\t\t\t],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons }) {\n\t\tconst { coverage, exclude = [], include = [] } = addons;\n\t\tconst excludeText = JSON.stringify(exclude);\n\t\tconst includeText = JSON.stringify(include);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignores: [coverage.directory],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tTesting: {\n\t\t\t\t\t\t\tcontents: `\n[Vitest](https://vitest.dev) is used for tests.\nYou can run it locally on the command-line:\n\n\\`\\`\\`shell\npnpm run test\n\\`\\`\\`\n\nAdd the \\`--coverage\\` flag to compute test coverage and place reports in the \\`coverage/\\` directory:\n\n\\`\\`\\`shell\npnpm run test --coverage\n\\`\\`\\`\n\nNote that [console-fail-test](https://github.com/JoshuaKGoldberg/console-fail-test) is enabled for all test runs.\nCalls to \\`console.log\\`, \\`console.warn\\`, and other console methods will cause a test to fail.\n\n\n\t\t`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"vitest.configs.recommended\"],\n\t\t\t\t\t\t\tfiles: [\"**/*.test.*\"],\n\t\t\t\t\t\t\trules: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\t\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"off\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tignores: [coverage.directory, \"**/*.snap\"],\n\t\t\t\t\timports: [{ source: \"@vitest/eslint-plugin\", specifier: \"vitest\" }],\n\t\t\t\t}),\n\t\t\t\tblockExampleFiles({\n\t\t\t\t\tfiles: {\n\t\t\t\t\t\t\"greet.test.ts\": `import { describe, expect, it, vi } from \"vitest\";\n\nimport { greet } from \"./greet.js\";\n\nconst message = \"Yay, testing!\";\n\ndescribe(\"greet\", () => {\n\tit(\"logs to the console once when message is provided as a string\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet(message);\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs to the console once when message is provided as an object\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet({ message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs once when times is not provided in an object\", () => {\n\t\tconst logger = vi.fn();\n\n\t\tgreet({ logger, message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs a specified number of times when times is provided\", () => {\n\t\tconst logger = vi.fn();\n\t\tconst times = 7;\n\n\t\tgreet({ logger, message, times });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(7);\n\t});\n});\n`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [`/${coverage.directory}`],\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Test\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ run: \"pnpm run test --coverage\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif: \"always()\",\n\t\t\t\t\t\t\t\t\tuses: \"codecov/codecov-action@v3\",\n\t\t\t\t\t\t\t\t\t...(coverage.flags && { with: { flags: coverage.flags } }),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockGitHubApps({\n\t\t\t\t\tapps: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Codecov\",\n\t\t\t\t\t\t\turl: \"https://github.com/apps/codecov\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\n\t\t\t\t\t\t\t\"@vitest/coverage-v8\",\n\t\t\t\t\t\t\t\"@vitest/eslint-plugin\",\n\t\t\t\t\t\t\t\"console-fail-test\",\n\t\t\t\t\t\t\t\"vitest\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\ttest: \"vitest\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockPrettier({\n\t\t\t\t\tignores: [`/${coverage.directory}`],\n\t\t\t\t}),\n\t\t\t\tblockTSup({\n\t\t\t\t\tentry: [\"!src/**/*.test.*\"],\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\tdebuggers: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\targs: [\"run\", \"${relativeFile}\"],\n\t\t\t\t\t\t\tautoAttachChildProcesses: true,\n\t\t\t\t\t\t\tconsole: \"integratedTerminal\",\n\t\t\t\t\t\t\tname: \"Debug Current Test File\",\n\t\t\t\t\t\t\tprogram: \"${workspaceRoot}/node_modules/vitest/vitest.mjs\",\n\t\t\t\t\t\t\trequest: \"launch\",\n\t\t\t\t\t\t\tskipFiles: [\"<node_internals>/**\", \"**/node_modules/**\"],\n\t\t\t\t\t\t\tsmartStep: true,\n\t\t\t\t\t\t\ttype: \"node\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\textensions: [\"vitest.explorer\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\"vitest.config.ts\": `import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tclearMocks: true,\n\t\tcoverage: {\n\t\t\tall: true,\n\t\t\texclude: ${excludeText},\n\t\t\tinclude: ${includeText},\n\t\t\treporter: [\"html\", \"lcov\"],\n\t\t},\n\t\texclude: [${excludeText.slice(1, excludeText.length - 1)}, \"node_modules\"],\n\t\tsetupFiles: [\"console-fail-test/setup\"],\n\t},\n});\n\t`,\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/next/blocks/blockVitest.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitHubApps } from \"./blockGitHubApps.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\nimport { blockTSup } from \"./blockTSup.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockVitest = base.createBlock({\n\tabout: {\n\t\tname: \"Vitest\",\n\t},\n\taddons: {\n\t\tcoverage: z\n\t\t\t.object({\n\t\t\t\tdirectory: z.string().optional(),\n\t\t\t\texclude: z.array(z.string()).optional(),\n\t\t\t\tflags: z.string().optional(),\n\t\t\t\tinclude: z.array(z.string()).optional(),\n\t\t\t})\n\t\t\t.default({}),\n\t\tenv: z.record(z.string(), z.string()).default({}),\n\t\texclude: z.array(z.string()).default([]),\n\t\tflags: z.array(z.string()).default([]),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t\"rm .github/codecov.yml .mocha* codecov.yml jest.config.* vitest.config.*\",\n\t\t\t\t\t],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons }) {\n\t\tconst { coverage, env, exclude = [], flags } = addons;\n\t\tconst coverageDirectory = coverage.directory ?? \"coverage\";\n\t\tconst excludeText = JSON.stringify(exclude);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignores: [coverageDirectory],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tTesting: {\n\t\t\t\t\t\t\tcontents: `\n[Vitest](https://vitest.dev) is used for tests.\nYou can run it locally on the command-line:\n\n\\`\\`\\`shell\npnpm run test\n\\`\\`\\`\n\nAdd the \\`--coverage\\` flag to compute test coverage and place reports in the \\`coverage/\\` directory:\n\n\\`\\`\\`shell\npnpm run test --coverage\n\\`\\`\\`\n\nNote that [console-fail-test](https://github.com/JoshuaKGoldberg/console-fail-test) is enabled for all test runs.\nCalls to \\`console.log\\`, \\`console.warn\\`, and other console methods will cause a test to fail.\n\n\n\t\t`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"vitest.configs.recommended\"],\n\t\t\t\t\t\t\tfiles: [\"**/*.test.*\"],\n\t\t\t\t\t\t\trules: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\t\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"off\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tignores: [coverageDirectory, \"**/*.snap\"],\n\t\t\t\t\timports: [{ source: \"@vitest/eslint-plugin\", specifier: \"vitest\" }],\n\t\t\t\t}),\n\t\t\t\tblockExampleFiles({\n\t\t\t\t\tfiles: {\n\t\t\t\t\t\t\"greet.test.ts\": `import { describe, expect, it, vi } from \"vitest\";\n\nimport { greet } from \"./greet.js\";\n\nconst message = \"Yay, testing!\";\n\ndescribe(\"greet\", () => {\n\tit(\"logs to the console once when message is provided as a string\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet(message);\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs to the console once when message is provided as an object\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet({ message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs once when times is not provided in an object\", () => {\n\t\tconst logger = vi.fn();\n\n\t\tgreet({ logger, message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs a specified number of times when times is provided\", () => {\n\t\tconst logger = vi.fn();\n\t\tconst times = 7;\n\n\t\tgreet({ logger, message, times });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(7);\n\t});\n});\n`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [`/${coverageDirectory}`],\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Test\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ run: \"pnpm run test --coverage\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...(Object.keys(env).length && { env }),\n\t\t\t\t\t\t\t\t\tif: \"always()\",\n\t\t\t\t\t\t\t\t\tuses: \"codecov/codecov-action@v3\",\n\t\t\t\t\t\t\t\t\t...(coverage.flags && { with: { flags: coverage.flags } }),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockGitHubApps({\n\t\t\t\t\tapps: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Codecov\",\n\t\t\t\t\t\t\turl: \"https://github.com/apps/codecov\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\n\t\t\t\t\t\t\t\"@vitest/coverage-v8\",\n\t\t\t\t\t\t\t\"@vitest/eslint-plugin\",\n\t\t\t\t\t\t\t\"console-fail-test\",\n\t\t\t\t\t\t\t\"vitest\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\ttest: `vitest ${flags.join(\" \")}`.trim(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockPrettier({\n\t\t\t\t\tignores: [`/${coverageDirectory}`],\n\t\t\t\t}),\n\t\t\t\tblockTSup({\n\t\t\t\t\tentry: [\"!src/**/*.test.*\"],\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\tdebuggers: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\targs: [\"run\", \"${relativeFile}\"],\n\t\t\t\t\t\t\tautoAttachChildProcesses: true,\n\t\t\t\t\t\t\tconsole: \"integratedTerminal\",\n\t\t\t\t\t\t\tname: \"Debug Current Test File\",\n\t\t\t\t\t\t\tprogram: \"${workspaceRoot}/node_modules/vitest/vitest.mjs\",\n\t\t\t\t\t\t\trequest: \"launch\",\n\t\t\t\t\t\t\tskipFiles: [\"<node_internals>/**\", \"**/node_modules/**\"],\n\t\t\t\t\t\t\tsmartStep: true,\n\t\t\t\t\t\t\ttype: \"node\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\textensions: [\"vitest.explorer\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\"vitest.config.ts\": `import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tclearMocks: true,\n\t\tcoverage: {\n\t\t\tall: true,\n\t\t\t${\n\t\t\t\tcoverage.exclude?.length\n\t\t\t\t\t? `exclude: ${JSON.stringify(coverage.exclude)},\n\t\t\t`\n\t\t\t\t\t: \"\"\n\t\t\t}include: ${JSON.stringify(coverage.include)},\n\t\t\treporter: [\"html\", \"lcov\"],\n\t\t},\n\t\texclude: [${excludeText.slice(1, excludeText.length - 1)}, \"node_modules\"],\n\t\tsetupFiles: [\"console-fail-test/setup\"],\n\t},\n});\n\t`,\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"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","names":[]}
@@ -1,9 +1,4 @@
1
- import { createRequire } from "node:module";
2
- const require2 = createRequire(import.meta.url);
3
- const packageData = (
4
- // Importing from above src/ would expand the TS build rootDir
5
- require2("../../../package.json")
6
- );
1
+ import { sourcePackageJson } from "./sourcePackageJson.js";
7
2
  function getPackageDependencies(...names) {
8
3
  return Object.fromEntries(
9
4
  names.map((name) => {
@@ -21,7 +16,7 @@ function getPackageDependency(name) {
21
16
  return version;
22
17
  }
23
18
  function getPackageInner(key, name) {
24
- const inner = packageData[key];
19
+ const inner = sourcePackageJson[key];
25
20
  return inner[name];
26
21
  }
27
22
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/blocks/packageData.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\n\nconst require = createRequire(import.meta.url);\n\nconst packageData =\n\t// Importing from above src/ would expand the TS build rootDir\n\trequire(\"../../../package.json\") as typeof import(\"../../../package.json\");\n\nexport function getPackageDependencies(...names: string[]) {\n\treturn Object.fromEntries(\n\t\tnames.map((name) => {\n\t\t\treturn [name, getPackageDependency(name)];\n\t\t}),\n\t);\n}\n\nexport function getPackageDependency(name: string) {\n\tconst version =\n\t\tgetPackageInner(\"devDependencies\", name) ??\n\t\tgetPackageInner(\"dependencies\", name);\n\n\tif (!version) {\n\t\tthrow new Error(\n\t\t\t`'${name} is neither in package.json's dependencies nor its devDependencies.`,\n\t\t);\n\t}\n\n\treturn version;\n}\n\nfunction getPackageInner(\n\tkey: \"dependencies\" | \"devDependencies\",\n\tname: string,\n) {\n\tconst inner = packageData[key];\n\n\treturn inner[name as keyof typeof inner] as string | undefined;\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAE9B,MAAMA,WAAU,cAAc,YAAY,GAAG;AAE7C,MAAM;AAAA;AAAA,EAELA,SAAQ,uBAAuB;AAAA;AAEzB,SAAS,0BAA0B,OAAiB;AAC1D,SAAO,OAAO;AAAA,IACb,MAAM,IAAI,CAAC,SAAS;AACnB,aAAO,CAAC,MAAM,qBAAqB,IAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACF;AACD;AAEO,SAAS,qBAAqB,MAAc;AAClD,QAAM,UACL,gBAAgB,mBAAmB,IAAI,KACvC,gBAAgB,gBAAgB,IAAI;AAErC,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT,IAAI,IAAI;AAAA,IACT;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,gBACR,KACA,MACC;AACD,QAAM,QAAQ,YAAY,GAAG;AAE7B,SAAO,MAAM,IAA0B;AACxC;","names":["require"]}
1
+ {"version":3,"sources":["../../../src/next/blocks/packageData.ts"],"sourcesContent":["import { sourcePackageJson } from \"./sourcePackageJson.js\";\n\nexport function getPackageDependencies(...names: string[]) {\n\treturn Object.fromEntries(\n\t\tnames.map((name) => {\n\t\t\treturn [name, getPackageDependency(name)];\n\t\t}),\n\t);\n}\n\nexport function getPackageDependency(name: string) {\n\tconst version =\n\t\tgetPackageInner(\"devDependencies\", name) ??\n\t\tgetPackageInner(\"dependencies\", name);\n\n\tif (!version) {\n\t\tthrow new Error(\n\t\t\t`'${name} is neither in package.json's dependencies nor its devDependencies.`,\n\t\t);\n\t}\n\n\treturn version;\n}\n\nfunction getPackageInner(\n\tkey: \"dependencies\" | \"devDependencies\",\n\tname: string,\n) {\n\tconst inner = sourcePackageJson[key];\n\n\treturn inner[name as keyof typeof inner] as string | undefined;\n}\n"],"mappings":"AAAA,SAAS,yBAAyB;AAE3B,SAAS,0BAA0B,OAAiB;AAC1D,SAAO,OAAO;AAAA,IACb,MAAM,IAAI,CAAC,SAAS;AACnB,aAAO,CAAC,MAAM,qBAAqB,IAAI,CAAC;AAAA,IACzC,CAAC;AAAA,EACF;AACD;AAEO,SAAS,qBAAqB,MAAc;AAClD,QAAM,UACL,gBAAgB,mBAAmB,IAAI,KACvC,gBAAgB,gBAAgB,IAAI;AAErC,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT,IAAI,IAAI;AAAA,IACT;AAAA,EACD;AAEA,SAAO;AACR;AAEA,SAAS,gBACR,KACA,MACC;AACD,QAAM,QAAQ,kBAAkB,GAAG;AAEnC,SAAO,MAAM,IAA0B;AACxC;","names":[]}
@@ -0,0 +1,164 @@
1
+ var name = "create-typescript-app";
2
+ var version = "1.80.0";
3
+ var description = "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. ❤️‍🔥";
4
+ var repository = {
5
+ type: "git",
6
+ url: "https://github.com/JoshuaKGoldberg/create-typescript-app"
7
+ };
8
+ var license = "MIT";
9
+ var author = {
10
+ name: "Josh Goldberg ✨",
11
+ email: "npm@joshuakgoldberg.com"
12
+ };
13
+ var type = "module";
14
+ var main = "./lib/index.js";
15
+ var bin = "./bin/index.js";
16
+ var files = [
17
+ "LICENSE.md",
18
+ "README.md",
19
+ "bin/index.js",
20
+ "lib/",
21
+ "package.json"
22
+ ];
23
+ var scripts = {
24
+ build: "tsup",
25
+ format: "prettier .",
26
+ initialize: "pnpm build --no-dts && tsx ./bin/index.js --mode initialize",
27
+ lint: "eslint . --max-warnings 0",
28
+ "lint:knip": "knip",
29
+ "lint:md": "markdownlint \"**/*.md\" \".github/**/*.md\" --rules sentences-per-line",
30
+ "lint:packages": "pnpm dedupe --check",
31
+ "lint:spelling": "cspell \"**\" \".github/**/*\"",
32
+ prepare: "husky",
33
+ test: "vitest",
34
+ "test:create": "npx tsx script/create-test-e2e.ts",
35
+ "test:initialize": "npx tsx script/initialize-test-e2e.ts",
36
+ "test:migrate": "vitest run -r script/",
37
+ tsc: "tsc"
38
+ };
39
+ var dependencies = {
40
+ "@clack/prompts": "^0.9.0",
41
+ "@prettier/sync": "^0.5.2",
42
+ chalk: "^5.4.1",
43
+ create: "0.1.0-alpha.8",
44
+ "cspell-populate-words": "^0.3.0",
45
+ execa: "^9.5.2",
46
+ "git-remote-origin-url": "^4.0.0",
47
+ "git-url-parse": "^16.0.0",
48
+ "html-to-text": "^9.0.5",
49
+ "image-size": "^1.2.0",
50
+ "input-from-file": "0.1.0-alpha.4",
51
+ "input-from-file-json": "0.1.0-alpha.4",
52
+ "input-from-script": "0.1.0-alpha.4",
53
+ "js-yaml": "^4.1.0",
54
+ "lazy-value": "^3.0.0",
55
+ "npm-user": "^6.1.1",
56
+ "object-strings-deep": "^0.1.1",
57
+ octokit: "^4.0.2",
58
+ "octokit-from-auth": "^0.3.0",
59
+ "parse-author": "^2.0.0",
60
+ "parse-package-name": "^1.0.0",
61
+ "populate-all-contributors-for-repository": "^0.1.2",
62
+ prettier: "^3.4.2",
63
+ "remove-undefined-objects": "^5.0.0",
64
+ "replace-in-file": "^8.3.0",
65
+ rimraf: "^6.0.1",
66
+ "set-github-repository-labels": "^0.1.0",
67
+ "sort-package-json": "^2.12.0",
68
+ "title-case": "^4.3.2",
69
+ zod: "^3.24.1",
70
+ "zod-validation-error": "^3.4.0"
71
+ };
72
+ var devDependencies = {
73
+ "@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
74
+ "@eslint/js": "9.17.0",
75
+ "@octokit/request-error": "6.1.5",
76
+ "@release-it/conventional-changelog": "9.0.3",
77
+ "@types/eslint-plugin-markdown": "2.0.2",
78
+ "@types/git-url-parse": "9.0.3",
79
+ "@types/html-to-text": "^9.0.4",
80
+ "@types/js-yaml": "4.0.9",
81
+ "@types/node": "22.10.2",
82
+ "@types/parse-author": "2.0.3",
83
+ "@vitest/coverage-v8": "2.1.8",
84
+ "@vitest/eslint-plugin": "1.1.20",
85
+ "all-contributors-cli": "6.26.1",
86
+ c8: "10.1.3",
87
+ "console-fail-test": "0.5.0",
88
+ "create-testers": "0.1.0-alpha.8",
89
+ cspell: "8.17.1",
90
+ eslint: "9.17.0",
91
+ "eslint-plugin-jsdoc": "50.6.1",
92
+ "eslint-plugin-jsonc": "2.18.2",
93
+ "eslint-plugin-markdown": "5.1.0",
94
+ "eslint-plugin-n": "17.15.1",
95
+ "eslint-plugin-package-json": "0.18.0",
96
+ "eslint-plugin-perfectionist": "4.4.0",
97
+ "eslint-plugin-regexp": "2.7.0",
98
+ "eslint-plugin-yml": "1.16.0",
99
+ globby: "14.0.2",
100
+ husky: "9.1.7",
101
+ knip: "5.41.1",
102
+ "lint-staged": "15.2.11",
103
+ markdownlint: "0.37.2",
104
+ "markdownlint-cli": "0.43.0",
105
+ "prettier-plugin-curly": "0.3.1",
106
+ "prettier-plugin-packagejson": "2.5.6",
107
+ "prettier-plugin-sh": "0.14.0",
108
+ "release-it": "17.10.0",
109
+ "sentences-per-line": "0.3.0",
110
+ tsup: "8.3.5",
111
+ tsx: "4.19.2",
112
+ typescript: "5.7.2",
113
+ "typescript-eslint": "8.18.1",
114
+ vitest: "2.1.8"
115
+ };
116
+ var engines = {
117
+ node: ">=18.3.0"
118
+ };
119
+ var publishConfig = {
120
+ provenance: true
121
+ };
122
+ var _package = {
123
+ name: name,
124
+ version: version,
125
+ description: description,
126
+ repository: repository,
127
+ license: license,
128
+ author: author,
129
+ type: type,
130
+ main: main,
131
+ bin: bin,
132
+ files: files,
133
+ scripts: scripts,
134
+ "lint-staged": {
135
+ "*": "prettier --ignore-unknown --write"
136
+ },
137
+ dependencies: dependencies,
138
+ devDependencies: devDependencies,
139
+ engines: engines,
140
+ publishConfig: publishConfig
141
+ };
142
+
143
+ declare const _________package_json_author: typeof author;
144
+ declare const _________package_json_bin: typeof bin;
145
+ declare const _________package_json_dependencies: typeof dependencies;
146
+ declare const _________package_json_description: typeof description;
147
+ declare const _________package_json_devDependencies: typeof devDependencies;
148
+ declare const _________package_json_engines: typeof engines;
149
+ declare const _________package_json_files: typeof files;
150
+ declare const _________package_json_license: typeof license;
151
+ declare const _________package_json_main: typeof main;
152
+ declare const _________package_json_name: typeof name;
153
+ declare const _________package_json_publishConfig: typeof publishConfig;
154
+ declare const _________package_json_repository: typeof repository;
155
+ declare const _________package_json_scripts: typeof scripts;
156
+ declare const _________package_json_type: typeof type;
157
+ declare const _________package_json_version: typeof version;
158
+ declare namespace _________package_json {
159
+ export { _________package_json_author as author, _________package_json_bin as bin, _package as default, _________package_json_dependencies as dependencies, _________package_json_description as description, _________package_json_devDependencies as devDependencies, _________package_json_engines as engines, _________package_json_files as files, _________package_json_license as license, _________package_json_main as main, _________package_json_name as name, _________package_json_publishConfig as publishConfig, _________package_json_repository as repository, _________package_json_scripts as scripts, _________package_json_type as type, _________package_json_version as version };
160
+ }
161
+
162
+ declare const sourcePackageJson: typeof _________package_json;
163
+
164
+ export { sourcePackageJson };
@@ -0,0 +1,10 @@
1
+ import { createRequire } from "node:module";
2
+ const require2 = createRequire(import.meta.url);
3
+ const sourcePackageJson = (
4
+ // Importing from above src/ would expand the TS build rootDir
5
+ require2("../../../package.json")
6
+ );
7
+ export {
8
+ sourcePackageJson
9
+ };
10
+ //# sourceMappingURL=sourcePackageJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/blocks/sourcePackageJson.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\n\nconst require = createRequire(import.meta.url);\n\nexport const sourcePackageJson =\n\t// Importing from above src/ would expand the TS build rootDir\n\trequire(\"../../../package.json\") as typeof import(\"../../../package.json\");\n"],"mappings":"AAAA,SAAS,qBAAqB;AAE9B,MAAMA,WAAU,cAAc,YAAY,GAAG;AAEtC,MAAM;AAAA;AAAA,EAEZA,SAAQ,uBAAuB;AAAA;","names":["require"]}
@@ -0,0 +1,5 @@
1
+ export { presetCommon } from './presetCommon.js';
2
+ export { presetEverything } from './presetEverything.js';
3
+ export { presetMinimal } from './presetMinimal.js';
4
+ import 'create';
5
+ import 'zod';
@@ -0,0 +1,4 @@
1
+ export * from "./presetCommon.js";
2
+ export * from "./presetEverything.js";
3
+ export * from "./presetMinimal.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/presets/index.ts"],"sourcesContent":["export * from \"./presetCommon.js\";\nexport * from \"./presetEverything.js\";\nexport * from \"./presetMinimal.js\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -2,7 +2,7 @@ import * as create from 'create';
2
2
  import * as zod from 'zod';
3
3
 
4
4
  declare const presetCommon: create.Preset<{
5
- access: zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"public">, zod.ZodLiteral<"restricted">]>>;
5
+ access: zod.ZodUnion<[zod.ZodLiteral<"public">, zod.ZodLiteral<"restricted">]>;
6
6
  author: zod.ZodOptional<zod.ZodString>;
7
7
  bin: zod.ZodOptional<zod.ZodString>;
8
8
  contributors: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
@@ -58,13 +58,19 @@ declare const presetCommon: create.Preset<{
58
58
  keywords: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
59
59
  logo: zod.ZodOptional<zod.ZodObject<{
60
60
  alt: zod.ZodString;
61
+ height: zod.ZodOptional<zod.ZodNumber>;
61
62
  src: zod.ZodString;
63
+ width: zod.ZodOptional<zod.ZodNumber>;
62
64
  }, "strip", zod.ZodTypeAny, {
63
65
  alt: string;
64
66
  src: string;
67
+ height?: number | undefined;
68
+ width?: number | undefined;
65
69
  }, {
66
70
  alt: string;
67
71
  src: string;
72
+ height?: number | undefined;
73
+ width?: number | undefined;
68
74
  }>>;
69
75
  node: zod.ZodOptional<zod.ZodObject<{
70
76
  minimum: zod.ZodString;
@@ -92,6 +98,7 @@ declare const presetCommon: create.Preset<{
92
98
  }>>;
93
99
  repository: zod.ZodString;
94
100
  title: zod.ZodString;
101
+ usage: zod.ZodOptional<zod.ZodString>;
95
102
  version: zod.ZodOptional<zod.ZodString>;
96
103
  }>;
97
104
 
@@ -1,7 +1,7 @@
1
- import { base } from "./base.js";
2
- import { blockAllContributors } from "./blocks/blockAllContributors.js";
3
- import { blockReleaseIt } from "./blocks/blockReleaseIt.js";
4
- import { blockVitest } from "./blocks/blockVitest.js";
1
+ import { base } from "../base.js";
2
+ import { blockAllContributors } from "../blocks/blockAllContributors.js";
3
+ import { blockReleaseIt } from "../blocks/blockReleaseIt.js";
4
+ import { blockVitest } from "../blocks/blockVitest.js";
5
5
  import { presetMinimal } from "./presetMinimal.js";
6
6
  const presetCommon = base.createPreset({
7
7
  about: {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/presets/presetCommon.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockAllContributors } from \"../blocks/blockAllContributors.js\";\nimport { blockReleaseIt } from \"../blocks/blockReleaseIt.js\";\nimport { blockVitest } from \"../blocks/blockVitest.js\";\nimport { presetMinimal } from \"./presetMinimal.js\";\n\nexport const presetCommon = base.createPreset({\n\tabout: {\n\t\tdescription:\n\t\t\t\"Bare starters plus testing and automation for all-contributors and releases.\",\n\t\tname: \"Common\",\n\t},\n\tblocks: [\n\t\t...presetMinimal.blocks,\n\t\tblockAllContributors,\n\t\tblockReleaseIt,\n\t\tblockVitest,\n\t],\n});\n"],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,4BAA4B;AACrC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAEvB,MAAM,eAAe,KAAK,aAAa;AAAA,EAC7C,OAAO;AAAA,IACN,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,GAAG,cAAc;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,EACD;AACD,CAAC;","names":[]}
@@ -2,7 +2,7 @@ import * as create from 'create';
2
2
  import * as zod from 'zod';
3
3
 
4
4
  declare const presetEverything: create.Preset<{
5
- access: zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"public">, zod.ZodLiteral<"restricted">]>>;
5
+ access: zod.ZodUnion<[zod.ZodLiteral<"public">, zod.ZodLiteral<"restricted">]>;
6
6
  author: zod.ZodOptional<zod.ZodString>;
7
7
  bin: zod.ZodOptional<zod.ZodString>;
8
8
  contributors: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
@@ -58,13 +58,19 @@ declare const presetEverything: create.Preset<{
58
58
  keywords: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
59
59
  logo: zod.ZodOptional<zod.ZodObject<{
60
60
  alt: zod.ZodString;
61
+ height: zod.ZodOptional<zod.ZodNumber>;
61
62
  src: zod.ZodString;
63
+ width: zod.ZodOptional<zod.ZodNumber>;
62
64
  }, "strip", zod.ZodTypeAny, {
63
65
  alt: string;
64
66
  src: string;
67
+ height?: number | undefined;
68
+ width?: number | undefined;
65
69
  }, {
66
70
  alt: string;
67
71
  src: string;
72
+ height?: number | undefined;
73
+ width?: number | undefined;
68
74
  }>>;
69
75
  node: zod.ZodOptional<zod.ZodObject<{
70
76
  minimum: zod.ZodString;
@@ -92,6 +98,7 @@ declare const presetEverything: create.Preset<{
92
98
  }>>;
93
99
  repository: zod.ZodString;
94
100
  title: zod.ZodString;
101
+ usage: zod.ZodOptional<zod.ZodString>;
95
102
  version: zod.ZodOptional<zod.ZodString>;
96
103
  }>;
97
104
 
@@ -0,0 +1,59 @@
1
+ import { base } from "../base.js";
2
+ import { blockCSpell } from "../blocks/blockCSpell.js";
3
+ import { blockESLintComments } from "../blocks/blockESLintComments.js";
4
+ import { blockESLintJSDoc } from "../blocks/blockESLintJSDoc.js";
5
+ import { blockESLintJSONC } from "../blocks/blockESLintJSONC.js";
6
+ import { blockESLintMarkdown } from "../blocks/blockESLintMarkdown.js";
7
+ import { blockESLintMoreStyling } from "../blocks/blockESLintMoreStyling.js";
8
+ import { blockESLintNode } from "../blocks/blockESLintNode.js";
9
+ import { blockESLintPackageJson } from "../blocks/blockESLintPackageJson.js";
10
+ import { blockESLintPerfectionist } from "../blocks/blockESLintPerfectionist.js";
11
+ import { blockESLintRegexp } from "../blocks/blockESLintRegexp.js";
12
+ import { blockESLintYML } from "../blocks/blockESLintYML.js";
13
+ import { blockKnip } from "../blocks/blockKnip.js";
14
+ import { blockMarkdownlint } from "../blocks/blockMarkdownlint.js";
15
+ import { blockNvmrc } from "../blocks/blockNvmrc.js";
16
+ import { blockPnpmDedupe } from "../blocks/blockPnpmDedupe.js";
17
+ import { blockPRCompliance } from "../blocks/blockPRCompliance.js";
18
+ import { blockPrettierPluginCurly } from "../blocks/blockPrettierPluginCurly.js";
19
+ import { blockPrettierPluginPackageJson } from "../blocks/blockPrettierPluginPackageJson.js";
20
+ import { blockPrettierPluginSh } from "../blocks/blockPrettierPluginSh.js";
21
+ import { blockRenovate } from "../blocks/blockRenovate.js";
22
+ import { blockSecurityDocs } from "../blocks/blockSecurityDocs.js";
23
+ import { blockVSCode } from "../blocks/blockVSCode.js";
24
+ import { presetCommon } from "../presets/presetCommon.js";
25
+ const presetEverything = base.createPreset({
26
+ about: {
27
+ description: "The most comprehensive tooling imaginable: sorting, spellchecking, and more!",
28
+ name: "Everything"
29
+ },
30
+ blocks: [
31
+ ...presetCommon.blocks,
32
+ blockCSpell,
33
+ blockESLintComments,
34
+ blockESLintJSDoc,
35
+ blockESLintJSONC,
36
+ blockESLintMarkdown,
37
+ blockESLintMoreStyling,
38
+ blockESLintNode,
39
+ blockESLintPackageJson,
40
+ blockESLintPerfectionist,
41
+ blockESLintRegexp,
42
+ blockESLintYML,
43
+ blockKnip,
44
+ blockMarkdownlint,
45
+ blockNvmrc,
46
+ blockPnpmDedupe,
47
+ blockPRCompliance,
48
+ blockPrettierPluginCurly,
49
+ blockPrettierPluginPackageJson,
50
+ blockPrettierPluginSh,
51
+ blockRenovate,
52
+ blockSecurityDocs,
53
+ blockVSCode
54
+ ]
55
+ });
56
+ export {
57
+ presetEverything
58
+ };
59
+ //# sourceMappingURL=presetEverything.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/presets/presetEverything.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockCSpell } from \"../blocks/blockCSpell.js\";\nimport { blockESLintComments } from \"../blocks/blockESLintComments.js\";\nimport { blockESLintJSDoc } from \"../blocks/blockESLintJSDoc.js\";\nimport { blockESLintJSONC } from \"../blocks/blockESLintJSONC.js\";\nimport { blockESLintMarkdown } from \"../blocks/blockESLintMarkdown.js\";\nimport { blockESLintMoreStyling } from \"../blocks/blockESLintMoreStyling.js\";\nimport { blockESLintNode } from \"../blocks/blockESLintNode.js\";\nimport { blockESLintPackageJson } from \"../blocks/blockESLintPackageJson.js\";\nimport { blockESLintPerfectionist } from \"../blocks/blockESLintPerfectionist.js\";\nimport { blockESLintRegexp } from \"../blocks/blockESLintRegexp.js\";\nimport { blockESLintYML } from \"../blocks/blockESLintYML.js\";\nimport { blockKnip } from \"../blocks/blockKnip.js\";\nimport { blockMarkdownlint } from \"../blocks/blockMarkdownlint.js\";\nimport { blockNvmrc } from \"../blocks/blockNvmrc.js\";\nimport { blockPnpmDedupe } from \"../blocks/blockPnpmDedupe.js\";\nimport { blockPRCompliance } from \"../blocks/blockPRCompliance.js\";\nimport { blockPrettierPluginCurly } from \"../blocks/blockPrettierPluginCurly.js\";\nimport { blockPrettierPluginPackageJson } from \"../blocks/blockPrettierPluginPackageJson.js\";\nimport { blockPrettierPluginSh } from \"../blocks/blockPrettierPluginSh.js\";\nimport { blockRenovate } from \"../blocks/blockRenovate.js\";\nimport { blockSecurityDocs } from \"../blocks/blockSecurityDocs.js\";\nimport { blockVSCode } from \"../blocks/blockVSCode.js\";\nimport { presetCommon } from \"../presets/presetCommon.js\";\n\nexport const presetEverything = base.createPreset({\n\tabout: {\n\t\tdescription:\n\t\t\t\"The most comprehensive tooling imaginable: sorting, spellchecking, and more!\",\n\t\tname: \"Everything\",\n\t},\n\tblocks: [\n\t\t...presetCommon.blocks,\n\t\tblockCSpell,\n\t\tblockESLintComments,\n\t\tblockESLintJSDoc,\n\t\tblockESLintJSONC,\n\t\tblockESLintMarkdown,\n\t\tblockESLintMoreStyling,\n\t\tblockESLintNode,\n\t\tblockESLintPackageJson,\n\t\tblockESLintPerfectionist,\n\t\tblockESLintRegexp,\n\t\tblockESLintYML,\n\t\tblockKnip,\n\t\tblockMarkdownlint,\n\t\tblockNvmrc,\n\t\tblockPnpmDedupe,\n\t\tblockPRCompliance,\n\t\tblockPrettierPluginCurly,\n\t\tblockPrettierPluginPackageJson,\n\t\tblockPrettierPluginSh,\n\t\tblockRenovate,\n\t\tblockSecurityDocs,\n\t\tblockVSCode,\n\t],\n});\n"],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,8BAA8B;AACvC,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AACvC,SAAS,gCAAgC;AACzC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,iBAAiB;AAC1B,SAAS,yBAAyB;AAClC,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,gCAAgC;AACzC,SAAS,sCAAsC;AAC/C,SAAS,6BAA6B;AACtC,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAClC,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAEtB,MAAM,mBAAmB,KAAK,aAAa;AAAA,EACjD,OAAO;AAAA,IACN,aACC;AAAA,IACD,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,GAAG,aAAa;AAAA,IAChB;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,IACA;AAAA,IACA;AAAA,EACD;AACD,CAAC;","names":[]}
@@ -2,7 +2,7 @@ import * as create from 'create';
2
2
  import * as zod from 'zod';
3
3
 
4
4
  declare const presetMinimal: create.Preset<{
5
- access: zod.ZodOptional<zod.ZodUnion<[zod.ZodLiteral<"public">, zod.ZodLiteral<"restricted">]>>;
5
+ access: zod.ZodUnion<[zod.ZodLiteral<"public">, zod.ZodLiteral<"restricted">]>;
6
6
  author: zod.ZodOptional<zod.ZodString>;
7
7
  bin: zod.ZodOptional<zod.ZodString>;
8
8
  contributors: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
@@ -58,13 +58,19 @@ declare const presetMinimal: create.Preset<{
58
58
  keywords: zod.ZodOptional<zod.ZodArray<zod.ZodString, "many">>;
59
59
  logo: zod.ZodOptional<zod.ZodObject<{
60
60
  alt: zod.ZodString;
61
+ height: zod.ZodOptional<zod.ZodNumber>;
61
62
  src: zod.ZodString;
63
+ width: zod.ZodOptional<zod.ZodNumber>;
62
64
  }, "strip", zod.ZodTypeAny, {
63
65
  alt: string;
64
66
  src: string;
67
+ height?: number | undefined;
68
+ width?: number | undefined;
65
69
  }, {
66
70
  alt: string;
67
71
  src: string;
72
+ height?: number | undefined;
73
+ width?: number | undefined;
68
74
  }>>;
69
75
  node: zod.ZodOptional<zod.ZodObject<{
70
76
  minimum: zod.ZodString;
@@ -92,6 +98,7 @@ declare const presetMinimal: create.Preset<{
92
98
  }>>;
93
99
  repository: zod.ZodString;
94
100
  title: zod.ZodString;
101
+ usage: zod.ZodOptional<zod.ZodString>;
95
102
  version: zod.ZodOptional<zod.ZodString>;
96
103
  }>;
97
104
 
@@ -0,0 +1,57 @@
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 { blockGitHubApps } from "../blocks/blockGitHubApps.js";
10
+ import { blockGitHubIssueTemplates } from "../blocks/blockGitHubIssueTemplates.js";
11
+ import { blockGitHubPRTemplate } from "../blocks/blockGitHubPRTemplate.js";
12
+ import { blockGitignore } from "../blocks/blockGitignore.js";
13
+ import { blockMITLicense } from "../blocks/blockMITLicense.js";
14
+ import { blockPackageJson } from "../blocks/blockPackageJson.js";
15
+ import { blockPrettier } from "../blocks/blockPrettier.js";
16
+ import { blockREADME } from "../blocks/blockREADME.js";
17
+ import { blockRepositoryBranchRuleset } from "../blocks/blockRepositoryBranchRuleset.js";
18
+ import { blockRepositoryLabels } from "../blocks/blockRepositoryLabels.js";
19
+ import { blockRepositorySecrets } from "../blocks/blockRepositorySecrets.js";
20
+ import { blockRepositorySettings } from "../blocks/blockRepositorySettings.js";
21
+ import { blockTemplatedBy } from "../blocks/blockTemplatedBy.js";
22
+ import { blockTSup } from "../blocks/blockTSup.js";
23
+ import { blockTypeScript } from "../blocks/blockTypeScript.js";
24
+ const presetMinimal = base.createPreset({
25
+ about: {
26
+ description: "Just bare starter tooling: building, formatting, linting, and type checking.",
27
+ name: "Minimal"
28
+ },
29
+ blocks: [
30
+ blockContributingDocs,
31
+ blockContributorCovenant,
32
+ blockDevelopmentDocs,
33
+ blockESLint,
34
+ blockExampleFiles,
35
+ blockFunding,
36
+ blockGitHubActionsCI,
37
+ blockGitHubApps,
38
+ blockGitHubIssueTemplates,
39
+ blockGitHubPRTemplate,
40
+ blockGitignore,
41
+ blockMITLicense,
42
+ blockPackageJson,
43
+ blockPrettier,
44
+ blockREADME,
45
+ blockRepositoryBranchRuleset,
46
+ blockRepositoryLabels,
47
+ blockRepositorySecrets,
48
+ blockRepositorySettings,
49
+ blockTemplatedBy,
50
+ blockTSup,
51
+ blockTypeScript
52
+ ]
53
+ });
54
+ export {
55
+ presetMinimal
56
+ };
57
+ //# sourceMappingURL=presetMinimal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/next/presets/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 { blockGitHubApps } from \"../blocks/blockGitHubApps.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 { blockRepositoryBranchRuleset } from \"../blocks/blockRepositoryBranchRuleset.js\";\nimport { blockRepositoryLabels } from \"../blocks/blockRepositoryLabels.js\";\nimport { blockRepositorySecrets } from \"../blocks/blockRepositorySecrets.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\tblockGitHubApps,\n\t\tblockGitHubIssueTemplates,\n\t\tblockGitHubPRTemplate,\n\t\tblockGitignore,\n\t\tblockMITLicense,\n\t\tblockPackageJson,\n\t\tblockPrettier,\n\t\tblockREADME,\n\t\tblockRepositoryBranchRuleset,\n\t\tblockRepositoryLabels,\n\t\tblockRepositorySecrets,\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,uBAAuB;AAChC,SAAS,iCAAiC;AAC1C,SAAS,6BAA6B;AACtC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAC5B,SAAS,oCAAoC;AAC7C,SAAS,6BAA6B;AACtC,SAAS,8BAA8B;AACvC,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,IACA;AAAA,IACA;AAAA,EACD;AACD,CAAC;","names":[]}
@@ -0,0 +1,7 @@
1
+ import { PartialPackageData } from '../shared/types.js';
2
+ import 'zod';
3
+ import '../shared/codes.js';
4
+
5
+ declare function readDescription(getPackageData: () => Promise<PartialPackageData>, getReadme: () => Promise<string>): Promise<string | undefined>;
6
+
7
+ export { readDescription };
@@ -0,0 +1,18 @@
1
+ import { sourcePackageJson } from "./blocks/sourcePackageJson.js";
2
+ import { readDescriptionFromReadme } from "./readDescriptionFromReadme.js";
3
+ async function readDescription(getPackageData, getReadme) {
4
+ const { description: inferred } = await getPackageData();
5
+ if (!inferred) {
6
+ return void 0;
7
+ }
8
+ const { description: existing } = sourcePackageJson;
9
+ const fromReadme = await readDescriptionFromReadme(getReadme);
10
+ if (fromReadme?.replaceAll(/<\s*(?:\/\s*)?\w+\s*>/gu, "") === inferred) {
11
+ return fromReadme;
12
+ }
13
+ return existing === inferred ? void 0 : inferred;
14
+ }
15
+ export {
16
+ readDescription
17
+ };
18
+ //# sourceMappingURL=readDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/next/readDescription.ts"],"sourcesContent":["import { PartialPackageData } from \"../shared/types.js\";\nimport { sourcePackageJson } from \"./blocks/sourcePackageJson.js\";\nimport { readDescriptionFromReadme } from \"./readDescriptionFromReadme.js\";\n\nexport async function readDescription(\n\tgetPackageData: () => Promise<PartialPackageData>,\n\tgetReadme: () => Promise<string>,\n) {\n\tconst { description: inferred } = await getPackageData();\n\tif (!inferred) {\n\t\treturn undefined;\n\t}\n\n\tconst { description: existing } = sourcePackageJson;\n\tconst fromReadme = await readDescriptionFromReadme(getReadme);\n\n\tif (fromReadme?.replaceAll(/<\\s*(?:\\/\\s*)?\\w+\\s*>/gu, \"\") === inferred) {\n\t\treturn fromReadme;\n\t}\n\n\treturn existing === inferred ? undefined : inferred;\n}\n"],"mappings":"AACA,SAAS,yBAAyB;AAClC,SAAS,iCAAiC;AAE1C,eAAsB,gBACrB,gBACA,WACC;AACD,QAAM,EAAE,aAAa,SAAS,IAAI,MAAM,eAAe;AACvD,MAAI,CAAC,UAAU;AACd,WAAO;AAAA,EACR;AAEA,QAAM,EAAE,aAAa,SAAS,IAAI;AAClC,QAAM,aAAa,MAAM,0BAA0B,SAAS;AAE5D,MAAI,YAAY,WAAW,2BAA2B,EAAE,MAAM,UAAU;AACvE,WAAO;AAAA,EACR;AAEA,SAAO,aAAa,WAAW,SAAY;AAC5C;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare function readDescriptionFromReadme(getReadme: () => Promise<string>): Promise<string | undefined>;
2
+
3
+ export { readDescriptionFromReadme };
@@ -0,0 +1,18 @@
1
+ const paragraphCloser = "</p>";
2
+ const paragraphStarter = `<p align="center">`;
3
+ async function readDescriptionFromReadme(getReadme) {
4
+ const readme = await getReadme();
5
+ const paragraphStart = readme.indexOf(paragraphStarter);
6
+ if (paragraphStart === -1) {
7
+ return void 0;
8
+ }
9
+ const paragraphEnd = readme.indexOf(paragraphCloser);
10
+ if (paragraphEnd < paragraphStart + paragraphStarter.length + 2) {
11
+ return void 0;
12
+ }
13
+ return readme.slice(paragraphStart + paragraphStarter.length, paragraphEnd).replaceAll(/\s+/gu, " ").trim();
14
+ }
15
+ export {
16
+ readDescriptionFromReadme
17
+ };
18
+ //# sourceMappingURL=readDescriptionFromReadme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/next/readDescriptionFromReadme.ts"],"sourcesContent":["const paragraphCloser = \"</p>\";\nconst paragraphStarter = `<p align=\"center\">`;\n\nexport async function readDescriptionFromReadme(\n\tgetReadme: () => Promise<string>,\n) {\n\tconst readme = await getReadme();\n\n\tconst paragraphStart = readme.indexOf(paragraphStarter);\n\tif (paragraphStart === -1) {\n\t\treturn undefined;\n\t}\n\n\tconst paragraphEnd = readme.indexOf(paragraphCloser);\n\tif (paragraphEnd < paragraphStart + paragraphStarter.length + 2) {\n\t\treturn undefined;\n\t}\n\n\treturn readme\n\t\t.slice(paragraphStart + paragraphStarter.length, paragraphEnd)\n\t\t.replaceAll(/\\s+/gu, \" \")\n\t\t.trim();\n}\n"],"mappings":"AAAA,MAAM,kBAAkB;AACxB,MAAM,mBAAmB;AAEzB,eAAsB,0BACrB,WACC;AACD,QAAM,SAAS,MAAM,UAAU;AAE/B,QAAM,iBAAiB,OAAO,QAAQ,gBAAgB;AACtD,MAAI,mBAAmB,IAAI;AAC1B,WAAO;AAAA,EACR;AAEA,QAAM,eAAe,OAAO,QAAQ,eAAe;AACnD,MAAI,eAAe,iBAAiB,iBAAiB,SAAS,GAAG;AAChE,WAAO;AAAA,EACR;AAEA,SAAO,OACL,MAAM,iBAAiB,iBAAiB,QAAQ,YAAY,EAC5D,WAAW,SAAS,GAAG,EACvB,KAAK;AACR;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import { runPreset } from "create";
2
- import { presetCommon } from "./presetCommon.js";
3
- import { presetEverything } from "./presetEverything.js";
4
- import { presetMinimal } from "./presetMinimal.js";
2
+ import { presetCommon } from "./presets/presetCommon.js";
3
+ import { presetEverything } from "./presets/presetEverything.js";
4
+ import { presetMinimal } from "./presets/presetMinimal.js";
5
5
  const presets = {
6
6
  common: presetCommon,
7
7
  everything: presetEverything,
@@ -1 +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":[]}
1
+ {"version":3,"sources":["../../src/next/runCreateEnginePreset.ts"],"sourcesContent":["import { runPreset } from \"create\";\n\nimport { Options } from \"../shared/types.js\";\nimport { presetCommon } from \"./presets/presetCommon.js\";\nimport { presetEverything } from \"./presets/presetEverything.js\";\nimport { presetMinimal } from \"./presets/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":[]}