create-typescript-app 2.0.0-beta.8 → 2.0.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.
- package/README.md +14 -15
- package/bin/index.js +3 -13
- package/lib/base.d.ts +4 -3
- package/lib/base.js +25 -15
- package/lib/base.js.map +1 -1
- package/lib/blocks/blockAllContributors.d.ts +5 -4
- package/lib/blocks/blockAllContributors.js +3 -2
- package/lib/blocks/blockAllContributors.js.map +1 -1
- package/lib/blocks/blockAreTheTypesWrong.d.ts +5 -4
- package/lib/blocks/blockCSpell.d.ts +5 -4
- package/lib/blocks/blockCSpell.js +13 -13
- package/lib/blocks/blockCSpell.js.map +1 -1
- package/lib/blocks/blockCodecov.d.ts +5 -4
- package/lib/blocks/blockCodecov.js +11 -11
- package/lib/blocks/blockCodecov.js.map +1 -1
- package/lib/blocks/blockContributingDocs.d.ts +5 -4
- package/lib/blocks/blockContributingDocs.js +11 -11
- package/lib/blocks/blockContributingDocs.js.map +1 -1
- package/lib/blocks/blockContributorCovenant.d.ts +5 -4
- package/lib/blocks/blockContributorCovenant.js +11 -11
- package/lib/blocks/blockContributorCovenant.js.map +1 -1
- package/lib/blocks/blockDevelopmentDocs.d.ts +5 -4
- package/lib/blocks/blockDevelopmentDocs.js +11 -11
- package/lib/blocks/blockDevelopmentDocs.js.map +1 -1
- package/lib/blocks/blockESLint.d.ts +5 -4
- package/lib/blocks/blockESLint.js +11 -11
- package/lib/blocks/blockESLint.js.map +1 -1
- package/lib/blocks/blockESLintComments.d.ts +5 -4
- package/lib/blocks/blockESLintJSDoc.d.ts +5 -4
- package/lib/blocks/blockESLintJSONC.d.ts +5 -4
- package/lib/blocks/blockESLintMarkdown.d.ts +5 -4
- package/lib/blocks/blockESLintMoreStyling.d.ts +5 -4
- package/lib/blocks/blockESLintNode.d.ts +5 -4
- package/lib/blocks/blockESLintPackageJson.d.ts +5 -4
- package/lib/blocks/blockESLintPerfectionist.d.ts +5 -4
- package/lib/blocks/blockESLintRegexp.d.ts +5 -4
- package/lib/blocks/blockESLintYML.d.ts +5 -4
- package/lib/blocks/blockExampleFiles.d.ts +5 -4
- package/lib/blocks/blockExampleFiles.js +3 -2
- package/lib/blocks/blockExampleFiles.js.map +1 -1
- package/lib/blocks/blockFunding.d.ts +5 -4
- package/lib/blocks/blockGitHubActionsCI.d.ts +5 -4
- package/lib/blocks/blockGitHubActionsCI.js +11 -11
- package/lib/blocks/blockGitHubActionsCI.js.map +1 -1
- package/lib/blocks/blockGitHubApps.d.ts +5 -4
- package/lib/blocks/blockGitHubIssueTemplates.d.ts +5 -4
- package/lib/blocks/blockGitHubPRTemplate.d.ts +5 -4
- package/lib/blocks/blockGitignore.d.ts +5 -4
- package/lib/blocks/blockKnip.d.ts +5 -4
- package/lib/blocks/blockKnip.js +11 -11
- package/lib/blocks/blockKnip.js.map +1 -1
- package/lib/blocks/blockMITLicense.d.ts +5 -4
- package/lib/blocks/blockMarkdownlint.d.ts +5 -4
- package/lib/blocks/blockNvmrc.d.ts +5 -4
- package/lib/blocks/blockPRCompliance.d.ts +5 -4
- package/lib/blocks/blockPackageJson.d.ts +5 -4
- package/lib/blocks/blockPackageJson.js +11 -11
- package/lib/blocks/blockPackageJson.js.map +1 -1
- package/lib/blocks/blockPnpmDedupe.d.ts +5 -4
- package/lib/blocks/blockPrettier.d.ts +5 -4
- package/lib/blocks/blockPrettier.js +11 -10
- package/lib/blocks/blockPrettier.js.map +1 -1
- package/lib/blocks/blockPrettierPluginCurly.d.ts +5 -4
- package/lib/blocks/blockPrettierPluginPackageJson.d.ts +5 -4
- package/lib/blocks/blockPrettierPluginSh.d.ts +5 -4
- package/lib/blocks/blockREADME.d.ts +5 -4
- package/lib/blocks/blockReleaseIt.d.ts +5 -4
- package/lib/blocks/blockReleaseIt.js +0 -1
- package/lib/blocks/blockReleaseIt.js.map +1 -1
- package/lib/blocks/blockRenovate.d.ts +5 -4
- package/lib/blocks/blockRepositoryBranchRuleset.d.ts +5 -4
- package/lib/blocks/blockRepositoryBranchRuleset.js +78 -54
- package/lib/blocks/blockRepositoryBranchRuleset.js.map +1 -1
- package/lib/blocks/blockRepositoryLabels.d.ts +5 -4
- package/lib/blocks/blockRepositorySecrets.d.ts +6 -5
- package/lib/blocks/blockRepositorySettings.d.ts +5 -4
- package/lib/blocks/blockSecurityDocs.d.ts +5 -4
- package/lib/blocks/blockTSup.d.ts +5 -4
- package/lib/blocks/blockTSup.js +18 -18
- package/lib/blocks/blockTSup.js.map +1 -1
- package/lib/blocks/blockTemplatedWith.d.ts +5 -4
- package/lib/blocks/blockTemplatedWith.js +2 -2
- package/lib/blocks/blockTemplatedWith.js.map +1 -1
- package/lib/blocks/blockTypeScript.d.ts +5 -4
- package/lib/blocks/blockVSCode.d.ts +5 -4
- package/lib/blocks/blockVitest.d.ts +5 -4
- package/lib/blocks/blockVitest.js +17 -17
- package/lib/blocks/blockVitest.js.map +1 -1
- package/lib/blocks/index.d.ts +173 -130
- package/lib/data/contributions.d.ts +3 -0
- package/lib/data/contributions.js +14 -0
- package/lib/data/contributions.js.map +1 -0
- package/lib/data/packageData.d.ts +40 -44
- package/lib/index.d.ts +155 -3
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/inputs/inputFromOctokit.d.ts +9 -0
- package/lib/inputs/inputFromOctokit.js +28 -0
- package/lib/inputs/inputFromOctokit.js.map +1 -0
- package/lib/options/readAllContributors.d.ts +6 -0
- package/lib/options/readAllContributors.js +27 -0
- package/lib/options/readAllContributors.js.map +1 -0
- package/lib/options/readDocumentation.d.ts +1 -1
- package/lib/options/readDocumentation.js.map +1 -1
- package/lib/presets/common.d.ts +5 -4
- package/lib/presets/everything.d.ts +5 -4
- package/lib/presets/index.d.ts +13 -10
- package/lib/presets/minimal.d.ts +5 -4
- package/lib/template.d.ts +6 -5
- package/lib/template.js +6 -4
- package/lib/template.js.map +1 -1
- package/package.json +38 -40
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<p align="center">
|
|
9
9
|
<!-- prettier-ignore-start -->
|
|
10
10
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
11
|
-
<a href="#contributors" target="_blank"><img alt="👪 All Contributors:
|
|
11
|
+
<a href="#contributors" target="_blank"><img alt="👪 All Contributors: 53" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-53-21bb42.svg" /></a>
|
|
12
12
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
13
13
|
<!-- prettier-ignore-end -->
|
|
14
14
|
<a href="https://github.com/JoshuaKGoldberg/create-typescript-app/blob/main/.github/CODE_OF_CONDUCT.md" target="_blank"><img alt="🤝 Code of Conduct: Kept" src="https://img.shields.io/badge/%F0%9F%A4%9D_code_of_conduct-kept-21bb42" /></a>
|
|
@@ -34,16 +34,14 @@ First make sure you have the following installed:
|
|
|
34
34
|
Then in an existing repository or in your directory where you'd like to make a new repository:
|
|
35
35
|
|
|
36
36
|
```shell
|
|
37
|
-
npx create
|
|
37
|
+
npx create-typescript-app
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
You can read more about the supported runtime modes in their docs pages:
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
- [**
|
|
45
|
-
- [**Initializing from the template**](./docs/Initialization.md): creating a new repository with the [_Use this template_](https://github.com/JoshuaKGoldberg/create-typescript-app/generate) button on GitHub
|
|
46
|
-
- [**Migrating an existing repository**](./docs/Migration.md): adding this template's tooling on top of an existing repository
|
|
42
|
+
- [**Setting up from the terminal**](./docs/Setup.md): creating a new repository locally on the command-line _(recommended)_
|
|
43
|
+
- [**Transitioning an existing repository**](./docs/Transition.md): adding this template's tooling on top of an existing repository
|
|
44
|
+
- [**Using the template repository**](./docs/UseThisTemplate.md): creating a new repository with the [_Use this template_](https://github.com/JoshuaKGoldberg/create-typescript-app/generate) button on GitHub
|
|
47
45
|
|
|
48
46
|
## Documentation
|
|
49
47
|
|
|
@@ -76,65 +74,66 @@ Thanks! 💖
|
|
|
76
74
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/garuna-m6"><img src="https://avatars.githubusercontent.com/u/23234342?v=4?s=100" width="100px;" alt="Anurag"/><br /><sub><b>Anurag</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=garuna-m6" title="Code">💻</a></td>
|
|
77
75
|
<td align="center" valign="top" width="14.28%"><a href="https://atila.io"><img src="https://avatars.githubusercontent.com/u/2382552?v=4?s=100" width="100px;" alt="Atila Fassina"/><br /><sub><b>Atila Fassina</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Aatilafassina" title="Bug reports">🐛</a></td>
|
|
78
76
|
<td align="center" valign="top" width="14.28%"><a href="http://biplobsd.me"><img src="https://avatars.githubusercontent.com/u/43641536?v=4?s=100" width="100px;" alt="Biplob Sutradhar"/><br /><sub><b>Biplob Sutradhar</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=biplobsd" title="Code">💻</a></td>
|
|
77
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/boneskull"><img src="https://avatars.githubusercontent.com/u/924465?v=4?s=100" width="100px;" alt="Christopher Hiller"/><br /><sub><b>Christopher Hiller</b></sub></a><br /><a href="#ideas-boneskull" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
79
78
|
<td align="center" valign="top" width="14.28%"><a href="https://conormeagher.com/"><img src="https://avatars.githubusercontent.com/u/363781?v=4?s=100" width="100px;" alt="Conor Meagher"/><br /><sub><b>Conor Meagher</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=conrmahr" title="Code">💻</a></td>
|
|
80
79
|
<td align="center" valign="top" width="14.28%"><a href="https://effectivetypescript.com"><img src="https://avatars.githubusercontent.com/u/98301?v=4?s=100" width="100px;" alt="Dan Vanderkam"/><br /><sub><b>Dan Vanderkam</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Adanvk" title="Bug reports">🐛</a> <a href="#ideas-danvk" title="Ideas, Planning, & Feedback">🤔</a> <a href="#tool-danvk" title="Tools">🔧</a></td>
|
|
81
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DanexQ"><img src="https://avatars.githubusercontent.com/u/72567464?v=4?s=100" width="100px;" alt="Daniel"/><br /><sub><b>Daniel</b></sub></a><br /><a href="#infra-DanexQ" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
82
80
|
</tr>
|
|
83
81
|
<tr>
|
|
82
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/DanexQ"><img src="https://avatars.githubusercontent.com/u/72567464?v=4?s=100" width="100px;" alt="Daniel"/><br /><sub><b>Daniel</b></sub></a><br /><a href="#infra-DanexQ" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
84
83
|
<td align="center" valign="top" width="14.28%"><a href="https://roe.dev/"><img src="https://avatars.githubusercontent.com/u/28706372?v=4?s=100" width="100px;" alt="Daniel Roe"/><br /><sub><b>Daniel Roe</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=danielroe" title="Code">💻</a></td>
|
|
85
84
|
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/DemianParkhomenko"><img src="https://avatars.githubusercontent.com/u/95881717?v=4?s=100" width="100px;" alt="Demian Parkhomenko"/><br /><sub><b>Demian Parkhomenko</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Ademianparkhomenko" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=demianparkhomenko" title="Code">💻</a></td>
|
|
86
85
|
<td align="center" valign="top" width="14.28%"><a href="https://dominicduffin.uk"><img src="https://avatars.githubusercontent.com/u/26224873?v=4?s=100" width="100px;" alt="Dominic Duffin"/><br /><sub><b>Dominic Duffin</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=dominicduffin1" title="Code">💻</a></td>
|
|
87
86
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/nowyDEV"><img src="https://avatars.githubusercontent.com/u/12304307?v=4?s=100" width="100px;" alt="Dominik Nowik"/><br /><sub><b>Dominik Nowik</b></sub></a><br /><a href="#tool-nowyDEV" title="Tools">🔧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=nowyDEV" title="Code">💻</a> <a href="#ideas-nowyDEV" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
88
87
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/emday4prez"><img src="https://avatars.githubusercontent.com/u/35363144?v=4?s=100" width="100px;" alt="Emerson"/><br /><sub><b>Emerson</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=emday4prez" title="Code">💻</a></td>
|
|
89
88
|
<td align="center" valign="top" width="14.28%"><a href="https://farazpatankar.com/"><img src="https://avatars.githubusercontent.com/u/10681116?v=4?s=100" width="100px;" alt="Faraz Patankar"/><br /><sub><b>Faraz Patankar</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3AFarazPatankar" title="Bug reports">🐛</a></td>
|
|
90
|
-
<td align="center" valign="top" width="14.28%"><a href="https://feedic.com"><img src="https://avatars.githubusercontent.com/u/188768?v=4?s=100" width="100px;" alt="Felix Boehm"/><br /><sub><b>Felix Boehm</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Afb55" title="Bug reports">🐛</a></td>
|
|
91
89
|
</tr>
|
|
92
90
|
<tr>
|
|
91
|
+
<td align="center" valign="top" width="14.28%"><a href="https://feedic.com"><img src="https://avatars.githubusercontent.com/u/188768?v=4?s=100" width="100px;" alt="Felix Boehm"/><br /><sub><b>Felix Boehm</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Afb55" title="Bug reports">🐛</a></td>
|
|
93
92
|
<td align="center" valign="top" width="14.28%"><a href="https://gvasquez.dev"><img src="https://avatars.githubusercontent.com/u/7041175?v=4?s=100" width="100px;" alt="Graham Vasquez"/><br /><sub><b>Graham Vasquez</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=gv14982" title="Code">💻</a></td>
|
|
94
93
|
<td align="center" valign="top" width="14.28%"><a href="https://jamiemagee.co.uk"><img src="https://avatars.githubusercontent.com/u/1358764?v=4?s=100" width="100px;" alt="Jamie Magee"/><br /><sub><b>Jamie Magee</b></sub></a><br /><a href="#ideas-jamiemagee" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
95
94
|
<td align="center" valign="top" width="14.28%"><a href="https://niklas-wortmann.com"><img src="https://avatars.githubusercontent.com/u/6104311?v=4?s=100" width="100px;" alt="Jan-Niklas W."/><br /><sub><b>Jan-Niklas W.</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=niklas-wortmann" title="Code">💻</a></td>
|
|
96
95
|
<td align="center" valign="top" width="14.28%"><a href="https://sinchang.me"><img src="https://avatars.githubusercontent.com/u/3297859?v=4?s=100" width="100px;" alt="Jeff Wen"/><br /><sub><b>Jeff Wen</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=sinchang" title="Code">💻</a></td>
|
|
97
96
|
<td align="center" valign="top" width="14.28%"><a href="https://jessicawilkins.dev/"><img src="https://avatars.githubusercontent.com/u/67210629?v=4?s=100" width="100px;" alt="Jessica Wilkins "/><br /><sub><b>Jessica Wilkins </b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jdwilkin4" title="Code">💻</a></td>
|
|
98
97
|
<td align="center" valign="top" width="14.28%"><a href="https://typescriptcourse.com/tutorials"><img src="https://avatars.githubusercontent.com/u/3806031?v=4?s=100" width="100px;" alt="Joe Previte"/><br /><sub><b>Joe Previte</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Ajsjoeio" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jsjoeio" title="Code">💻</a></td>
|
|
99
|
-
<td align="center" valign="top" width="14.28%"><a href="https://blog.johnnyreilly.com/"><img src="https://avatars.githubusercontent.com/u/1010525?v=4?s=100" width="100px;" alt="John Reilly"/><br /><sub><b>John Reilly</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=johnnyreilly" title="Code">💻</a> <a href="#ideas-johnnyreilly" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Ajohnnyreilly" title="Bug reports">🐛</a> <a href="#maintenance-johnnyreilly" title="Maintenance">🚧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=johnnyreilly" title="Documentation">📖</a> <a href="#tool-johnnyreilly" title="Tools">🔧</a></td>
|
|
100
98
|
</tr>
|
|
101
99
|
<tr>
|
|
100
|
+
<td align="center" valign="top" width="14.28%"><a href="https://blog.johnnyreilly.com/"><img src="https://avatars.githubusercontent.com/u/1010525?v=4?s=100" width="100px;" alt="John Reilly"/><br /><sub><b>John Reilly</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=johnnyreilly" title="Code">💻</a> <a href="#ideas-johnnyreilly" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Ajohnnyreilly" title="Bug reports">🐛</a> <a href="#maintenance-johnnyreilly" title="Maintenance">🚧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=johnnyreilly" title="Documentation">📖</a> <a href="#tool-johnnyreilly" title="Tools">🔧</a></td>
|
|
102
101
|
<td align="center" valign="top" width="14.28%"><a href="http://www.joshuakgoldberg.com"><img src="https://avatars.githubusercontent.com/u/3335181?v=4?s=100" width="100px;" alt="Josh Goldberg"/><br /><sub><b>Josh Goldberg</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3AJoshuaKGoldberg" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=JoshuaKGoldberg" title="Code">💻</a> <a href="#maintenance-JoshuaKGoldberg" title="Maintenance">🚧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/pulls?q=is%3Apr+reviewed-by%3AJoshuaKGoldberg" title="Reviewed Pull Requests">👀</a> <a href="#tool-JoshuaKGoldberg" title="Tools">🔧</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=JoshuaKGoldberg" title="Documentation">📖</a> <a href="#infra-JoshuaKGoldberg" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=JoshuaKGoldberg" title="Tests">⚠️</a> <a href="#ideas-JoshuaKGoldberg" title="Ideas, Planning, & Feedback">🤔</a> <a href="#design-JoshuaKGoldberg" title="Design">🎨</a></td>
|
|
103
102
|
<td align="center" valign="top" width="14.28%"><a href="https://twitter.com/Jolg42"><img src="https://avatars.githubusercontent.com/u/1328733?v=4?s=100" width="100px;" alt="Joël Galeran"/><br /><sub><b>Joël Galeran</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jolg42" title="Code">💻</a></td>
|
|
104
103
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jaas666"><img src="https://avatars.githubusercontent.com/u/30204147?v=4?s=100" width="100px;" alt="Juan A."/><br /><sub><b>Juan A.</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jaas666" title="Code">💻</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=jaas666" title="Documentation">📖</a></td>
|
|
105
104
|
<td align="center" valign="top" width="14.28%"><a href="https://kristo-baricevic.github.io/"><img src="https://avatars.githubusercontent.com/u/108290619?v=4?s=100" width="100px;" alt="Kristo Baricevic"/><br /><sub><b>Kristo Baricevic</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=kristo-baricevic" title="Code">💻</a></td>
|
|
106
105
|
<td align="center" valign="top" width="14.28%"><a href="https://webpro.nl"><img src="https://avatars.githubusercontent.com/u/456426?v=4?s=100" width="100px;" alt="Lars Kappert"/><br /><sub><b>Lars Kappert</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=webpro" title="Code">💻</a></td>
|
|
107
106
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Aslemammad"><img src="https://avatars.githubusercontent.com/u/37929992?v=4?s=100" width="100px;" alt="Mohammad Bagher Abiyat"/><br /><sub><b>Mohammad Bagher Abiyat</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=aslemammad" title="Code">💻</a></td>
|
|
108
|
-
<td align="center" valign="top" width="14.28%"><a href="https://navinmoorthy.me/"><img src="https://avatars.githubusercontent.com/u/39694575?v=4?s=100" width="100px;" alt="Navin Moorthy"/><br /><sub><b>Navin Moorthy</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Anavin-moorthy" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=navin-moorthy" title="Code">💻</a> <a href="#ideas-navin-moorthy" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
109
107
|
</tr>
|
|
110
108
|
<tr>
|
|
109
|
+
<td align="center" valign="top" width="14.28%"><a href="https://navinmoorthy.me/"><img src="https://avatars.githubusercontent.com/u/39694575?v=4?s=100" width="100px;" alt="Navin Moorthy"/><br /><sub><b>Navin Moorthy</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Anavin-moorthy" title="Bug reports">🐛</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=navin-moorthy" title="Code">💻</a> <a href="#ideas-navin-moorthy" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
111
110
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/NazCodeland"><img src="https://avatars.githubusercontent.com/u/113494366?v=4?s=100" width="100px;" alt="NazCodeland"/><br /><sub><b>NazCodeland</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=NazCodeland" title="Code">💻</a></td>
|
|
112
111
|
<td align="center" valign="top" width="14.28%"><a href="https://orta.io"><img src="https://avatars.githubusercontent.com/u/49038?v=4?s=100" width="100px;" alt="Orta Therox"/><br /><sub><b>Orta Therox</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=orta" title="Code">💻</a> <a href="#ideas-orta" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
113
112
|
<td align="center" valign="top" width="14.28%"><a href="https://paulisaweso.me/"><img src="https://avatars.githubusercontent.com/u/6335792?v=4?s=100" width="100px;" alt="Paul Esch-Laurent"/><br /><sub><b>Paul Esch-Laurent</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=Pinjasaur" title="Code">💻</a></td>
|
|
114
113
|
<td align="center" valign="top" width="14.28%"><a href="https://kodfabrik.se/"><img src="https://avatars.githubusercontent.com/u/34457?v=4?s=100" width="100px;" alt="Pelle Wessman"/><br /><sub><b>Pelle Wessman</b></sub></a><br /><a href="#ideas-voxpelli" title="Ideas, Planning, & Feedback">🤔</a></td>
|
|
115
114
|
<td align="center" valign="top" width="14.28%"><a href="https://praveenshinde.vercel.app/"><img src="https://avatars.githubusercontent.com/u/107350270?v=4?s=100" width="100px;" alt="Praveen Shinde"/><br /><sub><b>Praveen Shinde</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=praveenshinde3" title="Code">💻</a></td>
|
|
116
115
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/promise-dash"><img src="https://avatars.githubusercontent.com/u/86062880?v=4?s=100" width="100px;" alt="Promise Dash"/><br /><sub><b>Promise Dash</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=promise-dash" title="Code">💻</a></td>
|
|
117
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RebeccaStevens"><img src="https://avatars.githubusercontent.com/u/7224206?v=4?s=100" width="100px;" alt="Rebecca Stevens"/><br /><sub><b>Rebecca Stevens</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=RebeccaStevens" title="Code">💻</a> <a href="#infra-RebeccaStevens" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
118
116
|
</tr>
|
|
119
117
|
<tr>
|
|
118
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RebeccaStevens"><img src="https://avatars.githubusercontent.com/u/7224206?v=4?s=100" width="100px;" alt="Rebecca Stevens"/><br /><sub><b>Rebecca Stevens</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=RebeccaStevens" title="Code">💻</a> <a href="#infra-RebeccaStevens" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
120
119
|
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/ronbraha"><img src="https://avatars.githubusercontent.com/u/45559220?v=4?s=100" width="100px;" alt="Ron Braha"/><br /><sub><b>Ron Braha</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=RNR1" title="Code">💻</a> <a href="#design-RNR1" title="Design">🎨</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=RNR1" title="Tests">⚠️</a></td>
|
|
121
120
|
<td align="center" valign="top" width="14.28%"><a href="http://ronjeanfrancois.com"><img src="https://avatars.githubusercontent.com/u/105710107?v=4?s=100" width="100px;" alt="Ron Jean-Francois"/><br /><sub><b>Ron Jean-Francois</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=ronthetech" title="Code">💻</a> <a href="#infra-ronthetech" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
122
121
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RuthwikReddy09"><img src="https://avatars.githubusercontent.com/u/126862059?v=4?s=100" width="100px;" alt="Ruthwik"/><br /><sub><b>Ruthwik</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=ruthwikreddy09" title="Code">💻</a></td>
|
|
123
122
|
<td align="center" valign="top" width="14.28%"><a href="https://ryota-murakami.github.io/"><img src="https://avatars.githubusercontent.com/u/5501268?v=4?s=100" width="100px;" alt="Ryota Murakami"/><br /><sub><b>Ryota Murakami</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=ryota-murakami" title="Code">💻</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Aryota-murakami" title="Bug reports">🐛</a></td>
|
|
124
123
|
<td align="center" valign="top" width="14.28%"><a href="https://www.shraddha.tech"><img src="https://avatars.githubusercontent.com/u/27571141?v=4?s=100" width="100px;" alt="Shraddha"/><br /><sub><b>Shraddha</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=5hraddha" title="Code">💻</a></td>
|
|
125
124
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/the-lazy-learner"><img src="https://avatars.githubusercontent.com/u/13695177?v=4?s=100" width="100px;" alt="Sudhansu"/><br /><sub><b>Sudhansu</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=the-lazy-learner" title="Code">💻</a></td>
|
|
126
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mrswastik-robot"><img src="https://avatars.githubusercontent.com/u/107865087?v=4?s=100" width="100px;" alt="Swastik Patel"/><br /><sub><b>Swastik Patel</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=mrswastik-robot" title="Documentation">📖</a></td>
|
|
127
125
|
</tr>
|
|
128
126
|
<tr>
|
|
127
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mrswastik-robot"><img src="https://avatars.githubusercontent.com/u/107865087?v=4?s=100" width="100px;" alt="Swastik Patel"/><br /><sub><b>Swastik Patel</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=mrswastik-robot" title="Documentation">📖</a></td>
|
|
129
128
|
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/timonjurschitsch/"><img src="https://avatars.githubusercontent.com/u/103483059?v=4?s=100" width="100px;" alt="Timon Jurschitsch"/><br /><sub><b>Timon Jurschitsch</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=dertimonius" title="Code">💻</a></td>
|
|
130
129
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/tungbq"><img src="https://avatars.githubusercontent.com/u/85242618?v=4?s=100" width="100px;" alt="Tung Bui (Leo)"/><br /><sub><b>Tung Bui (Leo)</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=tungbq" title="Code">💻</a></td>
|
|
131
130
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/valon-loshaj"><img src="https://avatars.githubusercontent.com/u/73202963?v=4?s=100" width="100px;" alt="Valon"/><br /><sub><b>Valon</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=valon-loshaj" title="Documentation">📖</a></td>
|
|
132
131
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/vasanth9"><img src="https://avatars.githubusercontent.com/u/42891954?v=4?s=100" width="100px;" alt="Vasanth Kumar Cheepurupalli"/><br /><sub><b>Vasanth Kumar Cheepurupalli</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=vasanth9" title="Code">💻</a></td>
|
|
133
132
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/xl4624"><img src="https://avatars.githubusercontent.com/u/116298054?v=4?s=100" width="100px;" alt="Xiaomin Liu"/><br /><sub><b>Xiaomin Liu</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=xl4624" title="Code">💻</a></td>
|
|
134
133
|
<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>
|
|
135
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michaelfaith"><img src="https://avatars.githubusercontent.com/u/8071845?v=4?s=100" width="100px;" alt="michael faith"/><br /><sub><b>michael faith</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=michaelfaith" title="Code">💻</a></td>
|
|
136
134
|
</tr>
|
|
137
135
|
<tr>
|
|
136
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/michaelfaith"><img src="https://avatars.githubusercontent.com/u/8071845?v=4?s=100" width="100px;" alt="michael faith"/><br /><sub><b>michael faith</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=michaelfaith" title="Code">💻</a> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Amichaelfaith" title="Bug reports">🐛</a></td>
|
|
138
137
|
<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>
|
|
139
138
|
<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>
|
|
140
139
|
<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>
|
package/bin/index.js
CHANGED
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
2
|
+
import { runTemplateCLI } from "bingo";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
[
|
|
6
|
-
"create-typescript-app is now run using ",
|
|
7
|
-
chalk.bold("create"),
|
|
8
|
-
".\n\nRun:\n ",
|
|
9
|
-
chalk.bold("npx create", process.argv.slice(2).join(" ")),
|
|
10
|
-
"\n\nYou can read more on:\n https://",
|
|
11
|
-
chalk.bold("create.bingo"),
|
|
12
|
-
"\n\nThanks for using create-typescript-app! 🎁",
|
|
13
|
-
].join(""),
|
|
14
|
-
);
|
|
4
|
+
import { template } from "../lib/index.js";
|
|
15
5
|
|
|
16
|
-
process.exitCode =
|
|
6
|
+
process.exitCode = await runTemplateCLI(template);
|
package/lib/base.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { BaseOptionsFor } from '
|
|
1
|
+
import * as bingo_stratum from 'bingo-stratum';
|
|
2
|
+
import { BaseOptionsFor } from 'bingo-stratum';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
|
|
5
5
|
declare const zContributor: z.ZodObject<{
|
|
@@ -22,7 +22,7 @@ declare const zContributor: z.ZodObject<{
|
|
|
22
22
|
profile: string;
|
|
23
23
|
}>;
|
|
24
24
|
type Contributor = z.infer<typeof zContributor>;
|
|
25
|
-
declare const base:
|
|
25
|
+
declare const base: bingo_stratum.Base<{
|
|
26
26
|
access: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"restricted">]>;
|
|
27
27
|
author: z.ZodOptional<z.ZodString>;
|
|
28
28
|
bin: z.ZodOptional<z.ZodString>;
|
|
@@ -118,6 +118,7 @@ declare const base: create.Base<{
|
|
|
118
118
|
scripts?: Record<string, string> | undefined;
|
|
119
119
|
}>>;
|
|
120
120
|
repository: z.ZodString;
|
|
121
|
+
rulesetId: z.ZodOptional<z.ZodString>;
|
|
121
122
|
title: z.ZodString;
|
|
122
123
|
usage: z.ZodOptional<z.ZodString>;
|
|
123
124
|
version: z.ZodOptional<z.ZodString>;
|
package/lib/base.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { createBase } from "
|
|
1
|
+
import { createBase } from "bingo-stratum";
|
|
2
2
|
import { execaCommand } from "execa";
|
|
3
3
|
import gitRemoteOriginUrl from "git-remote-origin-url";
|
|
4
4
|
import gitUrlParse from "git-url-parse";
|
|
5
5
|
import { inputFromFile } from "input-from-file";
|
|
6
|
-
import { inputFromFileJSON } from "input-from-file-json";
|
|
7
6
|
import { inputFromScript } from "input-from-script";
|
|
8
7
|
import lazyValue from "lazy-value";
|
|
9
8
|
import npmUser from "npm-user";
|
|
10
9
|
import { z } from "zod";
|
|
10
|
+
import { inputFromOctokit } from "./inputs/inputFromOctokit.js";
|
|
11
11
|
import { parsePackageAuthor } from "./options/parsePackageAuthor.js";
|
|
12
|
+
import { readAllContributors } from "./options/readAllContributors.js";
|
|
12
13
|
import { readDefaultsFromReadme } from "./options/readDefaultsFromReadme.js";
|
|
13
14
|
import { readDescription } from "./options/readDescription.js";
|
|
14
15
|
import { readDocumentation } from "./options/readDocumentation.js";
|
|
@@ -74,17 +75,13 @@ const base = createBase({
|
|
|
74
75
|
scripts: z.record(z.string(), z.string()).optional()
|
|
75
76
|
}).optional().describe("additional properties to include in `package.json`"),
|
|
76
77
|
repository: z.string().describe("'kebab-case' or 'PascalCase' title of the repository"),
|
|
78
|
+
rulesetId: z.string().optional().describe("GitHub branch ruleset ID for main branch protections"),
|
|
77
79
|
title: z.string().describe("'Title Case' title for the repository"),
|
|
78
80
|
usage: z.string().optional().describe("markdown docs to put in README.md under the ## Usage heading"),
|
|
79
81
|
version: z.string().optional().describe("package version to publish as and store in `package.json`")
|
|
80
82
|
},
|
|
81
|
-
|
|
82
|
-
const allContributors = lazyValue(async () =>
|
|
83
|
-
const contributions = await take(inputFromFileJSON, {
|
|
84
|
-
filePath: ".all-contributorsrc"
|
|
85
|
-
});
|
|
86
|
-
return contributions.contributors;
|
|
87
|
-
});
|
|
83
|
+
prepare({ options, take }) {
|
|
84
|
+
const allContributors = lazyValue(async () => readAllContributors(take));
|
|
88
85
|
const documentation = lazyValue(async () => readDocumentation(take));
|
|
89
86
|
const nvmrc = lazyValue(
|
|
90
87
|
async () => await take(inputFromFile, {
|
|
@@ -99,6 +96,18 @@ const base = createBase({
|
|
|
99
96
|
)?.stdout?.toString();
|
|
100
97
|
});
|
|
101
98
|
const readme = lazyValue(async () => await readFileSafe("README.md", ""));
|
|
99
|
+
const rulesetId = lazyValue(async () => {
|
|
100
|
+
const rulesets = await take(inputFromOctokit, {
|
|
101
|
+
endpoint: "GET /repos/{owner}/{repo}/rulesets",
|
|
102
|
+
options: {
|
|
103
|
+
owner: await owner(),
|
|
104
|
+
repo: await repository()
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return rulesets?.find(
|
|
108
|
+
(ruleset) => ruleset.name === "Branch protection for main"
|
|
109
|
+
)?.id;
|
|
110
|
+
});
|
|
102
111
|
const gitDefaults = tryCatchLazyValueAsync(
|
|
103
112
|
async () => gitUrlParse(await gitRemoteOriginUrl())
|
|
104
113
|
);
|
|
@@ -121,9 +130,13 @@ const base = createBase({
|
|
|
121
130
|
};
|
|
122
131
|
});
|
|
123
132
|
const version = lazyValue(async () => (await packageData()).version);
|
|
133
|
+
const owner = lazyValue(
|
|
134
|
+
async () => (await gitDefaults())?.organization ?? (await packageAuthor()).author ?? await githubCliUser()
|
|
135
|
+
);
|
|
124
136
|
const repository = lazyValue(
|
|
125
137
|
async () => options.repository ?? (await gitDefaults())?.name ?? (await packageData()).name ?? options.directory
|
|
126
138
|
);
|
|
139
|
+
const email = lazyValue(async () => readEmails(npmDefaults, packageAuthor));
|
|
127
140
|
return {
|
|
128
141
|
access: "public",
|
|
129
142
|
author,
|
|
@@ -131,12 +144,12 @@ const base = createBase({
|
|
|
131
144
|
contributors: allContributors,
|
|
132
145
|
description: async () => await readDescription(packageData, readme),
|
|
133
146
|
documentation,
|
|
134
|
-
email
|
|
147
|
+
email,
|
|
135
148
|
funding: readFunding,
|
|
136
149
|
guide: readGuide,
|
|
137
150
|
login: author,
|
|
138
151
|
node,
|
|
139
|
-
owner
|
|
152
|
+
owner,
|
|
140
153
|
packageData: async () => {
|
|
141
154
|
const original = await packageData();
|
|
142
155
|
return {
|
|
@@ -146,13 +159,10 @@ const base = createBase({
|
|
|
146
159
|
};
|
|
147
160
|
},
|
|
148
161
|
repository,
|
|
162
|
+
rulesetId,
|
|
149
163
|
...readDefaultsFromReadme(readme, repository),
|
|
150
164
|
version
|
|
151
165
|
};
|
|
152
|
-
},
|
|
153
|
-
template: {
|
|
154
|
-
owner: "JoshuaKGoldberg",
|
|
155
|
-
repository: "create-typescript-app"
|
|
156
166
|
}
|
|
157
167
|
});
|
|
158
168
|
export {
|
package/lib/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/base.ts"],"sourcesContent":["import { BaseOptionsFor, createBase } from \"create\";\nimport { execaCommand } from \"execa\";\nimport gitRemoteOriginUrl from \"git-remote-origin-url\";\nimport gitUrlParse from \"git-url-parse\";\nimport { inputFromFile } from \"input-from-file\";\nimport { inputFromFileJSON } from \"input-from-file-json\";\nimport { inputFromScript } from \"input-from-script\";\nimport lazyValue from \"lazy-value\";\nimport npmUser from \"npm-user\";\nimport { z } from \"zod\";\n\nimport { parsePackageAuthor } from \"./options/parsePackageAuthor.js\";\nimport { readDefaultsFromReadme } from \"./options/readDefaultsFromReadme.js\";\nimport { readDescription } from \"./options/readDescription.js\";\nimport { readDocumentation } from \"./options/readDocumentation.js\";\nimport { readEmails } from \"./options/readEmails.js\";\nimport { readFileSafe } from \"./options/readFileSafe.js\";\nimport { readFunding } from \"./options/readFunding.js\";\nimport { readGuide } from \"./options/readGuide.js\";\nimport { readPackageData } from \"./options/readPackageData.js\";\nimport { AllContributorsData } from \"./types.js\";\nimport { swallowError } from \"./utils/swallowError.js\";\nimport { tryCatchLazyValueAsync } from \"./utils/tryCatchLazyValueAsync.js\";\n\nconst zContributor = z.object({\n\tavatar_url: z.string(),\n\tcontributions: z.array(z.string()),\n\tlogin: z.string(),\n\tname: z.string(),\n\tprofile: z.string(),\n});\n\nexport type Contributor = z.infer<typeof zContributor>;\n\nexport const base = createBase({\n\toptions: {\n\t\taccess: z\n\t\t\t.union([z.literal(\"public\"), z.literal(\"restricted\")])\n\t\t\t.describe(\"which `npm publish --access` to release npm packages with\"),\n\t\tauthor: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"username on npm to publish packages under\"),\n\t\tbin: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe('value to set in `package.json`\\'s `\"bin\"` property'),\n\t\tcontributors: z\n\t\t\t.array(zContributor)\n\t\t\t.optional()\n\t\t\t.describe(\"AllContributors contributors to store in .all-contributorsrc\"),\n\t\tdescription: z\n\t\t\t.string()\n\t\t\t.default(\"A very lovely package. Hooray! 💖\")\n\t\t\t.describe(\"'Sentence case.' description of the repository\"),\n\t\tdirectory: z.string().describe(\"Directory to create the repository in\"),\n\t\tdocumentation: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"any additional docs to add to .github/DEVELOPMENT.md\"),\n\t\temail: z\n\t\t\t.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tgithub: z.string(),\n\t\t\t\t\tnpm: z.string(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t.transform((email) =>\n\t\t\t\ttypeof email === \"string\" ? { github: email, npm: email } : email,\n\t\t\t)\n\t\t\t.describe(\n\t\t\t\t\"email address to be listed as the point of contact in docs and packages\",\n\t\t\t),\n\t\texplainer: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"additional README.md sentence(s) describing the package\"),\n\t\tfunding: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub organization or username to mention in `funding.yml`\"),\n\t\tguide: z\n\t\t\t.object({\n\t\t\t\thref: z.string(),\n\t\t\t\ttitle: z.string(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"link to a contribution guide to place at the top of development docs\",\n\t\t\t),\n\t\tkeywords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"any number of keywords to include in `package.json`\"),\n\t\tlogo: z\n\t\t\t.object({\n\t\t\t\talt: z.string(),\n\t\t\t\theight: z.number().optional(),\n\t\t\t\tsrc: z.string(),\n\t\t\t\twidth: z.number().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"local image file in the repository to display near the top of the README.md\",\n\t\t\t),\n\t\tnode: z\n\t\t\t.object({\n\t\t\t\tminimum: z.string(),\n\t\t\t\tpinned: z.string().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"node.js engine version(s) to pin and require a minimum of\"),\n\t\towner: z\n\t\t\t.string()\n\t\t\t.describe(\"GitHub organization or user the repository is underneath\"),\n\t\tpackageData: z\n\t\t\t.object({\n\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tscripts: z.record(z.string(), z.string()).optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"additional properties to include in `package.json`\"),\n\t\trepository: z\n\t\t\t.string()\n\t\t\t.describe(\"'kebab-case' or 'PascalCase' title of the repository\"),\n\t\ttitle: z.string().describe(\"'Title Case' title for the repository\"),\n\t\tusage: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"markdown docs to put in README.md under the ## Usage heading\"),\n\t\tversion: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"package version to publish as and store in `package.json`\"),\n\t},\n\tproduce({ options, take }) {\n\t\tconst allContributors = lazyValue(async () => {\n\t\t\tconst contributions = (await take(inputFromFileJSON, {\n\t\t\t\tfilePath: \".all-contributorsrc\",\n\t\t\t})) as AllContributorsData;\n\n\t\t\treturn contributions.contributors;\n\t\t});\n\n\t\tconst documentation = lazyValue(async () => readDocumentation(take));\n\n\t\tconst nvmrc = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".nvmrc\",\n\t\t\t\t}),\n\t\t);\n\n\t\tconst githubCliUser = lazyValue(async () => {\n\t\t\treturn swallowError(\n\t\t\t\tawait take(inputFromScript, {\n\t\t\t\t\tcommand: \"gh config get user -h github.com\",\n\t\t\t\t}),\n\t\t\t)?.stdout?.toString();\n\t\t});\n\n\t\tconst readme = lazyValue(async () => await readFileSafe(\"README.md\", \"\"));\n\n\t\t// TODO: Make these all use take\n\n\t\tconst gitDefaults = tryCatchLazyValueAsync(async () =>\n\t\t\tgitUrlParse(await gitRemoteOriginUrl()),\n\t\t);\n\n\t\tconst npmDefaults = tryCatchLazyValueAsync(async () => {\n\t\t\tconst whoami = (await execaCommand(`npm whoami`)).stdout;\n\t\t\treturn whoami ? await npmUser(whoami) : undefined;\n\t\t});\n\n\t\tconst packageData = lazyValue(readPackageData);\n\t\tconst packageAuthor = lazyValue(async () =>\n\t\t\tparsePackageAuthor(await packageData()),\n\t\t);\n\n\t\tconst author = lazyValue(\n\t\t\tasync () =>\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await npmDefaults())?.name ??\n\t\t\t\toptions.owner,\n\t\t);\n\n\t\tconst node = lazyValue(async () => {\n\t\t\tconst { engines } = await packageData();\n\n\t\t\treturn {\n\t\t\t\tminimum:\n\t\t\t\t\t(engines?.node && /[\\d+.]+/.exec(engines.node))?.[0] ?? \"18.3.0\",\n\t\t\t\tpinned: swallowError(await nvmrc())?.trim() ?? \"20.18.0\",\n\t\t\t};\n\t\t});\n\n\t\tconst version = lazyValue(async () => (await packageData()).version);\n\n\t\tconst repository = lazyValue(\n\t\t\tasync () =>\n\t\t\t\toptions.repository ??\n\t\t\t\t(await gitDefaults())?.name ??\n\t\t\t\t(await packageData()).name ??\n\t\t\t\toptions.directory,\n\t\t);\n\n\t\treturn {\n\t\t\taccess: \"public\" as const,\n\t\t\tauthor,\n\t\t\tbin: async () => (await packageData()).bin,\n\t\t\tcontributors: allContributors,\n\t\t\tdescription: async () => await readDescription(packageData, readme),\n\t\t\tdocumentation,\n\t\t\temail: async () => readEmails(npmDefaults, packageAuthor),\n\t\t\tfunding: readFunding,\n\t\t\tguide: readGuide,\n\t\t\tlogin: author,\n\t\t\tnode,\n\t\t\towner: async () =>\n\t\t\t\t(await gitDefaults())?.organization ??\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await githubCliUser()),\n\t\t\tpackageData: async () => {\n\t\t\t\tconst original = await packageData();\n\n\t\t\t\treturn {\n\t\t\t\t\tdependencies: original.dependencies,\n\t\t\t\t\tdevDependencies: original.devDependencies,\n\t\t\t\t\tscripts: original.scripts,\n\t\t\t\t};\n\t\t\t},\n\t\t\trepository,\n\t\t\t...readDefaultsFromReadme(readme, repository),\n\t\t\tversion,\n\t\t};\n\t},\n\ttemplate: {\n\t\towner: \"JoshuaKGoldberg\",\n\t\trepository: \"create-typescript-app\",\n\t},\n});\n\nexport type BaseOptions = BaseOptionsFor<typeof base>;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/base.ts"],"sourcesContent":["import { BaseOptionsFor, createBase } from \"bingo-stratum\";\nimport { execaCommand } from \"execa\";\nimport gitRemoteOriginUrl from \"git-remote-origin-url\";\nimport gitUrlParse from \"git-url-parse\";\nimport { inputFromFile } from \"input-from-file\";\nimport { inputFromScript } from \"input-from-script\";\nimport lazyValue from \"lazy-value\";\nimport npmUser from \"npm-user\";\nimport { z } from \"zod\";\n\nimport { inputFromOctokit } from \"./inputs/inputFromOctokit.js\";\nimport { parsePackageAuthor } from \"./options/parsePackageAuthor.js\";\nimport { readAllContributors } from \"./options/readAllContributors.js\";\nimport { readDefaultsFromReadme } from \"./options/readDefaultsFromReadme.js\";\nimport { readDescription } from \"./options/readDescription.js\";\nimport { readDocumentation } from \"./options/readDocumentation.js\";\nimport { readEmails } from \"./options/readEmails.js\";\nimport { readFileSafe } from \"./options/readFileSafe.js\";\nimport { readFunding } from \"./options/readFunding.js\";\nimport { readGuide } from \"./options/readGuide.js\";\nimport { readPackageData } from \"./options/readPackageData.js\";\nimport { swallowError } from \"./utils/swallowError.js\";\nimport { tryCatchLazyValueAsync } from \"./utils/tryCatchLazyValueAsync.js\";\n\nconst zContributor = z.object({\n\tavatar_url: z.string(),\n\tcontributions: z.array(z.string()),\n\tlogin: z.string(),\n\tname: z.string(),\n\tprofile: z.string(),\n});\n\nexport type Contributor = z.infer<typeof zContributor>;\n\nexport const base = createBase({\n\toptions: {\n\t\taccess: z\n\t\t\t.union([z.literal(\"public\"), z.literal(\"restricted\")])\n\t\t\t.describe(\"which `npm publish --access` to release npm packages with\"),\n\t\tauthor: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"username on npm to publish packages under\"),\n\t\tbin: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe('value to set in `package.json`\\'s `\"bin\"` property'),\n\t\tcontributors: z\n\t\t\t.array(zContributor)\n\t\t\t.optional()\n\t\t\t.describe(\"AllContributors contributors to store in .all-contributorsrc\"),\n\t\tdescription: z\n\t\t\t.string()\n\t\t\t.default(\"A very lovely package. Hooray! 💖\")\n\t\t\t.describe(\"'Sentence case.' description of the repository\"),\n\t\tdirectory: z.string().describe(\"Directory to create the repository in\"),\n\t\tdocumentation: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"any additional docs to add to .github/DEVELOPMENT.md\"),\n\t\temail: z\n\t\t\t.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tgithub: z.string(),\n\t\t\t\t\tnpm: z.string(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t.transform((email) =>\n\t\t\t\ttypeof email === \"string\" ? { github: email, npm: email } : email,\n\t\t\t)\n\t\t\t.describe(\n\t\t\t\t\"email address to be listed as the point of contact in docs and packages\",\n\t\t\t),\n\t\texplainer: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"additional README.md sentence(s) describing the package\"),\n\t\tfunding: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub organization or username to mention in `funding.yml`\"),\n\t\tguide: z\n\t\t\t.object({\n\t\t\t\thref: z.string(),\n\t\t\t\ttitle: z.string(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"link to a contribution guide to place at the top of development docs\",\n\t\t\t),\n\t\tkeywords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"any number of keywords to include in `package.json`\"),\n\t\tlogo: z\n\t\t\t.object({\n\t\t\t\talt: z.string(),\n\t\t\t\theight: z.number().optional(),\n\t\t\t\tsrc: z.string(),\n\t\t\t\twidth: z.number().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"local image file in the repository to display near the top of the README.md\",\n\t\t\t),\n\t\tnode: z\n\t\t\t.object({\n\t\t\t\tminimum: z.string(),\n\t\t\t\tpinned: z.string().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"node.js engine version(s) to pin and require a minimum of\"),\n\t\towner: z\n\t\t\t.string()\n\t\t\t.describe(\"GitHub organization or user the repository is underneath\"),\n\t\tpackageData: z\n\t\t\t.object({\n\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tscripts: z.record(z.string(), z.string()).optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"additional properties to include in `package.json`\"),\n\t\trepository: z\n\t\t\t.string()\n\t\t\t.describe(\"'kebab-case' or 'PascalCase' title of the repository\"),\n\t\trulesetId: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub branch ruleset ID for main branch protections\"),\n\t\ttitle: z.string().describe(\"'Title Case' title for the repository\"),\n\t\tusage: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"markdown docs to put in README.md under the ## Usage heading\"),\n\t\tversion: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"package version to publish as and store in `package.json`\"),\n\t},\n\tprepare({ options, take }) {\n\t\tconst allContributors = lazyValue(async () => readAllContributors(take));\n\t\tconst documentation = lazyValue(async () => readDocumentation(take));\n\n\t\tconst nvmrc = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".nvmrc\",\n\t\t\t\t}),\n\t\t);\n\n\t\tconst githubCliUser = lazyValue(async () => {\n\t\t\treturn swallowError(\n\t\t\t\tawait take(inputFromScript, {\n\t\t\t\t\tcommand: \"gh config get user -h github.com\",\n\t\t\t\t}),\n\t\t\t)?.stdout?.toString();\n\t\t});\n\n\t\tconst readme = lazyValue(async () => await readFileSafe(\"README.md\", \"\"));\n\n\t\tconst rulesetId = lazyValue(async () => {\n\t\t\tconst rulesets = (await take(inputFromOctokit, {\n\t\t\t\tendpoint: \"GET /repos/{owner}/{repo}/rulesets\",\n\t\t\t\toptions: {\n\t\t\t\t\towner: await owner(),\n\t\t\t\t\trepo: await repository(),\n\t\t\t\t},\n\t\t\t})) as undefined | { id: string; name: string }[];\n\n\t\t\treturn rulesets?.find(\n\t\t\t\t(ruleset) => ruleset.name === \"Branch protection for main\",\n\t\t\t)?.id;\n\t\t});\n\n\t\t// TODO: Make these all use take\n\n\t\tconst gitDefaults = tryCatchLazyValueAsync(async () =>\n\t\t\tgitUrlParse(await gitRemoteOriginUrl()),\n\t\t);\n\n\t\tconst npmDefaults = tryCatchLazyValueAsync(async () => {\n\t\t\tconst whoami = (await execaCommand(`npm whoami`)).stdout;\n\t\t\treturn whoami ? await npmUser(whoami) : undefined;\n\t\t});\n\n\t\tconst packageData = lazyValue(readPackageData);\n\t\tconst packageAuthor = lazyValue(async () =>\n\t\t\tparsePackageAuthor(await packageData()),\n\t\t);\n\n\t\tconst author = lazyValue(\n\t\t\tasync () =>\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await npmDefaults())?.name ??\n\t\t\t\toptions.owner,\n\t\t);\n\n\t\tconst node = lazyValue(async () => {\n\t\t\tconst { engines } = await packageData();\n\n\t\t\treturn {\n\t\t\t\tminimum:\n\t\t\t\t\t(engines?.node && /[\\d+.]+/.exec(engines.node))?.[0] ?? \"18.3.0\",\n\t\t\t\tpinned: swallowError(await nvmrc())?.trim() ?? \"20.18.0\",\n\t\t\t};\n\t\t});\n\n\t\tconst version = lazyValue(async () => (await packageData()).version);\n\n\t\tconst owner = lazyValue(\n\t\t\tasync () =>\n\t\t\t\t(await gitDefaults())?.organization ??\n\t\t\t\t(await packageAuthor()).author ??\n\t\t\t\t(await githubCliUser()),\n\t\t);\n\n\t\tconst repository = lazyValue(\n\t\t\tasync () =>\n\t\t\t\toptions.repository ??\n\t\t\t\t(await gitDefaults())?.name ??\n\t\t\t\t(await packageData()).name ??\n\t\t\t\toptions.directory,\n\t\t);\n\n\t\tconst email = lazyValue(async () => readEmails(npmDefaults, packageAuthor));\n\n\t\treturn {\n\t\t\taccess: \"public\" as const,\n\t\t\tauthor,\n\t\t\tbin: async () => (await packageData()).bin,\n\t\t\tcontributors: allContributors,\n\t\t\tdescription: async () => await readDescription(packageData, readme),\n\t\t\tdocumentation,\n\t\t\temail,\n\t\t\tfunding: readFunding,\n\t\t\tguide: readGuide,\n\t\t\tlogin: author,\n\t\t\tnode,\n\t\t\towner,\n\t\t\tpackageData: async () => {\n\t\t\t\tconst original = await packageData();\n\n\t\t\t\treturn {\n\t\t\t\t\tdependencies: original.dependencies,\n\t\t\t\t\tdevDependencies: original.devDependencies,\n\t\t\t\t\tscripts: original.scripts,\n\t\t\t\t};\n\t\t\t},\n\t\t\trepository,\n\t\t\trulesetId,\n\t\t\t...readDefaultsFromReadme(readme, repository),\n\t\t\tversion,\n\t\t};\n\t},\n});\n\nexport type BaseOptions = BaseOptionsFor<typeof base>;\n"],"mappings":"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","names":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum from 'bingo-stratum';
|
|
2
2
|
|
|
3
|
-
declare const blockAllContributors:
|
|
4
|
-
description: string;
|
|
3
|
+
declare const blockAllContributors: bingo_stratum.BlockWithoutAddons<{
|
|
5
4
|
access: "public" | "restricted";
|
|
5
|
+
description: string;
|
|
6
6
|
directory: string;
|
|
7
7
|
email: {
|
|
8
8
|
github: string;
|
|
@@ -14,10 +14,10 @@ declare const blockAllContributors: create.BlockWithoutAddons<{
|
|
|
14
14
|
author?: string | undefined;
|
|
15
15
|
bin?: string | undefined;
|
|
16
16
|
contributors?: {
|
|
17
|
-
name: string;
|
|
18
17
|
avatar_url: string;
|
|
19
18
|
contributions: string[];
|
|
20
19
|
login: string;
|
|
20
|
+
name: string;
|
|
21
21
|
profile: string;
|
|
22
22
|
}[] | undefined;
|
|
23
23
|
documentation?: string | undefined;
|
|
@@ -43,6 +43,7 @@ declare const blockAllContributors: create.BlockWithoutAddons<{
|
|
|
43
43
|
devDependencies?: Record<string, string> | undefined;
|
|
44
44
|
scripts?: Record<string, string> | undefined;
|
|
45
45
|
} | undefined;
|
|
46
|
+
rulesetId?: string | undefined;
|
|
46
47
|
usage?: string | undefined;
|
|
47
48
|
version?: string | undefined;
|
|
48
49
|
}>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _ from "lodash";
|
|
2
2
|
import { base } from "../base.js";
|
|
3
|
+
import { ownerContributions } from "../data/contributions.js";
|
|
3
4
|
import { blockREADME } from "./blockREADME.js";
|
|
4
5
|
import { blockRepositorySecrets } from "./blockRepositorySecrets.js";
|
|
5
6
|
import { createSoloWorkflowFile } from "./files/createSoloWorkflowFile.js";
|
|
@@ -63,7 +64,7 @@ const blockAllContributors = base.createBlock({
|
|
|
63
64
|
scripts: [
|
|
64
65
|
{
|
|
65
66
|
commands: [
|
|
66
|
-
`pnpx all-contributors-cli add ${options.owner}
|
|
67
|
+
`pnpx all-contributors-cli add ${options.owner} ${ownerContributions.join(",")}`
|
|
67
68
|
],
|
|
68
69
|
phase: CommandPhase.Process
|
|
69
70
|
}
|
|
@@ -106,7 +107,7 @@ function printContributorCell(contributor) {
|
|
|
106
107
|
`<img src="${contributor.avatar_url}?s=100" width="100px;" alt="${contributor.name}"/>`,
|
|
107
108
|
`<br />`,
|
|
108
109
|
`<sub><b>${contributor.name}</b></sub></a><br />`,
|
|
109
|
-
|
|
110
|
+
contributor.contributions.map((contribution) => {
|
|
110
111
|
switch (contribution) {
|
|
111
112
|
case "bug":
|
|
112
113
|
return `<a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3A${contributor.login}" title="Bug reports">\u{1F41B}</a>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/blocks/blockAllContributors.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport { base, Contributor } from \"../base.js\";\nimport { blockREADME } from \"./blockREADME.js\";\nimport { blockRepositorySecrets } from \"./blockRepositorySecrets.js\";\nimport { createSoloWorkflowFile } from \"./files/createSoloWorkflowFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockAllContributors = base.createBlock({\n\tabout: {\n\t\tname: \"AllContributors\",\n\t},\n\tproduce({ options }) {\n\t\tconst contributions = options.contributors?.length;\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockREADME({\n\t\t\t\t\tbadges: [\n\t\t\t\t\t\t`<!-- prettier-ignore-start -->\n\\t<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n\\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: ${contributions}\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-${contributions}-21bb42.svg\" /></a>\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\\t<!-- prettier-ignore-end -->`,\n\t\t\t\t\t],\n\t\t\t\t\tsections: options.contributors\n\t\t\t\t\t\t? [printAllContributorsTable(options.contributors)]\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t\tblockRepositorySecrets({\n\t\t\t\t\tsecrets: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: \"a GitHub PAT with repo and workflow permissions\",\n\t\t\t\t\t\t\tname: \"ACCESS_TOKEN\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".all-contributorsrc\": JSON.stringify({\n\t\t\t\t\tbadgeTemplate:\n\t\t\t\t\t\t'\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: <%= contributors.length %>\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-<%= contributors.length %>-21bb42.svg\" /></a>',\n\t\t\t\t\tcontributors: options.contributors ?? [],\n\t\t\t\t\tcontributorsSortAlphabetically: true,\n\t\t\t\t\tprojectName: options.repository,\n\t\t\t\t\tprojectOwner: options.owner,\n\t\t\t\t}),\n\t\t\t\t\".github\": {\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"contributors.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"Contributors\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpush: {\n\t\t\t\t\t\t\t\t\tbranches: [\"main\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ uses: \"actions/checkout@v4\", with: { \"fetch-depth\": 0 } },\n\t\t\t\t\t\t\t\t{ uses: \"./.github/actions/prepare\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tenv: { GITHUB_TOKEN: \"${{ secrets.ACCESS_TOKEN }}\" },\n\t\t\t\t\t\t\t\t\tuses: `JoshuaKGoldberg/all-contributors-auto-action@v0.5.0`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t`pnpx all-contributors-cli add ${options.owner}
|
|
1
|
+
{"version":3,"sources":["../../src/blocks/blockAllContributors.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport { base, Contributor } from \"../base.js\";\nimport { ownerContributions } from \"../data/contributions.js\";\nimport { blockREADME } from \"./blockREADME.js\";\nimport { blockRepositorySecrets } from \"./blockRepositorySecrets.js\";\nimport { createSoloWorkflowFile } from \"./files/createSoloWorkflowFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockAllContributors = base.createBlock({\n\tabout: {\n\t\tname: \"AllContributors\",\n\t},\n\tproduce({ options }) {\n\t\tconst contributions = options.contributors?.length;\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockREADME({\n\t\t\t\t\tbadges: [\n\t\t\t\t\t\t`<!-- prettier-ignore-start -->\n\\t<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n\\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: ${contributions}\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-${contributions}-21bb42.svg\" /></a>\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\\t<!-- prettier-ignore-end -->`,\n\t\t\t\t\t],\n\t\t\t\t\tsections: options.contributors\n\t\t\t\t\t\t? [printAllContributorsTable(options.contributors)]\n\t\t\t\t\t\t: undefined,\n\t\t\t\t}),\n\t\t\t\tblockRepositorySecrets({\n\t\t\t\t\tsecrets: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: \"a GitHub PAT with repo and workflow permissions\",\n\t\t\t\t\t\t\tname: \"ACCESS_TOKEN\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".all-contributorsrc\": JSON.stringify({\n\t\t\t\t\tbadgeTemplate:\n\t\t\t\t\t\t'\t<a href=\"#contributors\" target=\"_blank\"><img alt=\"👪 All Contributors: <%= contributors.length %>\" src=\"https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-<%= contributors.length %>-21bb42.svg\" /></a>',\n\t\t\t\t\tcontributors: options.contributors ?? [],\n\t\t\t\t\tcontributorsSortAlphabetically: true,\n\t\t\t\t\tprojectName: options.repository,\n\t\t\t\t\tprojectOwner: options.owner,\n\t\t\t\t}),\n\t\t\t\t\".github\": {\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"contributors.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"Contributors\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpush: {\n\t\t\t\t\t\t\t\t\tbranches: [\"main\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ uses: \"actions/checkout@v4\", with: { \"fetch-depth\": 0 } },\n\t\t\t\t\t\t\t\t{ uses: \"./.github/actions/prepare\" },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tenv: { GITHUB_TOKEN: \"${{ secrets.ACCESS_TOKEN }}\" },\n\t\t\t\t\t\t\t\t\tuses: `JoshuaKGoldberg/all-contributors-auto-action@v0.5.0`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t`pnpx all-contributors-cli add ${options.owner} ${ownerContributions.join(\",\")}`,\n\t\t\t\t\t],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction printAllContributorsTable(contributors: Contributor[]) {\n\treturn [\n\t\t`## Contributors`,\n\t\t``,\n\t\t`<!-- spellchecker: disable -->`,\n\t\t`<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->`,\n\t\t`<!-- prettier-ignore-start -->`,\n\t\t`<!-- markdownlint-disable -->`,\n\t\t`<table>`,\n\t\t` <tbody>`,\n\t\t` <tr>`,\n\t\t// This intentionally uses the same sort as all-contributors-cli:\n\t\t// https://github.com/all-contributors/cli/blob/74bc388bd6f0ae2658e6495e9d3781d737438a97/src/generate/index.js#L76\n\t\t..._.sortBy(contributors, \"name\").flatMap((contributor, i) => {\n\t\t\tconst row = printContributorCell(contributor);\n\n\t\t\treturn i && i % 7 === 0 ? [` </tr>`, ` <tr>`, row] : [row];\n\t\t}),\n\t\t` </tr>`,\n\t\t` </tbody>`,\n\t\t`</table>`,\n\t\t``,\n\t\t`<!-- markdownlint-restore -->`,\n\t\t`<!-- prettier-ignore-end -->`,\n\t\t``,\n\t\t`<!-- ALL-CONTRIBUTORS-LIST:END -->`,\n\t\t`<!-- spellchecker: enable -->`,\n\t].join(\"\\n\");\n}\n\nfunction printContributorCell(contributor: Contributor) {\n\treturn [\n\t\t` <td align=\"center\" valign=\"top\" width=\"14.28%\">`,\n\t\t`<a href=\"${contributor.profile}\">`,\n\t\t`<img src=\"${contributor.avatar_url}?s=100\" width=\"100px;\" alt=\"${contributor.name}\"/>`,\n\t\t`<br />`,\n\t\t`<sub><b>${contributor.name}</b></sub></a><br />`,\n\t\tcontributor.contributions\n\t\t\t.map((contribution) => {\n\t\t\t\tswitch (contribution) {\n\t\t\t\t\tcase \"bug\":\n\t\t\t\t\t\treturn `<a href=\"https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3A${contributor.login}\" title=\"Bug reports\">🐛</a>`;\n\t\t\t\t\tcase \"code\":\n\t\t\t\t\t\treturn `<a href=\"https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=${contributor.login}\" title=\"Code\">💻</a>`;\n\t\t\t\t\tcase \"design\":\n\t\t\t\t\t\treturn `<a href=\"#design-${contributor.login}\" title=\"Design\">🎨</a>`;\n\t\t\t\t\tcase \"doc\":\n\t\t\t\t\t\treturn `<a href=\"https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=${contributor.login}\" title=\"Documentation\">📖</a>`;\n\t\t\t\t\tcase \"ideas\":\n\t\t\t\t\t\treturn `<a href=\"#ideas-${contributor.login}\" title=\"Ideas, Planning, & Feedback\">🤔</a>`;\n\t\t\t\t\tcase \"infra\":\n\t\t\t\t\t\treturn `<a href=\"#infra-${contributor.login}\" title=\"Infrastructure (Hosting, Build-Tools, etc)\">🚇</a>`;\n\t\t\t\t\tcase \"maintenance\":\n\t\t\t\t\t\treturn `<a href=\"#maintenance-${contributor.login}\" title=\"Maintenance\">🚧</a>`;\n\t\t\t\t\tcase \"review\":\n\t\t\t\t\t\treturn `<a href=\"https://github.com/JoshuaKGoldberg/create-typescript-app/pulls?q=is%3Apr+reviewed-by%3A${contributor.login}\" title=\"Reviewed Pull Requests\">👀</a>`;\n\t\t\t\t\tcase \"test\":\n\t\t\t\t\t\treturn `<a href=\"https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=${contributor.login}\" title=\"Tests\">⚠️</a>`;\n\t\t\t\t\tcase \"tool\":\n\t\t\t\t\t\treturn `<a href=\"#tool-${contributor.login}\" title=\"Tools\">🔧</a>`;\n\t\t\t\t}\n\t\t\t})\n\t\t\t.join(\" \"),\n\t\t`</td>`,\n\t].join(\"\");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum from 'bingo-stratum';
|
|
2
2
|
|
|
3
|
-
declare const blockAreTheTypesWrong:
|
|
4
|
-
description: string;
|
|
3
|
+
declare const blockAreTheTypesWrong: bingo_stratum.BlockWithoutAddons<{
|
|
5
4
|
access: "public" | "restricted";
|
|
5
|
+
description: string;
|
|
6
6
|
directory: string;
|
|
7
7
|
email: {
|
|
8
8
|
github: string;
|
|
@@ -14,10 +14,10 @@ declare const blockAreTheTypesWrong: create.BlockWithoutAddons<{
|
|
|
14
14
|
author?: string | undefined;
|
|
15
15
|
bin?: string | undefined;
|
|
16
16
|
contributors?: {
|
|
17
|
-
name: string;
|
|
18
17
|
avatar_url: string;
|
|
19
18
|
contributions: string[];
|
|
20
19
|
login: string;
|
|
20
|
+
name: string;
|
|
21
21
|
profile: string;
|
|
22
22
|
}[] | undefined;
|
|
23
23
|
documentation?: string | undefined;
|
|
@@ -43,6 +43,7 @@ declare const blockAreTheTypesWrong: create.BlockWithoutAddons<{
|
|
|
43
43
|
devDependencies?: Record<string, string> | undefined;
|
|
44
44
|
scripts?: Record<string, string> | undefined;
|
|
45
45
|
} | undefined;
|
|
46
|
+
rulesetId?: string | undefined;
|
|
46
47
|
usage?: string | undefined;
|
|
47
48
|
version?: string | undefined;
|
|
48
49
|
}>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bingo_stratum from 'bingo-stratum';
|
|
2
2
|
|
|
3
|
-
declare const blockCSpell:
|
|
3
|
+
declare const blockCSpell: bingo_stratum.BlockWithAddons<{
|
|
4
4
|
ignores: string[];
|
|
5
5
|
words: string[];
|
|
6
6
|
}, {
|
|
7
|
-
description: string;
|
|
8
7
|
access: "public" | "restricted";
|
|
8
|
+
description: string;
|
|
9
9
|
directory: string;
|
|
10
10
|
email: {
|
|
11
11
|
github: string;
|
|
@@ -17,10 +17,10 @@ declare const blockCSpell: create.BlockWithAddons<{
|
|
|
17
17
|
author?: string | undefined;
|
|
18
18
|
bin?: string | undefined;
|
|
19
19
|
contributors?: {
|
|
20
|
-
name: string;
|
|
21
20
|
avatar_url: string;
|
|
22
21
|
contributions: string[];
|
|
23
22
|
login: string;
|
|
23
|
+
name: string;
|
|
24
24
|
profile: string;
|
|
25
25
|
}[] | undefined;
|
|
26
26
|
documentation?: string | undefined;
|
|
@@ -46,6 +46,7 @@ declare const blockCSpell: create.BlockWithAddons<{
|
|
|
46
46
|
devDependencies?: Record<string, string> | undefined;
|
|
47
47
|
scripts?: Record<string, string> | undefined;
|
|
48
48
|
} | undefined;
|
|
49
|
+
rulesetId?: string | undefined;
|
|
49
50
|
usage?: string | undefined;
|
|
50
51
|
version?: string | undefined;
|
|
51
52
|
}>;
|
|
@@ -17,19 +17,6 @@ const blockCSpell = base.createBlock({
|
|
|
17
17
|
ignores: z.array(z.string()).default([]),
|
|
18
18
|
words: z.array(z.string()).default([])
|
|
19
19
|
},
|
|
20
|
-
initialize({ options }) {
|
|
21
|
-
const wordArgs = getObjectStringsDeep(options).map((word) => `--words "${word.replaceAll(`"`, " ")}"`).join(" ");
|
|
22
|
-
return {
|
|
23
|
-
scripts: [
|
|
24
|
-
{
|
|
25
|
-
commands: [
|
|
26
|
-
`node ${resolveBin("cspell-populate-words/bin/index.mjs")} ${wordArgs}`
|
|
27
|
-
],
|
|
28
|
-
phase: CommandPhase.Process
|
|
29
|
-
}
|
|
30
|
-
]
|
|
31
|
-
};
|
|
32
|
-
},
|
|
33
20
|
produce({ addons }) {
|
|
34
21
|
const { ignores, words } = addons;
|
|
35
22
|
return {
|
|
@@ -80,6 +67,19 @@ const blockCSpell = base.createBlock({
|
|
|
80
67
|
})
|
|
81
68
|
}
|
|
82
69
|
};
|
|
70
|
+
},
|
|
71
|
+
setup({ options }) {
|
|
72
|
+
const wordArgs = getObjectStringsDeep(options).map((word) => `--words "${word.replaceAll(`"`, " ")}"`).join(" ");
|
|
73
|
+
return {
|
|
74
|
+
scripts: [
|
|
75
|
+
{
|
|
76
|
+
commands: [
|
|
77
|
+
`node ${resolveBin("cspell-populate-words/bin/index.mjs")} ${wordArgs}`
|
|
78
|
+
],
|
|
79
|
+
phase: CommandPhase.Process
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
};
|
|
83
83
|
}
|
|
84
84
|
});
|
|
85
85
|
export {
|