create-typescript-app 2.58.0 → 2.59.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 (103) hide show
  1. package/README.md +4 -1
  2. package/lib/base.d.ts +2 -2
  3. package/lib/base.d.ts.map +1 -1
  4. package/lib/blocks/blockAllContributors.d.ts +2 -2
  5. package/lib/blocks/blockAllContributors.d.ts.map +1 -1
  6. package/lib/blocks/blockAreTheTypesWrong.d.ts +2 -2
  7. package/lib/blocks/blockCSpell.d.ts +2 -2
  8. package/lib/blocks/blockCTATransitions.d.ts +2 -2
  9. package/lib/blocks/blockCodecov.d.ts +2 -2
  10. package/lib/blocks/blockCodecov.d.ts.map +1 -1
  11. package/lib/blocks/blockContributingDocs.d.ts +2 -2
  12. package/lib/blocks/blockContributingDocs.d.ts.map +1 -1
  13. package/lib/blocks/blockContributorCovenant.d.ts +2 -2
  14. package/lib/blocks/blockContributorCovenant.d.ts.map +1 -1
  15. package/lib/blocks/blockDevelopmentDocs.d.ts +3 -3
  16. package/lib/blocks/blockDevelopmentDocs.d.ts.map +1 -1
  17. package/lib/blocks/blockESLint.d.ts +6 -6
  18. package/lib/blocks/blockESLint.d.ts.map +1 -1
  19. package/lib/blocks/blockESLint.js +2 -2
  20. package/lib/blocks/blockESLint.js.map +1 -1
  21. package/lib/blocks/blockESLintComments.d.ts +2 -2
  22. package/lib/blocks/blockESLintComments.d.ts.map +1 -1
  23. package/lib/blocks/blockESLintJSDoc.d.ts +2 -2
  24. package/lib/blocks/blockESLintJSDoc.d.ts.map +1 -1
  25. package/lib/blocks/blockESLintJSONC.d.ts +2 -2
  26. package/lib/blocks/blockESLintJSONC.d.ts.map +1 -1
  27. package/lib/blocks/blockESLintMarkdown.d.ts +2 -2
  28. package/lib/blocks/blockESLintMarkdown.d.ts.map +1 -1
  29. package/lib/blocks/blockESLintMoreStyling.d.ts +2 -2
  30. package/lib/blocks/blockESLintMoreStyling.d.ts.map +1 -1
  31. package/lib/blocks/blockESLintNode.d.ts +2 -2
  32. package/lib/blocks/blockESLintNode.d.ts.map +1 -1
  33. package/lib/blocks/blockESLintPackageJson.d.ts +2 -2
  34. package/lib/blocks/blockESLintPackageJson.d.ts.map +1 -1
  35. package/lib/blocks/blockESLintPerfectionist.d.ts +2 -2
  36. package/lib/blocks/blockESLintPerfectionist.d.ts.map +1 -1
  37. package/lib/blocks/blockESLintPlugin.d.ts +2 -2
  38. package/lib/blocks/blockESLintRegexp.d.ts +2 -2
  39. package/lib/blocks/blockESLintRegexp.d.ts.map +1 -1
  40. package/lib/blocks/blockESLintYML.d.ts +2 -2
  41. package/lib/blocks/blockExampleFiles.d.ts +2 -2
  42. package/lib/blocks/blockFunding.d.ts +2 -2
  43. package/lib/blocks/blockFunding.d.ts.map +1 -1
  44. package/lib/blocks/blockGitHubActionsCI.d.ts +2 -2
  45. package/lib/blocks/blockGitHubApps.d.ts +2 -2
  46. package/lib/blocks/blockGitHubIssueTemplates.d.ts +2 -2
  47. package/lib/blocks/blockGitHubIssueTemplates.js +2 -2
  48. package/lib/blocks/blockGitHubIssueTemplates.js.map +1 -1
  49. package/lib/blocks/blockGitHubPRTemplate.d.ts +2 -2
  50. package/lib/blocks/blockGitignore.d.ts +2 -2
  51. package/lib/blocks/blockKnip.d.ts +2 -2
  52. package/lib/blocks/blockMITLicense.d.ts +2 -2
  53. package/lib/blocks/blockMain.d.ts +2 -2
  54. package/lib/blocks/blockNcc.d.ts +2 -2
  55. package/lib/blocks/blockNvmrc.d.ts +2 -2
  56. package/lib/blocks/blockOctoGuide.d.ts +2 -2
  57. package/lib/blocks/blockOctoGuideStrict.d.ts +2 -2
  58. package/lib/blocks/blockPackageJson.d.ts +5 -5
  59. package/lib/blocks/blockPnpmDedupe.d.ts +2 -2
  60. package/lib/blocks/blockPrettier.d.ts +3 -3
  61. package/lib/blocks/blockPrettier.d.ts.map +1 -1
  62. package/lib/blocks/blockPrettierPluginCurly.d.ts +2 -2
  63. package/lib/blocks/blockPrettierPluginPackageJson.d.ts +2 -2
  64. package/lib/blocks/blockPrettierPluginSentencesPerLine.d.ts +2 -2
  65. package/lib/blocks/blockPrettierPluginSh.d.ts +2 -2
  66. package/lib/blocks/blockREADME.d.ts +3 -3
  67. package/lib/blocks/blockReleaseIt.d.ts +2 -2
  68. package/lib/blocks/blockReleaseIt.d.ts.map +1 -1
  69. package/lib/blocks/blockReleaseIt.js +5 -11
  70. package/lib/blocks/blockReleaseIt.js.map +1 -1
  71. package/lib/blocks/blockRemoveDependencies.d.ts +2 -2
  72. package/lib/blocks/blockRemoveFiles.d.ts +2 -2
  73. package/lib/blocks/blockRemoveWorkflows.d.ts +2 -2
  74. package/lib/blocks/blockRenovate.d.ts +2 -2
  75. package/lib/blocks/blockRepositoryBranchRuleset.d.ts +2 -2
  76. package/lib/blocks/blockRepositoryLabels.d.ts +2 -2
  77. package/lib/blocks/blockRepositorySecrets.d.ts +2 -2
  78. package/lib/blocks/blockRepositorySettings.d.ts +2 -2
  79. package/lib/blocks/blockSecurityDocs.d.ts +2 -2
  80. package/lib/blocks/blockTSDown.d.ts +2 -2
  81. package/lib/blocks/blockTemplatedWith.d.ts +2 -2
  82. package/lib/blocks/blockTypeScript.d.ts +2 -2
  83. package/lib/blocks/blockVSCode.d.ts +3 -3
  84. package/lib/blocks/blockVSCode.d.ts.map +1 -1
  85. package/lib/blocks/blockVitest.d.ts +2 -2
  86. package/lib/blocks/blockWebExt.d.ts +2 -2
  87. package/lib/blocks/eslint/mergeAllExtensions.d.ts +2 -2
  88. package/lib/blocks/eslint/mergeAllExtensions.d.ts.map +1 -1
  89. package/lib/blocks/eslint/schemas.d.ts +4 -4
  90. package/lib/blocks/eslint/schemas.d.ts.map +1 -1
  91. package/lib/blocks/index.d.ts +60 -60
  92. package/lib/inputs/inputFromDirectory.d.ts +2 -2
  93. package/lib/inputs/inputFromOctokit.d.ts +2 -2
  94. package/lib/package.d.ts +1 -5
  95. package/lib/package.d.ts.map +1 -1
  96. package/lib/presets/common.d.ts +69 -69
  97. package/lib/presets/common.d.ts.map +1 -1
  98. package/lib/presets/everything.d.ts +69 -69
  99. package/lib/presets/index.d.ts +203 -203
  100. package/lib/presets/minimal.d.ts +69 -69
  101. package/lib/schemas.d.ts +6 -6
  102. package/lib/template.d.ts +67 -67
  103. package/package.json +6 -9
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: 56" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-56-21bb42.svg" /></a>
11
+ <a href="#contributors" target="_blank"><img alt="👪 All Contributors: 57" src="https://img.shields.io/badge/%F0%9F%91%AA_all_contributors-57-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>
@@ -134,10 +134,13 @@ Thanks! 🎁
134
134
  <tr>
135
135
  <td align="center" valign="top" width="14.28%"><a href="https://github.com/astrochemx"><img src="https://avatars.githubusercontent.com/u/105541001?v=4?s=100" width="100px;" alt="Vladyslav Shevchenko"/><br /><sub><b>Vladyslav Shevchenko</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=astrochemx" title="Code">💻</a></td>
136
136
  <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>
137
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/cylewaitforit"><img src="https://avatars.githubusercontent.com/u/54253392?v=4?s=100" width="100px;" alt="cylewaitforit"/><br /><sub><b>cylewaitforit</b></sub></a><br /><a href="https://github.com/JoshuaKGoldberg/create-typescript-app/commits?author=cylewaitforit" title="Code">💻</a> <a href="#ideas-cylewaitforit" title="Ideas, Planning, & Feedback">🤔</a></td>
137
138
  <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>
138
139
  <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> <a href="#ideas-michaelfaith" title="Ideas, Planning, & Feedback">🤔</a></td>
139
140
  <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>
140
141
  <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> <a href="https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=author%3Arubiesonthesky" title="Bug reports">🐛</a></td>
142
+ </tr>
143
+ <tr>
141
144
  <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>
142
145
  </tr>
143
146
  </tbody>
package/lib/base.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import * as bingo_stratum112 from "bingo-stratum";
1
+ import * as bingo_stratum0 from "bingo-stratum";
2
2
  import { BaseOptionsFor } from "bingo-stratum";
3
3
  import { z } from "zod";
4
4
 
5
5
  //#region src/base.d.ts
6
- declare const base: bingo_stratum112.Base<{
6
+ declare const base: bingo_stratum0.Base<{
7
7
  access: z.ZodUnion<[z.ZodLiteral<"public">, z.ZodLiteral<"restricted">]>;
8
8
  author: z.ZodOptional<z.ZodString>;
9
9
  bin: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
package/lib/base.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":[],"sources":["../src/base.ts"],"sourcesContent":[],"mappings":";;;;;cA0Ca,uBAAI;;;EAAJ,GAAA,eAuTX,WAAA,CAAA,YAAA,aAAA,YAAA,aAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAvTe,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAAA,gBAAA,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAyTL,oBAAW,CAAA,QAAG,CAAA,MAAA,EAAA,OAAc,CAAA,GAAA,SAAA;;;;;;;;;;;;;;;;;;;;;KAA5B,WAAA,GAAc,sBAAsB"}
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../src/base.ts"],"sourcesContent":[],"mappings":";;;;;cA0Ca,qBAAI;;;EAAJ,GAAA,eAuTX,WAAA,CAAA,YAAA,aAAA,YAAA,aAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAvTe,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAAA,gBAAA,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAyTL,oBAAW,CAAyB,QAAtB,CAAA,MAAA,EAAA,OAAc,CAAA,GAAA,SAAA;;;;;;;;;;;;;;;;;;;;;KAA5B,WAAA,GAAc,sBAAsB"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum105 from "bingo-stratum";
1
+ import * as bingo_stratum2 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockAllContributors.d.ts
4
- declare const blockAllContributors: bingo_stratum105.BlockWithoutAddons<{
4
+ declare const blockAllContributors: bingo_stratum2.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockAllContributors.d.ts","names":[],"sources":["../../src/blocks/blockAllContributors.ts"],"sourcesContent":[],"mappings":";;;cAYa,uCAAoB;;;EAApB,SAAA,EAAA,MAAA;;;;;;;;;;EAAoB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockAllContributors.d.ts","names":[],"sources":["../../src/blocks/blockAllContributors.ts"],"sourcesContent":[],"mappings":";;;cAYa,qCAAoB;;;EAApB,SAAA,EAAA,MAAA;;;;;;;;;;EAAoB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum0 from "bingo-stratum";
1
+ import * as bingo_stratum3 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockAreTheTypesWrong.d.ts
4
- declare const blockAreTheTypesWrong: bingo_stratum0.BlockWithoutAddons<{
4
+ declare const blockAreTheTypesWrong: bingo_stratum3.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum3 from "bingo-stratum";
1
+ import * as bingo_stratum4 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockCSpell.d.ts
4
- declare const blockCSpell: bingo_stratum3.BlockWithAddons<{
4
+ declare const blockCSpell: bingo_stratum4.BlockWithAddons<{
5
5
  words: string[];
6
6
  ignorePaths: string[];
7
7
  }, {
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum2 from "bingo-stratum";
1
+ import * as bingo_stratum5 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockCTATransitions.d.ts
4
- declare const blockCTATransitions: bingo_stratum2.BlockWithoutAddons<{
4
+ declare const blockCTATransitions: bingo_stratum5.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum98 from "bingo-stratum";
1
+ import * as bingo_stratum6 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockCodecov.d.ts
4
- declare const blockCodecov: bingo_stratum98.BlockWithAddons<{
4
+ declare const blockCodecov: bingo_stratum6.BlockWithAddons<{
5
5
  env?: Record<string, string> | undefined;
6
6
  }, {
7
7
  access: "public" | "restricted";
@@ -1 +1 @@
1
- {"version":3,"file":"blockCodecov.d.ts","names":[],"sources":["../../src/blocks/blockCodecov.ts"],"sourcesContent":[],"mappings":";;;cAUa,8BAAY;;;EAAZ,MAAA,EAAA,QA0EX,GAAA,YAAA;;;;;;;;;;eA1EuB,CAAA,EAAA,MAAA,GAAA,SAAA;EAAA,CAAA"}
1
+ {"version":3,"file":"blockCodecov.d.ts","names":[],"sources":["../../src/blocks/blockCodecov.ts"],"sourcesContent":[],"mappings":";;;cAUa,6BAAY;;;EAAZ,MAAA,EAAA,QA0EX,GAAA,YAAA;;;;;;;;;;eA1EuB,CAAA,EAAA,MAAA,GAAA,SAAA;EAAA,CAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum107 from "bingo-stratum";
1
+ import * as bingo_stratum7 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockContributingDocs.d.ts
4
- declare const blockContributingDocs: bingo_stratum107.BlockWithoutAddons<{
4
+ declare const blockContributingDocs: bingo_stratum7.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockContributingDocs.d.ts","names":[],"sources":["../../src/blocks/blockContributingDocs.ts"],"sourcesContent":[],"mappings":";;;cAGa,wCAAqB;;;EAArB,SAAA,EAAA,MAAA;;;;;;;;;;EAAqB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockContributingDocs.d.ts","names":[],"sources":["../../src/blocks/blockContributingDocs.ts"],"sourcesContent":[],"mappings":";;;cAGa,sCAAqB;;;EAArB,SAAA,EAAA,MAAA;;;;;;;;;;EAAqB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum106 from "bingo-stratum";
1
+ import * as bingo_stratum8 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockContributorCovenant.d.ts
4
- declare const blockContributorCovenant: bingo_stratum106.BlockWithoutAddons<{
4
+ declare const blockContributorCovenant: bingo_stratum8.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockContributorCovenant.d.ts","names":[],"sources":["../../src/blocks/blockContributorCovenant.ts"],"sourcesContent":[],"mappings":";;;cAIa,2CAAwB;;;EAAxB,SAAA,EAAA,MAAA;;;;;;;;;;EAAwB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockContributorCovenant.d.ts","names":[],"sources":["../../src/blocks/blockContributorCovenant.ts"],"sourcesContent":[],"mappings":";;;cAIa,yCAAwB;;;EAAxB,SAAA,EAAA,MAAA;;;;;;;;;;EAAwB,KAAA,EAAA"}
@@ -1,12 +1,12 @@
1
- import * as bingo_stratum108 from "bingo-stratum";
1
+ import * as bingo_stratum9 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockDevelopmentDocs.d.ts
4
- declare const blockDevelopmentDocs: bingo_stratum108.BlockWithAddons<{
4
+ declare const blockDevelopmentDocs: bingo_stratum9.BlockWithAddons<{
5
5
  hints: string[];
6
6
  sections: Record<string, {
7
7
  contents?: string | {
8
- before?: string | undefined;
9
8
  after?: string[] | undefined;
9
+ before?: string | undefined;
10
10
  items?: string[] | undefined;
11
11
  plural?: string | undefined;
12
12
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"blockDevelopmentDocs.d.ts","names":[],"sources":["../../src/blocks/blockDevelopmentDocs.ts"],"sourcesContent":[],"mappings":";;;cA0Da,uCAAoB;;;IAApB,QAAA,CAAA,EAAA,MAAA,GAiDX;;;;;;;;;;;CAjD+B,EAAA"}
1
+ {"version":3,"file":"blockDevelopmentDocs.d.ts","names":[],"sources":["../../src/blocks/blockDevelopmentDocs.ts"],"sourcesContent":[],"mappings":";;;cA0Da,qCAAoB;;;IAApB,QAAA,CAAA,EAAA,MAAA,GAiDX;;;;;;;;;;;CAjD+B,EAAA"}
@@ -1,10 +1,12 @@
1
- import * as bingo_stratum109 from "bingo-stratum";
1
+ import * as bingo_stratum10 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLint.d.ts
4
- declare const blockESLint: bingo_stratum109.BlockWithAddons<{
5
- explanations: string[];
4
+ declare const blockESLint: bingo_stratum10.BlockWithAddons<{
5
+ ignores: string[];
6
6
  extensions: {
7
7
  files: string[];
8
+ plugins?: Record<string, string> | undefined;
9
+ settings?: Record<string, unknown> | undefined;
8
10
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
9
11
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
10
12
  comment?: string | undefined;
@@ -12,10 +14,7 @@ declare const blockESLint: bingo_stratum109.BlockWithAddons<{
12
14
  extends?: string[] | undefined;
13
15
  languageOptions?: unknown;
14
16
  linterOptions?: unknown;
15
- plugins?: Record<string, string> | undefined;
16
- settings?: Record<string, unknown> | undefined;
17
17
  }[];
18
- ignores: string[];
19
18
  imports: {
20
19
  source: string | {
21
20
  version: string;
@@ -24,6 +23,7 @@ declare const blockESLint: bingo_stratum109.BlockWithAddons<{
24
23
  specifier: string;
25
24
  types?: boolean | undefined;
26
25
  }[];
26
+ explanations: string[];
27
27
  beforeLint?: string | undefined;
28
28
  }, {
29
29
  access: "public" | "restricted";
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLint.d.ts","names":[],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":[],"mappings":";;;cA2Ba,8BAAW;;;IAAX,KAAA,EAAA,MA6OX,EAAA;;;;;;;;;;;;;kBA7OsB,GAAA;MAAA,OAAA,EAAA,MAAA"}
1
+ {"version":3,"file":"blockESLint.d.ts","names":[],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":[],"mappings":";;;cA2Ba,6BAAW;;;IAAX,KAAA,EAAA,MA6OX,EAAA;;;;;;;;;;;;;aA7OsB,EAAA,MAAA;MAAA,WAAA,EAAA,MAAA"}
@@ -37,7 +37,7 @@ const blockESLint = base.createBlock({
37
37
  const explanation = explanations.length > 0 ? `${explanations.map((explanation$1) => `/*\n${explanation$1}\n*/\n`).join("")}\n` : "";
38
38
  const importLines = [
39
39
  "import eslint from \"@eslint/js\";",
40
- "import { defineConfig } from \"eslint/config\";",
40
+ "import { defineConfig, globalIgnores } from \"eslint/config\";",
41
41
  "import tseslint from \"typescript-eslint\";",
42
42
  ...imports.map((packageImport) => `import ${packageImport.specifier} from "${typeof packageImport.source === "string" ? packageImport.source : packageImport.source.packageName}"`)
43
43
  ].sort((a, b) => a.replace(/.+from/, "").localeCompare(b.replace(/.+from/, "")));
@@ -114,7 +114,7 @@ Each should be shown in VS Code, and can be run manually on the command-line:
114
114
  files: { [configFileName]: `${explanation}${importLines.join("\n")}
115
115
 
116
116
  export default defineConfig(
117
- { ignores: [${ignoreLines.join(", ")}] },
117
+ globalIgnores( [${ignoreLines.join(", ")}], "Global Ignores" ),
118
118
  { linterOptions: { reportUnusedDisableDirectives: "error" } },
119
119
  ${extensionLines.join(",")}
120
120
  );` },
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLint.js","names":["explanation","parsePackageName","grouped: typeof rulesGroups"],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport sortKeys from \"sort-keys\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { blockESLintIntake } from \"./eslint/blockESLintIntake.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\nimport { mergeAllExtensions } from \"./eslint/mergeAllExtensions.js\";\nimport {\n\tExtension,\n\tExtensionRuleGroup,\n\tExtensionRules,\n\tzExtension,\n\tzPackageImport,\n} from \"./eslint/schemas.js\";\nimport { intakeFile } from \"./intake/intakeFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\texplanations: z.array(z.string()).default([]),\n\t\textensions: z.array(zExtension).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t},\n\tintake({ files }) {\n\t\tconst eslintConfigRaw = intakeFile(files, [\n\t\t\t[\"eslint.config.js\", \"eslint.config.mjs\"],\n\t\t]);\n\n\t\treturn eslintConfigRaw ? blockESLintIntake(eslintConfigRaw[0]) : undefined;\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { explanations, extensions, ignores, imports } = addons;\n\n\t\tconst configFileName =\n\t\t\toptions.type === \"commonjs\" ? \"eslint.config.mjs\" : \"eslint.config.js\";\n\n\t\tconst explanation =\n\t\t\texplanations.length > 0\n\t\t\t\t? `${explanations\n\t\t\t\t\t\t.map((explanation) => `/*\\n${explanation}\\n*/\\n`)\n\t\t\t\t\t\t.join(\"\")}\\n`\n\t\t\t\t: \"\";\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import { defineConfig } from \"eslint/config\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${typeof packageImport.source === \"string\" ? packageImport.source : packageImport.source.packageName}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = Array.from(\n\t\t\tnew Set(\n\t\t\t\t[\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores].map((ignore) =>\n\t\t\t\t\tJSON.stringify(ignore),\n\t\t\t\t),\n\t\t\t),\n\t\t).sort();\n\n\t\tconst extensionEntries = mergeAllExtensions(\n\t\t\t{\n\t\t\t\textends: [\n\t\t\t\t\t\"eslint.configs.recommended\",\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: Array.from(\n\t\t\t\t\t\t\t\tnew Set(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\"*.config.*s\",\n\t\t\t\t\t\t\t\t\t\t...(typeof options.bin === \"object\"\n\t\t\t\t\t\t\t\t\t\t\t? Object.values(options.bin)\n\t\t\t\t\t\t\t\t\t\t\t: [options.bin]),\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t\t\t.sort(),\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\t...extensions,\n\t\t\t...(options.type === \"commonjs\"\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfiles: [\"*.mjs\"],\n\t\t\t\t\t\t\tlanguageOptions: { sourceType: \"module\" },\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t);\n\n\t\tconst extensionLines = extensionEntries\n\t\t\t.sort((a, b) =>\n\t\t\t\tprocessForSort(a.files).localeCompare(processForSort(b.files)),\n\t\t\t)\n\t\t\t.map(printExtension);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\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\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\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\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: {\n\t\t\t\t\t\t\t...getPackageDependencies(\n\t\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t\t...imports\n\t\t\t\t\t\t\t\t\t.filter((imported) => typeof imported.source === \"string\")\n\t\t\t\t\t\t\t\t\t.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as {\n\t\t\t\t\t\t\t\t\t\t\tname: string;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\timports\n\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\timported,\n\t\t\t\t\t\t\t\t\t\t): imported is typeof imported & { source: object } =>\n\t\t\t\t\t\t\t\t\t\t\ttypeof imported.source === \"object\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map((imported) => [\n\t\t\t\t\t\t\t\t\t\timported.source.packageName,\n\t\t\t\t\t\t\t\t\t\timported.source.version,\n\t\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\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t[configFileName]: `${explanation}${importLines.join(\"\\n\")}\n\nexport default defineConfig(\n\t{ ignores: [${ignoreLines.join(\", \")}] },\n\t{ linterOptions: { reportUnusedDisableDirectives: \"error\" } },\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\ttransition({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveDependencies({\n\t\t\t\t\tdependencies: [\n\t\t\t\t\t\t\"@types/eslint\",\n\t\t\t\t\t\t\"@typescript-eslint/eslint-plugin\",\n\t\t\t\t\t\t\"@typescript-eslint/parser\",\n\t\t\t\t\t\t\"eslint-plugin-deprecation\",\n\t\t\t\t\t\t\"eslint-plugin-eslint-comments\",\n\t\t\t\t\t\t\"eslint-plugin-no-only-tests\",\n\t\t\t\t\t\t\"yaml-eslint-parser\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\".eslintrc*\",\n\t\t\t\t\t\t\".eslintignore\",\n\t\t\t\t\t\toptions.type === \"commonjs\"\n\t\t\t\t\t\t\t? \"eslint.config.{cjs,js}\"\n\t\t\t\t\t\t\t: \"eslint.config.{cjs,mjs}\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"eslint\", \"lint\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction groupByComment(rulesGroups: ExtensionRuleGroup[]) {\n\tconst byComment = new Map<string | undefined, ExtensionRuleGroup>();\n\tconst grouped: typeof rulesGroups = [];\n\n\tfor (const group of rulesGroups) {\n\t\tconst existing = byComment.get(group.comment);\n\n\t\tif (existing) {\n\t\t\texisting.entries = {\n\t\t\t\t...existing.entries,\n\t\t\t\t...group.entries,\n\t\t\t};\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tbyComment.set(group.comment, group);\n\t\t\tgrouped.push(group);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction printExtension(extension: Extension) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings &&\n\t\t\t`settings: ${JSON.stringify(sortKeys(extension.settings))},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: ExtensionRules) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...groupByComment(rules).flatMap((group) => [\n\t\t\tprintGroupComment(group.comment),\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction printGroupComment(comment: string | undefined) {\n\treturn comment ? `\\n\\n// ${comment.replaceAll(\"\\n\", \"\\n// \")}\\n` : \"\";\n}\n\nfunction processForSort(files: string[]) {\n\treturn files.join(\"\").replaceAll(\"{\", \"\");\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"blockESLint.js","names":["explanation","parsePackageName","grouped: typeof rulesGroups"],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport sortKeys from \"sort-keys\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { blockESLintIntake } from \"./eslint/blockESLintIntake.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\nimport { mergeAllExtensions } from \"./eslint/mergeAllExtensions.js\";\nimport {\n\tExtension,\n\tExtensionRuleGroup,\n\tExtensionRules,\n\tzExtension,\n\tzPackageImport,\n} from \"./eslint/schemas.js\";\nimport { intakeFile } from \"./intake/intakeFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\texplanations: z.array(z.string()).default([]),\n\t\textensions: z.array(zExtension).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t},\n\tintake({ files }) {\n\t\tconst eslintConfigRaw = intakeFile(files, [\n\t\t\t[\"eslint.config.js\", \"eslint.config.mjs\"],\n\t\t]);\n\n\t\treturn eslintConfigRaw ? blockESLintIntake(eslintConfigRaw[0]) : undefined;\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { explanations, extensions, ignores, imports } = addons;\n\n\t\tconst configFileName =\n\t\t\toptions.type === \"commonjs\" ? \"eslint.config.mjs\" : \"eslint.config.js\";\n\n\t\tconst explanation =\n\t\t\texplanations.length > 0\n\t\t\t\t? `${explanations\n\t\t\t\t\t\t.map((explanation) => `/*\\n${explanation}\\n*/\\n`)\n\t\t\t\t\t\t.join(\"\")}\\n`\n\t\t\t\t: \"\";\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import { defineConfig, globalIgnores } from \"eslint/config\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${typeof packageImport.source === \"string\" ? packageImport.source : packageImport.source.packageName}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = Array.from(\n\t\t\tnew Set(\n\t\t\t\t[\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores].map((ignore) =>\n\t\t\t\t\tJSON.stringify(ignore),\n\t\t\t\t),\n\t\t\t),\n\t\t).sort();\n\n\t\tconst extensionEntries = mergeAllExtensions(\n\t\t\t{\n\t\t\t\textends: [\n\t\t\t\t\t\"eslint.configs.recommended\",\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: Array.from(\n\t\t\t\t\t\t\t\tnew Set(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\"*.config.*s\",\n\t\t\t\t\t\t\t\t\t\t...(typeof options.bin === \"object\"\n\t\t\t\t\t\t\t\t\t\t\t? Object.values(options.bin)\n\t\t\t\t\t\t\t\t\t\t\t: [options.bin]),\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t\t\t.sort(),\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\t...extensions,\n\t\t\t...(options.type === \"commonjs\"\n\t\t\t\t? [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfiles: [\"*.mjs\"],\n\t\t\t\t\t\t\tlanguageOptions: { sourceType: \"module\" },\n\t\t\t\t\t\t},\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t);\n\n\t\tconst extensionLines = extensionEntries\n\t\t\t.sort((a, b) =>\n\t\t\t\tprocessForSort(a.files).localeCompare(processForSort(b.files)),\n\t\t\t)\n\t\t\t.map(printExtension);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\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\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\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\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: {\n\t\t\t\t\t\t\t...getPackageDependencies(\n\t\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t\t...imports\n\t\t\t\t\t\t\t\t\t.filter((imported) => typeof imported.source === \"string\")\n\t\t\t\t\t\t\t\t\t.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as {\n\t\t\t\t\t\t\t\t\t\t\tname: string;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\timports\n\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\timported,\n\t\t\t\t\t\t\t\t\t\t): imported is typeof imported & { source: object } =>\n\t\t\t\t\t\t\t\t\t\t\ttypeof imported.source === \"object\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map((imported) => [\n\t\t\t\t\t\t\t\t\t\timported.source.packageName,\n\t\t\t\t\t\t\t\t\t\timported.source.version,\n\t\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\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t[configFileName]: `${explanation}${importLines.join(\"\\n\")}\n\nexport default defineConfig(\n\tglobalIgnores( [${ignoreLines.join(\", \")}], \"Global Ignores\" ),\n\t{ linterOptions: { reportUnusedDisableDirectives: \"error\" } },\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\ttransition({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveDependencies({\n\t\t\t\t\tdependencies: [\n\t\t\t\t\t\t\"@types/eslint\",\n\t\t\t\t\t\t\"@typescript-eslint/eslint-plugin\",\n\t\t\t\t\t\t\"@typescript-eslint/parser\",\n\t\t\t\t\t\t\"eslint-plugin-deprecation\",\n\t\t\t\t\t\t\"eslint-plugin-eslint-comments\",\n\t\t\t\t\t\t\"eslint-plugin-no-only-tests\",\n\t\t\t\t\t\t\"yaml-eslint-parser\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\".eslintrc*\",\n\t\t\t\t\t\t\".eslintignore\",\n\t\t\t\t\t\toptions.type === \"commonjs\"\n\t\t\t\t\t\t\t? \"eslint.config.{cjs,js}\"\n\t\t\t\t\t\t\t: \"eslint.config.{cjs,mjs}\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"eslint\", \"lint\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction groupByComment(rulesGroups: ExtensionRuleGroup[]) {\n\tconst byComment = new Map<string | undefined, ExtensionRuleGroup>();\n\tconst grouped: typeof rulesGroups = [];\n\n\tfor (const group of rulesGroups) {\n\t\tconst existing = byComment.get(group.comment);\n\n\t\tif (existing) {\n\t\t\texisting.entries = {\n\t\t\t\t...existing.entries,\n\t\t\t\t...group.entries,\n\t\t\t};\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tbyComment.set(group.comment, group);\n\t\t\tgrouped.push(group);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction printExtension(extension: Extension) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings &&\n\t\t\t`settings: ${JSON.stringify(sortKeys(extension.settings))},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: ExtensionRules) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...groupByComment(rules).flatMap((group) => [\n\t\t\tprintGroupComment(group.comment),\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction printGroupComment(comment: string | undefined) {\n\treturn comment ? `\\n\\n// ${comment.replaceAll(\"\\n\", \"\\n// \")}\\n` : \"\";\n}\n\nfunction processForSort(files: string[]) {\n\treturn files.join(\"\").replaceAll(\"{\", \"\");\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum110 from "bingo-stratum";
1
+ import * as bingo_stratum11 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintComments.d.ts
4
- declare const blockESLintComments: bingo_stratum110.BlockWithoutAddons<{
4
+ declare const blockESLintComments: bingo_stratum11.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintComments.d.ts","names":[],"sources":["../../src/blocks/blockESLintComments.ts"],"sourcesContent":[],"mappings":";;;cAIa,sCAAmB;;;EAAnB,SAAA,EAAA,MAAA;;;;;;;;;;EAAmB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintComments.d.ts","names":[],"sources":["../../src/blocks/blockESLintComments.ts"],"sourcesContent":[],"mappings":";;;cAIa,qCAAmB;;;EAAnB,SAAA,EAAA,MAAA;;;;;;;;;;EAAmB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum111 from "bingo-stratum";
1
+ import * as bingo_stratum12 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintJSDoc.d.ts
4
- declare const blockESLintJSDoc: bingo_stratum111.BlockWithoutAddons<{
4
+ declare const blockESLintJSDoc: bingo_stratum12.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintJSDoc.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSDoc.ts"],"sourcesContent":[],"mappings":";;;cAIa,mCAAgB;;;EAAhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAgB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintJSDoc.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSDoc.ts"],"sourcesContent":[],"mappings":";;;cAIa,kCAAgB;;;EAAhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAgB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum1 from "bingo-stratum";
1
+ import * as bingo_stratum13 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintJSONC.d.ts
4
- declare const blockESLintJSONC: bingo_stratum1.BlockWithoutAddons<{
4
+ declare const blockESLintJSONC: bingo_stratum13.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintJSONC.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSONC.ts"],"sourcesContent":[],"mappings":";;;cAGa,iCAAgB;;;EAAhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAgB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintJSONC.d.ts","names":[],"sources":["../../src/blocks/blockESLintJSONC.ts"],"sourcesContent":[],"mappings":";;;cAGa,kCAAgB;;;EAAhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAgB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum4 from "bingo-stratum";
1
+ import * as bingo_stratum14 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintMarkdown.d.ts
4
- declare const blockESLintMarkdown: bingo_stratum4.BlockWithoutAddons<{
4
+ declare const blockESLintMarkdown: bingo_stratum14.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintMarkdown.d.ts","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":[],"mappings":";;;cAMa,oCAAmB;;;EAAnB,SAAA,EAAA,MAAA;;;;;;;;;;EAAmB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintMarkdown.d.ts","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":[],"mappings":";;;cAMa,qCAAmB;;;EAAnB,SAAA,EAAA,MAAA;;;;;;;;;;EAAmB,KAAA,EAAA"}
@@ -1,8 +1,8 @@
1
- import * as bingo_stratum5 from "bingo-stratum";
1
+ import * as bingo_stratum15 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintMoreStyling.d.ts
4
4
  declare const stylisticComment = "Stylistic concerns that don't interfere with Prettier";
5
- declare const blockESLintMoreStyling: bingo_stratum5.BlockWithoutAddons<{
5
+ declare const blockESLintMoreStyling: bingo_stratum15.BlockWithoutAddons<{
6
6
  access: "public" | "restricted";
7
7
  description: string;
8
8
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintMoreStyling.d.ts","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":[],"mappings":";;;cAIa,gBAAA;cAGA,uCAAsB;;EAHtB,WAAA,EAAA,MAAgB;EAGhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAsB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintMoreStyling.d.ts","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":[],"mappings":";;;cAIa,gBAAA;cAGA,wCAAsB;;EAHtB,WAAA,EAAA,MAAgB;EAGhB,SAAA,EAAA,MAAA;;;;;;;;;;EAAsB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum7 from "bingo-stratum";
1
+ import * as bingo_stratum16 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintNode.d.ts
4
- declare const blockESLintNode: bingo_stratum7.BlockWithoutAddons<{
4
+ declare const blockESLintNode: bingo_stratum16.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintNode.d.ts","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":[],"mappings":";;;cAIa,gCAAe;;;EAAf,SAAA,EAAA,MAAA;;;;;;;;;;EAAe,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintNode.d.ts","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":[],"mappings":";;;cAIa,iCAAe;;;EAAf,SAAA,EAAA,MAAA;;;;;;;;;;EAAe,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum6 from "bingo-stratum";
1
+ import * as bingo_stratum17 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintPackageJson.d.ts
4
- declare const blockESLintPackageJson: bingo_stratum6.BlockWithoutAddons<{
4
+ declare const blockESLintPackageJson: bingo_stratum17.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintPackageJson.d.ts","names":[],"sources":["../../src/blocks/blockESLintPackageJson.ts"],"sourcesContent":[],"mappings":";;;cAOa,uCAAsB;;;EAAtB,SAAA,EAAA,MAAA;;;;;;;;;;EAAsB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintPackageJson.d.ts","names":[],"sources":["../../src/blocks/blockESLintPackageJson.ts"],"sourcesContent":[],"mappings":";;;cAOa,wCAAsB;;;EAAtB,SAAA,EAAA,MAAA;;;;;;;;;;EAAsB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum8 from "bingo-stratum";
1
+ import * as bingo_stratum18 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintPerfectionist.d.ts
4
- declare const blockESLintPerfectionist: bingo_stratum8.BlockWithoutAddons<{
4
+ declare const blockESLintPerfectionist: bingo_stratum18.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintPerfectionist.d.ts","names":[],"sources":["../../src/blocks/blockESLintPerfectionist.ts"],"sourcesContent":[],"mappings":";;;cAIa,yCAAwB;;;EAAxB,SAAA,EAAA,MAAA;;;;;;;;;;EAAwB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintPerfectionist.d.ts","names":[],"sources":["../../src/blocks/blockESLintPerfectionist.ts"],"sourcesContent":[],"mappings":";;;cAIa,0CAAwB;;;EAAxB,SAAA,EAAA,MAAA;;;;;;;;;;EAAwB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum46 from "bingo-stratum";
1
+ import * as bingo_stratum19 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintPlugin.d.ts
4
- declare const blockESLintPlugin: bingo_stratum46.BlockWithAddons<{
4
+ declare const blockESLintPlugin: bingo_stratum19.BlockWithAddons<{
5
5
  configEmoji?: [string, string][] | undefined;
6
6
  }, {
7
7
  access: "public" | "restricted";
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum9 from "bingo-stratum";
1
+ import * as bingo_stratum26 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintRegexp.d.ts
4
- declare const blockESLintRegexp: bingo_stratum9.BlockWithoutAddons<{
4
+ declare const blockESLintRegexp: bingo_stratum26.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintRegexp.d.ts","names":[],"sources":["../../src/blocks/blockESLintRegexp.ts"],"sourcesContent":[],"mappings":";;;cAIa,kCAAiB;;;EAAjB,SAAA,EAAA,MAAA;;;;;;;;;;EAAiB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockESLintRegexp.d.ts","names":[],"sources":["../../src/blocks/blockESLintRegexp.ts"],"sourcesContent":[],"mappings":";;;cAIa,mCAAiB;;;EAAjB,SAAA,EAAA,MAAA;;;;;;;;;;EAAiB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum10 from "bingo-stratum";
1
+ import * as bingo_stratum27 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintYML.d.ts
4
- declare const blockESLintYML: bingo_stratum10.BlockWithoutAddons<{
4
+ declare const blockESLintYML: bingo_stratum27.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum12 from "bingo-stratum";
1
+ import * as bingo_stratum28 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockExampleFiles.d.ts
4
- declare const blockExampleFiles: bingo_stratum12.BlockWithAddons<{
4
+ declare const blockExampleFiles: bingo_stratum28.BlockWithAddons<{
5
5
  usage: string[];
6
6
  files: Record<string, string>;
7
7
  }, {
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum11 from "bingo-stratum";
1
+ import * as bingo_stratum1 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockFunding.d.ts
4
- declare const blockFunding: bingo_stratum11.BlockWithoutAddons<{
4
+ declare const blockFunding: bingo_stratum1.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockFunding.d.ts","names":[],"sources":["../../src/blocks/blockFunding.ts"],"sourcesContent":[],"mappings":";;;cAGa,8BAAY;;;EAAZ,SAAA,EAAA,MAcX;;;;;;;;;;EAduB,KAAA,EAAA"}
1
+ {"version":3,"file":"blockFunding.d.ts","names":[],"sources":["../../src/blocks/blockFunding.ts"],"sourcesContent":[],"mappings":";;;cAGa,6BAAY;;;EAAZ,SAAA,EAAA,MAcX;;;;;;;;;;EAduB,KAAA,EAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum13 from "bingo-stratum";
1
+ import * as bingo_stratum32 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitHubActionsCI.d.ts
4
- declare const blockGitHubActionsCI: bingo_stratum13.BlockWithAddons<{
4
+ declare const blockGitHubActionsCI: bingo_stratum32.BlockWithAddons<{
5
5
  jobs?: {
6
6
  name: string;
7
7
  steps: ({
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum14 from "bingo-stratum";
1
+ import * as bingo_stratum20 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitHubApps.d.ts
4
- declare const blockGitHubApps: bingo_stratum14.BlockWithAddons<{
4
+ declare const blockGitHubApps: bingo_stratum20.BlockWithAddons<{
5
5
  apps: {
6
6
  name: string;
7
7
  url: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum16 from "bingo-stratum";
1
+ import * as bingo_stratum21 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitHubIssueTemplates.d.ts
4
- declare const blockGitHubIssueTemplates: bingo_stratum16.BlockWithoutAddons<{
4
+ declare const blockGitHubIssueTemplates: bingo_stratum21.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -19,7 +19,7 @@ const blockGitHubIssueTemplates = base.createBlock({
19
19
  required: true
20
20
  },
21
21
  {
22
- label: "I have pulled the latest `main` branch of the repository.",
22
+ label: "I have pulled in the newest version of the project.",
23
23
  required: true
24
24
  },
25
25
  {
@@ -145,7 +145,7 @@ const blockGitHubIssueTemplates = base.createBlock({
145
145
  required: true
146
146
  },
147
147
  {
148
- label: "I have pulled the latest `main` branch of the repository.",
148
+ label: "I have pulled in the newest version of the project.",
149
149
  required: true
150
150
  },
151
151
  {