create-typescript-app 1.58.0 → 1.60.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 (46) hide show
  1. package/README.md +1 -1
  2. package/lib/shared/createCleanupCommands.js +1 -1
  3. package/lib/shared/createCleanupCommands.js.map +1 -1
  4. package/lib/shared/options/args.d.ts +0 -5
  5. package/lib/shared/options/args.js +0 -6
  6. package/lib/shared/options/args.js.map +1 -1
  7. package/lib/shared/options/augmentOptionsWithExcludes.js +2 -1
  8. package/lib/shared/options/augmentOptionsWithExcludes.js.map +1 -1
  9. package/lib/shared/options/ensureRepositoryExists.js +2 -1
  10. package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
  11. package/lib/shared/options/exclusionKeys.d.ts +1 -1
  12. package/lib/shared/options/exclusionKeys.js +0 -5
  13. package/lib/shared/options/exclusionKeys.js.map +1 -1
  14. package/lib/shared/options/getGitHub.js +6 -8
  15. package/lib/shared/options/getGitHub.js.map +1 -1
  16. package/lib/shared/options/optionsSchema.d.ts +24 -28
  17. package/lib/shared/options/optionsSchema.js +0 -1
  18. package/lib/shared/options/optionsSchema.js.map +1 -1
  19. package/lib/shared/options/readOptions.js +0 -1
  20. package/lib/shared/options/readOptions.js.map +1 -1
  21. package/lib/shared/types.d.ts +0 -1
  22. package/lib/steps/finalizeDependencies.js +5 -6
  23. package/lib/steps/finalizeDependencies.js.map +1 -1
  24. package/lib/steps/uninstallPackages.js +1 -0
  25. package/lib/steps/uninstallPackages.js.map +1 -1
  26. package/lib/steps/updateLocalFiles.js +1 -1
  27. package/lib/steps/updateLocalFiles.js.map +1 -1
  28. package/lib/steps/writing/creation/{createESLintRC.d.ts → createESLintConfig.d.ts} +2 -2
  29. package/lib/steps/writing/creation/createESLintConfig.js +154 -0
  30. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -0
  31. package/lib/steps/writing/creation/dotGitHub/actions.js +4 -1
  32. package/lib/steps/writing/creation/dotGitHub/actions.js.map +1 -1
  33. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js +1 -0
  34. package/lib/steps/writing/creation/dotGitHub/createDotGitHubFiles.js.map +1 -1
  35. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js +1 -1
  36. package/lib/steps/writing/creation/dotGitHub/createWorkflows.js.map +1 -1
  37. package/lib/steps/writing/creation/dotVSCode.js +1 -0
  38. package/lib/steps/writing/creation/dotVSCode.js.map +1 -1
  39. package/lib/steps/writing/creation/rootFiles.d.ts +1 -2
  40. package/lib/steps/writing/creation/rootFiles.js +3 -7
  41. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  42. package/lib/steps/writing/creation/writePackageJson.js +1 -2
  43. package/lib/steps/writing/creation/writePackageJson.js.map +1 -1
  44. package/package.json +36 -35
  45. package/lib/steps/writing/creation/createESLintRC.js +0 -167
  46. package/lib/steps/writing/creation/createESLintRC.js.map +0 -1
package/README.md CHANGED
@@ -124,7 +124,7 @@ Thanks! 💖
124
124
  <tr>
125
125
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/lcforbes"><img src="https://avatars.githubusercontent.com/u/42080532?v=4?s=100" width="100px;" alt="lcforbes"/><br /><sub><b>lcforbes</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Alcforbes" title="Bug reports">🐛</a></td>
126
126
  <td align="center" valign="top" width="14.28%"><a href="http://nandertga.ddns.net"><img src="https://avatars.githubusercontent.com/u/65074195?v=4?s=100" width="100px;" alt="nandertga"/><br /><sub><b>nandertga</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=nandertga" title="Code">💻</a></td>
127
- <td align="center" valign="top" width="14.28%"><a href="https://github.com/rubiesonthesky"><img src="https://avatars.githubusercontent.com/u/2591240?v=4?s=100" width="100px;" alt="rubiesonthesky"/><br /><sub><b>rubiesonthesky</b></sub></a><br /><a href="#ideas-rubiesonthesky" title="Ideas, Planning, & Feedback">🤔</a></td>
127
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rubiesonthesky"><img src="https://avatars.githubusercontent.com/u/2591240?v=4?s=100" width="100px;" alt="rubiesonthesky"/><br /><sub><b>rubiesonthesky</b></sub></a><br /><a href="#ideas-rubiesonthesky" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=rubiesonthesky" title="Code">💻</a></td>
128
128
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/TAKANOME-DEV"><img src="https://avatars.githubusercontent.com/u/79809121?v=4?s=100" width="100px;" alt="takanomedev"/><br /><sub><b>takanomedev</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=TAKANOME-DEV" title="Code">💻</a></td>
129
129
  </tr>
130
130
  </tbody>
@@ -6,7 +6,7 @@ function createCleanupCommands({
6
6
  // There's no need to dedupe when initializing from the fixed template
7
7
  ...mode === "initialize" ? [] : ["pnpm dedupe"],
8
8
  // n/no-missing-import rightfully reports on a missing the bin .js file
9
- ...bin ? ["pnpm build --no-dts"] : [],
9
+ ...bin ? ["pnpm build"] : [],
10
10
  "pnpm lint --fix",
11
11
  "pnpm format --write"
12
12
  ];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/createCleanupCommands.ts"],"sourcesContent":["import { Options } from \"./types.js\";\n\nexport function createCleanupCommands({\n\tbin,\n\tmode,\n}: Pick<Options, \"bin\" | \"mode\">) {\n\treturn [\n\t\t// There's no need to dedupe when initializing from the fixed template\n\t\t...(mode === \"initialize\" ? [] : [\"pnpm dedupe\"]),\n\t\t// n/no-missing-import rightfully reports on a missing the bin .js file\n\t\t...(bin ? [\"pnpm build --no-dts\"] : []),\n\t\t\"pnpm lint --fix\",\n\t\t\"pnpm format --write\",\n\t];\n}\n"],"mappings":"AAEO,SAAS,sBAAsB;AAAA,EACrC;AAAA,EACA;AACD,GAAkC;AACjC,SAAO;AAAA;AAAA,IAEN,GAAI,SAAS,eAAe,CAAC,IAAI,CAAC,aAAa;AAAA;AAAA,IAE/C,GAAI,MAAM,CAAC,qBAAqB,IAAI,CAAC;AAAA,IACrC;AAAA,IACA;AAAA,EACD;AACD;","names":[]}
1
+ {"version":3,"sources":["../../src/shared/createCleanupCommands.ts"],"sourcesContent":["import { Options } from \"./types.js\";\n\nexport function createCleanupCommands({\n\tbin,\n\tmode,\n}: Pick<Options, \"bin\" | \"mode\">) {\n\treturn [\n\t\t// There's no need to dedupe when initializing from the fixed template\n\t\t...(mode === \"initialize\" ? [] : [\"pnpm dedupe\"]),\n\t\t// n/no-missing-import rightfully reports on a missing the bin .js file\n\t\t...(bin ? [\"pnpm build\"] : []),\n\t\t\"pnpm lint --fix\",\n\t\t\"pnpm format --write\",\n\t];\n}\n"],"mappings":"AAEO,SAAS,sBAAsB;AAAA,EACrC;AAAA,EACA;AACD,GAAkC;AACjC,SAAO;AAAA;AAAA,IAEN,GAAI,SAAS,eAAe,CAAC,IAAI,CAAC,aAAa;AAAA;AAAA,IAE/C,GAAI,MAAM,CAAC,YAAY,IAAI,CAAC;AAAA,IAC5B;AAAA,IACA;AAAA,EACD;AACD;","names":[]}
@@ -64,11 +64,6 @@ declare const allArgOptions: {
64
64
  readonly docsSection: "opt-out";
65
65
  readonly type: "boolean";
66
66
  };
67
- readonly "exclude-lint-deprecation": {
68
- readonly description: `Don't use eslint-plugin-deprecation to report on usage \n of code marked as ${string}.`;
69
- readonly docsSection: "opt-out";
70
- readonly type: "boolean";
71
- };
72
67
  readonly "exclude-lint-jsdoc": {
73
68
  readonly description: "Don't use eslint-plugin-jsdoc to enforce good practices around \n JSDoc comments.";
74
69
  readonly docsSection: "opt-out";
@@ -86,12 +86,6 @@ const allArgOptions = {
86
86
  docsSection: "opt-out",
87
87
  type: "boolean"
88
88
  },
89
- "exclude-lint-deprecation": {
90
- description: `Don't use eslint-plugin-deprecation to report on usage
91
- of code marked as ${chalk.cyanBright("@deprecated")}.`,
92
- docsSection: "opt-out",
93
- type: "boolean"
94
- },
95
89
  "exclude-lint-jsdoc": {
96
90
  description: `Don't use eslint-plugin-jsdoc to enforce good practices around
97
91
  JSDoc comments.`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/args.ts"],"sourcesContent":["import chalk from \"chalk\";\n\nexport const allArgOptions = {\n\taccess: {\n\t\tdescription: `(${chalk.cyanBright(\n\t\t\t'\"public\" | \"restricted\"',\n\t\t)}): Which ${chalk.cyanBright(\"npm publish --access\")} to \n release npm packages with (by default, \"public\")`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tauthor: {\n\t\tdescription: `Username on npm to publish packages under (by \n default, an existing npm author, or the currently logged in npm user, or \n ${chalk.cyanBright(\"owner.toLowerCase()\")})`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tauto: {\n\t\tdescription: `Whether to infer all options from files on disk.`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"boolean\",\n\t},\n\tbase: {\n\t\tdescription: `Whether to scaffold the repository with:\n • everything: that comes with the template (${chalk.cyanBright.bold(\n\t\t\"recommended\",\n\t)})\n • minimum: amounts of tooling, essentially opting out of everything\n • prompt: for which portions to exclude`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\tbin: {\n\t\tdescription: `package.json bin value to include for npx-style running.`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"create-repository\": {\n\t\tdescription: `Whether to create a corresponding repository on github.com \n (if it doesn't yet exist)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"boolean\",\n\t},\n\tdescription: {\n\t\tdescription: `Sentence case description of the repository \n (e.g. A quickstart-friendly TypeScript package with lots of great \n repository tooling. ✨)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\tdirectory: {\n\t\tdescription: `Directory to create the repository in (by default, the same \n name as the repository)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\temail: {\n\t\tdescription: `Email address to be listed as the point of contact in docs \n and packages (e.g. example@joshuakgoldberg.com)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"email-github\": {\n\t\tdescription: `Optionally, may be provided to use different emails in ${chalk.cyanBright(\n\t\t\t\".md\",\n\t\t)} \n files`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"email-npm\": {\n\t\tdescription: `Optionally, may be provided to use different emails in \n ${chalk.cyanBright(\"package.json\")}`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"exclude-all-contributors\": {\n\t\tdescription: `Don't add all-contributors to track contributions \n and display them in a README.md table.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-compliance\": {\n\t\tdescription: `Don't add a GitHub Actions workflow to verify that PRs match \n an expected format.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-deprecation\": {\n\t\tdescription: `Don't use eslint-plugin-deprecation to report on usage \n of code marked as ${chalk.cyanBright(\"@deprecated\")}.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-jsdoc\": {\n\t\tdescription: `Don't use eslint-plugin-jsdoc to enforce good practices around \n JSDoc comments.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-json\": {\n\t\tdescription: `Don't apply linting and sorting to ${chalk.cyanBright(\n\t\t\t\"*.json\",\n\t\t)}, and \n ${chalk.cyanBright(\"*.jsonc\")} files.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-knip\": {\n\t\tdescription: `Don't add Knip to detect unused files, dependencies, and code \n exports.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-md\": {\n\t\tdescription: `Don't apply linting to ${chalk.cyanBright(\"*.md\")} files.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-package-json\": {\n\t\tdescription: `Don't add eslint-plugin-package-json to lint for \n package.json correctness.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-packages\": {\n\t\tdescription: `Don't add a pnpm dedupe workflow to ensure packages \n aren't duplicated unnecessarily.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-perfectionist\": {\n\t\tdescription: `Don't apply eslint-plugin-perfectionist to ensure \n imports, keys, and so on are in sorted order.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-regex\": {\n\t\tdescription: `Don't add eslint-plugin-regex to enforce good practices around \n regular expressions.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-spelling\": {\n\t\tdescription: `Don't add cspell to spell check against dictionaries \n of known words.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-strict\": {\n\t\tdescription: `Don't augment the recommended logical lint rules with \n typescript-eslint's strict config.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-stylistic\": {\n\t\tdescription: `Don't add stylistic rules such as typescript-eslint's \n stylistic config.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-yml\": {\n\t\tdescription: `Don't apply linting and sorting to ${chalk.cyanBright(\n\t\t\t\"*.yaml\",\n\t\t)} and ${chalk.cyanBright(\"*.yml\")} files.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-releases\": {\n\t\tdescription: `Don't add release-it to generate changelogs, package bumps, \n and publishes based on conventional commits.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-renovate\": {\n\t\tdescription: `Don't add a Renovate config to dependencies up-to-date with \n PRs.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-tests\": {\n\t\tdescription: `Don't add Vitest tooling for fast unit tests, configured \n with coverage tracking.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\tfunding: {\n\t\tdescription: `GitHub organization or username to mention in ${chalk.cyanBright(\n\t\t\t\"funding.yml\",\n\t\t)} \n (by default, owner)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tguide: {\n\t\tdescription: `Link to a contribution guide to place at the top of the \n development docs`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"guide-title\": {\n\t\tdescription: `If ${chalk.cyanBright(\n\t\t\t\"--guide\",\n\t\t)} is provided or detected from an existing \n DEVELOPMENT.md, the text title to place in the guide link`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tkeywords: {\n\t\tdescription: `Any number of keywords to include in ${chalk.cyanBright(\n\t\t\t\"package.json\",\n\t\t)} (by default, \n none). This can be specified any number of times, like \n ${chalk.cyanBright('--keywords apple --keywords \"banana cherry\"')}`,\n\t\tdocsSection: \"optional\",\n\t\tmultiple: true,\n\t\ttype: \"string\",\n\t},\n\tlogo: {\n\t\tdescription: `Local image file in the repository to display near the top of \n the README.md as a logo`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"logo-alt\": {\n\t\tdescription: `If ${chalk.cyanBright(\n\t\t\t\"--logo\",\n\t\t)} is provided or detected from an existing README.md, \n alt text that describes the image will be prompted for if not provided`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tmode: {\n\t\tdescription: `Whether to:\n • create: a new repository in a child directory\n • initialize: a freshly repository in the current directory\n • migrate: an existing repository in the current directory`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\toffline: {\n\t\tdescription: `You can run ${chalk.cyanBright(\n\t\t\t\"create-typescript-app\",\n\t\t)} in an \"offline\" mode. \n Doing so will:\n • Enable ${chalk.cyanBright(\n\t\t\"--exclude-all-contributors-api\",\n\t)} and ${chalk.cyanBright(\"--skip-github-api\")}\n • Skip network calls when setting up contributors\n • Run pnpm commands with pnpm's ${chalk.cyanBright(\"--offline\")} mode`,\n\t\tdocsSection: \"offline\",\n\t\ttype: \"boolean\",\n\t},\n\towner: {\n\t\tdescription: `GitHub organization or user the repository is underneath \n (e.g. JoshuaKGoldberg)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\t\"preserve-generated-form\": {\n\t\tdescription: `Whether to keep the GitHub repository generated from \n notice (by default, false)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"boolean\",\n\t},\n\trepository: {\n\t\tdescription: `The kebab-case name of the repository \n (e.g. create-typescript-app)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\t\"skip-all-contributors-api\": {\n\t\tdescription: `Skips network calls that fetch all-contributors data from\n GitHub. This flag does nothing if ${chalk.cyanBright(\n\t\t\"--exclude-all-contributors\",\n\t)} was specified.`,\n\t\tdocsSection: \"skip-net\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-github-api\": {\n\t\tdescription: `Skips calling to GitHub APIs.`,\n\t\tdocsSection: \"skip-net\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-install\": {\n\t\tdescription: `Skips installing all the new template packages with pnpm.`,\n\t\tdocsSection: \"skip-net\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-removal\": {\n\t\tdescription: `Skips removing setup docs and scripts, including this ${chalk.cyanBright(\n\t\t\t\"docs/\",\n\t\t)} \n directory`,\n\t\tdocsSection: \"skip-disk\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-restore\": {\n\t\tdescription: `Skips the prompt offering to restore the repository if an \n error occurs during setup`,\n\t\tdocsSection: \"skip-disk\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-uninstall\": {\n\t\tdescription: `Skips uninstalling packages only used for setup scripts`,\n\t\tdocsSection: \"skip-disk\",\n\t\ttype: \"boolean\",\n\t},\n\ttitle: {\n\t\tdescription: `Title Case title for the repository to be used in \n documentation (e.g. Create TypeScript App)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n} as const;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/args.ts"],"sourcesContent":["import chalk from \"chalk\";\n\nexport const allArgOptions = {\n\taccess: {\n\t\tdescription: `(${chalk.cyanBright(\n\t\t\t'\"public\" | \"restricted\"',\n\t\t)}): Which ${chalk.cyanBright(\"npm publish --access\")} to \n release npm packages with (by default, \"public\")`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tauthor: {\n\t\tdescription: `Username on npm to publish packages under (by \n default, an existing npm author, or the currently logged in npm user, or \n ${chalk.cyanBright(\"owner.toLowerCase()\")})`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tauto: {\n\t\tdescription: `Whether to infer all options from files on disk.`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"boolean\",\n\t},\n\tbase: {\n\t\tdescription: `Whether to scaffold the repository with:\n • everything: that comes with the template (${chalk.cyanBright.bold(\n\t\t\"recommended\",\n\t)})\n • minimum: amounts of tooling, essentially opting out of everything\n • prompt: for which portions to exclude`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\tbin: {\n\t\tdescription: `package.json bin value to include for npx-style running.`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"create-repository\": {\n\t\tdescription: `Whether to create a corresponding repository on github.com \n (if it doesn't yet exist)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"boolean\",\n\t},\n\tdescription: {\n\t\tdescription: `Sentence case description of the repository \n (e.g. A quickstart-friendly TypeScript package with lots of great \n repository tooling. ✨)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\tdirectory: {\n\t\tdescription: `Directory to create the repository in (by default, the same \n name as the repository)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\temail: {\n\t\tdescription: `Email address to be listed as the point of contact in docs \n and packages (e.g. example@joshuakgoldberg.com)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"email-github\": {\n\t\tdescription: `Optionally, may be provided to use different emails in ${chalk.cyanBright(\n\t\t\t\".md\",\n\t\t)} \n files`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"email-npm\": {\n\t\tdescription: `Optionally, may be provided to use different emails in \n ${chalk.cyanBright(\"package.json\")}`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"exclude-all-contributors\": {\n\t\tdescription: `Don't add all-contributors to track contributions \n and display them in a README.md table.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-compliance\": {\n\t\tdescription: `Don't add a GitHub Actions workflow to verify that PRs match \n an expected format.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-jsdoc\": {\n\t\tdescription: `Don't use eslint-plugin-jsdoc to enforce good practices around \n JSDoc comments.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-json\": {\n\t\tdescription: `Don't apply linting and sorting to ${chalk.cyanBright(\n\t\t\t\"*.json\",\n\t\t)}, and \n ${chalk.cyanBright(\"*.jsonc\")} files.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-knip\": {\n\t\tdescription: `Don't add Knip to detect unused files, dependencies, and code \n exports.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-md\": {\n\t\tdescription: `Don't apply linting to ${chalk.cyanBright(\"*.md\")} files.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-package-json\": {\n\t\tdescription: `Don't add eslint-plugin-package-json to lint for \n package.json correctness.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-packages\": {\n\t\tdescription: `Don't add a pnpm dedupe workflow to ensure packages \n aren't duplicated unnecessarily.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-perfectionist\": {\n\t\tdescription: `Don't apply eslint-plugin-perfectionist to ensure \n imports, keys, and so on are in sorted order.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-regex\": {\n\t\tdescription: `Don't add eslint-plugin-regex to enforce good practices around \n regular expressions.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-spelling\": {\n\t\tdescription: `Don't add cspell to spell check against dictionaries \n of known words.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-strict\": {\n\t\tdescription: `Don't augment the recommended logical lint rules with \n typescript-eslint's strict config.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-stylistic\": {\n\t\tdescription: `Don't add stylistic rules such as typescript-eslint's \n stylistic config.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-lint-yml\": {\n\t\tdescription: `Don't apply linting and sorting to ${chalk.cyanBright(\n\t\t\t\"*.yaml\",\n\t\t)} and ${chalk.cyanBright(\"*.yml\")} files.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-releases\": {\n\t\tdescription: `Don't add release-it to generate changelogs, package bumps, \n and publishes based on conventional commits.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-renovate\": {\n\t\tdescription: `Don't add a Renovate config to dependencies up-to-date with \n PRs.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\t\"exclude-tests\": {\n\t\tdescription: `Don't add Vitest tooling for fast unit tests, configured \n with coverage tracking.`,\n\t\tdocsSection: \"opt-out\",\n\t\ttype: \"boolean\",\n\t},\n\tfunding: {\n\t\tdescription: `GitHub organization or username to mention in ${chalk.cyanBright(\n\t\t\t\"funding.yml\",\n\t\t)} \n (by default, owner)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tguide: {\n\t\tdescription: `Link to a contribution guide to place at the top of the \n development docs`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"guide-title\": {\n\t\tdescription: `If ${chalk.cyanBright(\n\t\t\t\"--guide\",\n\t\t)} is provided or detected from an existing \n DEVELOPMENT.md, the text title to place in the guide link`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tkeywords: {\n\t\tdescription: `Any number of keywords to include in ${chalk.cyanBright(\n\t\t\t\"package.json\",\n\t\t)} (by default, \n none). This can be specified any number of times, like \n ${chalk.cyanBright('--keywords apple --keywords \"banana cherry\"')}`,\n\t\tdocsSection: \"optional\",\n\t\tmultiple: true,\n\t\ttype: \"string\",\n\t},\n\tlogo: {\n\t\tdescription: `Local image file in the repository to display near the top of \n the README.md as a logo`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\t\"logo-alt\": {\n\t\tdescription: `If ${chalk.cyanBright(\n\t\t\t\"--logo\",\n\t\t)} is provided or detected from an existing README.md, \n alt text that describes the image will be prompted for if not provided`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"string\",\n\t},\n\tmode: {\n\t\tdescription: `Whether to:\n • create: a new repository in a child directory\n • initialize: a freshly repository in the current directory\n • migrate: an existing repository in the current directory`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\toffline: {\n\t\tdescription: `You can run ${chalk.cyanBright(\n\t\t\t\"create-typescript-app\",\n\t\t)} in an \"offline\" mode. \n Doing so will:\n • Enable ${chalk.cyanBright(\n\t\t\"--exclude-all-contributors-api\",\n\t)} and ${chalk.cyanBright(\"--skip-github-api\")}\n • Skip network calls when setting up contributors\n • Run pnpm commands with pnpm's ${chalk.cyanBright(\"--offline\")} mode`,\n\t\tdocsSection: \"offline\",\n\t\ttype: \"boolean\",\n\t},\n\towner: {\n\t\tdescription: `GitHub organization or user the repository is underneath \n (e.g. JoshuaKGoldberg)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\t\"preserve-generated-form\": {\n\t\tdescription: `Whether to keep the GitHub repository generated from \n notice (by default, false)`,\n\t\tdocsSection: \"optional\",\n\t\ttype: \"boolean\",\n\t},\n\trepository: {\n\t\tdescription: `The kebab-case name of the repository \n (e.g. create-typescript-app)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n\t\"skip-all-contributors-api\": {\n\t\tdescription: `Skips network calls that fetch all-contributors data from\n GitHub. This flag does nothing if ${chalk.cyanBright(\n\t\t\"--exclude-all-contributors\",\n\t)} was specified.`,\n\t\tdocsSection: \"skip-net\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-github-api\": {\n\t\tdescription: `Skips calling to GitHub APIs.`,\n\t\tdocsSection: \"skip-net\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-install\": {\n\t\tdescription: `Skips installing all the new template packages with pnpm.`,\n\t\tdocsSection: \"skip-net\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-removal\": {\n\t\tdescription: `Skips removing setup docs and scripts, including this ${chalk.cyanBright(\n\t\t\t\"docs/\",\n\t\t)} \n directory`,\n\t\tdocsSection: \"skip-disk\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-restore\": {\n\t\tdescription: `Skips the prompt offering to restore the repository if an \n error occurs during setup`,\n\t\tdocsSection: \"skip-disk\",\n\t\ttype: \"boolean\",\n\t},\n\t\"skip-uninstall\": {\n\t\tdescription: `Skips uninstalling packages only used for setup scripts`,\n\t\tdocsSection: \"skip-disk\",\n\t\ttype: \"boolean\",\n\t},\n\ttitle: {\n\t\tdescription: `Title Case title for the repository to be used in \n documentation (e.g. Create TypeScript App)`,\n\t\tdocsSection: \"core\",\n\t\ttype: \"string\",\n\t},\n} as const;\n"],"mappings":"AAAA,OAAO,WAAW;AAEX,MAAM,gBAAgB;AAAA,EAC5B,QAAQ;AAAA,IACP,aAAa,IAAI,MAAM;AAAA,MACtB;AAAA,IACD,CAAC,YAAY,MAAM,WAAW,sBAAsB,CAAC;AAAA;AAAA,IAErD,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,aAAa;AAAA;AAAA,IAEX,MAAM,WAAW,qBAAqB,CAAC;AAAA,IACzC,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACL,aAAa;AAAA,IACb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACL,aAAa;AAAA,qDACiC,MAAM,WAAW;AAAA,MAC/D;AAAA,IACD,CAAC;AAAA;AAAA;AAAA,IAGA,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,KAAK;AAAA,IACJ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,qBAAqB;AAAA,IACpB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,aAAa;AAAA,IACZ,aAAa;AAAA;AAAA;AAAA,IAGb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,WAAW;AAAA,IACV,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,gBAAgB;AAAA,IACf,aAAa,0DAA0D,MAAM;AAAA,MAC5E;AAAA,IACD,CAAC;AAAA;AAAA,IAED,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,aAAa;AAAA,IACZ,aAAa;AAAA,IACX,MAAM,WAAW,cAAc,CAAC;AAAA,IAClC,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,4BAA4B;AAAA,IAC3B,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,sBAAsB;AAAA,IACrB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,sBAAsB;AAAA,IACrB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,qBAAqB;AAAA,IACpB,aAAa,sCAAsC,MAAM;AAAA,MACxD;AAAA,IACD,CAAC;AAAA,IACC,MAAM,WAAW,SAAS,CAAC;AAAA,IAC7B,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,qBAAqB;AAAA,IACpB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,mBAAmB;AAAA,IAClB,aAAa,0BAA0B,MAAM,WAAW,MAAM,CAAC;AAAA,IAC/D,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,6BAA6B;AAAA,IAC5B,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,yBAAyB;AAAA,IACxB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,8BAA8B;AAAA,IAC7B,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,sBAAsB;AAAA,IACrB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,yBAAyB;AAAA,IACxB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,uBAAuB;AAAA,IACtB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,0BAA0B;AAAA,IACzB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,oBAAoB;AAAA,IACnB,aAAa,sCAAsC,MAAM;AAAA,MACxD;AAAA,IACD,CAAC,QAAQ,MAAM,WAAW,OAAO,CAAC;AAAA,IAClC,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,oBAAoB;AAAA,IACnB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,oBAAoB;AAAA,IACnB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,iBAAiB;AAAA,IAChB,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,SAAS;AAAA,IACR,aAAa,iDAAiD,MAAM;AAAA,MACnE;AAAA,IACD,CAAC;AAAA;AAAA,IAED,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,eAAe;AAAA,IACd,aAAa,MAAM,MAAM;AAAA,MACxB;AAAA,IACD,CAAC;AAAA;AAAA,IAED,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,aAAa,wCAAwC,MAAM;AAAA,MAC1D;AAAA,IACD,CAAC;AAAA;AAAA,IAEC,MAAM,WAAW,6CAA6C,CAAC;AAAA,IACjE,aAAa;AAAA,IACb,UAAU;AAAA,IACV,MAAM;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACL,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,YAAY;AAAA,IACX,aAAa,MAAM,MAAM;AAAA,MACxB;AAAA,IACD,CAAC;AAAA;AAAA,IAED,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,MAAM;AAAA,IACL,aAAa;AAAA;AAAA;AAAA;AAAA,IAIb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,SAAS;AAAA,IACR,aAAa,eAAe,MAAM;AAAA,MACjC;AAAA,IACD,CAAC;AAAA;AAAA,kBAEU,MAAM;AAAA,MACjB;AAAA,IACD,CAAC,QAAQ,MAAM,WAAW,mBAAmB,CAAC;AAAA;AAAA,yCAEX,MAAM,WAAW,WAAW,CAAC;AAAA,IAC/D,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,2BAA2B;AAAA,IAC1B,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,YAAY;AAAA,IACX,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,6BAA6B;AAAA,IAC5B,aAAa;AAAA,sCACuB,MAAM;AAAA,MAC1C;AAAA,IACD,CAAC;AAAA,IACA,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,mBAAmB;AAAA,IAClB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,gBAAgB;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,gBAAgB;AAAA,IACf,aAAa,yDAAyD,MAAM;AAAA,MAC3E;AAAA,IACD,CAAC;AAAA;AAAA,IAED,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,gBAAgB;AAAA,IACf,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,kBAAkB;AAAA,IACjB,aAAa;AAAA,IACb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,OAAO;AAAA,IACN,aAAa;AAAA;AAAA,IAEb,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AACD;","names":[]}
@@ -57,7 +57,7 @@ async function augmentOptionsWithExcludes(options) {
57
57
  base,
58
58
  ...getExclusions(options, base)
59
59
  };
60
- case "prompt":
60
+ case "prompt": {
61
61
  const exclusionsNotEnabled = new Set(
62
62
  filterPromptCancel(
63
63
  await prompts.multiselect({
@@ -82,6 +82,7 @@ async function augmentOptionsWithExcludes(options) {
82
82
  )
83
83
  )
84
84
  };
85
+ }
85
86
  }
86
87
  }
87
88
  function makeLabel(label, message) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/augmentOptionsWithExcludes.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\nimport chalk from \"chalk\";\n\nimport { filterPromptCancel } from \"../prompts.js\";\nimport { Options, OptionsBase } from \"../types.js\";\nimport {\n\tExclusionKey,\n\texclusionDescriptions,\n\texclusionKeys,\n\tgetExclusions,\n} from \"./exclusionKeys.js\";\n\nexport async function augmentOptionsWithExcludes(\n\toptions: Options,\n): Promise<Options | undefined> {\n\tif (\n\t\tObject.keys(options).some(\n\t\t\t(key) =>\n\t\t\t\tkey in exclusionDescriptions &&\n\t\t\t\toptions[key as keyof typeof options] !== undefined,\n\t\t)\n\t) {\n\t\treturn options;\n\t}\n\n\tconst base =\n\t\toptions.base ??\n\t\tfilterPromptCancel<OptionsBase | symbol>(\n\t\t\tawait prompts.select({\n\t\t\t\tinitialValue: \"common\" as OptionsBase,\n\t\t\t\tmessage: `How much tooling would you like the template to set up for you?`,\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: makeLabel(\n\t\t\t\t\t\t\t\"everything\",\n\t\t\t\t\t\t\t\"The most comprehensive tooling imaginable: sorting, spellchecking, and more!\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"everything\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\thint: \"recommended\",\n\t\t\t\t\t\tlabel: makeLabel(\n\t\t\t\t\t\t\t\"common\",\n\t\t\t\t\t\t\t\"Bare starters plus testing and automation for all-contributors and releases.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"common\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: makeLabel(\n\t\t\t\t\t\t\t\"minimum\",\n\t\t\t\t\t\t\t\"Just bare starter tooling: building, formatting, linting, and type checking.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"minimum\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: makeLabel(\"prompt\", \"(allow me to customize)\"),\n\t\t\t\t\t\tvalue: \"prompt\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}),\n\t\t);\n\n\tswitch (base) {\n\t\tcase undefined:\n\t\t\treturn undefined;\n\t\tcase \"common\":\n\t\tcase \"minimum\":\n\t\tcase \"everything\":\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tbase,\n\t\t\t\t...getExclusions(options, base),\n\t\t\t};\n\t\tcase \"prompt\":\n\t\t\tconst exclusionsNotEnabled = new Set(\n\t\t\t\tfilterPromptCancel(\n\t\t\t\t\tawait prompts.multiselect({\n\t\t\t\t\t\tinitialValues: exclusionKeys,\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Select the tooling portions you'd like to remove. All are enabled by default. Press ↑ or ↓ to change the selected item, then space to select.\",\n\t\t\t\t\t\toptions: Object.entries(exclusionDescriptions).map(\n\t\t\t\t\t\t\t([value, { hint, label }]) => ({\n\t\t\t\t\t\t\t\thint,\n\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\tvalue: value as ExclusionKey,\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);\n\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tbase,\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\texclusionKeys.map(\n\t\t\t\t\t\t(exclusionKey) =>\n\t\t\t\t\t\t\t[exclusionKey, !exclusionsNotEnabled.has(exclusionKey)] as const,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t}\n}\n\nfunction makeLabel(label: string, message: string) {\n\treturn [chalk.bold(label), message].join(\"\\t \");\n}\n"],"mappings":"AAAA,YAAY,aAAa;AACzB,OAAO,WAAW;AAElB,SAAS,0BAA0B;AAEnC;AAAA,EAEC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,eAAsB,2BACrB,SAC+B;AAC/B,MACC,OAAO,KAAK,OAAO,EAAE;AAAA,IACpB,CAAC,QACA,OAAO,yBACP,QAAQ,GAA2B,MAAM;AAAA,EAC3C,GACC;AACD,WAAO;AAAA,EACR;AAEA,QAAM,OACL,QAAQ,QACR;AAAA,IACC,MAAM,QAAQ,OAAO;AAAA,MACpB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,SAAS;AAAA,QACR;AAAA,UACC,OAAO;AAAA,YACN;AAAA,YACA;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,YACN;AAAA,YACA;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO;AAAA,YACN;AAAA,YACA;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,UAAU,UAAU,yBAAyB;AAAA,UACpD,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAED,UAAQ,MAAM;AAAA,IACb,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,QACA,GAAG,cAAc,SAAS,IAAI;AAAA,MAC/B;AAAA,IACD,KAAK;AACJ,YAAM,uBAAuB,IAAI;AAAA,QAChC;AAAA,UACC,MAAM,QAAQ,YAAY;AAAA,YACzB,eAAe;AAAA,YACf,SACC;AAAA,YACD,SAAS,OAAO,QAAQ,qBAAqB,EAAE;AAAA,cAC9C,CAAC,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO;AAAA,gBAC9B;AAAA,gBACA;AAAA,gBACA;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAC;AAAA,QACF;AAAA,MACD;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,QACA,GAAG,OAAO;AAAA,UACT,cAAc;AAAA,YACb,CAAC,iBACA,CAAC,cAAc,CAAC,qBAAqB,IAAI,YAAY,CAAC;AAAA,UACxD;AAAA,QACD;AAAA,MACD;AAAA,EACF;AACD;AAEA,SAAS,UAAU,OAAe,SAAiB;AAClD,SAAO,CAAC,MAAM,KAAK,KAAK,GAAG,OAAO,EAAE,KAAK,IAAK;AAC/C;","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/augmentOptionsWithExcludes.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\nimport chalk from \"chalk\";\n\nimport { filterPromptCancel } from \"../prompts.js\";\nimport { Options, OptionsBase } from \"../types.js\";\nimport {\n\tExclusionKey,\n\texclusionDescriptions,\n\texclusionKeys,\n\tgetExclusions,\n} from \"./exclusionKeys.js\";\n\nexport async function augmentOptionsWithExcludes(\n\toptions: Options,\n): Promise<Options | undefined> {\n\tif (\n\t\tObject.keys(options).some(\n\t\t\t(key) =>\n\t\t\t\tkey in exclusionDescriptions &&\n\t\t\t\toptions[key as keyof typeof options] !== undefined,\n\t\t)\n\t) {\n\t\treturn options;\n\t}\n\n\tconst base =\n\t\toptions.base ??\n\t\tfilterPromptCancel<OptionsBase | symbol>(\n\t\t\tawait prompts.select({\n\t\t\t\tinitialValue: \"common\" as OptionsBase,\n\t\t\t\tmessage: `How much tooling would you like the template to set up for you?`,\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: makeLabel(\n\t\t\t\t\t\t\t\"everything\",\n\t\t\t\t\t\t\t\"The most comprehensive tooling imaginable: sorting, spellchecking, and more!\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"everything\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\thint: \"recommended\",\n\t\t\t\t\t\tlabel: makeLabel(\n\t\t\t\t\t\t\t\"common\",\n\t\t\t\t\t\t\t\"Bare starters plus testing and automation for all-contributors and releases.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"common\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: makeLabel(\n\t\t\t\t\t\t\t\"minimum\",\n\t\t\t\t\t\t\t\"Just bare starter tooling: building, formatting, linting, and type checking.\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tvalue: \"minimum\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: makeLabel(\"prompt\", \"(allow me to customize)\"),\n\t\t\t\t\t\tvalue: \"prompt\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}),\n\t\t);\n\n\tswitch (base) {\n\t\tcase undefined:\n\t\t\treturn undefined;\n\t\tcase \"common\":\n\t\tcase \"minimum\":\n\t\tcase \"everything\":\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tbase,\n\t\t\t\t...getExclusions(options, base),\n\t\t\t};\n\t\tcase \"prompt\": {\n\t\t\tconst exclusionsNotEnabled = new Set(\n\t\t\t\tfilterPromptCancel(\n\t\t\t\t\tawait prompts.multiselect({\n\t\t\t\t\t\tinitialValues: exclusionKeys,\n\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\"Select the tooling portions you'd like to remove. All are enabled by default. Press ↑ or ↓ to change the selected item, then space to select.\",\n\t\t\t\t\t\toptions: Object.entries(exclusionDescriptions).map(\n\t\t\t\t\t\t\t([value, { hint, label }]) => ({\n\t\t\t\t\t\t\t\thint,\n\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\tvalue: value as ExclusionKey,\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);\n\n\t\t\treturn {\n\t\t\t\t...options,\n\t\t\t\tbase,\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\texclusionKeys.map(\n\t\t\t\t\t\t(exclusionKey) =>\n\t\t\t\t\t\t\t[exclusionKey, !exclusionsNotEnabled.has(exclusionKey)] as const,\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t}\n}\n\nfunction makeLabel(label: string, message: string) {\n\treturn [chalk.bold(label), message].join(\"\\t \");\n}\n"],"mappings":"AAAA,YAAY,aAAa;AACzB,OAAO,WAAW;AAElB,SAAS,0BAA0B;AAEnC;AAAA,EAEC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAEP,eAAsB,2BACrB,SAC+B;AAC/B,MACC,OAAO,KAAK,OAAO,EAAE;AAAA,IACpB,CAAC,QACA,OAAO,yBACP,QAAQ,GAA2B,MAAM;AAAA,EAC3C,GACC;AACD,WAAO;AAAA,EACR;AAEA,QAAM,OACL,QAAQ,QACR;AAAA,IACC,MAAM,QAAQ,OAAO;AAAA,MACpB,cAAc;AAAA,MACd,SAAS;AAAA,MACT,SAAS;AAAA,QACR;AAAA,UACC,OAAO;AAAA,YACN;AAAA,YACA;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,MAAM;AAAA,UACN,OAAO;AAAA,YACN;AAAA,YACA;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO;AAAA,YACN;AAAA,YACA;AAAA,UACD;AAAA,UACA,OAAO;AAAA,QACR;AAAA,QACA;AAAA,UACC,OAAO,UAAU,UAAU,yBAAyB;AAAA,UACpD,OAAO;AAAA,QACR;AAAA,MACD;AAAA,IACD,CAAC;AAAA,EACF;AAED,UAAQ,MAAM;AAAA,IACb,KAAK;AACJ,aAAO;AAAA,IACR,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACJ,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,QACA,GAAG,cAAc,SAAS,IAAI;AAAA,MAC/B;AAAA,IACD,KAAK,UAAU;AACd,YAAM,uBAAuB,IAAI;AAAA,QAChC;AAAA,UACC,MAAM,QAAQ,YAAY;AAAA,YACzB,eAAe;AAAA,YACf,SACC;AAAA,YACD,SAAS,OAAO,QAAQ,qBAAqB,EAAE;AAAA,cAC9C,CAAC,CAAC,OAAO,EAAE,MAAM,MAAM,CAAC,OAAO;AAAA,gBAC9B;AAAA,gBACA;AAAA,gBACA;AAAA,cACD;AAAA,YACD;AAAA,UACD,CAAC;AAAA,QACF;AAAA,MACD;AAEA,aAAO;AAAA,QACN,GAAG;AAAA,QACH;AAAA,QACA,GAAG,OAAO;AAAA,UACT,cAAc;AAAA,YACb,CAAC,iBACA,CAAC,cAAc,CAAC,qBAAqB,IAAI,YAAY,CAAC;AAAA,UACxD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;AAEA,SAAS,UAAU,OAAe,SAAiB;AAClD,SAAO,CAAC,MAAM,KAAK,KAAK,GAAG,OAAO,EAAE,KAAK,IAAK;AAC/C;","names":[]}
@@ -38,7 +38,7 @@ async function ensureRepositoryExists(github, options) {
38
38
  repository
39
39
  });
40
40
  return { github, repository };
41
- case "different":
41
+ case "different": {
42
42
  const newRepository = filterPromptCancel(
43
43
  await prompts.text({
44
44
  message: `What would you like to call the repository?`
@@ -49,6 +49,7 @@ async function ensureRepositoryExists(github, options) {
49
49
  }
50
50
  repository = newRepository;
51
51
  break;
52
+ }
52
53
  case "local":
53
54
  github = void 0;
54
55
  break;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/ensureRepositoryExists.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\n\nimport { doesRepositoryExist } from \"../doesRepositoryExist.js\";\nimport { filterPromptCancel } from \"../prompts.js\";\nimport { Options } from \"../types.js\";\nimport { createRepositoryWithApi } from \"./createRepositoryWithApi.js\";\nimport { GitHub } from \"./getGitHub.js\";\n\nexport type EnsureRepositoryExistsOptions = Pick<\n\tOptions,\n\t\"mode\" | \"owner\" | \"preserveGeneratedFrom\" | \"repository\"\n>;\n\nexport interface RepositoryExistsResult {\n\tgithub: GitHub | undefined;\n\trepository: string;\n}\n\nexport async function ensureRepositoryExists(\n\tgithub: GitHub | undefined,\n\toptions: EnsureRepositoryExistsOptions,\n): Promise<Partial<RepositoryExistsResult>> {\n\t// We'll only respect input options once before prompting for them\n\tlet { repository } = options;\n\tlet createRepository = options.mode === \"create\";\n\n\t// We'll continuously pester the user for a repository\n\t// until they bail, create a new one, or it exists.\n\twhile (github) {\n\t\tif (await doesRepositoryExist(github.octokit, options)) {\n\t\t\treturn { github, repository };\n\t\t}\n\n\t\tconst selection = createRepository\n\t\t\t? \"create\"\n\t\t\t: filterPromptCancel(\n\t\t\t\t\t(await prompts.select({\n\t\t\t\t\t\tmessage: `Repository ${options.repository} doesn't seem to exist under ${options.owner}. What would you like to do?`,\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{ label: \"Create a new repository\", value: \"create\" },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Switch to a different repository name\",\n\t\t\t\t\t\t\t\tvalue: \"different\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Keep changes local\",\n\t\t\t\t\t\t\t\tvalue: \"local\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ label: \"Bail out and maybe try again later\", value: \"bail\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t})) as \"bail\" | \"create\" | \"different\" | \"local\",\n\t\t\t );\n\n\t\tcreateRepository = false;\n\n\t\tswitch (selection) {\n\t\t\tcase undefined:\n\t\t\tcase \"bail\":\n\t\t\t\treturn {};\n\n\t\t\tcase \"create\":\n\t\t\t\tawait createRepositoryWithApi(github.octokit, {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tpreserveGeneratedFrom: options.preserveGeneratedFrom,\n\t\t\t\t\trepository,\n\t\t\t\t});\n\t\t\t\treturn { github, repository };\n\n\t\t\tcase \"different\":\n\t\t\t\tconst newRepository = filterPromptCancel(\n\t\t\t\t\tawait prompts.text({\n\t\t\t\t\t\tmessage: `What would you like to call the repository?`,\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tif (!newRepository) {\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\n\t\t\t\trepository = newRepository;\n\t\t\t\tbreak;\n\n\t\t\tcase \"local\":\n\t\t\t\tgithub = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { github, repository };\n}\n"],"mappings":"AAAA,YAAY,aAAa;AAEzB,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AAEnC,SAAS,+BAA+B;AAaxC,eAAsB,uBACrB,QACA,SAC2C;AAE3C,MAAI,EAAE,WAAW,IAAI;AACrB,MAAI,mBAAmB,QAAQ,SAAS;AAIxC,SAAO,QAAQ;AACd,QAAI,MAAM,oBAAoB,OAAO,SAAS,OAAO,GAAG;AACvD,aAAO,EAAE,QAAQ,WAAW;AAAA,IAC7B;AAEA,UAAM,YAAY,mBACf,WACA;AAAA,MACC,MAAM,QAAQ,OAAO;AAAA,QACrB,SAAS,cAAc,QAAQ,UAAU,gCAAgC,QAAQ,KAAK;AAAA,QACtF,SAAS;AAAA,UACR,EAAE,OAAO,2BAA2B,OAAO,SAAS;AAAA,UACpD;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA,EAAE,OAAO,sCAAsC,OAAO,OAAO;AAAA,QAC9D;AAAA,MACD,CAAC;AAAA,IACD;AAEH,uBAAmB;AAEnB,YAAQ,WAAW;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACJ,eAAO,CAAC;AAAA,MAET,KAAK;AACJ,cAAM,wBAAwB,OAAO,SAAS;AAAA,UAC7C,OAAO,QAAQ;AAAA,UACf,uBAAuB,QAAQ;AAAA,UAC/B;AAAA,QACD,CAAC;AACD,eAAO,EAAE,QAAQ,WAAW;AAAA,MAE7B,KAAK;AACJ,cAAM,gBAAgB;AAAA,UACrB,MAAM,QAAQ,KAAK;AAAA,YAClB,SAAS;AAAA,UACV,CAAC;AAAA,QACF;AAEA,YAAI,CAAC,eAAe;AACnB,iBAAO,CAAC;AAAA,QACT;AAEA,qBAAa;AACb;AAAA,MAED,KAAK;AACJ,iBAAS;AACT;AAAA,IACF;AAAA,EACD;AAEA,SAAO,EAAE,QAAQ,WAAW;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/ensureRepositoryExists.ts"],"sourcesContent":["import * as prompts from \"@clack/prompts\";\n\nimport { doesRepositoryExist } from \"../doesRepositoryExist.js\";\nimport { filterPromptCancel } from \"../prompts.js\";\nimport { Options } from \"../types.js\";\nimport { createRepositoryWithApi } from \"./createRepositoryWithApi.js\";\nimport { GitHub } from \"./getGitHub.js\";\n\nexport type EnsureRepositoryExistsOptions = Pick<\n\tOptions,\n\t\"mode\" | \"owner\" | \"preserveGeneratedFrom\" | \"repository\"\n>;\n\nexport interface RepositoryExistsResult {\n\tgithub: GitHub | undefined;\n\trepository: string;\n}\n\nexport async function ensureRepositoryExists(\n\tgithub: GitHub | undefined,\n\toptions: EnsureRepositoryExistsOptions,\n): Promise<Partial<RepositoryExistsResult>> {\n\t// We'll only respect input options once before prompting for them\n\tlet { repository } = options;\n\tlet createRepository = options.mode === \"create\";\n\n\t// We'll continuously pester the user for a repository\n\t// until they bail, create a new one, or it exists.\n\twhile (github) {\n\t\tif (await doesRepositoryExist(github.octokit, options)) {\n\t\t\treturn { github, repository };\n\t\t}\n\n\t\tconst selection = createRepository\n\t\t\t? \"create\"\n\t\t\t: filterPromptCancel(\n\t\t\t\t\t(await prompts.select({\n\t\t\t\t\t\tmessage: `Repository ${options.repository} doesn't seem to exist under ${options.owner}. What would you like to do?`,\n\t\t\t\t\t\toptions: [\n\t\t\t\t\t\t\t{ label: \"Create a new repository\", value: \"create\" },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Switch to a different repository name\",\n\t\t\t\t\t\t\t\tvalue: \"different\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: \"Keep changes local\",\n\t\t\t\t\t\t\t\tvalue: \"local\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{ label: \"Bail out and maybe try again later\", value: \"bail\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t})) as \"bail\" | \"create\" | \"different\" | \"local\",\n\t\t\t );\n\n\t\tcreateRepository = false;\n\n\t\tswitch (selection) {\n\t\t\tcase undefined:\n\t\t\tcase \"bail\":\n\t\t\t\treturn {};\n\n\t\t\tcase \"create\":\n\t\t\t\tawait createRepositoryWithApi(github.octokit, {\n\t\t\t\t\towner: options.owner,\n\t\t\t\t\tpreserveGeneratedFrom: options.preserveGeneratedFrom,\n\t\t\t\t\trepository,\n\t\t\t\t});\n\t\t\t\treturn { github, repository };\n\n\t\t\tcase \"different\": {\n\t\t\t\tconst newRepository = filterPromptCancel(\n\t\t\t\t\tawait prompts.text({\n\t\t\t\t\t\tmessage: `What would you like to call the repository?`,\n\t\t\t\t\t}),\n\t\t\t\t);\n\n\t\t\t\tif (!newRepository) {\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\n\t\t\t\trepository = newRepository;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"local\":\n\t\t\t\tgithub = undefined;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn { github, repository };\n}\n"],"mappings":"AAAA,YAAY,aAAa;AAEzB,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AAEnC,SAAS,+BAA+B;AAaxC,eAAsB,uBACrB,QACA,SAC2C;AAE3C,MAAI,EAAE,WAAW,IAAI;AACrB,MAAI,mBAAmB,QAAQ,SAAS;AAIxC,SAAO,QAAQ;AACd,QAAI,MAAM,oBAAoB,OAAO,SAAS,OAAO,GAAG;AACvD,aAAO,EAAE,QAAQ,WAAW;AAAA,IAC7B;AAEA,UAAM,YAAY,mBACf,WACA;AAAA,MACC,MAAM,QAAQ,OAAO;AAAA,QACrB,SAAS,cAAc,QAAQ,UAAU,gCAAgC,QAAQ,KAAK;AAAA,QACtF,SAAS;AAAA,UACR,EAAE,OAAO,2BAA2B,OAAO,SAAS;AAAA,UACpD;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA;AAAA,YACC,OAAO;AAAA,YACP,OAAO;AAAA,UACR;AAAA,UACA,EAAE,OAAO,sCAAsC,OAAO,OAAO;AAAA,QAC9D;AAAA,MACD,CAAC;AAAA,IACD;AAEH,uBAAmB;AAEnB,YAAQ,WAAW;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACJ,eAAO,CAAC;AAAA,MAET,KAAK;AACJ,cAAM,wBAAwB,OAAO,SAAS;AAAA,UAC7C,OAAO,QAAQ;AAAA,UACf,uBAAuB,QAAQ;AAAA,UAC/B;AAAA,QACD,CAAC;AACD,eAAO,EAAE,QAAQ,WAAW;AAAA,MAE7B,KAAK,aAAa;AACjB,cAAM,gBAAgB;AAAA,UACrB,MAAM,QAAQ,KAAK;AAAA,YAClB,SAAS;AAAA,UACV,CAAC;AAAA,QACF;AAEA,YAAI,CAAC,eAAe;AACnB,iBAAO,CAAC;AAAA,QACT;AAEA,qBAAa;AACb;AAAA,MACD;AAAA,MAEA,KAAK;AACJ,iBAAS;AACT;AAAA,IACF;AAAA,EACD;AAEA,SAAO,EAAE,QAAQ,WAAW;AAC7B;","names":[]}
@@ -2,7 +2,7 @@ import { Options, OptionsBase } from '../types.js';
2
2
  import 'zod';
3
3
  import '../codes.js';
4
4
 
5
- type ExclusionKey = keyof Options & `exclude${string}`;
5
+ type ExclusionKey = `exclude${string}` & keyof Options;
6
6
  interface ExclusionDescription {
7
7
  hint: string;
8
8
  label: string;
@@ -8,11 +8,6 @@ const exclusionDescriptions = {
8
8
  label: "Add a GitHub Actions workflow to verify that PRs match an expected format.",
9
9
  uncommon: true
10
10
  },
11
- excludeLintDeprecation: {
12
- hint: "--exclude-lint-deprecation",
13
- label: "Include an eslint-plugin-deprecation to reports on usage of code marked as @deprecated.",
14
- uncommon: true
15
- },
16
11
  excludeLintESLint: {
17
12
  hint: "--exclude-lint-eslint",
18
13
  label: "Include eslint-plugin-eslint-comment to enforce good practices around ESLint comment directives.",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/exclusionKeys.ts"],"sourcesContent":["import { Options, OptionsBase } from \"../types.js\";\n\nexport type ExclusionKey = keyof Options & `exclude${string}`;\n\nexport interface ExclusionDescription {\n\thint: string;\n\tlabel: string;\n\tuncommon?: true;\n}\n\nexport const exclusionDescriptions: Record<ExclusionKey, ExclusionDescription> =\n\t{\n\t\texcludeAllContributors: {\n\t\t\thint: \"--exclude-all-contributors\",\n\t\t\tlabel:\n\t\t\t\t\"Add all-contributors to track contributions and display them in a README.md table.\",\n\t\t},\n\t\texcludeCompliance: {\n\t\t\thint: \"--exclude-compliance\",\n\t\t\tlabel:\n\t\t\t\t\"Add a GitHub Actions workflow to verify that PRs match an expected format.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintDeprecation: {\n\t\t\thint: \"--exclude-lint-deprecation\",\n\t\t\tlabel:\n\t\t\t\t\"Include an eslint-plugin-deprecation to reports on usage of code marked as @deprecated.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintESLint: {\n\t\t\thint: \"--exclude-lint-eslint\",\n\t\t\tlabel:\n\t\t\t\t\"Include eslint-plugin-eslint-comment to enforce good practices around ESLint comment directives.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintJSDoc: {\n\t\t\thint: \"--exclude-lint-jsdoc\",\n\t\t\tlabel:\n\t\t\t\t\"Include eslint-plugin-jsdoc to enforce good practices around JSDoc comments.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintJson: {\n\t\t\thint: \"--exclude-lint-json\",\n\t\t\tlabel: \"Apply linting and sorting to *.json and *.jsonc files.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintKnip: {\n\t\t\thint: \"--exclude-lint-knip\",\n\t\t\tlabel: \"Add Knip to detect unused files, dependencies, and code exports.\",\n\t\t},\n\t\texcludeLintMd: {\n\t\t\thint: \"--exclude-lint-md\",\n\t\t\tlabel: \"Apply linting to *.md files.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintPackageJson: {\n\t\t\thint: \"--exclude-lint-package-json\",\n\t\t\tlabel:\n\t\t\t\t\"Add eslint-plugin-package-json to lint for package.json correctness.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintPackages: {\n\t\t\thint: \"--exclude-lint-packages\",\n\t\t\tlabel:\n\t\t\t\t\"Add a pnpm dedupe workflow to ensure packages aren't duplicated unnecessarily.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintPerfectionist: {\n\t\t\thint: \"--exclude-lint-perfectionist\",\n\t\t\tlabel:\n\t\t\t\t\"Apply eslint-plugin-perfectionist to ensure imports, keys, and so on are in sorted order.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintRegex: {\n\t\t\thint: \"--exclude-lint-regex\",\n\t\t\tlabel:\n\t\t\t\t\"Include eslint-plugin-regex to enforce good practices around regular expressions.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintSpelling: {\n\t\t\thint: \"--exclude-lint-spelling\",\n\t\t\tlabel: \"Add cspell to spell check against dictionaries of known words.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintStrict: {\n\t\t\thint: \"--exclude-lint-strict\",\n\t\t\tlabel:\n\t\t\t\t\"Include strict logical lint rules such as typescript-eslint's strict config. \",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintStylistic: {\n\t\t\thint: \"--exclude-lint-stylistic\",\n\t\t\tlabel:\n\t\t\t\t\"Include stylistic lint rules such as typescript-eslint's stylistic config.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintYml: {\n\t\t\thint: \"--exclude-lint-yml\",\n\t\t\tlabel: \"Apply linting and sorting to *.yaml and *.yml files.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeReleases: {\n\t\t\thint: \"--exclude-releases\",\n\t\t\tlabel:\n\t\t\t\t\"Add release-it to generate changelogs, package bumps, and publishes based on conventional commits.\",\n\t\t},\n\t\texcludeRenovate: {\n\t\t\thint: \"--exclude-renovate\",\n\t\t\tlabel: \"Add a Renovate config to keep dependencies up-to-date with PRs.\",\n\t\t},\n\t\texcludeTests: {\n\t\t\thint: \"--exclude-tests\",\n\t\t\tlabel:\n\t\t\t\t\"Add Vitest tooling for fast unit tests, configured with coverage tracking.\",\n\t\t},\n\t};\n\nexport const exclusionKeys = Object.keys(\n\texclusionDescriptions,\n) as ExclusionKey[];\n\nexport function getExclusions(\n\toptions: Partial<Options>,\n\tbase?: OptionsBase,\n): Partial<Options> {\n\tswitch (base) {\n\t\tcase \"common\":\n\t\t\treturn {\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\texclusionKeys\n\t\t\t\t\t\t.filter((exclusion) => exclusionDescriptions[exclusion].uncommon)\n\t\t\t\t\t\t.map((exclusion) => [exclusion, options[exclusion] ?? true]),\n\t\t\t\t),\n\t\t\t};\n\t\tcase \"minimum\":\n\t\t\treturn {\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\texclusionKeys.map((exclusion) => [\n\t\t\t\t\t\texclusion,\n\t\t\t\t\t\toptions[exclusion] ?? true,\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t};\n\t\t// We only really care about exclusions on the common and minimum bases\n\t\tdefault:\n\t\t\treturn {};\n\t}\n}\n"],"mappings":"AAUO,MAAM,wBACZ;AAAA,EACC,wBAAwB;AAAA,IACvB,MAAM;AAAA,IACN,OACC;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IAClB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,wBAAwB;AAAA,IACvB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,mBAAmB;AAAA,IAClB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,kBAAkB;AAAA,IACjB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACA,eAAe;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,wBAAwB;AAAA,IACvB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,qBAAqB;AAAA,IACpB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,0BAA0B;AAAA,IACzB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,kBAAkB;AAAA,IACjB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,qBAAqB;AAAA,IACpB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,mBAAmB;AAAA,IAClB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,sBAAsB;AAAA,IACrB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,gBAAgB;AAAA,IACf,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OACC;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACA,cAAc;AAAA,IACb,MAAM;AAAA,IACN,OACC;AAAA,EACF;AACD;AAEM,MAAM,gBAAgB,OAAO;AAAA,EACnC;AACD;AAEO,SAAS,cACf,SACA,MACmB;AACnB,UAAQ,MAAM;AAAA,IACb,KAAK;AACJ,aAAO;AAAA,QACN,GAAG,OAAO;AAAA,UACT,cACE,OAAO,CAAC,cAAc,sBAAsB,SAAS,EAAE,QAAQ,EAC/D,IAAI,CAAC,cAAc,CAAC,WAAW,QAAQ,SAAS,KAAK,IAAI,CAAC;AAAA,QAC7D;AAAA,MACD;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,GAAG,OAAO;AAAA,UACT,cAAc,IAAI,CAAC,cAAc;AAAA,YAChC;AAAA,YACA,QAAQ,SAAS,KAAK;AAAA,UACvB,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IAED;AACC,aAAO,CAAC;AAAA,EACV;AACD;","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/exclusionKeys.ts"],"sourcesContent":["import { Options, OptionsBase } from \"../types.js\";\n\nexport type ExclusionKey = `exclude${string}` & keyof Options;\n\nexport interface ExclusionDescription {\n\thint: string;\n\tlabel: string;\n\tuncommon?: true;\n}\n\nexport const exclusionDescriptions: Record<ExclusionKey, ExclusionDescription> =\n\t{\n\t\texcludeAllContributors: {\n\t\t\thint: \"--exclude-all-contributors\",\n\t\t\tlabel:\n\t\t\t\t\"Add all-contributors to track contributions and display them in a README.md table.\",\n\t\t},\n\t\texcludeCompliance: {\n\t\t\thint: \"--exclude-compliance\",\n\t\t\tlabel:\n\t\t\t\t\"Add a GitHub Actions workflow to verify that PRs match an expected format.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintESLint: {\n\t\t\thint: \"--exclude-lint-eslint\",\n\t\t\tlabel:\n\t\t\t\t\"Include eslint-plugin-eslint-comment to enforce good practices around ESLint comment directives.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintJSDoc: {\n\t\t\thint: \"--exclude-lint-jsdoc\",\n\t\t\tlabel:\n\t\t\t\t\"Include eslint-plugin-jsdoc to enforce good practices around JSDoc comments.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintJson: {\n\t\t\thint: \"--exclude-lint-json\",\n\t\t\tlabel: \"Apply linting and sorting to *.json and *.jsonc files.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintKnip: {\n\t\t\thint: \"--exclude-lint-knip\",\n\t\t\tlabel: \"Add Knip to detect unused files, dependencies, and code exports.\",\n\t\t},\n\t\texcludeLintMd: {\n\t\t\thint: \"--exclude-lint-md\",\n\t\t\tlabel: \"Apply linting to *.md files.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintPackageJson: {\n\t\t\thint: \"--exclude-lint-package-json\",\n\t\t\tlabel:\n\t\t\t\t\"Add eslint-plugin-package-json to lint for package.json correctness.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintPackages: {\n\t\t\thint: \"--exclude-lint-packages\",\n\t\t\tlabel:\n\t\t\t\t\"Add a pnpm dedupe workflow to ensure packages aren't duplicated unnecessarily.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintPerfectionist: {\n\t\t\thint: \"--exclude-lint-perfectionist\",\n\t\t\tlabel:\n\t\t\t\t\"Apply eslint-plugin-perfectionist to ensure imports, keys, and so on are in sorted order.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintRegex: {\n\t\t\thint: \"--exclude-lint-regex\",\n\t\t\tlabel:\n\t\t\t\t\"Include eslint-plugin-regex to enforce good practices around regular expressions.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintSpelling: {\n\t\t\thint: \"--exclude-lint-spelling\",\n\t\t\tlabel: \"Add cspell to spell check against dictionaries of known words.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintStrict: {\n\t\t\thint: \"--exclude-lint-strict\",\n\t\t\tlabel:\n\t\t\t\t\"Include strict logical lint rules such as typescript-eslint's strict config. \",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintStylistic: {\n\t\t\thint: \"--exclude-lint-stylistic\",\n\t\t\tlabel:\n\t\t\t\t\"Include stylistic lint rules such as typescript-eslint's stylistic config.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeLintYml: {\n\t\t\thint: \"--exclude-lint-yml\",\n\t\t\tlabel: \"Apply linting and sorting to *.yaml and *.yml files.\",\n\t\t\tuncommon: true,\n\t\t},\n\t\texcludeReleases: {\n\t\t\thint: \"--exclude-releases\",\n\t\t\tlabel:\n\t\t\t\t\"Add release-it to generate changelogs, package bumps, and publishes based on conventional commits.\",\n\t\t},\n\t\texcludeRenovate: {\n\t\t\thint: \"--exclude-renovate\",\n\t\t\tlabel: \"Add a Renovate config to keep dependencies up-to-date with PRs.\",\n\t\t},\n\t\texcludeTests: {\n\t\t\thint: \"--exclude-tests\",\n\t\t\tlabel:\n\t\t\t\t\"Add Vitest tooling for fast unit tests, configured with coverage tracking.\",\n\t\t},\n\t};\n\nexport const exclusionKeys = Object.keys(\n\texclusionDescriptions,\n) as ExclusionKey[];\n\nexport function getExclusions(\n\toptions: Partial<Options>,\n\tbase?: OptionsBase,\n): Partial<Options> {\n\tswitch (base) {\n\t\tcase \"common\":\n\t\t\treturn {\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\texclusionKeys\n\t\t\t\t\t\t.filter((exclusion) => exclusionDescriptions[exclusion].uncommon)\n\t\t\t\t\t\t.map((exclusion) => [exclusion, options[exclusion] ?? true]),\n\t\t\t\t),\n\t\t\t};\n\t\tcase \"minimum\":\n\t\t\treturn {\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\texclusionKeys.map((exclusion) => [\n\t\t\t\t\t\texclusion,\n\t\t\t\t\t\toptions[exclusion] ?? true,\n\t\t\t\t\t]),\n\t\t\t\t),\n\t\t\t};\n\t\t// We only really care about exclusions on the common and minimum bases\n\t\tdefault:\n\t\t\treturn {};\n\t}\n}\n"],"mappings":"AAUO,MAAM,wBACZ;AAAA,EACC,wBAAwB;AAAA,IACvB,MAAM;AAAA,IACN,OACC;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IAClB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,mBAAmB;AAAA,IAClB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,kBAAkB;AAAA,IACjB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACA,eAAe;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,wBAAwB;AAAA,IACvB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,qBAAqB;AAAA,IACpB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,0BAA0B;AAAA,IACzB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,kBAAkB;AAAA,IACjB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,qBAAqB;AAAA,IACpB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,mBAAmB;AAAA,IAClB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,sBAAsB;AAAA,IACrB,MAAM;AAAA,IACN,OACC;AAAA,IACD,UAAU;AAAA,EACX;AAAA,EACA,gBAAgB;AAAA,IACf,MAAM;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,EACX;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OACC;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,EACR;AAAA,EACA,cAAc;AAAA,IACb,MAAM;AAAA,IACN,OACC;AAAA,EACF;AACD;AAEM,MAAM,gBAAgB,OAAO;AAAA,EACnC;AACD;AAEO,SAAS,cACf,SACA,MACmB;AACnB,UAAQ,MAAM;AAAA,IACb,KAAK;AACJ,aAAO;AAAA,QACN,GAAG,OAAO;AAAA,UACT,cACE,OAAO,CAAC,cAAc,sBAAsB,SAAS,EAAE,QAAQ,EAC/D,IAAI,CAAC,cAAc,CAAC,WAAW,QAAQ,SAAS,KAAK,IAAI,CAAC;AAAA,QAC7D;AAAA,MACD;AAAA,IACD,KAAK;AACJ,aAAO;AAAA,QACN,GAAG,OAAO;AAAA,UACT,cAAc,IAAI,CAAC,cAAc;AAAA,YAChC;AAAA,YACA,QAAQ,SAAS,KAAK;AAAA,UACvB,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IAED;AACC,aAAO,CAAC;AAAA,EACV;AACD;","names":[]}
@@ -1,16 +1,14 @@
1
- import { $ } from "execa";
1
+ import { getGitHubAuthToken } from "get-github-auth-token";
2
2
  import { Octokit } from "octokit";
3
3
  async function getGitHub() {
4
- try {
5
- await $`gh auth status`;
6
- } catch (error) {
4
+ const auth = await getGitHubAuthToken();
5
+ if (!auth.succeeded) {
7
6
  throw new Error("GitHub authentication failed.", {
8
- cause: error.message
7
+ cause: auth.error
9
8
  });
10
9
  }
11
- const auth = (await $`gh auth token`).stdout.trim();
12
- const octokit = new Octokit({ auth });
13
- return { auth, octokit };
10
+ const octokit = new Octokit({ auth: auth.token });
11
+ return { auth: auth.token, octokit };
14
12
  }
15
13
  export {
16
14
  getGitHub
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/getGitHub.ts"],"sourcesContent":["import { $ } from \"execa\";\nimport { Octokit } from \"octokit\";\n\nexport interface GitHub {\n\tauth: string;\n\toctokit: Octokit;\n}\n\nexport async function getGitHub(): Promise<GitHub | undefined> {\n\ttry {\n\t\tawait $`gh auth status`;\n\t} catch (error) {\n\t\tthrow new Error(\"GitHub authentication failed.\", {\n\t\t\tcause: (error as Error).message,\n\t\t});\n\t}\n\n\tconst auth = (await $`gh auth token`).stdout.trim();\n\tconst octokit = new Octokit({ auth });\n\n\treturn { auth, octokit };\n}\n"],"mappings":"AAAA,SAAS,SAAS;AAClB,SAAS,eAAe;AAOxB,eAAsB,YAAyC;AAC9D,MAAI;AACH,UAAM;AAAA,EACP,SAAS,OAAO;AACf,UAAM,IAAI,MAAM,iCAAiC;AAAA,MAChD,OAAQ,MAAgB;AAAA,IACzB,CAAC;AAAA,EACF;AAEA,QAAM,QAAQ,MAAM,kBAAkB,OAAO,KAAK;AAClD,QAAM,UAAU,IAAI,QAAQ,EAAE,KAAK,CAAC;AAEpC,SAAO,EAAE,MAAM,QAAQ;AACxB;","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/getGitHub.ts"],"sourcesContent":["import { getGitHubAuthToken } from \"get-github-auth-token\";\nimport { Octokit } from \"octokit\";\n\nexport interface GitHub {\n\tauth: string;\n\toctokit: Octokit;\n}\n\nexport async function getGitHub(): Promise<GitHub | undefined> {\n\tconst auth = await getGitHubAuthToken();\n\n\tif (!auth.succeeded) {\n\t\tthrow new Error(\"GitHub authentication failed.\", {\n\t\t\tcause: auth.error,\n\t\t});\n\t}\n\n\tconst octokit = new Octokit({ auth: auth.token });\n\n\treturn { auth: auth.token, octokit };\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AACnC,SAAS,eAAe;AAOxB,eAAsB,YAAyC;AAC9D,QAAM,OAAO,MAAM,mBAAmB;AAEtC,MAAI,CAAC,KAAK,WAAW;AACpB,UAAM,IAAI,MAAM,iCAAiC;AAAA,MAChD,OAAO,KAAK;AAAA,IACb,CAAC;AAAA,EACF;AAEA,QAAM,UAAU,IAAI,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;AAEhD,SAAO,EAAE,MAAM,KAAK,OAAO,QAAQ;AACpC;","names":[]}
@@ -20,7 +20,6 @@ declare const optionsSchemaShape: {
20
20
  }>>;
21
21
  excludeAllContributors: z.ZodOptional<z.ZodBoolean>;
22
22
  excludeCompliance: z.ZodOptional<z.ZodBoolean>;
23
- excludeLintDeprecation: z.ZodOptional<z.ZodBoolean>;
24
23
  excludeLintESLint: z.ZodOptional<z.ZodBoolean>;
25
24
  excludeLintJSDoc: z.ZodOptional<z.ZodBoolean>;
26
25
  excludeLintJson: z.ZodOptional<z.ZodBoolean>;
@@ -76,7 +75,6 @@ declare const optionsSchema: z.ZodObject<{
76
75
  }>>;
77
76
  excludeAllContributors: z.ZodOptional<z.ZodBoolean>;
78
77
  excludeCompliance: z.ZodOptional<z.ZodBoolean>;
79
- excludeLintDeprecation: z.ZodOptional<z.ZodBoolean>;
80
78
  excludeLintESLint: z.ZodOptional<z.ZodBoolean>;
81
79
  excludeLintJSDoc: z.ZodOptional<z.ZodBoolean>;
82
80
  excludeLintJson: z.ZodOptional<z.ZodBoolean>;
@@ -112,20 +110,28 @@ declare const optionsSchema: z.ZodObject<{
112
110
  skipUninstall: z.ZodOptional<z.ZodBoolean>;
113
111
  title: z.ZodOptional<z.ZodString>;
114
112
  }, "strip", z.ZodTypeAny, {
113
+ description?: string | undefined;
114
+ offline?: boolean | undefined;
115
115
  access?: "public" | "restricted" | undefined;
116
116
  author?: string | undefined;
117
117
  auto?: boolean | undefined;
118
118
  base?: "common" | "everything" | "minimum" | "prompt" | undefined;
119
119
  bin?: string | undefined;
120
- description?: string | undefined;
121
120
  directory?: string | undefined;
122
121
  email?: {
123
122
  github: string;
124
123
  npm: string;
125
124
  } | undefined;
125
+ funding?: string | undefined;
126
+ guide?: string | undefined;
127
+ keywords?: string[] | undefined;
128
+ logo?: string | undefined;
129
+ mode?: "create" | "initialize" | "migrate" | undefined;
130
+ owner?: string | undefined;
131
+ repository?: string | undefined;
132
+ title?: string | undefined;
126
133
  excludeAllContributors?: boolean | undefined;
127
134
  excludeCompliance?: boolean | undefined;
128
- excludeLintDeprecation?: boolean | undefined;
129
135
  excludeLintESLint?: boolean | undefined;
130
136
  excludeLintJSDoc?: boolean | undefined;
131
137
  excludeLintJson?: boolean | undefined;
@@ -142,39 +148,38 @@ declare const optionsSchema: z.ZodObject<{
142
148
  excludeReleases?: boolean | undefined;
143
149
  excludeRenovate?: boolean | undefined;
144
150
  excludeTests?: boolean | undefined;
145
- funding?: string | undefined;
146
- guide?: string | undefined;
147
- guideTitle?: string | undefined;
148
- keywords?: string[] | undefined;
149
- logo?: string | undefined;
150
- logoAlt?: string | undefined;
151
- mode?: "create" | "initialize" | "migrate" | undefined;
152
- offline?: boolean | undefined;
153
- owner?: string | undefined;
154
151
  preserveGeneratedFrom?: boolean | undefined;
155
- repository?: string | undefined;
156
152
  skipAllContributorsApi?: boolean | undefined;
157
153
  skipGitHubApi?: boolean | undefined;
158
154
  skipInstall?: boolean | undefined;
159
155
  skipRemoval?: boolean | undefined;
160
156
  skipRestore?: boolean | undefined;
161
157
  skipUninstall?: boolean | undefined;
162
- title?: string | undefined;
158
+ guideTitle?: string | undefined;
159
+ logoAlt?: string | undefined;
163
160
  }, {
161
+ description?: string | undefined;
162
+ offline?: boolean | undefined;
164
163
  access?: "public" | "restricted" | undefined;
165
164
  author?: string | undefined;
166
165
  auto?: boolean | undefined;
167
166
  base?: "common" | "everything" | "minimum" | "prompt" | undefined;
168
167
  bin?: string | undefined;
169
- description?: string | undefined;
170
168
  directory?: string | undefined;
171
169
  email?: {
172
170
  github: string;
173
171
  npm: string;
174
172
  } | undefined;
173
+ funding?: string | undefined;
174
+ guide?: string | undefined;
175
+ keywords?: string[] | undefined;
176
+ logo?: string | undefined;
177
+ mode?: "create" | "initialize" | "migrate" | undefined;
178
+ owner?: string | undefined;
179
+ repository?: string | undefined;
180
+ title?: string | undefined;
175
181
  excludeAllContributors?: boolean | undefined;
176
182
  excludeCompliance?: boolean | undefined;
177
- excludeLintDeprecation?: boolean | undefined;
178
183
  excludeLintESLint?: boolean | undefined;
179
184
  excludeLintJSDoc?: boolean | undefined;
180
185
  excludeLintJson?: boolean | undefined;
@@ -191,24 +196,15 @@ declare const optionsSchema: z.ZodObject<{
191
196
  excludeReleases?: boolean | undefined;
192
197
  excludeRenovate?: boolean | undefined;
193
198
  excludeTests?: boolean | undefined;
194
- funding?: string | undefined;
195
- guide?: string | undefined;
196
- guideTitle?: string | undefined;
197
- keywords?: string[] | undefined;
198
- logo?: string | undefined;
199
- logoAlt?: string | undefined;
200
- mode?: "create" | "initialize" | "migrate" | undefined;
201
- offline?: boolean | undefined;
202
- owner?: string | undefined;
203
199
  preserveGeneratedFrom?: boolean | undefined;
204
- repository?: string | undefined;
205
200
  skipAllContributorsApi?: boolean | undefined;
206
201
  skipGitHubApi?: boolean | undefined;
207
202
  skipInstall?: boolean | undefined;
208
203
  skipRemoval?: boolean | undefined;
209
204
  skipRestore?: boolean | undefined;
210
205
  skipUninstall?: boolean | undefined;
211
- title?: string | undefined;
206
+ guideTitle?: string | undefined;
207
+ logoAlt?: string | undefined;
212
208
  }>;
213
209
 
214
210
  export { optionsSchema, optionsSchemaShape };
@@ -18,7 +18,6 @@ const optionsSchemaShape = {
18
18
  }).optional(),
19
19
  excludeAllContributors: z.boolean().optional(),
20
20
  excludeCompliance: z.boolean().optional(),
21
- excludeLintDeprecation: z.boolean().optional(),
22
21
  excludeLintESLint: z.boolean().optional(),
23
22
  excludeLintJSDoc: z.boolean().optional(),
24
23
  excludeLintJson: z.boolean().optional(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/optionsSchema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const optionsSchemaShape = {\n\taccess: z.union([z.literal(\"public\"), z.literal(\"restricted\")]).optional(),\n\tauthor: z.string().optional(),\n\tauto: z.boolean().optional(),\n\tbase: z\n\t\t.union([\n\t\t\tz.literal(\"common\"),\n\t\t\tz.literal(\"everything\"),\n\t\t\tz.literal(\"minimum\"),\n\t\t\tz.literal(\"prompt\"),\n\t\t])\n\t\t.optional(),\n\tbin: z.string().optional(),\n\tdescription: z.string().optional(),\n\tdirectory: z.string().optional(),\n\temail: z\n\t\t.object({\n\t\t\tgithub: z.string().email(),\n\t\t\tnpm: z.string().email(),\n\t\t})\n\t\t.optional(),\n\texcludeAllContributors: z.boolean().optional(),\n\texcludeCompliance: z.boolean().optional(),\n\texcludeLintDeprecation: z.boolean().optional(),\n\texcludeLintESLint: z.boolean().optional(),\n\texcludeLintJSDoc: z.boolean().optional(),\n\texcludeLintJson: z.boolean().optional(),\n\texcludeLintKnip: z.boolean().optional(),\n\texcludeLintMd: z.boolean().optional(),\n\texcludeLintPackageJson: z.boolean().optional(),\n\texcludeLintPackages: z.boolean().optional(),\n\texcludeLintPerfectionist: z.boolean().optional(),\n\texcludeLintRegex: z.boolean().optional(),\n\texcludeLintSpelling: z.boolean().optional(),\n\texcludeLintStrict: z.boolean().optional(),\n\texcludeLintStylistic: z.boolean().optional(),\n\texcludeLintYml: z.boolean().optional(),\n\texcludeReleases: z.boolean().optional(),\n\texcludeRenovate: z.boolean().optional(),\n\texcludeTests: z.boolean().optional(),\n\tfunding: z.string().optional(),\n\tguide: z.string().url().optional(),\n\tguideTitle: z.string().optional(),\n\tkeywords: z.array(z.string()).optional(),\n\tlogo: z.string().optional(),\n\tlogoAlt: z.string().optional(),\n\tmode: z\n\t\t.union([z.literal(\"create\"), z.literal(\"initialize\"), z.literal(\"migrate\")])\n\t\t.optional(),\n\toffline: z.boolean().optional(),\n\towner: z.string().optional(),\n\tpreserveGeneratedFrom: z.boolean().optional(),\n\trepository: z.string().optional(),\n\tskipAllContributorsApi: z.boolean().optional(),\n\tskipGitHubApi: z.boolean().optional(),\n\tskipInstall: z.boolean().optional(),\n\tskipRemoval: z.boolean().optional(),\n\tskipRestore: z.boolean().optional(),\n\tskipUninstall: z.boolean().optional(),\n\ttitle: z.string().optional(),\n};\n\nexport const optionsSchema = z.object(optionsSchemaShape);\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/shared/options/optionsSchema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const optionsSchemaShape = {\n\taccess: z.union([z.literal(\"public\"), z.literal(\"restricted\")]).optional(),\n\tauthor: z.string().optional(),\n\tauto: z.boolean().optional(),\n\tbase: z\n\t\t.union([\n\t\t\tz.literal(\"common\"),\n\t\t\tz.literal(\"everything\"),\n\t\t\tz.literal(\"minimum\"),\n\t\t\tz.literal(\"prompt\"),\n\t\t])\n\t\t.optional(),\n\tbin: z.string().optional(),\n\tdescription: z.string().optional(),\n\tdirectory: z.string().optional(),\n\temail: z\n\t\t.object({\n\t\t\tgithub: z.string().email(),\n\t\t\tnpm: z.string().email(),\n\t\t})\n\t\t.optional(),\n\texcludeAllContributors: z.boolean().optional(),\n\texcludeCompliance: z.boolean().optional(),\n\texcludeLintESLint: z.boolean().optional(),\n\texcludeLintJSDoc: z.boolean().optional(),\n\texcludeLintJson: z.boolean().optional(),\n\texcludeLintKnip: z.boolean().optional(),\n\texcludeLintMd: z.boolean().optional(),\n\texcludeLintPackageJson: z.boolean().optional(),\n\texcludeLintPackages: z.boolean().optional(),\n\texcludeLintPerfectionist: z.boolean().optional(),\n\texcludeLintRegex: z.boolean().optional(),\n\texcludeLintSpelling: z.boolean().optional(),\n\texcludeLintStrict: z.boolean().optional(),\n\texcludeLintStylistic: z.boolean().optional(),\n\texcludeLintYml: z.boolean().optional(),\n\texcludeReleases: z.boolean().optional(),\n\texcludeRenovate: z.boolean().optional(),\n\texcludeTests: z.boolean().optional(),\n\tfunding: z.string().optional(),\n\tguide: z.string().url().optional(),\n\tguideTitle: z.string().optional(),\n\tkeywords: z.array(z.string()).optional(),\n\tlogo: z.string().optional(),\n\tlogoAlt: z.string().optional(),\n\tmode: z\n\t\t.union([z.literal(\"create\"), z.literal(\"initialize\"), z.literal(\"migrate\")])\n\t\t.optional(),\n\toffline: z.boolean().optional(),\n\towner: z.string().optional(),\n\tpreserveGeneratedFrom: z.boolean().optional(),\n\trepository: z.string().optional(),\n\tskipAllContributorsApi: z.boolean().optional(),\n\tskipGitHubApi: z.boolean().optional(),\n\tskipInstall: z.boolean().optional(),\n\tskipRemoval: z.boolean().optional(),\n\tskipRestore: z.boolean().optional(),\n\tskipUninstall: z.boolean().optional(),\n\ttitle: z.string().optional(),\n};\n\nexport const optionsSchema = z.object(optionsSchemaShape);\n"],"mappings":"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","names":[]}
@@ -36,7 +36,6 @@ async function readOptions(args, mode, promptedOptions = {}) {
36
36
  } : void 0,
37
37
  excludeAllContributors: values["exclude-all-contributors"],
38
38
  excludeCompliance: values["exclude-compliance"],
39
- excludeLintDeprecation: values["exclude-lint-deprecation"],
40
39
  excludeLintESLint: values["exclude-lint-eslint"],
41
40
  excludeLintJSDoc: values["exclude-lint-jsdoc"],
42
41
  excludeLintJson: values["exclude-lint-json"],
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/shared/options/readOptions.ts"],"sourcesContent":["import { parseArgs } from \"node:util\";\nimport { titleCase } from \"title-case\";\nimport { z } from \"zod\";\n\nimport { withSpinner } from \"../cli/spinners.js\";\nimport { Mode, OptionsGuide, PromptedOptions } from \"../types.js\";\nimport { Options, OptionsLogo } from \"../types.js\";\nimport { allArgOptions } from \"./args.js\";\nimport { augmentOptionsWithExcludes } from \"./augmentOptionsWithExcludes.js\";\nimport { createOptionDefaults } from \"./createOptionDefaults/index.js\";\nimport { detectEmailRedundancy } from \"./detectEmailRedundancy.js\";\nimport { ensureRepositoryExists } from \"./ensureRepositoryExists.js\";\nimport { getBase } from \"./getBase.js\";\nimport { GitHub, getGitHub } from \"./getGitHub.js\";\nimport { getPrefillOrPromptedOption } from \"./getPrefillOrPromptedOption.js\";\nimport { logInferredOptions } from \"./logInferredOptions.js\";\nimport { optionsSchema } from \"./optionsSchema.js\";\n\nexport interface GitHubAndOptions {\n\tgithub: GitHub | undefined;\n\toptions: Options;\n}\n\nexport interface OptionsParseCancelled {\n\tcancelled: true;\n\terror?: string | z.ZodError<object>;\n\toptions: object;\n}\n\nexport interface OptionsParseSuccess extends GitHubAndOptions {\n\tcancelled: false;\n}\n\nexport type OptionsParseResult = OptionsParseCancelled | OptionsParseSuccess;\n\nexport async function readOptions(\n\targs: string[],\n\tmode: Mode,\n\tpromptedOptions: PromptedOptions = {},\n): Promise<OptionsParseResult> {\n\tconst defaults = createOptionDefaults(promptedOptions);\n\tconst { values } = parseArgs({\n\t\targs,\n\t\toptions: allArgOptions,\n\t\tstrict: false,\n\t\ttokens: true,\n\t});\n\n\tif (mode === \"migrate\" && !values.base) {\n\t\tvalues.base = await getBase();\n\t}\n\n\tconst mappedOptions = {\n\t\taccess: values.access,\n\t\tauthor: values.author,\n\t\tauto: !!values.auto,\n\t\tbase: values.base,\n\t\tbin: values.bin,\n\t\tdescription: values.description,\n\t\tdirectory: values.directory,\n\t\temail:\n\t\t\tvalues.email ?? values[\"email-github\"] ?? values[\"email-npm\"]\n\t\t\t\t? {\n\t\t\t\t\t\tgithub: values.email ?? values[\"email-github\"],\n\t\t\t\t\t\tnpm: values.email ?? values[\"email-npm\"],\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\texcludeAllContributors: values[\"exclude-all-contributors\"],\n\t\texcludeCompliance: values[\"exclude-compliance\"],\n\t\texcludeLintDeprecation: values[\"exclude-lint-deprecation\"],\n\t\texcludeLintESLint: values[\"exclude-lint-eslint\"],\n\t\texcludeLintJSDoc: values[\"exclude-lint-jsdoc\"],\n\t\texcludeLintJson: values[\"exclude-lint-json\"],\n\t\texcludeLintKnip: values[\"exclude-lint-knip\"],\n\t\texcludeLintMd: values[\"exclude-lint-md\"],\n\t\texcludeLintPackageJson: values[\"exclude-lint-package-json\"],\n\t\texcludeLintPackages: values[\"exclude-lint-packages\"],\n\t\texcludeLintPerfectionist: values[\"exclude-lint-perfectionist\"],\n\t\texcludeLintRegex: values[\"exclude-lint-regex\"],\n\t\texcludeLintSpelling: values[\"exclude-lint-spelling\"],\n\t\texcludeLintStrict: values[\"exclude-lint-strict\"],\n\t\texcludeLintYml: values[\"exclude-lint-yml\"],\n\t\texcludeReleases: values[\"exclude-releases\"],\n\t\texcludeRenovate: values[\"exclude-renovate\"],\n\t\texcludeTests: values[\"unit-tests\"],\n\t\tfunding: values.funding,\n\t\tguide: values.guide,\n\t\tguideTitle: values[\"guide-title\"],\n\t\tlogo: values.logo,\n\t\tlogoAlt: values[\"logo-alt\"],\n\t\toffline: values.offline,\n\t\towner: values.owner,\n\t\tpreserveGeneratedFrom:\n\t\t\tvalues[\"preserve-generated-from\"] ?? values.owner === \"JoshuaKGoldberg\",\n\t\trepository: values.repository,\n\t\tskipAllContributorsApi:\n\t\t\tvalues[\"skip-all-contributors-api\"] ?? values.offline,\n\t\tskipGitHubApi: values[\"skip-github-api\"] ?? values.offline,\n\t\tskipInstall: values[\"skip-install\"],\n\t\tskipRemoval: values[\"skip-removal\"],\n\t\tskipRestore: values[\"skip-restore\"],\n\t\tskipUninstall: values[\"skip-uninstall\"],\n\t\ttitle: values.title,\n\t};\n\n\tconst emailError = detectEmailRedundancy(values);\n\tif (emailError) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: emailError,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst optionsParseResult = optionsSchema.safeParse(mappedOptions);\n\n\tif (!optionsParseResult.success) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: optionsParseResult.error,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst options = optionsParseResult.data;\n\n\tconst ownerOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.owner,\n\t\tmessage: \"What organization or user will the repository be under?\",\n\t\tname: \"owner\",\n\t\tprovided: options.owner,\n\t});\n\n\toptions.owner ??= ownerOption.value;\n\n\tif (!options.owner) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: ownerOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst repositoryOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.repository,\n\t\tmessage: \"What will the kebab-case name of the repository be?\",\n\t\tname: \"repository\",\n\t\tprovided: options.repository,\n\t});\n\n\toptions.repository ??= repositoryOption.value;\n\n\tif (!options.repository) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: repositoryOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst { github, repository } = await ensureRepositoryExists(\n\t\toptions.skipGitHubApi\n\t\t\t? undefined\n\t\t\t: await withSpinner(\"Checking GitHub authentication\", getGitHub),\n\t\t{\n\t\t\tmode,\n\t\t\towner: options.owner,\n\t\t\trepository: options.repository,\n\t\t},\n\t);\n\n\tif (!repository) {\n\t\treturn { cancelled: true, error: repositoryOption.error, options };\n\t}\n\n\tconst descriptionOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.description()) ?? \"A very lovely package. Hooray!\",\n\t\tmessage: \"How would you describe the new package?\",\n\t\tname: \"description\",\n\t\tprovided: options.description,\n\t});\n\n\toptions.description ??= descriptionOption.value;\n\n\tif (!options.description) {\n\t\treturn { cancelled: true, error: descriptionOption.error, options };\n\t}\n\n\tconst titleOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.title()) ?? titleCase(repository).replaceAll(\"-\", \" \"),\n\t\tmessage: \"What will the Title Case title of the repository be?\",\n\t\tname: \"title\",\n\t\tprovided: options.title,\n\t});\n\n\toptions.title ??= titleOption.value;\n\n\tif (!options.title) {\n\t\treturn { cancelled: true, error: titleOption.error, options };\n\t}\n\n\tlet guide: OptionsGuide | undefined;\n\n\tif (options.guide) {\n\t\tif (options.guideTitle) {\n\t\t\tguide = { href: options.guide, title: options.guideTitle };\n\t\t} else {\n\t\t\tconst titleOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the title text for the guide?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!titleOption.value) {\n\t\t\t\treturn { cancelled: true, error: titleOption.error, options };\n\t\t\t}\n\n\t\t\tguide = { href: options.guide, title: titleOption.value };\n\t\t}\n\t}\n\n\tlet logo: OptionsLogo | undefined;\n\n\tif (options.logo) {\n\t\tif (options.logoAlt) {\n\t\t\tlogo = { alt: options.logoAlt, src: options.logo };\n\t\t} else {\n\t\t\tconst logoAltOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the alt text (non-visual description) of the logo?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!logoAltOption.value) {\n\t\t\t\treturn { cancelled: true, error: logoAltOption.error, options };\n\t\t\t}\n\n\t\t\tlogo = { alt: logoAltOption.value, src: options.logo };\n\t\t}\n\t}\n\n\tlet email = options.email ?? (await defaults.email());\n\n\tif (!email) {\n\t\tconst emailOption = await getPrefillOrPromptedOption({\n\t\t\tauto: !!mappedOptions.auto,\n\t\t\tmessage: \"What email should be used in package.json and .md files?\",\n\t\t\tname: \"email\",\n\t\t});\n\n\t\tif (!emailOption.value) {\n\t\t\treturn { cancelled: true, error: emailOption.error, options };\n\t\t}\n\n\t\temail = { github: emailOption.value, npm: emailOption.value };\n\t}\n\n\tconst augmentedOptions = await augmentOptionsWithExcludes({\n\t\t...options,\n\t\taccess: options.access ?? \"public\",\n\t\tauthor: options.author ?? (await defaults.owner()),\n\t\tdescription: options.description,\n\t\tdirectory:\n\t\t\toptions.directory ?? promptedOptions.directory ?? options.repository,\n\t\temail,\n\t\tfunding: options.funding ?? (await defaults.funding()),\n\t\tguide,\n\t\tlogo,\n\t\tmode,\n\t\towner: options.owner,\n\t\trepository,\n\t\ttitle: options.title,\n\t});\n\n\tif (!augmentedOptions) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tif (options.auto) {\n\t\tlogInferredOptions(augmentedOptions);\n\t}\n\n\treturn {\n\t\tcancelled: false,\n\t\tgithub,\n\t\toptions: augmentedOptions,\n\t};\n}\n"],"mappings":"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","names":["titleOption"]}
1
+ {"version":3,"sources":["../../../src/shared/options/readOptions.ts"],"sourcesContent":["import { parseArgs } from \"node:util\";\nimport { titleCase } from \"title-case\";\nimport { z } from \"zod\";\n\nimport { withSpinner } from \"../cli/spinners.js\";\nimport { Mode, OptionsGuide, PromptedOptions } from \"../types.js\";\nimport { Options, OptionsLogo } from \"../types.js\";\nimport { allArgOptions } from \"./args.js\";\nimport { augmentOptionsWithExcludes } from \"./augmentOptionsWithExcludes.js\";\nimport { createOptionDefaults } from \"./createOptionDefaults/index.js\";\nimport { detectEmailRedundancy } from \"./detectEmailRedundancy.js\";\nimport { ensureRepositoryExists } from \"./ensureRepositoryExists.js\";\nimport { getBase } from \"./getBase.js\";\nimport { GitHub, getGitHub } from \"./getGitHub.js\";\nimport { getPrefillOrPromptedOption } from \"./getPrefillOrPromptedOption.js\";\nimport { logInferredOptions } from \"./logInferredOptions.js\";\nimport { optionsSchema } from \"./optionsSchema.js\";\n\nexport interface GitHubAndOptions {\n\tgithub: GitHub | undefined;\n\toptions: Options;\n}\n\nexport interface OptionsParseCancelled {\n\tcancelled: true;\n\terror?: string | z.ZodError<object>;\n\toptions: object;\n}\n\nexport interface OptionsParseSuccess extends GitHubAndOptions {\n\tcancelled: false;\n}\n\nexport type OptionsParseResult = OptionsParseCancelled | OptionsParseSuccess;\n\nexport async function readOptions(\n\targs: string[],\n\tmode: Mode,\n\tpromptedOptions: PromptedOptions = {},\n): Promise<OptionsParseResult> {\n\tconst defaults = createOptionDefaults(promptedOptions);\n\tconst { values } = parseArgs({\n\t\targs,\n\t\toptions: allArgOptions,\n\t\tstrict: false,\n\t\ttokens: true,\n\t});\n\n\tif (mode === \"migrate\" && !values.base) {\n\t\tvalues.base = await getBase();\n\t}\n\n\tconst mappedOptions = {\n\t\taccess: values.access,\n\t\tauthor: values.author,\n\t\tauto: !!values.auto,\n\t\tbase: values.base,\n\t\tbin: values.bin,\n\t\tdescription: values.description,\n\t\tdirectory: values.directory,\n\t\temail:\n\t\t\tvalues.email ?? values[\"email-github\"] ?? values[\"email-npm\"]\n\t\t\t\t? {\n\t\t\t\t\t\tgithub: values.email ?? values[\"email-github\"],\n\t\t\t\t\t\tnpm: values.email ?? values[\"email-npm\"],\n\t\t\t\t }\n\t\t\t\t: undefined,\n\t\texcludeAllContributors: values[\"exclude-all-contributors\"],\n\t\texcludeCompliance: values[\"exclude-compliance\"],\n\t\texcludeLintESLint: values[\"exclude-lint-eslint\"],\n\t\texcludeLintJSDoc: values[\"exclude-lint-jsdoc\"],\n\t\texcludeLintJson: values[\"exclude-lint-json\"],\n\t\texcludeLintKnip: values[\"exclude-lint-knip\"],\n\t\texcludeLintMd: values[\"exclude-lint-md\"],\n\t\texcludeLintPackageJson: values[\"exclude-lint-package-json\"],\n\t\texcludeLintPackages: values[\"exclude-lint-packages\"],\n\t\texcludeLintPerfectionist: values[\"exclude-lint-perfectionist\"],\n\t\texcludeLintRegex: values[\"exclude-lint-regex\"],\n\t\texcludeLintSpelling: values[\"exclude-lint-spelling\"],\n\t\texcludeLintStrict: values[\"exclude-lint-strict\"],\n\t\texcludeLintYml: values[\"exclude-lint-yml\"],\n\t\texcludeReleases: values[\"exclude-releases\"],\n\t\texcludeRenovate: values[\"exclude-renovate\"],\n\t\texcludeTests: values[\"unit-tests\"],\n\t\tfunding: values.funding,\n\t\tguide: values.guide,\n\t\tguideTitle: values[\"guide-title\"],\n\t\tlogo: values.logo,\n\t\tlogoAlt: values[\"logo-alt\"],\n\t\toffline: values.offline,\n\t\towner: values.owner,\n\t\tpreserveGeneratedFrom:\n\t\t\tvalues[\"preserve-generated-from\"] ?? values.owner === \"JoshuaKGoldberg\",\n\t\trepository: values.repository,\n\t\tskipAllContributorsApi:\n\t\t\tvalues[\"skip-all-contributors-api\"] ?? values.offline,\n\t\tskipGitHubApi: values[\"skip-github-api\"] ?? values.offline,\n\t\tskipInstall: values[\"skip-install\"],\n\t\tskipRemoval: values[\"skip-removal\"],\n\t\tskipRestore: values[\"skip-restore\"],\n\t\tskipUninstall: values[\"skip-uninstall\"],\n\t\ttitle: values.title,\n\t};\n\n\tconst emailError = detectEmailRedundancy(values);\n\tif (emailError) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: emailError,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst optionsParseResult = optionsSchema.safeParse(mappedOptions);\n\n\tif (!optionsParseResult.success) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: optionsParseResult.error,\n\t\t\toptions: mappedOptions,\n\t\t};\n\t}\n\n\tconst options = optionsParseResult.data;\n\n\tconst ownerOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.owner,\n\t\tmessage: \"What organization or user will the repository be under?\",\n\t\tname: \"owner\",\n\t\tprovided: options.owner,\n\t});\n\n\toptions.owner ??= ownerOption.value;\n\n\tif (!options.owner) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: ownerOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst repositoryOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: defaults.repository,\n\t\tmessage: \"What will the kebab-case name of the repository be?\",\n\t\tname: \"repository\",\n\t\tprovided: options.repository,\n\t});\n\n\toptions.repository ??= repositoryOption.value;\n\n\tif (!options.repository) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\terror: repositoryOption.error,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tconst { github, repository } = await ensureRepositoryExists(\n\t\toptions.skipGitHubApi\n\t\t\t? undefined\n\t\t\t: await withSpinner(\"Checking GitHub authentication\", getGitHub),\n\t\t{\n\t\t\tmode,\n\t\t\towner: options.owner,\n\t\t\trepository: options.repository,\n\t\t},\n\t);\n\n\tif (!repository) {\n\t\treturn { cancelled: true, error: repositoryOption.error, options };\n\t}\n\n\tconst descriptionOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.description()) ?? \"A very lovely package. Hooray!\",\n\t\tmessage: \"How would you describe the new package?\",\n\t\tname: \"description\",\n\t\tprovided: options.description,\n\t});\n\n\toptions.description ??= descriptionOption.value;\n\n\tif (!options.description) {\n\t\treturn { cancelled: true, error: descriptionOption.error, options };\n\t}\n\n\tconst titleOption = await getPrefillOrPromptedOption({\n\t\tauto: !!mappedOptions.auto,\n\t\tgetDefaultValue: async () =>\n\t\t\t(await defaults.title()) ?? titleCase(repository).replaceAll(\"-\", \" \"),\n\t\tmessage: \"What will the Title Case title of the repository be?\",\n\t\tname: \"title\",\n\t\tprovided: options.title,\n\t});\n\n\toptions.title ??= titleOption.value;\n\n\tif (!options.title) {\n\t\treturn { cancelled: true, error: titleOption.error, options };\n\t}\n\n\tlet guide: OptionsGuide | undefined;\n\n\tif (options.guide) {\n\t\tif (options.guideTitle) {\n\t\t\tguide = { href: options.guide, title: options.guideTitle };\n\t\t} else {\n\t\t\tconst titleOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the title text for the guide?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!titleOption.value) {\n\t\t\t\treturn { cancelled: true, error: titleOption.error, options };\n\t\t\t}\n\n\t\t\tguide = { href: options.guide, title: titleOption.value };\n\t\t}\n\t}\n\n\tlet logo: OptionsLogo | undefined;\n\n\tif (options.logo) {\n\t\tif (options.logoAlt) {\n\t\t\tlogo = { alt: options.logoAlt, src: options.logo };\n\t\t} else {\n\t\t\tconst logoAltOption = await getPrefillOrPromptedOption({\n\t\t\t\tauto: !!mappedOptions.auto,\n\t\t\t\tmessage: \"What is the alt text (non-visual description) of the logo?\",\n\t\t\t\tname: \"getPrefillOrPromptedOption\",\n\t\t\t});\n\n\t\t\tif (!logoAltOption.value) {\n\t\t\t\treturn { cancelled: true, error: logoAltOption.error, options };\n\t\t\t}\n\n\t\t\tlogo = { alt: logoAltOption.value, src: options.logo };\n\t\t}\n\t}\n\n\tlet email = options.email ?? (await defaults.email());\n\n\tif (!email) {\n\t\tconst emailOption = await getPrefillOrPromptedOption({\n\t\t\tauto: !!mappedOptions.auto,\n\t\t\tmessage: \"What email should be used in package.json and .md files?\",\n\t\t\tname: \"email\",\n\t\t});\n\n\t\tif (!emailOption.value) {\n\t\t\treturn { cancelled: true, error: emailOption.error, options };\n\t\t}\n\n\t\temail = { github: emailOption.value, npm: emailOption.value };\n\t}\n\n\tconst augmentedOptions = await augmentOptionsWithExcludes({\n\t\t...options,\n\t\taccess: options.access ?? \"public\",\n\t\tauthor: options.author ?? (await defaults.owner()),\n\t\tdescription: options.description,\n\t\tdirectory:\n\t\t\toptions.directory ?? promptedOptions.directory ?? options.repository,\n\t\temail,\n\t\tfunding: options.funding ?? (await defaults.funding()),\n\t\tguide,\n\t\tlogo,\n\t\tmode,\n\t\towner: options.owner,\n\t\trepository,\n\t\ttitle: options.title,\n\t});\n\n\tif (!augmentedOptions) {\n\t\treturn {\n\t\t\tcancelled: true,\n\t\t\toptions,\n\t\t};\n\t}\n\n\tif (options.auto) {\n\t\tlogInferredOptions(augmentedOptions);\n\t}\n\n\treturn {\n\t\tcancelled: false,\n\t\tgithub,\n\t\toptions: augmentedOptions,\n\t};\n}\n"],"mappings":"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","names":["titleOption"]}
@@ -52,7 +52,6 @@ interface Options {
52
52
  email: OptionsEmail;
53
53
  excludeAllContributors?: boolean;
54
54
  excludeCompliance?: boolean;
55
- excludeLintDeprecation?: boolean;
56
55
  excludeLintESLint?: boolean;
57
56
  excludeLintJSDoc?: boolean;
58
57
  excludeLintJson?: boolean;
@@ -2,12 +2,10 @@ import { execaCommand } from "execa";
2
2
  import { readPackageData, removeDependencies } from "../shared/packages.js";
3
3
  async function finalizeDependencies(options) {
4
4
  const devDependencies = [
5
- "@types/eslint",
6
- "@typescript-eslint/eslint-plugin",
7
- "@typescript-eslint/parser",
5
+ "@eslint/js",
6
+ "@eslint-community/eslint-plugin-eslint-comments",
7
+ "@types/eslint-plugin-markdown",
8
8
  "eslint",
9
- "eslint-plugin-deprecation",
10
- "eslint-plugin-eslint-comments",
11
9
  "eslint-plugin-jsdoc",
12
10
  "eslint-plugin-n",
13
11
  "eslint-plugin-regexp",
@@ -18,6 +16,7 @@ async function finalizeDependencies(options) {
18
16
  "prettier-plugin-packagejson",
19
17
  "tsup",
20
18
  "typescript",
19
+ "typescript-eslint",
21
20
  ...options.excludeAllContributors ? [] : ["all-contributors-cli"],
22
21
  ...options.excludeLintJson ? [] : ["eslint-plugin-jsonc"],
23
22
  ...options.excludeLintJson && options.excludeLintPackageJson ? [] : ["jsonc-eslint-parser"],
@@ -31,7 +30,7 @@ async function finalizeDependencies(options) {
31
30
  ...options.excludeLintPackageJson ? [] : ["eslint-plugin-package-json"],
32
31
  ...options.excludeLintPerfectionist ? [] : ["eslint-plugin-perfectionist"],
33
32
  ...options.excludeLintSpelling ? [] : ["cspell"],
34
- ...options.excludeLintYml ? [] : ["eslint-plugin-yml", "yaml-eslint-parser"],
33
+ ...options.excludeLintYml ? [] : ["eslint-plugin-yml"],
35
34
  ...options.excludeReleases ? [] : ["@release-it/conventional-changelog", "release-it"],
36
35
  ...options.excludeTests ? [] : [
37
36
  "@vitest/coverage-v8",