create-typescript-app 2.50.0 → 2.52.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 (444) hide show
  1. package/lib/_virtual/rolldown_runtime.js +20 -0
  2. package/lib/base.d.ts +2 -3
  3. package/lib/base.d.ts.map +1 -1
  4. package/lib/base.js +6 -12
  5. package/lib/base.js.map +1 -1
  6. package/lib/blocks/actions/resolveUses.d.ts +0 -2
  7. package/lib/blocks/actions/resolveUses.js.map +1 -1
  8. package/lib/blocks/actions/steps.d.ts +0 -2
  9. package/lib/blocks/actions/steps.d.ts.map +1 -1
  10. package/lib/blocks/actions/steps.js +2 -2
  11. package/lib/blocks/actions/steps.js.map +1 -1
  12. package/lib/blocks/bin/getPrimaryBin.d.ts +0 -2
  13. package/lib/blocks/bin/getPrimaryBin.d.ts.map +1 -1
  14. package/lib/blocks/bin/getPrimaryBin.js.map +1 -1
  15. package/lib/blocks/blockAllContributors.d.ts +2 -3
  16. package/lib/blocks/blockAllContributors.d.ts.map +1 -1
  17. package/lib/blocks/blockAllContributors.js.map +1 -1
  18. package/lib/blocks/blockAreTheTypesWrong.d.ts +2 -3
  19. package/lib/blocks/blockAreTheTypesWrong.d.ts.map +1 -1
  20. package/lib/blocks/blockAreTheTypesWrong.js.map +1 -1
  21. package/lib/blocks/blockCSpell.d.ts +2 -3
  22. package/lib/blocks/blockCSpell.d.ts.map +1 -1
  23. package/lib/blocks/blockCSpell.js +2 -2
  24. package/lib/blocks/blockCSpell.js.map +1 -1
  25. package/lib/blocks/blockCTATransitions.d.ts +2 -3
  26. package/lib/blocks/blockCTATransitions.d.ts.map +1 -1
  27. package/lib/blocks/blockCTATransitions.js.map +1 -1
  28. package/lib/blocks/blockCodecov.d.ts +2 -3
  29. package/lib/blocks/blockCodecov.d.ts.map +1 -1
  30. package/lib/blocks/blockCodecov.js +2 -2
  31. package/lib/blocks/blockCodecov.js.map +1 -1
  32. package/lib/blocks/blockContributingDocs.d.ts +2 -3
  33. package/lib/blocks/blockContributingDocs.d.ts.map +1 -1
  34. package/lib/blocks/blockContributingDocs.js.map +1 -1
  35. package/lib/blocks/blockContributorCovenant.d.ts +2 -3
  36. package/lib/blocks/blockContributorCovenant.d.ts.map +1 -1
  37. package/lib/blocks/blockContributorCovenant.js.map +1 -1
  38. package/lib/blocks/blockDevelopmentDocs.d.ts +3 -4
  39. package/lib/blocks/blockDevelopmentDocs.d.ts.map +1 -1
  40. package/lib/blocks/blockDevelopmentDocs.js.map +1 -1
  41. package/lib/blocks/blockESLint.d.ts +7 -13
  42. package/lib/blocks/blockESLint.d.ts.map +1 -1
  43. package/lib/blocks/blockESLint.js +23 -27
  44. package/lib/blocks/blockESLint.js.map +1 -1
  45. package/lib/blocks/blockESLintComments.d.ts +2 -3
  46. package/lib/blocks/blockESLintComments.d.ts.map +1 -1
  47. package/lib/blocks/blockESLintComments.js +6 -2
  48. package/lib/blocks/blockESLintComments.js.map +1 -1
  49. package/lib/blocks/blockESLintJSDoc.d.ts +2 -3
  50. package/lib/blocks/blockESLintJSDoc.d.ts.map +1 -1
  51. package/lib/blocks/blockESLintJSDoc.js +10 -6
  52. package/lib/blocks/blockESLintJSDoc.js.map +1 -1
  53. package/lib/blocks/blockESLintJSONC.d.ts +2 -3
  54. package/lib/blocks/blockESLintJSONC.d.ts.map +1 -1
  55. package/lib/blocks/blockESLintJSONC.js +4 -1
  56. package/lib/blocks/blockESLintJSONC.js.map +1 -1
  57. package/lib/blocks/blockESLintMarkdown.d.ts +2 -3
  58. package/lib/blocks/blockESLintMarkdown.d.ts.map +1 -1
  59. package/lib/blocks/blockESLintMarkdown.js +4 -1
  60. package/lib/blocks/blockESLintMarkdown.js.map +1 -1
  61. package/lib/blocks/blockESLintMoreStyling.d.ts +2 -3
  62. package/lib/blocks/blockESLintMoreStyling.d.ts.map +1 -1
  63. package/lib/blocks/blockESLintMoreStyling.js +17 -13
  64. package/lib/blocks/blockESLintMoreStyling.js.map +1 -1
  65. package/lib/blocks/blockESLintNode.d.ts +2 -3
  66. package/lib/blocks/blockESLintNode.d.ts.map +1 -1
  67. package/lib/blocks/blockESLintNode.js +6 -2
  68. package/lib/blocks/blockESLintNode.js.map +1 -1
  69. package/lib/blocks/blockESLintPackageJson.d.ts +2 -3
  70. package/lib/blocks/blockESLintPackageJson.d.ts.map +1 -1
  71. package/lib/blocks/blockESLintPackageJson.js +4 -1
  72. package/lib/blocks/blockESLintPackageJson.js.map +1 -1
  73. package/lib/blocks/blockESLintPerfectionist.d.ts +2 -3
  74. package/lib/blocks/blockESLintPerfectionist.d.ts.map +1 -1
  75. package/lib/blocks/blockESLintPerfectionist.js +11 -7
  76. package/lib/blocks/blockESLintPerfectionist.js.map +1 -1
  77. package/lib/blocks/blockESLintPlugin.d.ts +2 -3
  78. package/lib/blocks/blockESLintPlugin.d.ts.map +1 -1
  79. package/lib/blocks/blockESLintPlugin.js +5 -1
  80. package/lib/blocks/blockESLintPlugin.js.map +1 -1
  81. package/lib/blocks/blockESLintRegexp.d.ts +2 -3
  82. package/lib/blocks/blockESLintRegexp.d.ts.map +1 -1
  83. package/lib/blocks/blockESLintRegexp.js +6 -2
  84. package/lib/blocks/blockESLintRegexp.js.map +1 -1
  85. package/lib/blocks/blockESLintYML.d.ts +2 -3
  86. package/lib/blocks/blockESLintYML.d.ts.map +1 -1
  87. package/lib/blocks/blockESLintYML.js.map +1 -1
  88. package/lib/blocks/blockExampleFiles.d.ts +2 -3
  89. package/lib/blocks/blockExampleFiles.d.ts.map +1 -1
  90. package/lib/blocks/blockExampleFiles.js.map +1 -1
  91. package/lib/blocks/blockFunding.d.ts +2 -3
  92. package/lib/blocks/blockFunding.d.ts.map +1 -1
  93. package/lib/blocks/blockFunding.js.map +1 -1
  94. package/lib/blocks/blockGitHubActionsCI.d.ts +3 -4
  95. package/lib/blocks/blockGitHubActionsCI.d.ts.map +1 -1
  96. package/lib/blocks/blockGitHubActionsCI.js +3 -3
  97. package/lib/blocks/blockGitHubActionsCI.js.map +1 -1
  98. package/lib/blocks/blockGitHubApps.d.ts +2 -3
  99. package/lib/blocks/blockGitHubApps.d.ts.map +1 -1
  100. package/lib/blocks/blockGitHubApps.js.map +1 -1
  101. package/lib/blocks/blockGitHubIssueTemplates.d.ts +2 -3
  102. package/lib/blocks/blockGitHubIssueTemplates.d.ts.map +1 -1
  103. package/lib/blocks/blockGitHubIssueTemplates.js.map +1 -1
  104. package/lib/blocks/blockGitHubPRTemplate.d.ts +2 -3
  105. package/lib/blocks/blockGitHubPRTemplate.d.ts.map +1 -1
  106. package/lib/blocks/blockGitHubPRTemplate.js.map +1 -1
  107. package/lib/blocks/blockGitignore.d.ts +2 -3
  108. package/lib/blocks/blockGitignore.d.ts.map +1 -1
  109. package/lib/blocks/blockGitignore.js.map +1 -1
  110. package/lib/blocks/blockKnip.d.ts +2 -3
  111. package/lib/blocks/blockKnip.d.ts.map +1 -1
  112. package/lib/blocks/blockKnip.js +1 -1
  113. package/lib/blocks/blockKnip.js.map +1 -1
  114. package/lib/blocks/blockMITLicense.d.ts +2 -3
  115. package/lib/blocks/blockMITLicense.d.ts.map +1 -1
  116. package/lib/blocks/blockMITLicense.js +1 -4
  117. package/lib/blocks/blockMITLicense.js.map +1 -1
  118. package/lib/blocks/blockMain.d.ts +2 -3
  119. package/lib/blocks/blockMain.d.ts.map +1 -1
  120. package/lib/blocks/blockMain.js.map +1 -1
  121. package/lib/blocks/blockMarkdownlint.d.ts +2 -3
  122. package/lib/blocks/blockMarkdownlint.d.ts.map +1 -1
  123. package/lib/blocks/blockMarkdownlint.js +3 -2
  124. package/lib/blocks/blockMarkdownlint.js.map +1 -1
  125. package/lib/blocks/blockNcc.d.ts +2 -3
  126. package/lib/blocks/blockNcc.d.ts.map +1 -1
  127. package/lib/blocks/blockNcc.js.map +1 -1
  128. package/lib/blocks/blockNvmrc.d.ts +2 -3
  129. package/lib/blocks/blockNvmrc.d.ts.map +1 -1
  130. package/lib/blocks/blockNvmrc.js.map +1 -1
  131. package/lib/blocks/blockOctoGuide.d.ts +2 -3
  132. package/lib/blocks/blockOctoGuide.d.ts.map +1 -1
  133. package/lib/blocks/blockOctoGuide.js +2 -2
  134. package/lib/blocks/blockOctoGuide.js.map +1 -1
  135. package/lib/blocks/blockOctoGuideStrict.d.ts +2 -3
  136. package/lib/blocks/blockOctoGuideStrict.d.ts.map +1 -1
  137. package/lib/blocks/blockOctoGuideStrict.js.map +1 -1
  138. package/lib/blocks/blockPackageJson.d.ts +10 -11
  139. package/lib/blocks/blockPackageJson.d.ts.map +1 -1
  140. package/lib/blocks/blockPackageJson.js +2 -8
  141. package/lib/blocks/blockPackageJson.js.map +1 -1
  142. package/lib/blocks/blockPnpmDedupe.d.ts +2 -3
  143. package/lib/blocks/blockPnpmDedupe.d.ts.map +1 -1
  144. package/lib/blocks/blockPnpmDedupe.js.map +1 -1
  145. package/lib/blocks/blockPrettier.d.ts +3 -4
  146. package/lib/blocks/blockPrettier.d.ts.map +1 -1
  147. package/lib/blocks/blockPrettier.js.map +1 -1
  148. package/lib/blocks/blockPrettierPluginCurly.d.ts +2 -3
  149. package/lib/blocks/blockPrettierPluginCurly.d.ts.map +1 -1
  150. package/lib/blocks/blockPrettierPluginCurly.js.map +1 -1
  151. package/lib/blocks/blockPrettierPluginPackageJson.d.ts +2 -3
  152. package/lib/blocks/blockPrettierPluginPackageJson.d.ts.map +1 -1
  153. package/lib/blocks/blockPrettierPluginPackageJson.js.map +1 -1
  154. package/lib/blocks/blockPrettierPluginSentencesPerLine.d.ts +2 -3
  155. package/lib/blocks/blockPrettierPluginSentencesPerLine.d.ts.map +1 -1
  156. package/lib/blocks/blockPrettierPluginSentencesPerLine.js.map +1 -1
  157. package/lib/blocks/blockPrettierPluginSh.d.ts +2 -3
  158. package/lib/blocks/blockPrettierPluginSh.d.ts.map +1 -1
  159. package/lib/blocks/blockPrettierPluginSh.js.map +1 -1
  160. package/lib/blocks/blockREADME.d.ts +3 -4
  161. package/lib/blocks/blockREADME.d.ts.map +1 -1
  162. package/lib/blocks/blockREADME.js +1 -2
  163. package/lib/blocks/blockREADME.js.map +1 -1
  164. package/lib/blocks/blockReleaseIt.d.ts +2 -3
  165. package/lib/blocks/blockReleaseIt.d.ts.map +1 -1
  166. package/lib/blocks/blockReleaseIt.js.map +1 -1
  167. package/lib/blocks/blockRemoveDependencies.d.ts +2 -3
  168. package/lib/blocks/blockRemoveDependencies.d.ts.map +1 -1
  169. package/lib/blocks/blockRemoveDependencies.js.map +1 -1
  170. package/lib/blocks/blockRemoveFiles.d.ts +2 -3
  171. package/lib/blocks/blockRemoveFiles.d.ts.map +1 -1
  172. package/lib/blocks/blockRemoveFiles.js.map +1 -1
  173. package/lib/blocks/blockRemoveWorkflows.d.ts +2 -3
  174. package/lib/blocks/blockRemoveWorkflows.d.ts.map +1 -1
  175. package/lib/blocks/blockRemoveWorkflows.js.map +1 -1
  176. package/lib/blocks/blockRenovate.d.ts +2 -3
  177. package/lib/blocks/blockRenovate.d.ts.map +1 -1
  178. package/lib/blocks/blockRenovate.js.map +1 -1
  179. package/lib/blocks/blockRepositoryBranchRuleset.d.ts +2 -3
  180. package/lib/blocks/blockRepositoryBranchRuleset.d.ts.map +1 -1
  181. package/lib/blocks/blockRepositoryBranchRuleset.js.map +1 -1
  182. package/lib/blocks/blockRepositoryLabels.d.ts +2 -3
  183. package/lib/blocks/blockRepositoryLabels.d.ts.map +1 -1
  184. package/lib/blocks/blockRepositoryLabels.js.map +1 -1
  185. package/lib/blocks/blockRepositorySecrets.d.ts +2 -3
  186. package/lib/blocks/blockRepositorySecrets.d.ts.map +1 -1
  187. package/lib/blocks/blockRepositorySecrets.js.map +1 -1
  188. package/lib/blocks/blockRepositorySettings.d.ts +2 -3
  189. package/lib/blocks/blockRepositorySettings.d.ts.map +1 -1
  190. package/lib/blocks/blockRepositorySettings.js +1 -2
  191. package/lib/blocks/blockRepositorySettings.js.map +1 -1
  192. package/lib/blocks/blockSecurityDocs.d.ts +2 -3
  193. package/lib/blocks/blockSecurityDocs.d.ts.map +1 -1
  194. package/lib/blocks/blockSecurityDocs.js.map +1 -1
  195. package/lib/blocks/blockTSDown.d.ts +2 -3
  196. package/lib/blocks/blockTSDown.d.ts.map +1 -1
  197. package/lib/blocks/blockTSDown.js +3 -2
  198. package/lib/blocks/blockTSDown.js.map +1 -1
  199. package/lib/blocks/blockTemplatedWith.d.ts +2 -3
  200. package/lib/blocks/blockTemplatedWith.d.ts.map +1 -1
  201. package/lib/blocks/blockTemplatedWith.js.map +1 -1
  202. package/lib/blocks/blockTypeScript.d.ts +2 -3
  203. package/lib/blocks/blockTypeScript.d.ts.map +1 -1
  204. package/lib/blocks/blockTypeScript.js +1 -1
  205. package/lib/blocks/blockTypeScript.js.map +1 -1
  206. package/lib/blocks/blockVSCode.d.ts +2 -3
  207. package/lib/blocks/blockVSCode.d.ts.map +1 -1
  208. package/lib/blocks/blockVSCode.js.map +1 -1
  209. package/lib/blocks/blockVitest.d.ts +2 -3
  210. package/lib/blocks/blockVitest.d.ts.map +1 -1
  211. package/lib/blocks/blockVitest.js +5 -5
  212. package/lib/blocks/blockVitest.js.map +1 -1
  213. package/lib/blocks/blockWebExt.d.ts +2 -3
  214. package/lib/blocks/blockWebExt.d.ts.map +1 -1
  215. package/lib/blocks/blockWebExt.js.map +1 -1
  216. package/lib/blocks/eslint/blockESLintIntake.d.ts +0 -1
  217. package/lib/blocks/eslint/blockESLintIntake.js +11 -13
  218. package/lib/blocks/eslint/blockESLintIntake.js.map +1 -1
  219. package/lib/blocks/eslint/blockESLintPluginIntake.d.ts +0 -1
  220. package/lib/blocks/eslint/blockESLintPluginIntake.js +3 -3
  221. package/lib/blocks/eslint/blockESLintPluginIntake.js.map +1 -1
  222. package/lib/blocks/eslint/getScriptFileExtension.d.ts +8 -0
  223. package/lib/blocks/eslint/getScriptFileExtension.d.ts.map +1 -0
  224. package/lib/blocks/eslint/getScriptFileExtension.js +8 -0
  225. package/lib/blocks/eslint/getScriptFileExtension.js.map +1 -0
  226. package/lib/blocks/eslint/mergeAllExtensions.d.ts +18 -0
  227. package/lib/blocks/eslint/mergeAllExtensions.d.ts.map +1 -0
  228. package/lib/blocks/eslint/mergeAllExtensions.js +48 -0
  229. package/lib/blocks/eslint/mergeAllExtensions.js.map +1 -0
  230. package/lib/blocks/eslint/schemas.d.ts +23 -12
  231. package/lib/blocks/eslint/schemas.d.ts.map +1 -1
  232. package/lib/blocks/eslint/schemas.js +5 -3
  233. package/lib/blocks/eslint/schemas.js.map +1 -1
  234. package/lib/blocks/files/createJobName.d.ts +0 -2
  235. package/lib/blocks/files/createJobName.d.ts.map +1 -1
  236. package/lib/blocks/files/createJobName.js.map +1 -1
  237. package/lib/blocks/files/createMultiWorkflowFile.d.ts +0 -2
  238. package/lib/blocks/files/createMultiWorkflowFile.d.ts.map +1 -1
  239. package/lib/blocks/files/createMultiWorkflowFile.js.map +1 -1
  240. package/lib/blocks/files/createSoloWorkflowFile.d.ts.map +1 -1
  241. package/lib/blocks/files/createSoloWorkflowFile.js +1 -1
  242. package/lib/blocks/files/createSoloWorkflowFile.js.map +1 -1
  243. package/lib/blocks/files/formatIgnoreFile.d.ts +0 -2
  244. package/lib/blocks/files/formatIgnoreFile.d.ts.map +1 -1
  245. package/lib/blocks/files/formatIgnoreFile.js.map +1 -1
  246. package/lib/blocks/files/formatWorkflowYaml.d.ts +0 -2
  247. package/lib/blocks/files/formatWorkflowYaml.d.ts.map +1 -1
  248. package/lib/blocks/files/formatWorkflowYaml.js.map +1 -1
  249. package/lib/blocks/files/formatYaml.d.ts +0 -2
  250. package/lib/blocks/files/formatYaml.d.ts.map +1 -1
  251. package/lib/blocks/files/formatYaml.js.map +1 -1
  252. package/lib/blocks/files/removeUsesQuotes.d.ts +0 -2
  253. package/lib/blocks/files/removeUsesQuotes.d.ts.map +1 -1
  254. package/lib/blocks/files/removeUsesQuotes.js.map +1 -1
  255. package/lib/blocks/getInstallationSuggestions.d.ts +0 -2
  256. package/lib/blocks/getInstallationSuggestions.d.ts.map +1 -1
  257. package/lib/blocks/getInstallationSuggestions.js.map +1 -1
  258. package/lib/blocks/index.d.ts +67 -72
  259. package/lib/blocks/index.d.ts.map +1 -1
  260. package/lib/blocks/index.js.map +1 -1
  261. package/lib/blocks/intake/intakeFile.d.ts +0 -2
  262. package/lib/blocks/intake/intakeFile.js +3 -4
  263. package/lib/blocks/intake/intakeFile.js.map +1 -1
  264. package/lib/blocks/intake/intakeFileAsJson.d.ts +0 -2
  265. package/lib/blocks/intake/intakeFileAsJson.js +1 -1
  266. package/lib/blocks/intake/intakeFileAsJson.js.map +1 -1
  267. package/lib/blocks/intake/intakeFileAsYaml.d.ts +0 -2
  268. package/lib/blocks/intake/intakeFileAsYaml.js +1 -1
  269. package/lib/blocks/intake/intakeFileAsYaml.js.map +1 -1
  270. package/lib/blocks/intake/intakeFileDefineConfig.d.ts +0 -2
  271. package/lib/blocks/intake/intakeFileDefineConfig.js +4 -4
  272. package/lib/blocks/intake/intakeFileDefineConfig.js.map +1 -1
  273. package/lib/blocks/options.fakes.d.ts +0 -1
  274. package/lib/blocks/options.fakes.js.map +1 -1
  275. package/lib/blocks/outcomeLabels.d.ts +0 -1
  276. package/lib/blocks/outcomeLabels.js.map +1 -1
  277. package/lib/blocks/phases.d.ts +0 -1
  278. package/lib/blocks/phases.js.map +1 -1
  279. package/lib/constants.d.ts +0 -1
  280. package/lib/constants.js.map +1 -1
  281. package/lib/data/contributions.d.ts +0 -2
  282. package/lib/data/contributions.d.ts.map +1 -1
  283. package/lib/data/contributions.js.map +1 -1
  284. package/lib/data/packageData.d.ts +2 -4
  285. package/lib/data/packageData.d.ts.map +1 -1
  286. package/lib/data/packageData.js +1 -2
  287. package/lib/data/packageData.js.map +1 -1
  288. package/lib/index.d.ts +72 -72
  289. package/lib/index.d.ts.map +1 -1
  290. package/lib/index.js.map +1 -1
  291. package/lib/inputs/inputFromDirectory.d.ts +2 -4
  292. package/lib/inputs/inputFromDirectory.d.ts.map +1 -1
  293. package/lib/inputs/inputFromDirectory.js.map +1 -1
  294. package/lib/inputs/inputFromOctokit.d.ts +2 -4
  295. package/lib/inputs/inputFromOctokit.d.ts.map +1 -1
  296. package/lib/inputs/inputFromOctokit.js +4 -4
  297. package/lib/inputs/inputFromOctokit.js.map +1 -1
  298. package/lib/options/readAccess.d.ts +0 -2
  299. package/lib/options/readAccess.js.map +1 -1
  300. package/lib/options/readAllContributors.d.ts +0 -2
  301. package/lib/options/readAllContributors.js.map +1 -1
  302. package/lib/options/readAuthor.d.ts +0 -2
  303. package/lib/options/readAuthor.js.map +1 -1
  304. package/lib/options/readBin.d.ts +0 -2
  305. package/lib/options/readBin.js.map +1 -1
  306. package/lib/options/readDescription.d.ts +0 -2
  307. package/lib/options/readDescription.js +3 -4
  308. package/lib/options/readDescription.js.map +1 -1
  309. package/lib/options/readDescriptionFromReadme.d.ts +0 -2
  310. package/lib/options/readDescriptionFromReadme.d.ts.map +1 -1
  311. package/lib/options/readDescriptionFromReadme.js +2 -2
  312. package/lib/options/readDescriptionFromReadme.js.map +1 -1
  313. package/lib/options/readDevelopmentDocumentation.d.ts +0 -2
  314. package/lib/options/readDevelopmentDocumentation.js +1 -1
  315. package/lib/options/readDevelopmentDocumentation.js.map +1 -1
  316. package/lib/options/readDocumentation.d.ts +0 -2
  317. package/lib/options/readDocumentation.js.map +1 -1
  318. package/lib/options/readEmailFromCodeOfConduct.d.ts +0 -2
  319. package/lib/options/readEmailFromCodeOfConduct.js.map +1 -1
  320. package/lib/options/readEmailFromGit.d.ts +0 -2
  321. package/lib/options/readEmailFromGit.js.map +1 -1
  322. package/lib/options/readEmailFromNpm.d.ts +0 -2
  323. package/lib/options/readEmailFromNpm.js.map +1 -1
  324. package/lib/options/readEmails.d.ts +0 -2
  325. package/lib/options/readEmails.d.ts.map +1 -1
  326. package/lib/options/readEmails.js.map +1 -1
  327. package/lib/options/readEmoji.d.ts +0 -2
  328. package/lib/options/readEmoji.d.ts.map +1 -1
  329. package/lib/options/readEmoji.js.map +1 -1
  330. package/lib/options/readExistingLabels.d.ts +0 -2
  331. package/lib/options/readExistingLabels.d.ts.map +1 -1
  332. package/lib/options/readExistingLabels.js.map +1 -1
  333. package/lib/options/readFileAsJson.d.ts +0 -2
  334. package/lib/options/readFileAsJson.d.ts.map +1 -1
  335. package/lib/options/readFileAsJson.js.map +1 -1
  336. package/lib/options/readFileSafe.d.ts +0 -2
  337. package/lib/options/readFileSafe.d.ts.map +1 -1
  338. package/lib/options/readFileSafe.js.map +1 -1
  339. package/lib/options/readFunding.d.ts +0 -2
  340. package/lib/options/readFunding.js.map +1 -1
  341. package/lib/options/readGitDefaults.d.ts +0 -2
  342. package/lib/options/readGitDefaults.js.map +1 -1
  343. package/lib/options/readGuide.d.ts +0 -2
  344. package/lib/options/readGuide.d.ts.map +1 -1
  345. package/lib/options/readGuide.js +2 -2
  346. package/lib/options/readGuide.js.map +1 -1
  347. package/lib/options/readKeywords.d.ts +0 -2
  348. package/lib/options/readKeywords.js.map +1 -1
  349. package/lib/options/readLogo.d.ts +0 -2
  350. package/lib/options/readLogo.d.ts.map +1 -1
  351. package/lib/options/readLogo.js +4 -5
  352. package/lib/options/readLogo.js.map +1 -1
  353. package/lib/options/readLogoSizing.d.ts +0 -2
  354. package/lib/options/readLogoSizing.d.ts.map +1 -1
  355. package/lib/options/readLogoSizing.js +2 -2
  356. package/lib/options/readLogoSizing.js.map +1 -1
  357. package/lib/options/readNode.d.ts +0 -2
  358. package/lib/options/readNode.d.ts.map +1 -1
  359. package/lib/options/readNode.js.map +1 -1
  360. package/lib/options/readNpmDefaults.d.ts +2 -4
  361. package/lib/options/readNpmDefaults.d.ts.map +1 -1
  362. package/lib/options/readNpmDefaults.js.map +1 -1
  363. package/lib/options/readOwner.d.ts +0 -2
  364. package/lib/options/readOwner.js.map +1 -1
  365. package/lib/options/readPackageAuthor.d.ts +0 -2
  366. package/lib/options/readPackageAuthor.d.ts.map +1 -1
  367. package/lib/options/readPackageAuthor.js.map +1 -1
  368. package/lib/options/readPackageData.d.ts +0 -2
  369. package/lib/options/readPackageData.js.map +1 -1
  370. package/lib/options/readPnpm.d.ts +0 -2
  371. package/lib/options/readPnpm.js.map +1 -1
  372. package/lib/options/readReadmeAdditional.d.ts +0 -2
  373. package/lib/options/readReadmeAdditional.d.ts.map +1 -1
  374. package/lib/options/readReadmeAdditional.js +2 -2
  375. package/lib/options/readReadmeAdditional.js.map +1 -1
  376. package/lib/options/readReadmeExplainer.d.ts +0 -2
  377. package/lib/options/readReadmeExplainer.d.ts.map +1 -1
  378. package/lib/options/readReadmeExplainer.js +2 -3
  379. package/lib/options/readReadmeExplainer.js.map +1 -1
  380. package/lib/options/readReadmeFootnotes.d.ts +0 -2
  381. package/lib/options/readReadmeFootnotes.d.ts.map +1 -1
  382. package/lib/options/readReadmeFootnotes.js +2 -2
  383. package/lib/options/readReadmeFootnotes.js.map +1 -1
  384. package/lib/options/readReadmeUsage.d.ts +0 -2
  385. package/lib/options/readReadmeUsage.d.ts.map +1 -1
  386. package/lib/options/readReadmeUsage.js +3 -4
  387. package/lib/options/readReadmeUsage.js.map +1 -1
  388. package/lib/options/readRepository.d.ts +0 -2
  389. package/lib/options/readRepository.d.ts.map +1 -1
  390. package/lib/options/readRepository.js.map +1 -1
  391. package/lib/options/readRulesetId.d.ts +0 -2
  392. package/lib/options/readRulesetId.js +2 -3
  393. package/lib/options/readRulesetId.js.map +1 -1
  394. package/lib/options/readTitle.d.ts +0 -2
  395. package/lib/options/readTitle.d.ts.map +1 -1
  396. package/lib/options/readTitle.js.map +1 -1
  397. package/lib/options/readWords.d.ts +0 -2
  398. package/lib/options/readWords.js +1 -2
  399. package/lib/options/readWords.js.map +1 -1
  400. package/lib/options/readWorkflowsVersions.d.ts +0 -2
  401. package/lib/options/readWorkflowsVersions.js.map +1 -1
  402. package/lib/package.d.ts +144 -0
  403. package/lib/package.d.ts.map +1 -0
  404. package/lib/presets/common.d.ts +69 -70
  405. package/lib/presets/common.d.ts.map +1 -1
  406. package/lib/presets/common.js.map +1 -1
  407. package/lib/presets/everything.d.ts +69 -70
  408. package/lib/presets/everything.d.ts.map +1 -1
  409. package/lib/presets/everything.js.map +1 -1
  410. package/lib/presets/index.d.ts +203 -203
  411. package/lib/presets/index.d.ts.map +1 -1
  412. package/lib/presets/index.js.map +1 -1
  413. package/lib/presets/minimal.d.ts +69 -70
  414. package/lib/presets/minimal.d.ts.map +1 -1
  415. package/lib/presets/minimal.js.map +1 -1
  416. package/lib/schemas.d.ts +0 -2
  417. package/lib/schemas.d.ts.map +1 -1
  418. package/lib/schemas.js.map +1 -1
  419. package/lib/template.d.ts +69 -70
  420. package/lib/template.d.ts.map +1 -1
  421. package/lib/template.js.map +1 -1
  422. package/lib/types.d.ts.map +1 -1
  423. package/lib/types.js +1 -0
  424. package/lib/utils/htmlToTextSafe.d.ts +0 -2
  425. package/lib/utils/htmlToTextSafe.d.ts.map +1 -1
  426. package/lib/utils/htmlToTextSafe.js.map +1 -1
  427. package/lib/utils/resolveBin.d.ts +0 -2
  428. package/lib/utils/resolveBin.d.ts.map +1 -1
  429. package/lib/utils/resolveBin.js.map +1 -1
  430. package/lib/utils/swallowError.d.ts +0 -2
  431. package/lib/utils/swallowError.d.ts.map +1 -1
  432. package/lib/utils/swallowError.js.map +1 -1
  433. package/lib/utils/swallowErrorAsync.d.ts +0 -2
  434. package/lib/utils/swallowErrorAsync.d.ts.map +1 -1
  435. package/lib/utils/swallowErrorAsync.js +1 -1
  436. package/lib/utils/swallowErrorAsync.js.map +1 -1
  437. package/lib/utils/trimPrecedingSlash.d.ts +0 -2
  438. package/lib/utils/trimPrecedingSlash.d.ts.map +1 -1
  439. package/lib/utils/trimPrecedingSlash.js.map +1 -1
  440. package/lib/utils/tryCatch.d.ts +0 -2
  441. package/lib/utils/tryCatch.d.ts.map +1 -1
  442. package/lib/utils/tryCatch.js +1 -1
  443. package/lib/utils/tryCatch.js.map +1 -1
  444. package/package.json +51 -55
@@ -1 +1 @@
1
- {"version":3,"file":"blockVitest.d.ts","names":[],"sources":["../../src/blocks/blockVitest.ts"],"sourcesContent":[],"mappings":";;;cAyDa,+BAAW;;;IAAX,GAAA,CAAA,EAgOX,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAAA,EAAA,CAAA,EAAA,MAAA,GAAA,SAAA;IAAA,IAAA,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;;;;;;;;;;;EAhOsB,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA"}
1
+ {"version":3,"file":"blockVitest.d.ts","names":[],"sources":["../../src/blocks/blockVitest.ts"],"sourcesContent":[],"mappings":";;;cAyDa,6BAAW;;;IAAX,GAAA,CAAA,QAgOX,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;;;;;;;;;;;;EAhOsB,KAAA,EAAA,MAAA,EAAA"}
@@ -32,9 +32,9 @@ const zTest = z.object({
32
32
  }).partial();
33
33
  function intakeFromConfig(files) {
34
34
  const rawData = intakeFileDefineConfig(files, ["vitest.config.ts"]);
35
- if (typeof rawData?.test !== "object") return void 0;
35
+ if (typeof rawData?.test !== "object") return;
36
36
  const parsedData = zTest.safeParse(rawData.test).data;
37
- if (!parsedData) return void 0;
37
+ if (!parsedData) return;
38
38
  return {
39
39
  coverage: parsedData.coverage,
40
40
  environment: parsedData.environment,
@@ -85,14 +85,14 @@ Calls to \`console.log\`, \`console.warn\`, and other console methods will cause
85
85
  extensions: [{
86
86
  extends: ["vitest.configs.recommended"],
87
87
  files: ["**/*.test.*"],
88
- rules: [{ entries: { "@typescript-eslint/no-unsafe-assignment": "off" } }]
88
+ rules: [{ entries: { "@typescript-eslint/no-unsafe-assignment": "off" } }],
89
+ settings: { vitest: { typecheck: true } }
89
90
  }],
90
91
  ignores: ["coverage", "**/*.snap"],
91
92
  imports: [{
92
93
  source: "@vitest/eslint-plugin",
93
94
  specifier: "vitest"
94
- }],
95
- settings: { vitest: { typecheck: true } }
95
+ }]
96
96
  }),
97
97
  blockExampleFiles({ files: { "greet.test.ts": `import { describe, expect, it, vi } from "vitest";
98
98
 
@@ -1 +1 @@
1
- {"version":3,"file":"blockVitest.js","names":["files: IntakeDirectory"],"sources":["../../src/blocks/blockVitest.ts"],"sourcesContent":["import { IntakeDirectory } from \"bingo-fs\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { zActionStep } from \"./actions/steps.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockKnip } from \"./blockKnip.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockTSDown } from \"./blockTSDown.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { intakeFileDefineConfig } from \"./intake/intakeFileDefineConfig.js\";\n\nconst zCoverage = z.object({\n\texclude: z.array(z.string()).optional(),\n\tinclude: z.array(z.string()).optional(),\n});\n\nconst zEnvironment = z.string();\n\nconst zExclude = z.array(z.string());\n\nconst zTest = z\n\t.object({\n\t\tcoverage: zCoverage,\n\t\tenvironment: zEnvironment,\n\t\texclude: zExclude,\n\t})\n\t.partial();\n\nfunction intakeFromConfig(files: IntakeDirectory) {\n\tconst rawData = intakeFileDefineConfig(files, [\"vitest.config.ts\"]);\n\tif (typeof rawData?.test !== \"object\") {\n\t\treturn undefined;\n\t}\n\n\tconst parsedData = zTest.safeParse(rawData.test).data;\n\tif (!parsedData) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tcoverage: parsedData.coverage,\n\t\tenvironment: parsedData.environment,\n\t\texclude: parsedData.exclude,\n\t};\n}\n\nexport const blockVitest = base.createBlock({\n\tabout: {\n\t\tname: \"Vitest\",\n\t},\n\taddons: {\n\t\tactionSteps: z.array(zActionStep).default([]),\n\t\tcoverage: zCoverage.default({}),\n\t\tenvironment: zEnvironment.optional(),\n\t\texclude: zExclude.default([]),\n\t\tflags: z.array(z.string()).default([]),\n\t},\n\tintake({ files, options }) {\n\t\treturn {\n\t\t\t...intakeFromConfig(files),\n\t\t\tflags: options.packageData?.scripts?.test\n\t\t\t\t?.match(/^vitest (.+)/)?.[1]\n\t\t\t\t.split(\" \"),\n\t\t};\n\t},\n\tproduce({ addons }) {\n\t\tconst { actionSteps, coverage, environment, exclude = [] } = addons;\n\t\tconst excludeText = JSON.stringify(\n\t\t\tArray.from(new Set([\"node_modules\", ...exclude])).sort(),\n\t\t);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignorePaths: [\"coverage\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tTesting: {\n\t\t\t\t\t\t\tcontents: `\n[Vitest](https://vitest.dev) is used for tests.\nYou can run it locally on the command-line:\n\n\\`\\`\\`shell\npnpm run test\n\\`\\`\\`\n\nAdd the \\`--coverage\\` flag to compute test coverage and place reports in the \\`coverage/\\` directory:\n\n\\`\\`\\`shell\npnpm run test --coverage\n\\`\\`\\`\n\nNote that [console-fail-test](https://github.com/JoshuaKGoldberg/console-fail-test) is enabled for all test runs.\nCalls to \\`console.log\\`, \\`console.warn\\`, and other console methods will cause a test to fail.\n\n\n\t\t`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"vitest.configs.recommended\"],\n\t\t\t\t\t\t\tfiles: [\"**/*.test.*\"],\n\t\t\t\t\t\t\trules: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\t\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"off\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tignores: [\"coverage\", \"**/*.snap\"],\n\t\t\t\t\timports: [{ source: \"@vitest/eslint-plugin\", specifier: \"vitest\" }],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\tvitest: { typecheck: true },\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockExampleFiles({\n\t\t\t\t\tfiles: {\n\t\t\t\t\t\t\"greet.test.ts\": `import { describe, expect, it, vi } from \"vitest\";\n\nimport { greet } from \"./greet.js\";\n\nconst message = \"Yay, testing!\";\n\ndescribe(greet, () => {\n\tit(\"logs to the console once when message is provided as a string\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet(message);\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs to the console once when message is provided as an object\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet({ message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs once when times is not provided in an object\", () => {\n\t\tconst logger = vi.fn();\n\n\t\tgreet({ logger, message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs a specified number of times when times is provided\", () => {\n\t\tconst logger = vi.fn();\n\t\tconst times = 7;\n\n\t\tgreet({ logger, message, times });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(7);\n\t});\n});\n`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [\"/coverage\"],\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Test\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm run test --coverage\" }, ...actionSteps],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockKnip({\n\t\t\t\t\tentry: [\"src/**/*.test.*\"],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\n\t\t\t\t\t\t\t\"@vitest/coverage-v8\",\n\t\t\t\t\t\t\t\"@vitest/eslint-plugin\",\n\t\t\t\t\t\t\t\"console-fail-test\",\n\t\t\t\t\t\t\t\"vitest\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\ttest: `vitest ${addons.flags.join(\" \")}`.trim(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockPrettier({\n\t\t\t\t\tignores: [\"/coverage\"],\n\t\t\t\t}),\n\t\t\t\tblockTSDown({\n\t\t\t\t\tentry: [\"!src/**/*.test.*\"],\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\tdebuggers: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\targs: [\"run\", \"${relativeFile}\"],\n\t\t\t\t\t\t\tautoAttachChildProcesses: true,\n\t\t\t\t\t\t\tconsole: \"integratedTerminal\",\n\t\t\t\t\t\t\tname: \"Debug Current Test File\",\n\t\t\t\t\t\t\tprogram: \"${workspaceRoot}/node_modules/vitest/vitest.mjs\",\n\t\t\t\t\t\t\trequest: \"launch\",\n\t\t\t\t\t\t\tskipFiles: [\"<node_internals>/**\", \"**/node_modules/**\"],\n\t\t\t\t\t\t\tsmartStep: true,\n\t\t\t\t\t\t\ttype: \"node\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\textensions: [\"vitest.explorer\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\"vitest.config.ts\": `import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tclearMocks: true,\n\t\tcoverage: {\n\t\t\tall: true,\n\t\t\t${\n\t\t\t\tcoverage.exclude?.length\n\t\t\t\t\t? `exclude: ${JSON.stringify(coverage.exclude)},\n\t\t\t`\n\t\t\t\t\t: \"\"\n\t\t\t}include: ${JSON.stringify(coverage.include)},\n\t\t\treporter: [\"html\", \"lcov\"],\n\t\t},${\n\t\t\tenvironment\n\t\t\t\t? `\n\t\tenvironment: \"${environment}\",`\n\t\t\t\t: \"\"\n\t\t}\n\t\texclude: [${excludeText.slice(1, excludeText.length - 1)}],\n\t\tsetupFiles: [\"console-fail-test/setup\"],\n\t},\n});\n\t`,\n\t\t\t},\n\t\t};\n\t},\n\ttransition() {\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\"@vitest/coverage-istanbul\",\n\t\t\t\t\t\t\"eslint-plugin-jest\",\n\t\t\t\t\t\t\"eslint-plugin-mocha\",\n\t\t\t\t\t\t\"eslint-plugin-vitest\",\n\t\t\t\t\t\t\"jest mocha\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\".mocha*\", \"jest.config.*\", \"vitest.config.{c,j,m}*\"],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"test\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,YAAY,EAAE,OAAO;CAC1B,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACvC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;AACvC,EAAC;AAEF,MAAM,eAAe,EAAE,QAAQ;AAE/B,MAAM,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC;AAEpC,MAAM,QAAQ,EACZ,OAAO;CACP,UAAU;CACV,aAAa;CACb,SAAS;AACT,EAAC,CACD,SAAS;AAEX,SAAS,iBAAiBA,OAAwB;CACjD,MAAM,UAAU,uBAAuB,OAAO,CAAC,kBAAmB,EAAC;AACnE,YAAW,SAAS,SAAS,SAC5B;CAGD,MAAM,aAAa,MAAM,UAAU,QAAQ,KAAK,CAAC;AACjD,MAAK,WACJ;AAGD,QAAO;EACN,UAAU,WAAW;EACrB,aAAa,WAAW;EACxB,SAAS,WAAW;CACpB;AACD;AAED,MAAa,cAAc,KAAK,YAAY;CAC3C,OAAO,EACN,MAAM,SACN;CACD,QAAQ;EACP,aAAa,EAAE,MAAM,YAAY,CAAC,QAAQ,CAAE,EAAC;EAC7C,UAAU,UAAU,QAAQ,CAAE,EAAC;EAC/B,aAAa,aAAa,UAAU;EACpC,SAAS,SAAS,QAAQ,CAAE,EAAC;EAC7B,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAE,EAAC;CACtC;CACD,OAAO,EAAE,OAAO,SAAS,EAAE;AAC1B,SAAO;GACN,GAAG,iBAAiB,MAAM;GAC1B,OAAO,QAAQ,aAAa,SAAS,MAClC,MAAM,eAAe,GAAG,GACzB,MAAM,IAAI;EACZ;CACD;CACD,QAAQ,EAAE,QAAQ,EAAE;EACnB,MAAM,EAAE,aAAa,UAAU,aAAa,UAAU,CAAE,GAAE,GAAG;EAC7D,MAAM,cAAc,KAAK,UACxB,MAAM,KAAK,IAAI,IAAI,CAAC,gBAAgB,GAAG,OAAQ,GAAE,CAAC,MAAM,CACxD;AAED,SAAO;GACN,QAAQ;IACP,YAAY,EACX,aAAa,CAAC,UAAW,EACzB,EAAC;IACF,qBAAqB,EACpB,UAAU,EACT,SAAS,EACR,WAAW;;;;;;;;;;;;;;;;;;IAmBX,EACD,EACD,EAAC;IACF,YAAY;KACX,YAAY,CACX;MACC,SAAS,CAAC,4BAA6B;MACvC,OAAO,CAAC,aAAc;MACtB,OAAO,CACN,EACC,SAAS,EACR,2CAA2C,MAC3C,EACD,CACD;KACD,CACD;KACD,SAAS,CAAC,YAAY,WAAY;KAClC,SAAS,CAAC;MAAE,QAAQ;MAAyB,WAAW;KAAU,CAAC;KACnE,UAAU,EACT,QAAQ,EAAE,WAAW,KAAM,EAC3B;IACD,EAAC;IACF,kBAAkB,EACjB,OAAO,EACN,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ClB,EACD,EAAC;IACF,eAAe,EACd,SAAS,CAAC,WAAY,EACtB,EAAC;IACF,qBAAqB,EACpB,MAAM,CACL;KACC,MAAM;KACN,OAAO,CAAC,EAAE,KAAK,2BAA4B,GAAE,GAAG,WAAY;IAC5D,CACD,EACD,EAAC;IACF,UAAU,EACT,OAAO,CAAC,iBAAkB,EAC1B,EAAC;IACF,iBAAiB,EAChB,YAAY;KACX,iBAAiB,uBAChB,uBACA,yBACA,qBACA,SACA;KACD,SAAS,EACR,MAAM,CAAC,SAAS,OAAO,MAAM,KAAK,IAAI,CAAC,EAAE,MAAM,CAC/C;IACD,EACD,EAAC;IACF,cAAc,EACb,SAAS,CAAC,WAAY,EACtB,EAAC;IACF,YAAY,EACX,OAAO,CAAC,kBAAmB,EAC3B,EAAC;IACF,YAAY;KACX,WAAW,CACV;MACC,MAAM,CAAC,OAAO,iBAAkB;MAChC,0BAA0B;MAC1B,SAAS;MACT,MAAM;MACN,SAAS;MACT,SAAS;MACT,WAAW,CAAC,uBAAuB,oBAAqB;MACxD,WAAW;MACX,MAAM;KACN,CACD;KACD,YAAY,CAAC,iBAAkB;IAC/B,EAAC;GACF;GACD,OAAO,EACN,qBAAqB;;;;;;;KAQrB,SAAS,SAAS,UACd,WAAW,KAAK,UAAU,SAAS,QAAQ,CAAC;OAE7C,GACH,WAAW,KAAK,UAAU,SAAS,QAAQ,CAAC;;MAG7C,eACI;kBACW,YAAY,MACxB,GACH;cACW,YAAY,MAAM,GAAG,YAAY,SAAS,EAAE,CAAC;;;;GAKvD;EACD;CACD;CACD,aAAa;AACZ,SAAO,EACN,QAAQ;GACP,wBAAwB,EACvB,cAAc;IACb;IACA;IACA;IACA;IACA;GACA,EACD,EAAC;GACF,iBAAiB,EAChB,OAAO;IAAC;IAAW;IAAiB;GAAyB,EAC7D,EAAC;GACF,qBAAqB,EACpB,WAAW,CAAC,MAAO,EACnB,EAAC;EACF,EACD;CACD;AACD,EAAC"}
1
+ {"version":3,"file":"blockVitest.js","names":[],"sources":["../../src/blocks/blockVitest.ts"],"sourcesContent":["import { IntakeDirectory } from \"bingo-fs\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { zActionStep } from \"./actions/steps.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockKnip } from \"./blockKnip.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockTSDown } from \"./blockTSDown.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { intakeFileDefineConfig } from \"./intake/intakeFileDefineConfig.js\";\n\nconst zCoverage = z.object({\n\texclude: z.array(z.string()).optional(),\n\tinclude: z.array(z.string()).optional(),\n});\n\nconst zEnvironment = z.string();\n\nconst zExclude = z.array(z.string());\n\nconst zTest = z\n\t.object({\n\t\tcoverage: zCoverage,\n\t\tenvironment: zEnvironment,\n\t\texclude: zExclude,\n\t})\n\t.partial();\n\nfunction intakeFromConfig(files: IntakeDirectory) {\n\tconst rawData = intakeFileDefineConfig(files, [\"vitest.config.ts\"]);\n\tif (typeof rawData?.test !== \"object\") {\n\t\treturn undefined;\n\t}\n\n\tconst parsedData = zTest.safeParse(rawData.test).data;\n\tif (!parsedData) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tcoverage: parsedData.coverage,\n\t\tenvironment: parsedData.environment,\n\t\texclude: parsedData.exclude,\n\t};\n}\n\nexport const blockVitest = base.createBlock({\n\tabout: {\n\t\tname: \"Vitest\",\n\t},\n\taddons: {\n\t\tactionSteps: z.array(zActionStep).default([]),\n\t\tcoverage: zCoverage.default({}),\n\t\tenvironment: zEnvironment.optional(),\n\t\texclude: zExclude.default([]),\n\t\tflags: z.array(z.string()).default([]),\n\t},\n\tintake({ files, options }) {\n\t\treturn {\n\t\t\t...intakeFromConfig(files),\n\t\t\tflags: options.packageData?.scripts?.test\n\t\t\t\t?.match(/^vitest (.+)/)?.[1]\n\t\t\t\t.split(\" \"),\n\t\t};\n\t},\n\tproduce({ addons }) {\n\t\tconst { actionSteps, coverage, environment, exclude = [] } = addons;\n\t\tconst excludeText = JSON.stringify(\n\t\t\tArray.from(new Set([\"node_modules\", ...exclude])).sort(),\n\t\t);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignorePaths: [\"coverage\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tTesting: {\n\t\t\t\t\t\t\tcontents: `\n[Vitest](https://vitest.dev) is used for tests.\nYou can run it locally on the command-line:\n\n\\`\\`\\`shell\npnpm run test\n\\`\\`\\`\n\nAdd the \\`--coverage\\` flag to compute test coverage and place reports in the \\`coverage/\\` directory:\n\n\\`\\`\\`shell\npnpm run test --coverage\n\\`\\`\\`\n\nNote that [console-fail-test](https://github.com/JoshuaKGoldberg/console-fail-test) is enabled for all test runs.\nCalls to \\`console.log\\`, \\`console.warn\\`, and other console methods will cause a test to fail.\n\n\n\t\t`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"vitest.configs.recommended\"],\n\t\t\t\t\t\t\tfiles: [\"**/*.test.*\"],\n\t\t\t\t\t\t\trules: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\t\t\t\t\"@typescript-eslint/no-unsafe-assignment\": \"off\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\t\tvitest: { typecheck: true },\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\tignores: [\"coverage\", \"**/*.snap\"],\n\t\t\t\t\timports: [{ source: \"@vitest/eslint-plugin\", specifier: \"vitest\" }],\n\t\t\t\t}),\n\t\t\t\tblockExampleFiles({\n\t\t\t\t\tfiles: {\n\t\t\t\t\t\t\"greet.test.ts\": `import { describe, expect, it, vi } from \"vitest\";\n\nimport { greet } from \"./greet.js\";\n\nconst message = \"Yay, testing!\";\n\ndescribe(greet, () => {\n\tit(\"logs to the console once when message is provided as a string\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet(message);\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs to the console once when message is provided as an object\", () => {\n\t\tconst logger = vi.spyOn(console, \"log\").mockImplementation(() => undefined);\n\n\t\tgreet({ message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs once when times is not provided in an object\", () => {\n\t\tconst logger = vi.fn();\n\n\t\tgreet({ logger, message });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(1);\n\t});\n\n\tit(\"logs a specified number of times when times is provided\", () => {\n\t\tconst logger = vi.fn();\n\t\tconst times = 7;\n\n\t\tgreet({ logger, message, times });\n\n\t\texpect(logger).toHaveBeenCalledWith(message);\n\t\texpect(logger).toHaveBeenCalledTimes(7);\n\t});\n});\n`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [\"/coverage\"],\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Test\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm run test --coverage\" }, ...actionSteps],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockKnip({\n\t\t\t\t\tentry: [\"src/**/*.test.*\"],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\n\t\t\t\t\t\t\t\"@vitest/coverage-v8\",\n\t\t\t\t\t\t\t\"@vitest/eslint-plugin\",\n\t\t\t\t\t\t\t\"console-fail-test\",\n\t\t\t\t\t\t\t\"vitest\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\ttest: `vitest ${addons.flags.join(\" \")}`.trim(),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockPrettier({\n\t\t\t\t\tignores: [\"/coverage\"],\n\t\t\t\t}),\n\t\t\t\tblockTSDown({\n\t\t\t\t\tentry: [\"!src/**/*.test.*\"],\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\tdebuggers: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\targs: [\"run\", \"${relativeFile}\"],\n\t\t\t\t\t\t\tautoAttachChildProcesses: true,\n\t\t\t\t\t\t\tconsole: \"integratedTerminal\",\n\t\t\t\t\t\t\tname: \"Debug Current Test File\",\n\t\t\t\t\t\t\tprogram: \"${workspaceRoot}/node_modules/vitest/vitest.mjs\",\n\t\t\t\t\t\t\trequest: \"launch\",\n\t\t\t\t\t\t\tskipFiles: [\"<node_internals>/**\", \"**/node_modules/**\"],\n\t\t\t\t\t\t\tsmartStep: true,\n\t\t\t\t\t\t\ttype: \"node\",\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\textensions: [\"vitest.explorer\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\"vitest.config.ts\": `import { defineConfig } from \"vitest/config\";\n\nexport default defineConfig({\n\ttest: {\n\t\tclearMocks: true,\n\t\tcoverage: {\n\t\t\tall: true,\n\t\t\t${\n\t\t\t\tcoverage.exclude?.length\n\t\t\t\t\t? `exclude: ${JSON.stringify(coverage.exclude)},\n\t\t\t`\n\t\t\t\t\t: \"\"\n\t\t\t}include: ${JSON.stringify(coverage.include)},\n\t\t\treporter: [\"html\", \"lcov\"],\n\t\t},${\n\t\t\tenvironment\n\t\t\t\t? `\n\t\tenvironment: \"${environment}\",`\n\t\t\t\t: \"\"\n\t\t}\n\t\texclude: [${excludeText.slice(1, excludeText.length - 1)}],\n\t\tsetupFiles: [\"console-fail-test/setup\"],\n\t},\n});\n\t`,\n\t\t\t},\n\t\t};\n\t},\n\ttransition() {\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\"@vitest/coverage-istanbul\",\n\t\t\t\t\t\t\"eslint-plugin-jest\",\n\t\t\t\t\t\t\"eslint-plugin-mocha\",\n\t\t\t\t\t\t\"eslint-plugin-vitest\",\n\t\t\t\t\t\t\"jest mocha\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\".mocha*\", \"jest.config.*\", \"vitest.config.{c,j,m}*\"],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"test\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum1099 from "bingo-stratum";
1
+ import * as bingo_stratum21 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockWebExt.d.ts
4
- declare const blockWebExt: bingo_stratum1099.BlockWithoutAddons<{
4
+ declare const blockWebExt: bingo_stratum21.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -69,7 +69,6 @@ declare const blockWebExt: bingo_stratum1099.BlockWithoutAddons<{
69
69
  hash?: string | undefined;
70
70
  }>> | undefined;
71
71
  }>;
72
- //# sourceMappingURL=blockWebExt.d.ts.map
73
72
  //#endregion
74
73
  export { blockWebExt };
75
74
  //# sourceMappingURL=blockWebExt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockWebExt.d.ts","names":[],"sources":["../../src/blocks/blockWebExt.ts"],"sourcesContent":[],"mappings":";;;cASa,+BAAW;;;EAAX,SAAA,EAAA,MAgHX;EAAA,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IAhHsB,MAAA,EAAA,MAAA;;;;;;;;;;;;iBAgHtB"}
1
+ {"version":3,"file":"blockWebExt.d.ts","names":[],"sources":["../../src/blocks/blockWebExt.ts"],"sourcesContent":[],"mappings":";;;cASa,6BAAW;;;EAAX,SAAA,EAAA,MAgHX;;;;;;;;;;EAhHsB,KAAA,EAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"blockWebExt.js","names":[],"sources":["../../src/blocks/blockWebExt.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockMarkdownlint } from \"./blockMarkdownlint.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\n\nexport const blockWebExt = base.createBlock({\n\tabout: {\n\t\tname: \"Web-ext\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignorePaths: [\"assets\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tBuilding: {\n\t\t\t\t\t\t\tcontents: `\nRun [ESBuild](https://esbuild.github.io) locally to build source files:\n\n\\`\\`\\`shell\npnpm dev\n\\`\\`\\`\n\nAdd \\`--watch\\` to run the builder in a watch mode that continuously re-builds as you save files:\n\n\\`\\`\\`shell\npnpm dev --watch\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\tinnerSections: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontents: `\nFollow Google Chrome's _[Load an unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/#unpacked)_ guide to load this repository's directory as an extension locally.\n\n> ♻️ Remember to reload the extension in \\`chrome://extensions\\` whenever you make changes locally!\n`,\n\t\t\t\t\t\t\t\t\theading: \"Local Development with Chrome\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontents: `\nFollow Firefox's _[Temporary installation in Firefox](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/)_ guide to load this repository's directory as an extension locally.\n\nYou'll then need to authorize the extension to run on <https://github.com>:\n\n1. Find and select the _Extensions_ icon in the top right of Firefox\n2. Select the _\"Manage Extension\"_ gear icon next to _Refined Saved Replies_\n3. Select the _\"Always Allow on github.com\"_ option\n\n> ♻️ Remember to reload the extension in \\`about:debugging#/runtime/this-firefox\\` whenever you make changes locally!\n`,\n\t\t\t\t\t\t\t\t\theading: \"Local Development with Firefox\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontents: `\nRun [\\`web-ext\\`](https://extensionworkshop.com) to build a production-ready \\`.zip\\` under \\`./web-ext-artifacts/\\`:\n\n\\`\\`\\`shell\npnpm build\n\\`\\`\\`\n\nThen upload that \\`./web-ext-artifacts/refined_saved_replies-*.zip\\` file to:\n\n- [Chrome Web Store Developer Dashboard](https://chrome.google.com/webstore/devconsole)\n- [Firefox Add-ons Developer Hub](https://addons.mozilla.org/en-US/developers/addon/submit/distribution)\n`,\n\t\t\t\t\t\t\t\t\theading: \"Production Builds\",\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\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint:web-ext\\` ([web-ext](https://extensionworkshop.com)): Lints browser extension metadata after \\`pnpm dev\\` creates local files`,\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\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Build\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm build\" }],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint Web-ext\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm dev\" }, { run: \"pnpm lint:web-ext\" }],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [\"*.zip\", \"web-ext-artifacts\"],\n\t\t\t\t}),\n\t\t\t\tblockMarkdownlint({\n\t\t\t\t\tignores: [\"assets/\"],\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\tesbuild: \"^0.25.0\",\n\t\t\t\t\t\t\t\"web-ext\": \"^8.3.0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tbuild: \"web-ext build --overwrite-dest\",\n\t\t\t\t\t\t\tdev: \"esbuild src/content-script.ts --bundle --minify --outfile=lib/content-script.js --sourcemap\",\n\t\t\t\t\t\t\t\"lint:web-ext\": \"web-ext lint\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockPrettier({\n\t\t\t\t\tignores: [\"assets/\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;;;;;;AASA,MAAa,cAAc,KAAK,YAAY;CAC3C,OAAO,EACN,MAAM,UACN;CACD,UAAU;AACT,SAAO,EACN,QAAQ;GACP,YAAY,EACX,aAAa,CAAC,QAAS,EACvB,EAAC;GACF,qBAAqB,EACpB,UAAU;IACT,UAAU;KACT,WAAW;;;;;;;;;;;;;KAaX,eAAe;MACd;OACC,WAAW;;;;;OAKX,SAAS;MACT;MACD;OACC,WAAW;;;;;;;;;;;OAWX,SAAS;MACT;MACD;OACC,WAAW;;;;;;;;;;;;OAYX,SAAS;MACT;KACD;IACD;IACD,SAAS,EACR,UAAU,EACT,OAAO,EACL,4IACD,EACD,EACD;GACD,EACD,EAAC;GACF,qBAAqB,EACpB,MAAM,CACL;IACC,MAAM;IACN,OAAO,CAAC,EAAE,KAAK,aAAc,CAAC;GAC9B,GACD;IACC,MAAM;IACN,OAAO,CAAC,EAAE,KAAK,WAAY,GAAE,EAAE,KAAK,oBAAqB,CAAC;GAC1D,CACD,EACD,EAAC;GACF,eAAe,EACd,SAAS,CAAC,SAAS,mBAAoB,EACvC,EAAC;GACF,kBAAkB,EACjB,SAAS,CAAC,SAAU,EACpB,EAAC;GACF,iBAAiB,EAChB,YAAY;IACX,iBAAiB;KAChB,SAAS;KACT,WAAW;IACX;IACD,SAAS;KACR,OAAO;KACP,KAAK;KACL,gBAAgB;IAChB;GACD,EACD,EAAC;GACF,cAAc,EACb,SAAS,CAAC,SAAU,EACpB,EAAC;EACF,EACD;CACD;AACD,EAAC"}
1
+ {"version":3,"file":"blockWebExt.js","names":[],"sources":["../../src/blocks/blockWebExt.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockMarkdownlint } from \"./blockMarkdownlint.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\n\nexport const blockWebExt = base.createBlock({\n\tabout: {\n\t\tname: \"Web-ext\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignorePaths: [\"assets\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tBuilding: {\n\t\t\t\t\t\t\tcontents: `\nRun [ESBuild](https://esbuild.github.io) locally to build source files:\n\n\\`\\`\\`shell\npnpm dev\n\\`\\`\\`\n\nAdd \\`--watch\\` to run the builder in a watch mode that continuously re-builds as you save files:\n\n\\`\\`\\`shell\npnpm dev --watch\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\tinnerSections: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontents: `\nFollow Google Chrome's _[Load an unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/#unpacked)_ guide to load this repository's directory as an extension locally.\n\n> ♻️ Remember to reload the extension in \\`chrome://extensions\\` whenever you make changes locally!\n`,\n\t\t\t\t\t\t\t\t\theading: \"Local Development with Chrome\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontents: `\nFollow Firefox's _[Temporary installation in Firefox](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/)_ guide to load this repository's directory as an extension locally.\n\nYou'll then need to authorize the extension to run on <https://github.com>:\n\n1. Find and select the _Extensions_ icon in the top right of Firefox\n2. Select the _\"Manage Extension\"_ gear icon next to _Refined Saved Replies_\n3. Select the _\"Always Allow on github.com\"_ option\n\n> ♻️ Remember to reload the extension in \\`about:debugging#/runtime/this-firefox\\` whenever you make changes locally!\n`,\n\t\t\t\t\t\t\t\t\theading: \"Local Development with Firefox\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcontents: `\nRun [\\`web-ext\\`](https://extensionworkshop.com) to build a production-ready \\`.zip\\` under \\`./web-ext-artifacts/\\`:\n\n\\`\\`\\`shell\npnpm build\n\\`\\`\\`\n\nThen upload that \\`./web-ext-artifacts/refined_saved_replies-*.zip\\` file to:\n\n- [Chrome Web Store Developer Dashboard](https://chrome.google.com/webstore/devconsole)\n- [Firefox Add-ons Developer Hub](https://addons.mozilla.org/en-US/developers/addon/submit/distribution)\n`,\n\t\t\t\t\t\t\t\t\theading: \"Production Builds\",\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\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint:web-ext\\` ([web-ext](https://extensionworkshop.com)): Lints browser extension metadata after \\`pnpm dev\\` creates local files`,\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\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Build\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm build\" }],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint Web-ext\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm dev\" }, { run: \"pnpm lint:web-ext\" }],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [\"*.zip\", \"web-ext-artifacts\"],\n\t\t\t\t}),\n\t\t\t\tblockMarkdownlint({\n\t\t\t\t\tignores: [\"assets/\"],\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\tesbuild: \"^0.25.0\",\n\t\t\t\t\t\t\t\"web-ext\": \"^8.3.0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tbuild: \"web-ext build --overwrite-dest\",\n\t\t\t\t\t\t\tdev: \"esbuild src/content-script.ts --bundle --minify --outfile=lib/content-script.js --sourcemap\",\n\t\t\t\t\t\t\t\"lint:web-ext\": \"web-ext lint\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockPrettier({\n\t\t\t\t\tignores: [\"assets/\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;;;;;;AASA,MAAa,cAAc,KAAK,YAAY;CAC3C,OAAO,EACN,MAAM,WACN;CACD,UAAU;AACT,SAAO,EACN,QAAQ;GACP,YAAY,EACX,aAAa,CAAC,SAAS,EACvB,CAAC;GACF,qBAAqB,EACpB,UAAU;IACT,UAAU;KACT,UAAU;;;;;;;;;;;;;KAaV,eAAe;MACd;OACC,UAAU;;;;;OAKV,SAAS;OACT;MACD;OACC,UAAU;;;;;;;;;;;OAWV,SAAS;OACT;MACD;OACC,UAAU;;;;;;;;;;;;OAYV,SAAS;OACT;MACD;KACD;IACD,SAAS,EACR,UAAU,EACT,OAAO,CACN,8IACA,EACD,EACD;IACD,EACD,CAAC;GACF,qBAAqB,EACpB,MAAM,CACL;IACC,MAAM;IACN,OAAO,CAAC,EAAE,KAAK,cAAc,CAAC;IAC9B,EACD;IACC,MAAM;IACN,OAAO,CAAC,EAAE,KAAK,YAAY,EAAE,EAAE,KAAK,qBAAqB,CAAC;IAC1D,CACD,EACD,CAAC;GACF,eAAe,EACd,SAAS,CAAC,SAAS,oBAAoB,EACvC,CAAC;GACF,kBAAkB,EACjB,SAAS,CAAC,UAAU,EACpB,CAAC;GACF,iBAAiB,EAChB,YAAY;IACX,iBAAiB;KAChB,SAAS;KACT,WAAW;KACX;IACD,SAAS;KACR,OAAO;KACP,KAAK;KACL,gBAAgB;KAChB;IACD,EACD,CAAC;GACF,cAAc,EACb,SAAS,CAAC,UAAU,EACpB,CAAC;GACF,EACD;;CAEF,CAAC"}
@@ -6,7 +6,6 @@ declare function blockESLintIntake(sourceText: string): {
6
6
  comment?: string | undefined;
7
7
  }[];
8
8
  } | undefined;
9
- //# sourceMappingURL=blockESLintIntake.d.ts.map
10
9
  //#endregion
11
10
  export { blockESLintIntake };
12
11
  //# sourceMappingURL=blockESLintIntake.d.ts.map
@@ -6,21 +6,20 @@ import { AST_NODE_TYPES, parse } from "@typescript-eslint/typescript-estree";
6
6
 
7
7
  //#region src/blocks/eslint/blockESLintIntake.ts
8
8
  function blockESLintIntake(sourceText) {
9
- const ast = tryCatch(() => parse(sourceText, {
9
+ const configExport = tryCatch(() => parse(sourceText, {
10
10
  comment: true,
11
11
  loc: true,
12
12
  range: true
13
- }));
14
- const configExport = ast?.body.find(nodeIsConfigExport);
15
- if (!configExport) return void 0;
13
+ }))?.body.find(nodeIsConfigExport);
14
+ if (!configExport) return;
16
15
  const configArguments = configExport.declaration.arguments;
17
- if (configArguments.length < 2) return void 0;
16
+ if (configArguments.length < 2) return;
18
17
  const ignores = getConfigIgnores(configArguments[0]);
19
- if (!ignores) return void 0;
18
+ if (!ignores) return;
20
19
  const rulesObject = getConfigRulesObject(configArguments.slice(1));
21
- if (!rulesObject) return void 0;
20
+ if (!rulesObject) return;
22
21
  const rules = collectRulesObjectGroups(sourceText, rulesObject);
23
- if (!rules) return void 0;
22
+ if (!rules) return;
24
23
  return {
25
24
  ignores,
26
25
  rules
@@ -31,7 +30,7 @@ function blockESLintIntake(sourceText) {
31
30
  return true;
32
31
  }
33
32
  function collectRuleFromProperty(property) {
34
- if (property.type !== AST_NODE_TYPES.Property || property.key.type !== AST_NODE_TYPES.Literal || typeof property.key.value !== "string") return void 0;
33
+ if (property.type !== AST_NODE_TYPES.Property || property.key.type !== AST_NODE_TYPES.Literal || typeof property.key.value !== "string") return;
35
34
  const name = property.key.value;
36
35
  const { data } = zRuleOptions.safeParse(JSON5.parse(sourceText.slice(...property.value.range)));
37
36
  return data && {
@@ -44,11 +43,10 @@ function blockESLintIntake(sourceText) {
44
43
  let currentGroup;
45
44
  const groups = [];
46
45
  for (const property of rulesObject$1.properties) {
47
- const precedingText = sourceText$1.slice((previousNode?.range[1] ?? rulesObject$1.range[0]) + 1, property.range[0]);
48
- const comment = precedingText.replaceAll(/\/\/ ?|\t\s*/g, "").trim() || void 0;
46
+ const comment = sourceText$1.slice((previousNode?.range[1] ?? rulesObject$1.range[0]) + 1, property.range[0]).replaceAll(/\/\/ ?|\t\s*/g, "").trim() || void 0;
49
47
  if (comment === stylisticComment) break;
50
48
  const rule = collectRuleFromProperty(property);
51
- if (!rule) return void 0;
49
+ if (!rule) return;
52
50
  if (!currentGroup || comment) {
53
51
  currentGroup = {
54
52
  comment,
@@ -72,7 +70,7 @@ function blockESLintIntake(sourceText) {
72
70
  "rules",
73
71
  "settings"
74
72
  ]));
75
- if (!configObject) return void 0;
73
+ if (!configObject) return;
76
74
  const rulesObject$1 = configObject.properties[3];
77
75
  return rulesObject$1.type === AST_NODE_TYPES.Property && rulesObject$1.value.type === AST_NODE_TYPES.ObjectExpression && rulesObject$1.value;
78
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintIntake.js","names":["sourceText: string","a: T[]","b: T[]","property: TSESTree.ObjectLiteralElement","rulesObject: TSESTree.ObjectExpression","previousNode: TSESTree.Node | undefined","currentGroup: ExtensionRuleGroup | undefined","groups: ExtensionRuleGroup[]","rulesObject","node: TSESTree.Node","nodes: TSESTree.Node[]"],"sources":["../../../src/blocks/eslint/blockESLintIntake.ts"],"sourcesContent":["import {\n\tAST_NODE_TYPES,\n\tparse as parseAST,\n\tTSESTree,\n} from \"@typescript-eslint/typescript-estree\";\nimport JSON5 from \"json5\";\n\nimport { tryCatch } from \"../../utils/tryCatch.js\";\nimport { stylisticComment } from \"../blockESLintMoreStyling.js\";\nimport { type ExtensionRuleGroup, zRuleOptions } from \"./schemas.js\";\n\ntype ConfigExport = TSESTree.ExportDefaultDeclaration & {\n\tdeclaration: TSESTree.CallExpression;\n};\n\nexport function blockESLintIntake(sourceText: string) {\n\tconst ast = tryCatch(() =>\n\t\tparseAST(sourceText, {\n\t\t\tcomment: true,\n\t\t\tloc: true,\n\t\t\trange: true,\n\t\t}),\n\t);\n\tconst configExport = ast?.body.find(nodeIsConfigExport);\n\tif (!configExport) {\n\t\treturn undefined;\n\t}\n\n\tconst configArguments = configExport.declaration.arguments;\n\tif (configArguments.length < 2) {\n\t\treturn undefined;\n\t}\n\n\tconst ignores = getConfigIgnores(configArguments[0]);\n\tif (!ignores) {\n\t\treturn undefined;\n\t}\n\n\tconst rulesObject = getConfigRulesObject(configArguments.slice(1));\n\tif (!rulesObject) {\n\t\treturn undefined;\n\t}\n\n\tconst rules = collectRulesObjectGroups(sourceText, rulesObject);\n\tif (!rules) {\n\t\treturn undefined;\n\t}\n\n\treturn { ignores, rules };\n\n\tfunction areArraysEqual<T>(a: T[], b: T[]) {\n\t\tif (a.length !== b.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (a[i] !== b[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction collectRuleFromProperty(property: TSESTree.ObjectLiteralElement) {\n\t\tif (\n\t\t\tproperty.type !== AST_NODE_TYPES.Property ||\n\t\t\tproperty.key.type !== AST_NODE_TYPES.Literal ||\n\t\t\ttypeof property.key.value !== \"string\"\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst name = property.key.value;\n\n\t\tconst { data } = zRuleOptions.safeParse(\n\t\t\tJSON5.parse(sourceText.slice(...property.value.range)),\n\t\t);\n\n\t\treturn data && { entry: data, name };\n\t}\n\n\tfunction collectRulesObjectGroups(\n\t\tsourceText: string,\n\t\trulesObject: TSESTree.ObjectExpression,\n\t) {\n\t\tlet previousNode: TSESTree.Node | undefined;\n\t\tlet currentGroup: ExtensionRuleGroup | undefined;\n\t\tconst groups: ExtensionRuleGroup[] = [];\n\n\t\tfor (const property of rulesObject.properties) {\n\t\t\tconst precedingText = sourceText.slice(\n\t\t\t\t(previousNode?.range[1] ?? rulesObject.range[0]) + 1,\n\t\t\t\tproperty.range[0],\n\t\t\t);\n\t\t\tconst comment =\n\t\t\t\tprecedingText.replaceAll(/\\/\\/ ?|\\t\\s*/g, \"\").trim() || undefined;\n\n\t\t\t// blockESLintMoreStyling's comment always gets pushed to the end.\n\t\t\tif (comment === stylisticComment) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst rule = collectRuleFromProperty(property);\n\t\t\tif (!rule) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tif (!currentGroup || comment) {\n\t\t\t\tcurrentGroup = { comment, entries: {} };\n\t\t\t\tgroups.push(currentGroup);\n\t\t\t}\n\n\t\t\tcurrentGroup.entries[rule.name] = rule.entry;\n\t\t\tpreviousNode = property;\n\t\t}\n\n\t\treturn groups;\n\t}\n\n\tfunction getConfigIgnores(node: TSESTree.Node) {\n\t\treturn (\n\t\t\tnode.type === AST_NODE_TYPES.ObjectExpression &&\n\t\t\tnode.properties.length === 1 &&\n\t\t\tnode.properties[0].type === AST_NODE_TYPES.Property &&\n\t\t\tnode.properties[0].key.type === AST_NODE_TYPES.Identifier &&\n\t\t\tnode.properties[0].key.name === \"ignores\" &&\n\t\t\tnode.properties[0].value.type === AST_NODE_TYPES.ArrayExpression &&\n\t\t\tnode.properties[0].value.elements.every(\n\t\t\t\t(element): element is TSESTree.Literal & { value: string } =>\n\t\t\t\t\telement?.type === AST_NODE_TYPES.Literal &&\n\t\t\t\t\ttypeof element.value === \"string\",\n\t\t\t) &&\n\t\t\tnode.properties[0].value.elements.map(\n\t\t\t\t(element) => element.value as string,\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction getConfigRulesObject(nodes: TSESTree.Node[]) {\n\t\tconst configObject = nodes.find(\n\t\t\t(node): node is TSESTree.ObjectExpression =>\n\t\t\t\tnode.type === AST_NODE_TYPES.ObjectExpression &&\n\t\t\t\tareArraysEqual(\n\t\t\t\t\tnode.properties.map((property) =>\n\t\t\t\t\t\tproperty.type === AST_NODE_TYPES.Property &&\n\t\t\t\t\t\tproperty.key.type === AST_NODE_TYPES.Identifier\n\t\t\t\t\t\t\t? property.key.name\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t),\n\t\t\t\t\t[\"extends\", \"files\", \"languageOptions\", \"rules\", \"settings\"],\n\t\t\t\t),\n\t\t);\n\t\tif (!configObject) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst rulesObject = configObject.properties[3];\n\t\treturn (\n\t\t\trulesObject.type === AST_NODE_TYPES.Property &&\n\t\t\trulesObject.value.type === AST_NODE_TYPES.ObjectExpression &&\n\t\t\trulesObject.value\n\t\t);\n\t}\n\n\tfunction nodeIsConfigExport(node: TSESTree.Node): node is ConfigExport {\n\t\treturn (\n\t\t\tnode.type === AST_NODE_TYPES.ExportDefaultDeclaration &&\n\t\t\tnode.declaration.type === AST_NODE_TYPES.CallExpression &&\n\t\t\tnodeIsConfigFunction(node.declaration.callee)\n\t\t);\n\t}\n\n\tfunction nodeIsConfigFunction(node: TSESTree.Node) {\n\t\treturn (\n\t\t\tnode.type === AST_NODE_TYPES.MemberExpression &&\n\t\t\tnode.object.type === AST_NODE_TYPES.Identifier &&\n\t\t\tnode.object.name === \"tseslint\" &&\n\t\t\tnode.property.type === AST_NODE_TYPES.Identifier &&\n\t\t\tnode.property.name === \"config\"\n\t\t);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"blockESLintIntake.js","names":["parseAST","previousNode: TSESTree.Node | undefined","currentGroup: ExtensionRuleGroup | undefined","groups: ExtensionRuleGroup[]","rulesObject","sourceText"],"sources":["../../../src/blocks/eslint/blockESLintIntake.ts"],"sourcesContent":["import {\n\tAST_NODE_TYPES,\n\tparse as parseAST,\n\tTSESTree,\n} from \"@typescript-eslint/typescript-estree\";\nimport JSON5 from \"json5\";\n\nimport { tryCatch } from \"../../utils/tryCatch.js\";\nimport { stylisticComment } from \"../blockESLintMoreStyling.js\";\nimport { type ExtensionRuleGroup, zRuleOptions } from \"./schemas.js\";\n\ntype ConfigExport = TSESTree.ExportDefaultDeclaration & {\n\tdeclaration: TSESTree.CallExpression;\n};\n\nexport function blockESLintIntake(sourceText: string) {\n\tconst ast = tryCatch(() =>\n\t\tparseAST(sourceText, {\n\t\t\tcomment: true,\n\t\t\tloc: true,\n\t\t\trange: true,\n\t\t}),\n\t);\n\tconst configExport = ast?.body.find(nodeIsConfigExport);\n\tif (!configExport) {\n\t\treturn undefined;\n\t}\n\n\tconst configArguments = configExport.declaration.arguments;\n\tif (configArguments.length < 2) {\n\t\treturn undefined;\n\t}\n\n\tconst ignores = getConfigIgnores(configArguments[0]);\n\tif (!ignores) {\n\t\treturn undefined;\n\t}\n\n\tconst rulesObject = getConfigRulesObject(configArguments.slice(1));\n\tif (!rulesObject) {\n\t\treturn undefined;\n\t}\n\n\tconst rules = collectRulesObjectGroups(sourceText, rulesObject);\n\tif (!rules) {\n\t\treturn undefined;\n\t}\n\n\treturn { ignores, rules };\n\n\tfunction areArraysEqual<T>(a: T[], b: T[]) {\n\t\tif (a.length !== b.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = 0; i < a.length; i++) {\n\t\t\tif (a[i] !== b[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tfunction collectRuleFromProperty(property: TSESTree.ObjectLiteralElement) {\n\t\tif (\n\t\t\tproperty.type !== AST_NODE_TYPES.Property ||\n\t\t\tproperty.key.type !== AST_NODE_TYPES.Literal ||\n\t\t\ttypeof property.key.value !== \"string\"\n\t\t) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst name = property.key.value;\n\n\t\tconst { data } = zRuleOptions.safeParse(\n\t\t\tJSON5.parse(sourceText.slice(...property.value.range)),\n\t\t);\n\n\t\treturn data && { entry: data, name };\n\t}\n\n\tfunction collectRulesObjectGroups(\n\t\tsourceText: string,\n\t\trulesObject: TSESTree.ObjectExpression,\n\t) {\n\t\tlet previousNode: TSESTree.Node | undefined;\n\t\tlet currentGroup: ExtensionRuleGroup | undefined;\n\t\tconst groups: ExtensionRuleGroup[] = [];\n\n\t\tfor (const property of rulesObject.properties) {\n\t\t\tconst precedingText = sourceText.slice(\n\t\t\t\t(previousNode?.range[1] ?? rulesObject.range[0]) + 1,\n\t\t\t\tproperty.range[0],\n\t\t\t);\n\t\t\tconst comment =\n\t\t\t\tprecedingText.replaceAll(/\\/\\/ ?|\\t\\s*/g, \"\").trim() || undefined;\n\n\t\t\t// blockESLintMoreStyling's comment always gets pushed to the end.\n\t\t\tif (comment === stylisticComment) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tconst rule = collectRuleFromProperty(property);\n\t\t\tif (!rule) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\n\t\t\tif (!currentGroup || comment) {\n\t\t\t\tcurrentGroup = { comment, entries: {} };\n\t\t\t\tgroups.push(currentGroup);\n\t\t\t}\n\n\t\t\tcurrentGroup.entries[rule.name] = rule.entry;\n\t\t\tpreviousNode = property;\n\t\t}\n\n\t\treturn groups;\n\t}\n\n\tfunction getConfigIgnores(node: TSESTree.Node) {\n\t\treturn (\n\t\t\tnode.type === AST_NODE_TYPES.ObjectExpression &&\n\t\t\tnode.properties.length === 1 &&\n\t\t\tnode.properties[0].type === AST_NODE_TYPES.Property &&\n\t\t\tnode.properties[0].key.type === AST_NODE_TYPES.Identifier &&\n\t\t\tnode.properties[0].key.name === \"ignores\" &&\n\t\t\tnode.properties[0].value.type === AST_NODE_TYPES.ArrayExpression &&\n\t\t\tnode.properties[0].value.elements.every(\n\t\t\t\t(element): element is TSESTree.Literal & { value: string } =>\n\t\t\t\t\telement?.type === AST_NODE_TYPES.Literal &&\n\t\t\t\t\ttypeof element.value === \"string\",\n\t\t\t) &&\n\t\t\tnode.properties[0].value.elements.map(\n\t\t\t\t(element) => element.value as string,\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction getConfigRulesObject(nodes: TSESTree.Node[]) {\n\t\tconst configObject = nodes.find(\n\t\t\t(node): node is TSESTree.ObjectExpression =>\n\t\t\t\tnode.type === AST_NODE_TYPES.ObjectExpression &&\n\t\t\t\tareArraysEqual(\n\t\t\t\t\tnode.properties.map((property) =>\n\t\t\t\t\t\tproperty.type === AST_NODE_TYPES.Property &&\n\t\t\t\t\t\tproperty.key.type === AST_NODE_TYPES.Identifier\n\t\t\t\t\t\t\t? property.key.name\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t),\n\t\t\t\t\t[\"extends\", \"files\", \"languageOptions\", \"rules\", \"settings\"],\n\t\t\t\t),\n\t\t);\n\t\tif (!configObject) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst rulesObject = configObject.properties[3];\n\t\treturn (\n\t\t\trulesObject.type === AST_NODE_TYPES.Property &&\n\t\t\trulesObject.value.type === AST_NODE_TYPES.ObjectExpression &&\n\t\t\trulesObject.value\n\t\t);\n\t}\n\n\tfunction nodeIsConfigExport(node: TSESTree.Node): node is ConfigExport {\n\t\treturn (\n\t\t\tnode.type === AST_NODE_TYPES.ExportDefaultDeclaration &&\n\t\t\tnode.declaration.type === AST_NODE_TYPES.CallExpression &&\n\t\t\tnodeIsConfigFunction(node.declaration.callee)\n\t\t);\n\t}\n\n\tfunction nodeIsConfigFunction(node: TSESTree.Node) {\n\t\treturn (\n\t\t\tnode.type === AST_NODE_TYPES.MemberExpression &&\n\t\t\tnode.object.type === AST_NODE_TYPES.Identifier &&\n\t\t\tnode.object.name === \"tseslint\" &&\n\t\t\tnode.property.type === AST_NODE_TYPES.Identifier &&\n\t\t\tnode.property.name === \"config\"\n\t\t);\n\t}\n}\n"],"mappings":"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"}
@@ -2,7 +2,6 @@
2
2
  declare function blockESLintPluginIntake(sourceText: string): {
3
3
  configEmoji: [string, string][];
4
4
  } | undefined;
5
- //# sourceMappingURL=blockESLintPluginIntake.d.ts.map
6
5
  //#endregion
7
6
  export { blockESLintPluginIntake };
8
7
  //# sourceMappingURL=blockESLintPluginIntake.d.ts.map
@@ -10,11 +10,11 @@ function blockESLintPluginIntake(sourceText) {
10
10
  loc: true,
11
11
  range: true
12
12
  }));
13
- if (!ast) return void 0;
13
+ if (!ast) return;
14
14
  const config = findConfig(ast.body);
15
- if (!config) return void 0;
15
+ if (!config) return;
16
16
  const configEmoji = findConfigEmoji(config.properties);
17
- if (!configEmoji) return void 0;
17
+ if (!configEmoji) return;
18
18
  const { data } = zConfigEmoji.safeParse(JSON5.parse(sourceText.slice(...configEmoji.range)));
19
19
  return data && { configEmoji: data };
20
20
  function findConfig(body) {
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintPluginIntake.js","names":["sourceText: string","body: TSESTree.ProgramStatement[]","properties: TSESTree.ObjectLiteralElement[]"],"sources":["../../../src/blocks/eslint/blockESLintPluginIntake.ts"],"sourcesContent":["import {\n\tAST_NODE_TYPES,\n\tparse as parseAST,\n\tTSESTree,\n} from \"@typescript-eslint/typescript-estree\";\nimport JSON5 from \"json5\";\n\nimport { tryCatch } from \"../../utils/tryCatch.js\";\nimport { zConfigEmoji } from \"./schemas.js\";\n\nexport function blockESLintPluginIntake(sourceText: string) {\n\tconst ast = tryCatch(() =>\n\t\tparseAST(sourceText, {\n\t\t\tcomment: true,\n\t\t\tloc: true,\n\t\t\trange: true,\n\t\t}),\n\t);\n\tif (!ast) {\n\t\treturn undefined;\n\t}\n\n\tconst config = findConfig(ast.body);\n\tif (!config) {\n\t\treturn undefined;\n\t}\n\n\tconst configEmoji = findConfigEmoji(config.properties);\n\tif (!configEmoji) {\n\t\treturn undefined;\n\t}\n\n\tconst { data } = zConfigEmoji.safeParse(\n\t\tJSON5.parse(sourceText.slice(...configEmoji.range)),\n\t);\n\n\treturn data && { configEmoji: data };\n\n\tfunction findConfig(body: TSESTree.ProgramStatement[]) {\n\t\tfor (const node of body) {\n\t\t\tif (\n\t\t\t\tnode.type === AST_NODE_TYPES.VariableDeclaration &&\n\t\t\t\tnode.declarations[0].id.type === AST_NODE_TYPES.Identifier &&\n\t\t\t\tnode.declarations[0].id.name === \"config\" &&\n\t\t\t\tnode.declarations[0].init?.type === AST_NODE_TYPES.ObjectExpression\n\t\t\t) {\n\t\t\t\treturn node.declarations[0].init;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction findConfigEmoji(properties: TSESTree.ObjectLiteralElement[]) {\n\t\tfor (const node of properties) {\n\t\t\tif (\n\t\t\t\tnode.type === AST_NODE_TYPES.Property &&\n\t\t\t\tnode.key.type === AST_NODE_TYPES.Identifier &&\n\t\t\t\tnode.key.name === \"configEmoji\" &&\n\t\t\t\tnode.value.type === AST_NODE_TYPES.ArrayExpression\n\t\t\t) {\n\t\t\t\treturn node.value;\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;AAUA,SAAgB,wBAAwBA,YAAoB;CAC3D,MAAM,MAAM,SAAS,MACpB,MAAS,YAAY;EACpB,SAAS;EACT,KAAK;EACL,OAAO;CACP,EAAC,CACF;AACD,MAAK,IACJ;CAGD,MAAM,SAAS,WAAW,IAAI,KAAK;AACnC,MAAK,OACJ;CAGD,MAAM,cAAc,gBAAgB,OAAO,WAAW;AACtD,MAAK,YACJ;CAGD,MAAM,EAAE,MAAM,GAAG,aAAa,UAC7B,MAAM,MAAM,WAAW,MAAM,GAAG,YAAY,MAAM,CAAC,CACnD;AAED,QAAO,QAAQ,EAAE,aAAa,KAAM;CAEpC,SAAS,WAAWC,MAAmC;AACtD,OAAK,MAAM,QAAQ,KAClB,KACC,KAAK,SAAS,eAAe,uBAC7B,KAAK,aAAa,GAAG,GAAG,SAAS,eAAe,cAChD,KAAK,aAAa,GAAG,GAAG,SAAS,YACjC,KAAK,aAAa,GAAG,MAAM,SAAS,eAAe,iBAEnD,QAAO,KAAK,aAAa,GAAG;CAG9B;CAED,SAAS,gBAAgBC,YAA6C;AACrE,OAAK,MAAM,QAAQ,WAClB,KACC,KAAK,SAAS,eAAe,YAC7B,KAAK,IAAI,SAAS,eAAe,cACjC,KAAK,IAAI,SAAS,iBAClB,KAAK,MAAM,SAAS,eAAe,gBAEnC,QAAO,KAAK;CAGd;AACD"}
1
+ {"version":3,"file":"blockESLintPluginIntake.js","names":["parseAST"],"sources":["../../../src/blocks/eslint/blockESLintPluginIntake.ts"],"sourcesContent":["import {\n\tAST_NODE_TYPES,\n\tparse as parseAST,\n\tTSESTree,\n} from \"@typescript-eslint/typescript-estree\";\nimport JSON5 from \"json5\";\n\nimport { tryCatch } from \"../../utils/tryCatch.js\";\nimport { zConfigEmoji } from \"./schemas.js\";\n\nexport function blockESLintPluginIntake(sourceText: string) {\n\tconst ast = tryCatch(() =>\n\t\tparseAST(sourceText, {\n\t\t\tcomment: true,\n\t\t\tloc: true,\n\t\t\trange: true,\n\t\t}),\n\t);\n\tif (!ast) {\n\t\treturn undefined;\n\t}\n\n\tconst config = findConfig(ast.body);\n\tif (!config) {\n\t\treturn undefined;\n\t}\n\n\tconst configEmoji = findConfigEmoji(config.properties);\n\tif (!configEmoji) {\n\t\treturn undefined;\n\t}\n\n\tconst { data } = zConfigEmoji.safeParse(\n\t\tJSON5.parse(sourceText.slice(...configEmoji.range)),\n\t);\n\n\treturn data && { configEmoji: data };\n\n\tfunction findConfig(body: TSESTree.ProgramStatement[]) {\n\t\tfor (const node of body) {\n\t\t\tif (\n\t\t\t\tnode.type === AST_NODE_TYPES.VariableDeclaration &&\n\t\t\t\tnode.declarations[0].id.type === AST_NODE_TYPES.Identifier &&\n\t\t\t\tnode.declarations[0].id.name === \"config\" &&\n\t\t\t\tnode.declarations[0].init?.type === AST_NODE_TYPES.ObjectExpression\n\t\t\t) {\n\t\t\t\treturn node.declarations[0].init;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction findConfigEmoji(properties: TSESTree.ObjectLiteralElement[]) {\n\t\tfor (const node of properties) {\n\t\t\tif (\n\t\t\t\tnode.type === AST_NODE_TYPES.Property &&\n\t\t\t\tnode.key.type === AST_NODE_TYPES.Identifier &&\n\t\t\t\tnode.key.name === \"configEmoji\" &&\n\t\t\t\tnode.value.type === AST_NODE_TYPES.ArrayExpression\n\t\t\t) {\n\t\t\t\treturn node.value;\n\t\t\t}\n\t\t}\n\t}\n}\n"],"mappings":";;;;;;AAUA,SAAgB,wBAAwB,YAAoB;CAC3D,MAAM,MAAM,eACXA,MAAS,YAAY;EACpB,SAAS;EACT,KAAK;EACL,OAAO;EACP,CAAC,CACF;AACD,KAAI,CAAC,IACJ;CAGD,MAAM,SAAS,WAAW,IAAI,KAAK;AACnC,KAAI,CAAC,OACJ;CAGD,MAAM,cAAc,gBAAgB,OAAO,WAAW;AACtD,KAAI,CAAC,YACJ;CAGD,MAAM,EAAE,SAAS,aAAa,UAC7B,MAAM,MAAM,WAAW,MAAM,GAAG,YAAY,MAAM,CAAC,CACnD;AAED,QAAO,QAAQ,EAAE,aAAa,MAAM;CAEpC,SAAS,WAAW,MAAmC;AACtD,OAAK,MAAM,QAAQ,KAClB,KACC,KAAK,SAAS,eAAe,uBAC7B,KAAK,aAAa,GAAG,GAAG,SAAS,eAAe,cAChD,KAAK,aAAa,GAAG,GAAG,SAAS,YACjC,KAAK,aAAa,GAAG,MAAM,SAAS,eAAe,iBAEnD,QAAO,KAAK,aAAa,GAAG;;CAK/B,SAAS,gBAAgB,YAA6C;AACrE,OAAK,MAAM,QAAQ,WAClB,KACC,KAAK,SAAS,eAAe,YAC7B,KAAK,IAAI,SAAS,eAAe,cACjC,KAAK,IAAI,SAAS,iBAClB,KAAK,MAAM,SAAS,eAAe,gBAEnC,QAAO,KAAK"}
@@ -0,0 +1,8 @@
1
+ //#region src/blocks/eslint/getScriptFileExtension.d.ts
2
+ interface ScriptFileExtensionOptions {
3
+ type?: "commonjs" | "module";
4
+ }
5
+ declare function getScriptFileExtension(options: ScriptFileExtensionOptions): "**/*.{js,mjs,ts}" | "**/*.{js,ts}";
6
+ //#endregion
7
+ export { ScriptFileExtensionOptions, getScriptFileExtension };
8
+ //# sourceMappingURL=getScriptFileExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getScriptFileExtension.d.ts","names":[],"sources":["../../../src/blocks/eslint/getScriptFileExtension.ts"],"sourcesContent":[],"mappings":";UAAiB,0BAAA;EAAA,IAAA,CAAA,EAAA,UAAA,GAAA,QAAA;AAIjB;iBAAgB,sBAAA,UAAgC"}
@@ -0,0 +1,8 @@
1
+ //#region src/blocks/eslint/getScriptFileExtension.ts
2
+ function getScriptFileExtension(options) {
3
+ return options.type === "commonjs" ? "**/*.{js,mjs,ts}" : "**/*.{js,ts}";
4
+ }
5
+
6
+ //#endregion
7
+ export { getScriptFileExtension };
8
+ //# sourceMappingURL=getScriptFileExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getScriptFileExtension.js","names":[],"sources":["../../../src/blocks/eslint/getScriptFileExtension.ts"],"sourcesContent":["export interface ScriptFileExtensionOptions {\n\ttype?: \"commonjs\" | \"module\";\n}\n\nexport function getScriptFileExtension(options: ScriptFileExtensionOptions) {\n\treturn options.type === \"commonjs\" ? \"**/*.{js,mjs,ts}\" : \"**/*.{js,ts}\";\n}\n"],"mappings":";AAIA,SAAgB,uBAAuB,SAAqC;AAC3E,QAAO,QAAQ,SAAS,aAAa,qBAAqB"}
@@ -0,0 +1,18 @@
1
+ import { Extension } from "./schemas.js";
2
+
3
+ //#region src/blocks/eslint/mergeAllExtensions.d.ts
4
+ declare function mergeAllExtensions(...extensions: Extension[]): {
5
+ files: string[];
6
+ rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
7
+ entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
8
+ comment?: string | undefined;
9
+ }[] | undefined;
10
+ settings?: Record<string, unknown> | undefined;
11
+ extends?: string[] | undefined;
12
+ languageOptions?: unknown;
13
+ linterOptions?: unknown;
14
+ plugins?: Record<string, string> | undefined;
15
+ }[];
16
+ //#endregion
17
+ export { mergeAllExtensions };
18
+ //# sourceMappingURL=mergeAllExtensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeAllExtensions.d.ts","names":[],"sources":["../../../src/blocks/eslint/mergeAllExtensions.ts"],"sourcesContent":[],"mappings":";;;iBAEgB,kBAAA,gBAAkC;;EAAlC,KAAA,CAAA,QAAA,CAAA,MAAkB,EAAA,KAAA,GAAA,OAAA,GAAA,MAAA,GAAA,CAAA,OAAA,GAAA,MAAA,EAAA,OAAA,CAAA,GAAA,CAAA,OAAA,GAAA,MAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAA,GAAA;IAAgB,OAAA,QAAA,CAAA,MAAA,EAAA,KAAA,GAAA,OAAA,GAAA,MAAA,GAAA,CAAA,OAAA,GAAA,MAAA,EAAA,OAAA,CAAA,GAAA,CAAA,OAAA,GAAA,MAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAA"}
@@ -0,0 +1,48 @@
1
+ //#region src/blocks/eslint/mergeAllExtensions.ts
2
+ function mergeAllExtensions(...extensions) {
3
+ const entries = {};
4
+ for (const extension of extensions) {
5
+ const filesKey = JSON.stringify(extension.files);
6
+ entries[filesKey] = filesKey in entries ? mergeExtensions(entries[filesKey], extension, extension.files) : extension;
7
+ }
8
+ return Object.values(entries);
9
+ }
10
+ function mergeExtensions(a, b, files) {
11
+ return {
12
+ extends: Array.from(new Set([...a.extends ?? [], ...b.extends ?? []])).sort(),
13
+ files,
14
+ languageOptions: (a.languageOptions ?? b.languageOptions) && {
15
+ ...a.languageOptions ?? {},
16
+ ...b.languageOptions ?? {}
17
+ },
18
+ linterOptions: (a.linterOptions ?? b.linterOptions) && {
19
+ ...a.linterOptions ?? {},
20
+ ...b.linterOptions ?? {}
21
+ },
22
+ plugins: (a.plugins ?? b.plugins) && {
23
+ ...a.plugins,
24
+ ...b.plugins
25
+ },
26
+ rules: mergeExtensionsRules(a.rules, b.rules),
27
+ settings: (a.settings ?? b.settings) && {
28
+ ...a.settings,
29
+ ...b.settings
30
+ }
31
+ };
32
+ }
33
+ function mergeExtensionsRules(a, b) {
34
+ if (!a || !b) return a ?? b;
35
+ if (Array.isArray(a)) {
36
+ if (Array.isArray(b)) return [...a, ...b];
37
+ return [...a, { entries: b }];
38
+ }
39
+ if (Array.isArray(b)) return [...b, { entries: a }];
40
+ return {
41
+ ...a,
42
+ ...b
43
+ };
44
+ }
45
+
46
+ //#endregion
47
+ export { mergeAllExtensions };
48
+ //# sourceMappingURL=mergeAllExtensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeAllExtensions.js","names":["entries: Record<string, Extension>"],"sources":["../../../src/blocks/eslint/mergeAllExtensions.ts"],"sourcesContent":["import { Extension, ExtensionRules } from \"./schemas.js\";\n\nexport function mergeAllExtensions(...extensions: Extension[]) {\n\tconst entries: Record<string, Extension> = {};\n\n\tfor (const extension of extensions) {\n\t\tconst filesKey = JSON.stringify(extension.files);\n\n\t\tentries[filesKey] =\n\t\t\tfilesKey in entries\n\t\t\t\t? mergeExtensions(entries[filesKey], extension, extension.files)\n\t\t\t\t: extension;\n\t}\n\n\treturn Object.values(entries);\n}\n\nfunction mergeExtensions(\n\ta: Extension,\n\tb: Extension,\n\tfiles: string[],\n): Extension {\n\treturn {\n\t\textends: Array.from(\n\t\t\tnew Set([...(a.extends ?? []), ...(b.extends ?? [])]),\n\t\t).sort(),\n\t\tfiles,\n\t\tlanguageOptions: (a.languageOptions ?? b.languageOptions) && {\n\t\t\t...(a.languageOptions ?? {}),\n\t\t\t...(b.languageOptions ?? {}),\n\t\t},\n\t\tlinterOptions: (a.linterOptions ?? b.linterOptions) && {\n\t\t\t...(a.linterOptions ?? {}),\n\t\t\t...(b.linterOptions ?? {}),\n\t\t},\n\t\tplugins: (a.plugins ?? b.plugins) && { ...a.plugins, ...b.plugins },\n\t\trules: mergeExtensionsRules(a.rules, b.rules),\n\t\tsettings: (a.settings ?? b.settings) && { ...a.settings, ...b.settings },\n\t};\n}\n\nfunction mergeExtensionsRules(\n\ta: ExtensionRules | undefined,\n\tb: ExtensionRules | undefined,\n): ExtensionRules | undefined {\n\tif (!a || !b) {\n\t\treturn a ?? b;\n\t}\n\n\tif (Array.isArray(a)) {\n\t\tif (Array.isArray(b)) {\n\t\t\treturn [...a, ...b];\n\t\t}\n\n\t\treturn [...a, { entries: b }];\n\t}\n\n\tif (Array.isArray(b)) {\n\t\treturn [...b, { entries: a }];\n\t}\n\n\treturn { ...a, ...b };\n}\n"],"mappings":";AAEA,SAAgB,mBAAmB,GAAG,YAAyB;CAC9D,MAAMA,UAAqC,EAAE;AAE7C,MAAK,MAAM,aAAa,YAAY;EACnC,MAAM,WAAW,KAAK,UAAU,UAAU,MAAM;AAEhD,UAAQ,YACP,YAAY,UACT,gBAAgB,QAAQ,WAAW,WAAW,UAAU,MAAM,GAC9D;;AAGL,QAAO,OAAO,OAAO,QAAQ;;AAG9B,SAAS,gBACR,GACA,GACA,OACY;AACZ,QAAO;EACN,SAAS,MAAM,KACd,IAAI,IAAI,CAAC,GAAI,EAAE,WAAW,EAAE,EAAG,GAAI,EAAE,WAAW,EAAE,CAAE,CAAC,CACrD,CAAC,MAAM;EACR;EACA,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB;GAC5D,GAAI,EAAE,mBAAmB,EAAE;GAC3B,GAAI,EAAE,mBAAmB,EAAE;GAC3B;EACD,gBAAgB,EAAE,iBAAiB,EAAE,kBAAkB;GACtD,GAAI,EAAE,iBAAiB,EAAE;GACzB,GAAI,EAAE,iBAAiB,EAAE;GACzB;EACD,UAAU,EAAE,WAAW,EAAE,YAAY;GAAE,GAAG,EAAE;GAAS,GAAG,EAAE;GAAS;EACnE,OAAO,qBAAqB,EAAE,OAAO,EAAE,MAAM;EAC7C,WAAW,EAAE,YAAY,EAAE,aAAa;GAAE,GAAG,EAAE;GAAU,GAAG,EAAE;GAAU;EACxE;;AAGF,SAAS,qBACR,GACA,GAC6B;AAC7B,KAAI,CAAC,KAAK,CAAC,EACV,QAAO,KAAK;AAGb,KAAI,MAAM,QAAQ,EAAE,EAAE;AACrB,MAAI,MAAM,QAAQ,EAAE,CACnB,QAAO,CAAC,GAAG,GAAG,GAAG,EAAE;AAGpB,SAAO,CAAC,GAAG,GAAG,EAAE,SAAS,GAAG,CAAC;;AAG9B,KAAI,MAAM,QAAQ,EAAE,CACnB,QAAO,CAAC,GAAG,GAAG,EAAE,SAAS,GAAG,CAAC;AAG9B,QAAO;EAAE,GAAG;EAAG,GAAG;EAAG"}
@@ -15,7 +15,7 @@ declare const zExtensionRuleGroup: z.ZodObject<{
15
15
  comment?: string | undefined;
16
16
  }>;
17
17
  type ExtensionRuleGroup = z.infer<typeof zExtensionRuleGroup>;
18
- declare const zExtensionRules: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>, z.ZodArray<z.ZodObject<{
18
+ declare const zRulesArray: z.ZodArray<z.ZodObject<{
19
19
  comment: z.ZodOptional<z.ZodString>;
20
20
  entries: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>;
21
21
  }, "strip", z.ZodTypeAny, {
@@ -24,15 +24,28 @@ declare const zExtensionRules: z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnion<[
24
24
  }, {
25
25
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
26
26
  comment?: string | undefined;
27
- }>, "many">]>;
27
+ }>, "many">;
28
+ type RulesArray = z.infer<typeof zRulesArray>;
29
+ declare const zRulesRecord: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>;
30
+ type RulesRecord = z.infer<typeof zRulesRecord>;
31
+ declare const zExtensionRules: z.ZodUnion<[z.ZodArray<z.ZodObject<{
32
+ comment: z.ZodOptional<z.ZodString>;
33
+ entries: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
36
+ comment?: string | undefined;
37
+ }, {
38
+ entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
39
+ comment?: string | undefined;
40
+ }>, "many">, z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>]>;
28
41
  type ExtensionRules = z.infer<typeof zExtensionRules>;
29
42
  declare const zExtension: z.ZodObject<{
30
43
  extends: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
- files: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
44
+ files: z.ZodArray<z.ZodString, "many">;
32
45
  languageOptions: z.ZodOptional<z.ZodUnknown>;
33
46
  linterOptions: z.ZodOptional<z.ZodUnknown>;
34
47
  plugins: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
35
- rules: z.ZodOptional<z.ZodUnion<[z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>, z.ZodArray<z.ZodObject<{
48
+ rules: z.ZodOptional<z.ZodUnion<[z.ZodArray<z.ZodObject<{
36
49
  comment: z.ZodOptional<z.ZodString>;
37
50
  entries: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>;
38
51
  }, "strip", z.ZodTypeAny, {
@@ -41,30 +54,30 @@ declare const zExtension: z.ZodObject<{
41
54
  }, {
42
55
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
43
56
  comment?: string | undefined;
44
- }>, "many">]>>;
57
+ }>, "many">, z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"off">, z.ZodLiteral<"warn">, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown], null>, z.ZodTuple<[z.ZodUnion<[z.ZodLiteral<"error">, z.ZodLiteral<"warn">]>, z.ZodUnknown, z.ZodUnknown], null>]>>]>>;
45
58
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
46
59
  }, "strip", z.ZodTypeAny, {
47
- files?: string[] | undefined;
60
+ files: string[];
48
61
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
49
62
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
50
63
  comment?: string | undefined;
51
64
  }[] | undefined;
52
- plugins?: Record<string, string> | undefined;
53
65
  settings?: Record<string, unknown> | undefined;
54
66
  extends?: string[] | undefined;
55
67
  languageOptions?: unknown;
56
68
  linterOptions?: unknown;
69
+ plugins?: Record<string, string> | undefined;
57
70
  }, {
58
- files?: string[] | undefined;
71
+ files: string[];
59
72
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
60
73
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
61
74
  comment?: string | undefined;
62
75
  }[] | undefined;
63
- plugins?: Record<string, string> | undefined;
64
76
  settings?: Record<string, unknown> | undefined;
65
77
  extends?: string[] | undefined;
66
78
  languageOptions?: unknown;
67
79
  linterOptions?: unknown;
80
+ plugins?: Record<string, string> | undefined;
68
81
  }>;
69
82
  type Extension = z.infer<typeof zExtension>;
70
83
  declare const zPackageImport: z.ZodObject<{
@@ -95,8 +108,6 @@ declare const zPackageImport: z.ZodObject<{
95
108
  specifier: string;
96
109
  types?: boolean | undefined;
97
110
  }>;
98
- //# sourceMappingURL=schemas.d.ts.map
99
-
100
111
  //#endregion
101
- export { Extension, ExtensionRuleGroup, ExtensionRules, RuleOptions, zConfigEmoji, zExtension, zExtensionRuleGroup, zExtensionRules, zPackageImport, zRuleOptions };
112
+ export { Extension, ExtensionRuleGroup, ExtensionRules, RuleOptions, RulesArray, RulesRecord, zConfigEmoji, zExtension, zExtensionRuleGroup, zExtensionRules, zPackageImport, zRuleOptions, zRulesArray, zRulesRecord };
102
113
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","names":[],"sources":["../../../src/blocks/eslint/schemas.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","names":[],"sources":["../../../src/blocks/eslint/schemas.ts"],"sourcesContent":[],"mappings":"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"}
@@ -17,10 +17,12 @@ const zExtensionRuleGroup = z.object({
17
17
  comment: z.string().optional(),
18
18
  entries: z.record(z.string(), zRuleOptions)
19
19
  });
20
- const zExtensionRules = z.union([z.record(z.string(), zRuleOptions), z.array(zExtensionRuleGroup)]);
20
+ const zRulesArray = z.array(zExtensionRuleGroup);
21
+ const zRulesRecord = z.record(z.string(), zRuleOptions);
22
+ const zExtensionRules = z.union([zRulesArray, zRulesRecord]);
21
23
  const zExtension = z.object({
22
24
  extends: z.array(z.string()).optional(),
23
- files: z.array(z.string()).optional(),
25
+ files: z.array(z.string()),
24
26
  languageOptions: z.unknown().optional(),
25
27
  linterOptions: z.unknown().optional(),
26
28
  plugins: z.record(z.string(), z.string()).optional(),
@@ -37,5 +39,5 @@ const zPackageImport = z.object({
37
39
  });
38
40
 
39
41
  //#endregion
40
- export { zConfigEmoji, zExtension, zExtensionRuleGroup, zExtensionRules, zPackageImport, zRuleOptions };
42
+ export { zConfigEmoji, zExtension, zExtensionRuleGroup, zExtensionRules, zPackageImport, zRuleOptions, zRulesArray, zRulesRecord };
41
43
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","names":[],"sources":["../../../src/blocks/eslint/schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const zConfigEmoji = z\n\t.array(z.tuple([z.string(), z.string()]))\n\t.optional();\n\nexport const zRuleOptions = z.union([\n\tz.literal(\"error\"),\n\tz.literal(\"off\"),\n\tz.literal(\"warn\"),\n\tz.tuple([z.union([z.literal(\"error\"), z.literal(\"warn\")]), z.unknown()]),\n\tz.tuple([\n\t\tz.union([z.literal(\"error\"), z.literal(\"warn\")]),\n\t\tz.unknown(),\n\t\tz.unknown(),\n\t]),\n]);\n\nexport type RuleOptions = z.infer<typeof zRuleOptions>;\n\nexport const zExtensionRuleGroup = z.object({\n\tcomment: z.string().optional(),\n\tentries: z.record(z.string(), zRuleOptions),\n});\n\nexport type ExtensionRuleGroup = z.infer<typeof zExtensionRuleGroup>;\n\nexport const zExtensionRules = z.union([\n\tz.record(z.string(), zRuleOptions),\n\tz.array(zExtensionRuleGroup),\n]);\n\nexport type ExtensionRules = z.infer<typeof zExtensionRules>;\n\nexport const zExtension = z.object({\n\textends: z.array(z.string()).optional(),\n\tfiles: z.array(z.string()).optional(),\n\tlanguageOptions: z.unknown().optional(),\n\tlinterOptions: z.unknown().optional(),\n\tplugins: z.record(z.string(), z.string()).optional(),\n\trules: zExtensionRules.optional(),\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type Extension = z.infer<typeof zExtension>;\n\nexport const zPackageImport = z.object({\n\tsource: z.union([\n\t\tz.string(),\n\t\tz.object({ packageName: z.string(), version: z.string() }),\n\t]),\n\tspecifier: z.string(),\n\ttypes: z.boolean().optional(),\n});\n"],"mappings":";;;AAEA,MAAa,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,AAAC,EAAC,CAAC,CACxC,UAAU;AAEZ,MAAa,eAAe,EAAE,MAAM;CACnC,EAAE,QAAQ,QAAQ;CAClB,EAAE,QAAQ,MAAM;CAChB,EAAE,QAAQ,OAAO;CACjB,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,QAAQ,QAAQ,EAAE,EAAE,QAAQ,OAAO,AAAC,EAAC,EAAE,EAAE,SAAS,AAAC,EAAC;CACxE,EAAE,MAAM;EACP,EAAE,MAAM,CAAC,EAAE,QAAQ,QAAQ,EAAE,EAAE,QAAQ,OAAO,AAAC,EAAC;EAChD,EAAE,SAAS;EACX,EAAE,SAAS;CACX,EAAC;AACF,EAAC;AAIF,MAAa,sBAAsB,EAAE,OAAO;CAC3C,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;AAC3C,EAAC;AAIF,MAAa,kBAAkB,EAAE,MAAM,CACtC,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAClC,EAAE,MAAM,oBAAoB,AAC5B,EAAC;AAIF,MAAa,aAAa,EAAE,OAAO;CAClC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACrC,iBAAiB,EAAE,SAAS,CAAC,UAAU;CACvC,eAAe,EAAE,SAAS,CAAC,UAAU;CACrC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CACpD,OAAO,gBAAgB,UAAU;CACjC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;AACtD,EAAC;AAIF,MAAa,iBAAiB,EAAE,OAAO;CACtC,QAAQ,EAAE,MAAM,CACf,EAAE,QAAQ,EACV,EAAE,OAAO;EAAE,aAAa,EAAE,QAAQ;EAAE,SAAS,EAAE,QAAQ;CAAE,EAAC,AAC1D,EAAC;CACF,WAAW,EAAE,QAAQ;CACrB,OAAO,EAAE,SAAS,CAAC,UAAU;AAC7B,EAAC"}
1
+ {"version":3,"file":"schemas.js","names":[],"sources":["../../../src/blocks/eslint/schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const zConfigEmoji = z\n\t.array(z.tuple([z.string(), z.string()]))\n\t.optional();\n\nexport const zRuleOptions = z.union([\n\tz.literal(\"error\"),\n\tz.literal(\"off\"),\n\tz.literal(\"warn\"),\n\tz.tuple([z.union([z.literal(\"error\"), z.literal(\"warn\")]), z.unknown()]),\n\tz.tuple([\n\t\tz.union([z.literal(\"error\"), z.literal(\"warn\")]),\n\t\tz.unknown(),\n\t\tz.unknown(),\n\t]),\n]);\n\nexport type RuleOptions = z.infer<typeof zRuleOptions>;\n\nexport const zExtensionRuleGroup = z.object({\n\tcomment: z.string().optional(),\n\tentries: z.record(z.string(), zRuleOptions),\n});\n\nexport type ExtensionRuleGroup = z.infer<typeof zExtensionRuleGroup>;\n\nexport const zRulesArray = z.array(zExtensionRuleGroup);\n\nexport type RulesArray = z.infer<typeof zRulesArray>;\n\nexport const zRulesRecord = z.record(z.string(), zRuleOptions);\n\nexport type RulesRecord = z.infer<typeof zRulesRecord>;\n\nexport const zExtensionRules = z.union([zRulesArray, zRulesRecord]);\n\nexport type ExtensionRules = z.infer<typeof zExtensionRules>;\n\nexport const zExtension = z.object({\n\textends: z.array(z.string()).optional(),\n\tfiles: z.array(z.string()),\n\tlanguageOptions: z.unknown().optional(),\n\tlinterOptions: z.unknown().optional(),\n\tplugins: z.record(z.string(), z.string()).optional(),\n\trules: zExtensionRules.optional(),\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type Extension = z.infer<typeof zExtension>;\n\nexport const zPackageImport = z.object({\n\tsource: z.union([\n\t\tz.string(),\n\t\tz.object({ packageName: z.string(), version: z.string() }),\n\t]),\n\tspecifier: z.string(),\n\ttypes: z.boolean().optional(),\n});\n"],"mappings":";;;AAEA,MAAa,eAAe,EAC1B,MAAM,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CACxC,UAAU;AAEZ,MAAa,eAAe,EAAE,MAAM;CACnC,EAAE,QAAQ,QAAQ;CAClB,EAAE,QAAQ,MAAM;CAChB,EAAE,QAAQ,OAAO;CACjB,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,QAAQ,QAAQ,EAAE,EAAE,QAAQ,OAAO,CAAC,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;CACxE,EAAE,MAAM;EACP,EAAE,MAAM,CAAC,EAAE,QAAQ,QAAQ,EAAE,EAAE,QAAQ,OAAO,CAAC,CAAC;EAChD,EAAE,SAAS;EACX,EAAE,SAAS;EACX,CAAC;CACF,CAAC;AAIF,MAAa,sBAAsB,EAAE,OAAO;CAC3C,SAAS,EAAE,QAAQ,CAAC,UAAU;CAC9B,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;CAC3C,CAAC;AAIF,MAAa,cAAc,EAAE,MAAM,oBAAoB;AAIvD,MAAa,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa;AAI9D,MAAa,kBAAkB,EAAE,MAAM,CAAC,aAAa,aAAa,CAAC;AAInE,MAAa,aAAa,EAAE,OAAO;CAClC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;CACvC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;CAC1B,iBAAiB,EAAE,SAAS,CAAC,UAAU;CACvC,eAAe,EAAE,SAAS,CAAC,UAAU;CACrC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,UAAU;CACpD,OAAO,gBAAgB,UAAU;CACjC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,CAAC,UAAU;CACtD,CAAC;AAIF,MAAa,iBAAiB,EAAE,OAAO;CACtC,QAAQ,EAAE,MAAM,CACf,EAAE,QAAQ,EACV,EAAE,OAAO;EAAE,aAAa,EAAE,QAAQ;EAAE,SAAS,EAAE,QAAQ;EAAE,CAAC,CAC1D,CAAC;CACF,WAAW,EAAE,QAAQ;CACrB,OAAO,EAAE,SAAS,CAAC,UAAU;CAC7B,CAAC"}
@@ -1,7 +1,5 @@
1
1
  //#region src/blocks/files/createJobName.d.ts
2
2
  declare function createJobName(label: string): string;
3
- //# sourceMappingURL=createJobName.d.ts.map
4
-
5
3
  //#endregion
6
4
  export { createJobName };
7
5
  //# sourceMappingURL=createJobName.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createJobName.d.ts","names":[],"sources":["../../../src/blocks/files/createJobName.ts"],"sourcesContent":[],"mappings":";iBAAgB,aAAA;AAAhB"}
1
+ {"version":3,"file":"createJobName.d.ts","names":[],"sources":["../../../src/blocks/files/createJobName.ts"],"sourcesContent":[],"mappings":";iBAAgB,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"createJobName.js","names":["label: string"],"sources":["../../../src/blocks/files/createJobName.ts"],"sourcesContent":["export function createJobName(label: string) {\n\treturn label.replaceAll(/[?()]/g, \"\").replaceAll(\" \", \"_\").toLowerCase();\n}\n"],"mappings":";AAAA,SAAgB,cAAcA,OAAe;AAC5C,QAAO,MAAM,WAAW,UAAU,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,aAAa;AACxE"}
1
+ {"version":3,"file":"createJobName.js","names":[],"sources":["../../../src/blocks/files/createJobName.ts"],"sourcesContent":["export function createJobName(label: string) {\n\treturn label.replaceAll(/[?()]/g, \"\").replaceAll(\" \", \"_\").toLowerCase();\n}\n"],"mappings":";AAAA,SAAgB,cAAc,OAAe;AAC5C,QAAO,MAAM,WAAW,UAAU,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,aAAa"}