create-typescript-app 2.46.2 → 2.46.4

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 (91) hide show
  1. package/lib/base.d.ts.map +1 -1
  2. package/lib/base.js +2 -1
  3. package/lib/base.js.map +1 -1
  4. package/lib/blocks/blockAllContributors.d.ts +2 -2
  5. package/lib/blocks/blockAreTheTypesWrong.d.ts +2 -2
  6. package/lib/blocks/blockCSpell.d.ts +2 -2
  7. package/lib/blocks/blockCTATransitions.d.ts +2 -2
  8. package/lib/blocks/blockCodecov.d.ts +2 -2
  9. package/lib/blocks/blockContributingDocs.d.ts +2 -2
  10. package/lib/blocks/blockContributorCovenant.d.ts +2 -2
  11. package/lib/blocks/blockDevelopmentDocs.d.ts +2 -2
  12. package/lib/blocks/blockESLint.d.ts +10 -10
  13. package/lib/blocks/blockESLint.d.ts.map +1 -1
  14. package/lib/blocks/blockESLint.js +1 -4
  15. package/lib/blocks/blockESLint.js.map +1 -1
  16. package/lib/blocks/blockESLintComments.d.ts +2 -2
  17. package/lib/blocks/blockESLintJSDoc.d.ts +2 -2
  18. package/lib/blocks/blockESLintJSONC.d.ts +2 -2
  19. package/lib/blocks/blockESLintMarkdown.d.ts +2 -2
  20. package/lib/blocks/blockESLintMarkdown.d.ts.map +1 -1
  21. package/lib/blocks/blockESLintMoreStyling.d.ts +2 -2
  22. package/lib/blocks/blockESLintMoreStyling.d.ts.map +1 -1
  23. package/lib/blocks/blockESLintNode.d.ts +2 -2
  24. package/lib/blocks/blockESLintNode.d.ts.map +1 -1
  25. package/lib/blocks/blockESLintPackageJson.d.ts +2 -2
  26. package/lib/blocks/blockESLintPackageJson.d.ts.map +1 -1
  27. package/lib/blocks/blockESLintPerfectionist.d.ts +2 -2
  28. package/lib/blocks/blockESLintPlugin.d.ts +2 -2
  29. package/lib/blocks/blockESLintPlugin.d.ts.map +1 -1
  30. package/lib/blocks/blockESLintRegexp.d.ts +2 -2
  31. package/lib/blocks/blockESLintYML.d.ts +2 -2
  32. package/lib/blocks/blockExampleFiles.d.ts +2 -2
  33. package/lib/blocks/blockFunding.d.ts +2 -2
  34. package/lib/blocks/blockGitHubActionsCI.d.ts +2 -2
  35. package/lib/blocks/blockGitHubActionsCI.d.ts.map +1 -1
  36. package/lib/blocks/blockGitHubApps.d.ts +2 -2
  37. package/lib/blocks/blockGitHubIssueTemplates.d.ts +2 -2
  38. package/lib/blocks/blockGitHubPRTemplate.d.ts +2 -2
  39. package/lib/blocks/blockGitignore.d.ts +2 -2
  40. package/lib/blocks/blockKnip.d.ts +2 -2
  41. package/lib/blocks/blockMITLicense.d.ts +2 -2
  42. package/lib/blocks/blockMain.d.ts +2 -2
  43. package/lib/blocks/blockMarkdownlint.d.ts +2 -2
  44. package/lib/blocks/blockNcc.d.ts +2 -2
  45. package/lib/blocks/blockNvmrc.d.ts +2 -2
  46. package/lib/blocks/blockOctoGuide.d.ts +2 -2
  47. package/lib/blocks/blockOctoGuideStrict.d.ts +2 -2
  48. package/lib/blocks/blockPackageJson.d.ts +5 -5
  49. package/lib/blocks/blockPnpmDedupe.d.ts +2 -2
  50. package/lib/blocks/blockPrettier.d.ts +3 -3
  51. package/lib/blocks/blockPrettier.d.ts.map +1 -1
  52. package/lib/blocks/blockPrettierPluginCurly.d.ts +2 -2
  53. package/lib/blocks/blockPrettierPluginPackageJson.d.ts +2 -2
  54. package/lib/blocks/blockPrettierPluginSh.d.ts +2 -2
  55. package/lib/blocks/blockPrettierPluginSh.d.ts.map +1 -1
  56. package/lib/blocks/blockREADME.d.ts +2 -2
  57. package/lib/blocks/blockREADME.d.ts.map +1 -1
  58. package/lib/blocks/blockReleaseIt.d.ts +2 -2
  59. package/lib/blocks/blockReleaseIt.d.ts.map +1 -1
  60. package/lib/blocks/blockRemoveDependencies.d.ts +2 -2
  61. package/lib/blocks/blockRemoveDependencies.d.ts.map +1 -1
  62. package/lib/blocks/blockRemoveFiles.d.ts +2 -2
  63. package/lib/blocks/blockRemoveFiles.d.ts.map +1 -1
  64. package/lib/blocks/blockRemoveWorkflows.d.ts +2 -2
  65. package/lib/blocks/blockRenovate.d.ts +2 -2
  66. package/lib/blocks/blockRepositoryBranchRuleset.d.ts +2 -2
  67. package/lib/blocks/blockRepositoryLabels.d.ts +2 -2
  68. package/lib/blocks/blockRepositorySecrets.d.ts +2 -2
  69. package/lib/blocks/blockRepositorySettings.d.ts +2 -2
  70. package/lib/blocks/blockSecurityDocs.d.ts +2 -2
  71. package/lib/blocks/blockTSDown.d.ts +2 -2
  72. package/lib/blocks/blockTemplatedWith.d.ts +2 -2
  73. package/lib/blocks/blockTypeScript.d.ts +2 -2
  74. package/lib/blocks/blockVSCode.d.ts +3 -3
  75. package/lib/blocks/blockVSCode.d.ts.map +1 -1
  76. package/lib/blocks/blockVitest.d.ts +2 -2
  77. package/lib/blocks/blockWebExt.d.ts +2 -2
  78. package/lib/blocks/eslint/schemas.d.ts +7 -7
  79. package/lib/blocks/eslint/schemas.d.ts.map +1 -1
  80. package/lib/blocks/index.d.ts +13 -13
  81. package/lib/data/packageData.d.ts +2 -2
  82. package/lib/inputs/inputFromOctokit.d.ts +2 -2
  83. package/lib/options/readAuthor.d.ts +2 -1
  84. package/lib/options/readAuthor.d.ts.map +1 -1
  85. package/lib/options/readAuthor.js +2 -2
  86. package/lib/options/readAuthor.js.map +1 -1
  87. package/lib/options/readNpmDefaults.d.ts +2 -2
  88. package/lib/presets/common.d.ts +69 -69
  89. package/lib/presets/minimal.d.ts +69 -69
  90. package/lib/template.d.ts +69 -69
  91. package/package.json +5 -5
package/lib/base.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","names":[],"sources":["../src/base.ts"],"sourcesContent":[],"mappings":";;;;;cA0Ca,uBAAI;sBA6Sf,CAAA,CAAA;;EA7SW,GAAA,eA6SX,WAAA,CAAA,YAAA,aAAA,YAAA,aAAA,CAAA,CAAA,CAAA,CAAA;EAAA,YAAA,eAAA,WAAA,YAAA,CAAA;IAAA,UAAA,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA7Se,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAAA,oBAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA;IA+SL,OAAA,CAAA,QAAW,CAAA,MAAA,EAAA,MAAA,GAAA,SAAA,CAAA,GAAA,SAAA;EAAA,CAAA,CAAA,CAAA;EAAA,IAAyB,eAAA,YAAA,CAAA;EAAI,UAA1B,aAAA;EAAc,SAAA,eAAA,YAAA,CAAA;;;;;;;;;;;;;;;;KAA5B,WAAA,GAAc,sBAAsB"}
1
+ {"version":3,"file":"base.d.ts","names":[],"sources":["../src/base.ts"],"sourcesContent":[],"mappings":";;;;;cA0Ca,uBAAI;sBAuTf,CAAA,CAAA;;EAvTW,GAAA,eAuTX,WAAA,CAAA,YAAA,aAAA,YAAA,aAAA,CAAA,CAAA,CAAA,CAAA;EAAA,YAAA,eAAA,WAAA,YAAA,CAAA;IAAA,UAAA,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAvTe,CAAA,QAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAAA,oBAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA;IAyTL,OAAA,CAAA,QAAW,CAAA,MAAA,EAAA,MAAA,GAAA,SAAA,CAAA,GAAA,SAAA;EAAA,CAAA,CAAA,CAAA;EAAA,IAAyB,eAAA,YAAA,CAAA;EAAI,UAA1B,aAAA;EAAc,SAAA,eAAA,YAAA,CAAA;;;;;;;;;;;;;;;;KAA5B,WAAA,GAAc,sBAAsB"}
package/lib/base.js CHANGED
@@ -98,7 +98,7 @@ const base = createBase({
98
98
  prepare({ options, take }) {
99
99
  const getAccess = lazyValue(async () => await readAccess(getPackageData));
100
100
  const getAllContributors = lazyValue(async () => await readAllContributors(take));
101
- const getAuthor = lazyValue(async () => await readAuthor(getPackageAuthor, getNpmDefaults, options.owner));
101
+ const getAuthor = lazyValue(async () => await readAuthor(getPackageAuthor, getNpmDefaults, getGitUser, options.owner));
102
102
  const getBin = lazyValue(async () => await readBin(getPackageData));
103
103
  const getEmoji = lazyValue(async () => await readEmoji(getDescription));
104
104
  const getDescription = lazyValue(async () => await readDescription(getPackageData, getReadme, getRepository));
@@ -112,6 +112,7 @@ const base = createBase({
112
112
  const getExistingLabels = lazyValue(async () => await readExistingLabels(take, getOwner, getRepository));
113
113
  const getFunding = lazyValue(async () => await readFunding(take));
114
114
  const getGitDefaults = lazyValue(async () => await readGitDefaults(take));
115
+ const getGitUser = lazyValue(async () => await take(inputFromScript, { command: "git config user.name" }));
115
116
  const getGuide = lazyValue(async () => await readGuide(take));
116
117
  const getLogo = lazyValue(async () => await readLogo(getReadme));
117
118
  const getPackageData = lazyValue(async () => await readPackageData(take));
package/lib/base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../src/base.ts"],"sourcesContent":["import { BaseOptionsFor, createBase } from \"bingo-stratum\";\nimport { inputFromFile } from \"input-from-file\";\nimport { inputFromScript } from \"input-from-script\";\nimport lazyValue from \"lazy-value\";\nimport { z } from \"zod\";\n\nimport { readAccess } from \"./options/readAccess.js\";\nimport { readAllContributors } from \"./options/readAllContributors.js\";\nimport { readAuthor } from \"./options/readAuthor.js\";\nimport { readBin } from \"./options/readBin.js\";\nimport { readDescription } from \"./options/readDescription.js\";\nimport { readDevelopmentDocumentation } from \"./options/readDevelopmentDocumentation.js\";\nimport { readDocumentation } from \"./options/readDocumentation.js\";\nimport { readEmailFromCodeOfConduct } from \"./options/readEmailFromCodeOfConduct.js\";\nimport { readEmailFromGit } from \"./options/readEmailFromGit.js\";\nimport { readEmailFromNpm } from \"./options/readEmailFromNpm.js\";\nimport { readEmails } from \"./options/readEmails.js\";\nimport { readEmoji } from \"./options/readEmoji.js\";\nimport { readExistingLabels } from \"./options/readExistingLabels.js\";\nimport { readFileSafe } from \"./options/readFileSafe.js\";\nimport { readFunding } from \"./options/readFunding.js\";\nimport { readGitDefaults } from \"./options/readGitDefaults.js\";\nimport { readGuide } from \"./options/readGuide.js\";\nimport { readKeywords } from \"./options/readKeywords.js\";\nimport { readLogo } from \"./options/readLogo.js\";\nimport { readNode } from \"./options/readNode.js\";\nimport { readNpmDefaults } from \"./options/readNpmDefaults.js\";\nimport { readOwner } from \"./options/readOwner.js\";\nimport { readPackageAuthor } from \"./options/readPackageAuthor.js\";\nimport { readPackageData } from \"./options/readPackageData.js\";\nimport { readPnpm } from \"./options/readPnpm.js\";\nimport { readReadmeAdditional } from \"./options/readReadmeAdditional.js\";\nimport { readReadmeExplainer } from \"./options/readReadmeExplainer.js\";\nimport { readReadmeFootnotes } from \"./options/readReadmeFootnotes.js\";\nimport { readReadmeUsage } from \"./options/readReadmeUsage.js\";\nimport { readRepository } from \"./options/readRepository.js\";\nimport { readRulesetId } from \"./options/readRulesetId.js\";\nimport { readTitle } from \"./options/readTitle.js\";\nimport { readWords } from \"./options/readWords.js\";\nimport { readWorkflowsVersions } from \"./options/readWorkflowsVersions.js\";\nimport { zContributor, zDocumentation, zWorkflowsVersions } from \"./schemas.js\";\n\nexport const base = createBase({\n\toptions: {\n\t\taccess: z\n\t\t\t.union([z.literal(\"public\"), z.literal(\"restricted\")])\n\t\t\t.describe(\"which `npm publish --access` to release npm packages with\"),\n\t\tauthor: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"username on npm to publish packages under\"),\n\t\tbin: z\n\t\t\t.union([z.string(), z.record(z.string())])\n\t\t\t.optional()\n\t\t\t.describe('value to set in `package.json`\\'s `\"bin\"` property'),\n\t\tcontributors: z\n\t\t\t.array(zContributor)\n\t\t\t.optional()\n\t\t\t.describe(\"AllContributors contributors to store in .all-contributorsrc\"),\n\t\tdescription: z\n\t\t\t.string()\n\t\t\t.default(\"A very lovely package. Hooray!\")\n\t\t\t.describe(\"'Sentence case.' description of the repository\"),\n\t\tdirectory: z.string().describe(\"Directory to create the repository in\"),\n\t\tdocumentation: zDocumentation.describe(\n\t\t\t\"additional docs to add to .md files\",\n\t\t),\n\t\temail: z\n\t\t\t.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tgithub: z.string(),\n\t\t\t\t\tnpm: z.string(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t// TODO: Test this? Is it still working?\n\t\t\t// https://github.com/JoshuaKGoldberg/create-typescript-app/issues/1991\n\t\t\t.transform((email) =>\n\t\t\t\ttypeof email === \"string\" ? { github: email, npm: email } : email,\n\t\t\t)\n\t\t\t.describe(\n\t\t\t\t\"email address to be listed as the point of contact in docs and packages\",\n\t\t\t),\n\t\temoji: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"decorative emoji to use in descriptions and docs\"),\n\t\texistingLabels: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tcolor: z.string(),\n\t\t\t\t\tdescription: z.string(),\n\t\t\t\t\tname: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional()\n\t\t\t.describe(\"existing labels from the GitHub repository\"),\n\t\tfunding: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub organization or username to mention in `funding.yml`\"),\n\t\tguide: z\n\t\t\t.object({\n\t\t\t\thref: z.string(),\n\t\t\t\ttitle: z.string(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"link to a contribution guide to place at the top of development docs\",\n\t\t\t),\n\t\tkeywords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"any number of keywords to include in `package.json`\"),\n\t\tlogo: z\n\t\t\t.object({\n\t\t\t\talt: z.string(),\n\t\t\t\theight: z.number().optional(),\n\t\t\t\tsrc: z.string(),\n\t\t\t\twidth: z.number().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"local image file and alt text to display near the top of the README.md\",\n\t\t\t),\n\t\tnode: z\n\t\t\t.object({\n\t\t\t\tminimum: z.string(),\n\t\t\t\tpinned: z.string().optional(),\n\t\t\t})\n\t\t\t.describe(\"Node.js engine version(s) to pin and require a minimum of\"),\n\t\towner: z.string().describe(\"organization or user owning the repository\"),\n\t\tpackageData: z\n\t\t\t.object({\n\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tpeerDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tpeerDependenciesMeta: z.record(z.unknown()).optional(),\n\t\t\t\tscripts: z.record(z.string(), z.string().optional()).optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"additional properties to include in `package.json`\"),\n\t\tpnpm: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"pnpm version for package.json's packageManager field\"),\n\t\trepository: z\n\t\t\t.string()\n\t\t\t.describe(\"'kebab-case' or 'PascalCase' title of the repository\"),\n\t\trulesetId: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub branch ruleset ID for main branch protections\"),\n\t\ttitle: z.string().describe(\"'Title Case' title for the repository\"),\n\t\ttype: z\n\t\t\t.union([z.literal(\"commonjs\"), z.literal(\"module\")])\n\t\t\t.optional()\n\t\t\t.describe(\"package.json modules type\"),\n\t\tversion: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"package version to publish as and store in `package.json`\"),\n\t\twords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"additional words to add to the CSpell dictionary\"),\n\t\tworkflowsVersions: zWorkflowsVersions\n\t\t\t.optional()\n\t\t\t.describe(\"existing versions of GitHub Actions workflows used\"),\n\t},\n\tprepare({ options, take }) {\n\t\tconst getAccess = lazyValue(async () => await readAccess(getPackageData));\n\n\t\tconst getAllContributors = lazyValue(\n\t\t\tasync () => await readAllContributors(take),\n\t\t);\n\n\t\tconst getAuthor = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readAuthor(getPackageAuthor, getNpmDefaults, options.owner),\n\t\t);\n\n\t\tconst getBin = lazyValue(async () => await readBin(getPackageData));\n\n\t\tconst getEmoji = lazyValue(async () => await readEmoji(getDescription));\n\n\t\tconst getDescription = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readDescription(getPackageData, getReadme, getRepository),\n\t\t);\n\n\t\tconst getDevelopmentDocumentation = lazyValue(\n\t\t\tasync () => await readDevelopmentDocumentation(take),\n\t\t);\n\n\t\tconst getDocumentation = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readDocumentation(\n\t\t\t\t\tgetDevelopmentDocumentation,\n\t\t\t\t\tgetReadmeAdditional,\n\t\t\t\t\tgetReadmeExplainer,\n\t\t\t\t\tgetReadmeFootnotes,\n\t\t\t\t\tgetReadmeUsage,\n\t\t\t\t),\n\t\t);\n\n\t\tconst getEmail = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readEmails(\n\t\t\t\t\tgetEmailFromCodeOfConduct,\n\t\t\t\t\tgetEmailFromGit,\n\t\t\t\t\tgetEmailFromNpm,\n\t\t\t\t\tgetPackageAuthor,\n\t\t\t\t),\n\t\t);\n\n\t\tconst getKeywords = lazyValue(\n\t\t\tasync () => await readKeywords(getPackageData),\n\t\t);\n\n\t\tconst getEmailFromCodeOfConduct = lazyValue(\n\t\t\tasync () => await readEmailFromCodeOfConduct(take),\n\t\t);\n\n\t\tconst getEmailFromGit = lazyValue(async () => await readEmailFromGit(take));\n\n\t\tconst getEmailFromNpm = lazyValue(\n\t\t\tasync () => await readEmailFromNpm(getNpmDefaults, getPackageAuthor),\n\t\t);\n\n\t\tconst getExistingLabels = lazyValue(\n\t\t\tasync () => await readExistingLabels(take, getOwner, getRepository),\n\t\t);\n\n\t\tconst getFunding = lazyValue(async () => await readFunding(take));\n\n\t\tconst getGitDefaults = lazyValue(async () => await readGitDefaults(take));\n\n\t\tconst getGuide = lazyValue(async () => await readGuide(take));\n\n\t\tconst getLogo = lazyValue(async () => await readLogo(getReadme));\n\n\t\tconst getPackageData = lazyValue(async () => await readPackageData(take));\n\n\t\tconst getNode = lazyValue(\n\t\t\tasync () => await readNode(getNvmrc, getPackageData),\n\t\t);\n\n\t\tconst getNpmDefaults = lazyValue(\n\t\t\tasync () => await readNpmDefaults(getNpmWhoami),\n\t\t);\n\n\t\tconst getNpmWhoami = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromScript, { command: \"npm whoami --offline\" }),\n\t\t);\n\n\t\tconst getNvmrc = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".nvmrc\",\n\t\t\t\t}),\n\t\t);\n\n\t\tconst getOwner = lazyValue(\n\t\t\tasync () => await readOwner(take, getGitDefaults, getPackageAuthor),\n\t\t);\n\n\t\tconst getPackageAuthor = lazyValue(\n\t\t\tasync () => await readPackageAuthor(getPackageData),\n\t\t);\n\n\t\tconst getPnpm = lazyValue(async () => await readPnpm(getPackageData));\n\n\t\tconst getReadme = lazyValue(\n\t\t\tasync () => await readFileSafe(\"README.md\", \"\"),\n\t\t);\n\n\t\tconst getReadmeAdditional = lazyValue(\n\t\t\tasync () => await readReadmeAdditional(getReadme),\n\t\t);\n\n\t\tconst getReadmeExplainer = lazyValue(\n\t\t\tasync () => await readReadmeExplainer(getReadme),\n\t\t);\n\n\t\tconst getReadmeFootnotes = lazyValue(\n\t\t\tasync () => await readReadmeFootnotes(getReadme),\n\t\t);\n\n\t\tconst getReadmeUsage = lazyValue(\n\t\t\tasync () => await readReadmeUsage(getReadme),\n\t\t);\n\n\t\tconst getRepository = lazyValue(\n\t\t\tasync () => await readRepository(getGitDefaults, getPackageData, options),\n\t\t);\n\n\t\tconst getRulesetId = lazyValue(\n\t\t\tasync () => await readRulesetId(take, getOwner, getRepository),\n\t\t);\n\n\t\tconst getTitle = lazyValue(\n\t\t\tasync () => await readTitle(getReadme, getRepository),\n\t\t);\n\n\t\tconst getType = lazyValue(async () => (await getPackageData()).type);\n\n\t\tconst getVersion = lazyValue(async () => (await getPackageData()).version);\n\n\t\tconst getWords = lazyValue(async () => await readWords(take));\n\n\t\tconst getWorkflowData = lazyValue(\n\t\t\tasync () => await readWorkflowsVersions(take),\n\t\t);\n\n\t\treturn {\n\t\t\taccess: getAccess,\n\t\t\tauthor: getAuthor,\n\t\t\tbin: getBin,\n\t\t\tcontributors: getAllContributors,\n\t\t\tdescription: getDescription,\n\t\t\tdocumentation: getDocumentation,\n\t\t\temail: getEmail,\n\t\t\temoji: getEmoji,\n\t\t\texistingLabels: getExistingLabels,\n\t\t\tfunding: getFunding,\n\t\t\tguide: getGuide,\n\t\t\tkeywords: getKeywords,\n\t\t\tlogo: getLogo,\n\t\t\tnode: getNode,\n\t\t\towner: getOwner,\n\t\t\tpackageData: getPackageData,\n\t\t\tpnpm: getPnpm,\n\t\t\trepository: getRepository,\n\t\t\trulesetId: getRulesetId,\n\t\t\ttitle: getTitle,\n\t\t\ttype: getType,\n\t\t\tversion: getVersion,\n\t\t\twords: getWords,\n\t\t\tworkflowsVersions: getWorkflowData,\n\t\t};\n\t},\n});\n\nexport type BaseOptions = BaseOptionsFor<typeof base> & { preset?: string };\n"],"mappings":"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"}
1
+ {"version":3,"file":"base.js","names":[],"sources":["../src/base.ts"],"sourcesContent":["import { BaseOptionsFor, createBase } from \"bingo-stratum\";\nimport { inputFromFile } from \"input-from-file\";\nimport { inputFromScript } from \"input-from-script\";\nimport lazyValue from \"lazy-value\";\nimport { z } from \"zod\";\n\nimport { readAccess } from \"./options/readAccess.js\";\nimport { readAllContributors } from \"./options/readAllContributors.js\";\nimport { readAuthor } from \"./options/readAuthor.js\";\nimport { readBin } from \"./options/readBin.js\";\nimport { readDescription } from \"./options/readDescription.js\";\nimport { readDevelopmentDocumentation } from \"./options/readDevelopmentDocumentation.js\";\nimport { readDocumentation } from \"./options/readDocumentation.js\";\nimport { readEmailFromCodeOfConduct } from \"./options/readEmailFromCodeOfConduct.js\";\nimport { readEmailFromGit } from \"./options/readEmailFromGit.js\";\nimport { readEmailFromNpm } from \"./options/readEmailFromNpm.js\";\nimport { readEmails } from \"./options/readEmails.js\";\nimport { readEmoji } from \"./options/readEmoji.js\";\nimport { readExistingLabels } from \"./options/readExistingLabels.js\";\nimport { readFileSafe } from \"./options/readFileSafe.js\";\nimport { readFunding } from \"./options/readFunding.js\";\nimport { readGitDefaults } from \"./options/readGitDefaults.js\";\nimport { readGuide } from \"./options/readGuide.js\";\nimport { readKeywords } from \"./options/readKeywords.js\";\nimport { readLogo } from \"./options/readLogo.js\";\nimport { readNode } from \"./options/readNode.js\";\nimport { readNpmDefaults } from \"./options/readNpmDefaults.js\";\nimport { readOwner } from \"./options/readOwner.js\";\nimport { readPackageAuthor } from \"./options/readPackageAuthor.js\";\nimport { readPackageData } from \"./options/readPackageData.js\";\nimport { readPnpm } from \"./options/readPnpm.js\";\nimport { readReadmeAdditional } from \"./options/readReadmeAdditional.js\";\nimport { readReadmeExplainer } from \"./options/readReadmeExplainer.js\";\nimport { readReadmeFootnotes } from \"./options/readReadmeFootnotes.js\";\nimport { readReadmeUsage } from \"./options/readReadmeUsage.js\";\nimport { readRepository } from \"./options/readRepository.js\";\nimport { readRulesetId } from \"./options/readRulesetId.js\";\nimport { readTitle } from \"./options/readTitle.js\";\nimport { readWords } from \"./options/readWords.js\";\nimport { readWorkflowsVersions } from \"./options/readWorkflowsVersions.js\";\nimport { zContributor, zDocumentation, zWorkflowsVersions } from \"./schemas.js\";\n\nexport const base = createBase({\n\toptions: {\n\t\taccess: z\n\t\t\t.union([z.literal(\"public\"), z.literal(\"restricted\")])\n\t\t\t.describe(\"which `npm publish --access` to release npm packages with\"),\n\t\tauthor: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"username on npm to publish packages under\"),\n\t\tbin: z\n\t\t\t.union([z.string(), z.record(z.string())])\n\t\t\t.optional()\n\t\t\t.describe('value to set in `package.json`\\'s `\"bin\"` property'),\n\t\tcontributors: z\n\t\t\t.array(zContributor)\n\t\t\t.optional()\n\t\t\t.describe(\"AllContributors contributors to store in .all-contributorsrc\"),\n\t\tdescription: z\n\t\t\t.string()\n\t\t\t.default(\"A very lovely package. Hooray!\")\n\t\t\t.describe(\"'Sentence case.' description of the repository\"),\n\t\tdirectory: z.string().describe(\"Directory to create the repository in\"),\n\t\tdocumentation: zDocumentation.describe(\n\t\t\t\"additional docs to add to .md files\",\n\t\t),\n\t\temail: z\n\t\t\t.union([\n\t\t\t\tz.string(),\n\t\t\t\tz.object({\n\t\t\t\t\tgithub: z.string(),\n\t\t\t\t\tnpm: z.string(),\n\t\t\t\t}),\n\t\t\t])\n\t\t\t// TODO: Test this? Is it still working?\n\t\t\t// https://github.com/JoshuaKGoldberg/create-typescript-app/issues/1991\n\t\t\t.transform((email) =>\n\t\t\t\ttypeof email === \"string\" ? { github: email, npm: email } : email,\n\t\t\t)\n\t\t\t.describe(\n\t\t\t\t\"email address to be listed as the point of contact in docs and packages\",\n\t\t\t),\n\t\temoji: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"decorative emoji to use in descriptions and docs\"),\n\t\texistingLabels: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tcolor: z.string(),\n\t\t\t\t\tdescription: z.string(),\n\t\t\t\t\tname: z.string(),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional()\n\t\t\t.describe(\"existing labels from the GitHub repository\"),\n\t\tfunding: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub organization or username to mention in `funding.yml`\"),\n\t\tguide: z\n\t\t\t.object({\n\t\t\t\thref: z.string(),\n\t\t\t\ttitle: z.string(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"link to a contribution guide to place at the top of development docs\",\n\t\t\t),\n\t\tkeywords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"any number of keywords to include in `package.json`\"),\n\t\tlogo: z\n\t\t\t.object({\n\t\t\t\talt: z.string(),\n\t\t\t\theight: z.number().optional(),\n\t\t\t\tsrc: z.string(),\n\t\t\t\twidth: z.number().optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\n\t\t\t\t\"local image file and alt text to display near the top of the README.md\",\n\t\t\t),\n\t\tnode: z\n\t\t\t.object({\n\t\t\t\tminimum: z.string(),\n\t\t\t\tpinned: z.string().optional(),\n\t\t\t})\n\t\t\t.describe(\"Node.js engine version(s) to pin and require a minimum of\"),\n\t\towner: z.string().describe(\"organization or user owning the repository\"),\n\t\tpackageData: z\n\t\t\t.object({\n\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tpeerDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\tpeerDependenciesMeta: z.record(z.unknown()).optional(),\n\t\t\t\tscripts: z.record(z.string(), z.string().optional()).optional(),\n\t\t\t})\n\t\t\t.optional()\n\t\t\t.describe(\"additional properties to include in `package.json`\"),\n\t\tpnpm: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"pnpm version for package.json's packageManager field\"),\n\t\trepository: z\n\t\t\t.string()\n\t\t\t.describe(\"'kebab-case' or 'PascalCase' title of the repository\"),\n\t\trulesetId: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"GitHub branch ruleset ID for main branch protections\"),\n\t\ttitle: z.string().describe(\"'Title Case' title for the repository\"),\n\t\ttype: z\n\t\t\t.union([z.literal(\"commonjs\"), z.literal(\"module\")])\n\t\t\t.optional()\n\t\t\t.describe(\"package.json modules type\"),\n\t\tversion: z\n\t\t\t.string()\n\t\t\t.optional()\n\t\t\t.describe(\"package version to publish as and store in `package.json`\"),\n\t\twords: z\n\t\t\t.array(z.string())\n\t\t\t.optional()\n\t\t\t.describe(\"additional words to add to the CSpell dictionary\"),\n\t\tworkflowsVersions: zWorkflowsVersions\n\t\t\t.optional()\n\t\t\t.describe(\"existing versions of GitHub Actions workflows used\"),\n\t},\n\tprepare({ options, take }) {\n\t\tconst getAccess = lazyValue(async () => await readAccess(getPackageData));\n\n\t\tconst getAllContributors = lazyValue(\n\t\t\tasync () => await readAllContributors(take),\n\t\t);\n\n\t\tconst getAuthor = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readAuthor(\n\t\t\t\t\tgetPackageAuthor,\n\t\t\t\t\tgetNpmDefaults,\n\t\t\t\t\tgetGitUser,\n\t\t\t\t\toptions.owner,\n\t\t\t\t),\n\t\t);\n\n\t\tconst getBin = lazyValue(async () => await readBin(getPackageData));\n\n\t\tconst getEmoji = lazyValue(async () => await readEmoji(getDescription));\n\n\t\tconst getDescription = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readDescription(getPackageData, getReadme, getRepository),\n\t\t);\n\n\t\tconst getDevelopmentDocumentation = lazyValue(\n\t\t\tasync () => await readDevelopmentDocumentation(take),\n\t\t);\n\n\t\tconst getDocumentation = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readDocumentation(\n\t\t\t\t\tgetDevelopmentDocumentation,\n\t\t\t\t\tgetReadmeAdditional,\n\t\t\t\t\tgetReadmeExplainer,\n\t\t\t\t\tgetReadmeFootnotes,\n\t\t\t\t\tgetReadmeUsage,\n\t\t\t\t),\n\t\t);\n\n\t\tconst getEmail = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait readEmails(\n\t\t\t\t\tgetEmailFromCodeOfConduct,\n\t\t\t\t\tgetEmailFromGit,\n\t\t\t\t\tgetEmailFromNpm,\n\t\t\t\t\tgetPackageAuthor,\n\t\t\t\t),\n\t\t);\n\n\t\tconst getKeywords = lazyValue(\n\t\t\tasync () => await readKeywords(getPackageData),\n\t\t);\n\n\t\tconst getEmailFromCodeOfConduct = lazyValue(\n\t\t\tasync () => await readEmailFromCodeOfConduct(take),\n\t\t);\n\n\t\tconst getEmailFromGit = lazyValue(async () => await readEmailFromGit(take));\n\n\t\tconst getEmailFromNpm = lazyValue(\n\t\t\tasync () => await readEmailFromNpm(getNpmDefaults, getPackageAuthor),\n\t\t);\n\n\t\tconst getExistingLabels = lazyValue(\n\t\t\tasync () => await readExistingLabels(take, getOwner, getRepository),\n\t\t);\n\n\t\tconst getFunding = lazyValue(async () => await readFunding(take));\n\n\t\tconst getGitDefaults = lazyValue(async () => await readGitDefaults(take));\n\n\t\tconst getGitUser = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromScript, { command: \"git config user.name\" }),\n\t\t);\n\n\t\tconst getGuide = lazyValue(async () => await readGuide(take));\n\n\t\tconst getLogo = lazyValue(async () => await readLogo(getReadme));\n\n\t\tconst getPackageData = lazyValue(async () => await readPackageData(take));\n\n\t\tconst getNode = lazyValue(\n\t\t\tasync () => await readNode(getNvmrc, getPackageData),\n\t\t);\n\n\t\tconst getNpmDefaults = lazyValue(\n\t\t\tasync () => await readNpmDefaults(getNpmWhoami),\n\t\t);\n\n\t\tconst getNpmWhoami = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromScript, { command: \"npm whoami --offline\" }),\n\t\t);\n\n\t\tconst getNvmrc = lazyValue(\n\t\t\tasync () =>\n\t\t\t\tawait take(inputFromFile, {\n\t\t\t\t\tfilePath: \".nvmrc\",\n\t\t\t\t}),\n\t\t);\n\n\t\tconst getOwner = lazyValue(\n\t\t\tasync () => await readOwner(take, getGitDefaults, getPackageAuthor),\n\t\t);\n\n\t\tconst getPackageAuthor = lazyValue(\n\t\t\tasync () => await readPackageAuthor(getPackageData),\n\t\t);\n\n\t\tconst getPnpm = lazyValue(async () => await readPnpm(getPackageData));\n\n\t\tconst getReadme = lazyValue(\n\t\t\tasync () => await readFileSafe(\"README.md\", \"\"),\n\t\t);\n\n\t\tconst getReadmeAdditional = lazyValue(\n\t\t\tasync () => await readReadmeAdditional(getReadme),\n\t\t);\n\n\t\tconst getReadmeExplainer = lazyValue(\n\t\t\tasync () => await readReadmeExplainer(getReadme),\n\t\t);\n\n\t\tconst getReadmeFootnotes = lazyValue(\n\t\t\tasync () => await readReadmeFootnotes(getReadme),\n\t\t);\n\n\t\tconst getReadmeUsage = lazyValue(\n\t\t\tasync () => await readReadmeUsage(getReadme),\n\t\t);\n\n\t\tconst getRepository = lazyValue(\n\t\t\tasync () => await readRepository(getGitDefaults, getPackageData, options),\n\t\t);\n\n\t\tconst getRulesetId = lazyValue(\n\t\t\tasync () => await readRulesetId(take, getOwner, getRepository),\n\t\t);\n\n\t\tconst getTitle = lazyValue(\n\t\t\tasync () => await readTitle(getReadme, getRepository),\n\t\t);\n\n\t\tconst getType = lazyValue(async () => (await getPackageData()).type);\n\n\t\tconst getVersion = lazyValue(async () => (await getPackageData()).version);\n\n\t\tconst getWords = lazyValue(async () => await readWords(take));\n\n\t\tconst getWorkflowData = lazyValue(\n\t\t\tasync () => await readWorkflowsVersions(take),\n\t\t);\n\n\t\treturn {\n\t\t\taccess: getAccess,\n\t\t\tauthor: getAuthor,\n\t\t\tbin: getBin,\n\t\t\tcontributors: getAllContributors,\n\t\t\tdescription: getDescription,\n\t\t\tdocumentation: getDocumentation,\n\t\t\temail: getEmail,\n\t\t\temoji: getEmoji,\n\t\t\texistingLabels: getExistingLabels,\n\t\t\tfunding: getFunding,\n\t\t\tguide: getGuide,\n\t\t\tkeywords: getKeywords,\n\t\t\tlogo: getLogo,\n\t\t\tnode: getNode,\n\t\t\towner: getOwner,\n\t\t\tpackageData: getPackageData,\n\t\t\tpnpm: getPnpm,\n\t\t\trepository: getRepository,\n\t\t\trulesetId: getRulesetId,\n\t\t\ttitle: getTitle,\n\t\t\ttype: getType,\n\t\t\tversion: getVersion,\n\t\t\twords: getWords,\n\t\t\tworkflowsVersions: getWorkflowData,\n\t\t};\n\t},\n});\n\nexport type BaseOptions = BaseOptionsFor<typeof base> & { preset?: string };\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum266 from "bingo-stratum";
1
+ import * as bingo_stratum263 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockAllContributors.d.ts
4
- declare const blockAllContributors: bingo_stratum266.BlockWithoutAddons<{
4
+ declare const blockAllContributors: bingo_stratum263.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum271 from "bingo-stratum";
1
+ import * as bingo_stratum304 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockAreTheTypesWrong.d.ts
4
- declare const blockAreTheTypesWrong: bingo_stratum271.BlockWithoutAddons<{
4
+ declare const blockAreTheTypesWrong: bingo_stratum304.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum276 from "bingo-stratum";
1
+ import * as bingo_stratum305 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockCSpell.d.ts
4
- declare const blockCSpell: bingo_stratum276.BlockWithAddons<{
4
+ declare const blockCSpell: bingo_stratum305.BlockWithAddons<{
5
5
  words: string[];
6
6
  ignorePaths: string[];
7
7
  }, {
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum275 from "bingo-stratum";
1
+ import * as bingo_stratum306 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockCTATransitions.d.ts
4
- declare const blockCTATransitions: bingo_stratum275.BlockWithoutAddons<{
4
+ declare const blockCTATransitions: bingo_stratum306.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum279 from "bingo-stratum";
1
+ import * as bingo_stratum355 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockCodecov.d.ts
4
- declare const blockCodecov: bingo_stratum279.BlockWithAddons<{
4
+ declare const blockCodecov: bingo_stratum355.BlockWithAddons<{
5
5
  env?: Record<string, string> | undefined;
6
6
  }, {
7
7
  access: "public" | "restricted";
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum278 from "bingo-stratum";
1
+ import * as bingo_stratum356 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockContributingDocs.d.ts
4
- declare const blockContributingDocs: bingo_stratum278.BlockWithoutAddons<{
4
+ declare const blockContributingDocs: bingo_stratum356.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum272 from "bingo-stratum";
1
+ import * as bingo_stratum357 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockContributorCovenant.d.ts
4
- declare const blockContributorCovenant: bingo_stratum272.BlockWithoutAddons<{
4
+ declare const blockContributorCovenant: bingo_stratum357.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum273 from "bingo-stratum";
1
+ import * as bingo_stratum302 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockDevelopmentDocs.d.ts
4
- declare const blockDevelopmentDocs: bingo_stratum273.BlockWithAddons<{
4
+ declare const blockDevelopmentDocs: bingo_stratum302.BlockWithAddons<{
5
5
  hints: string[];
6
6
  sections: Record<string, {
7
7
  contents?: string | {
@@ -1,21 +1,20 @@
1
- import * as bingo_stratum274 from "bingo-stratum";
1
+ import * as bingo_stratum359 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLint.d.ts
4
- declare const blockESLint: bingo_stratum274.BlockWithAddons<{
5
- explanations: string[];
4
+ declare const blockESLint: bingo_stratum359.BlockWithAddons<{
5
+ ignores: string[];
6
6
  extensions: (string | {
7
7
  files?: string[] | undefined;
8
- extends?: string[] | undefined;
9
- languageOptions?: unknown;
10
- linterOptions?: unknown;
11
8
  plugins?: Record<string, string> | undefined;
9
+ settings?: Record<string, unknown> | undefined;
12
10
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
13
11
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
14
12
  comment?: string | undefined;
15
13
  }[] | undefined;
16
- settings?: Record<string, unknown> | undefined;
14
+ extends?: string[] | undefined;
15
+ languageOptions?: unknown;
16
+ linterOptions?: unknown;
17
17
  })[];
18
- ignores: string[];
19
18
  imports: {
20
19
  source: string | {
21
20
  version: string;
@@ -24,12 +23,13 @@ declare const blockESLint: bingo_stratum274.BlockWithAddons<{
24
23
  specifier: string;
25
24
  types?: boolean | undefined;
26
25
  }[];
27
- beforeLint?: string | undefined;
26
+ explanations: string[];
27
+ settings?: Record<string, unknown> | undefined;
28
28
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
29
29
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
30
30
  comment?: string | undefined;
31
31
  }[] | undefined;
32
- settings?: Record<string, unknown> | undefined;
32
+ beforeLint?: string | undefined;
33
33
  }, {
34
34
  access: "public" | "restricted";
35
35
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLint.d.ts","names":[],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":[],"mappings":";;;cA0Ba,8BAAW;;;IAAX,KAAA,CAAA,EAAA,MAoPX,EAAA,GAAA,SAAA;IAAA,OAAA,CAAA,EAAA,MAAA,EAAA,GAAA,SAAA;IAAA,eAAA,CAAA,EAAA,OAAA;;cAAA;;;;;;;;;;;;;qBApPsB;IAAA,KAAA,CAAA,EAAA,OAAA,GAAA,SAAA"}
1
+ {"version":3,"file":"blockESLint.d.ts","names":[],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":[],"mappings":";;;cA0Ba,8BAAW;;;IAAX,KAAA,CAAA,EAAA,MAmPX,EAAA,GAAA,SAAA;IAAA,OAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;IAAA,QAAA,CAAA,QAAA,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,SAAA;;;;;;;;;;;;;;;sBAnPsB,SAAA;EAAA,CAAA,EAAA"}
@@ -50,10 +50,7 @@ const blockESLint = base.createBlock({
50
50
  printExtension({
51
51
  extends: ["tseslint.configs.strictTypeChecked", "tseslint.configs.stylisticTypeChecked"],
52
52
  files: [`**/*.{${fileExtensions}}`],
53
- languageOptions: { parserOptions: {
54
- projectService: { allowDefaultProject: Array.from(new Set(["*.config.*s", ...typeof options.bin === "object" ? Object.values(options.bin) : [options.bin]].filter(Boolean).sort())) },
55
- tsconfigRootDir: "import.meta.dirname"
56
- } },
53
+ languageOptions: { parserOptions: { projectService: { allowDefaultProject: Array.from(new Set(["*.config.*s", ...typeof options.bin === "object" ? Object.values(options.bin) : [options.bin]].filter(Boolean).sort())) } } },
57
54
  ...rules && { rules },
58
55
  ...settings && { settings }
59
56
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLint.js","names":["explanation","rulesGroups: ExtensionRuleGroup[]","grouped: typeof rulesGroups","extension: Extension","rules: ExtensionRules","comment: string | undefined","line: string"],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport sortKeys from \"sort-keys\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { blockESLintIntake } from \"./eslint/blockESLintIntake.js\";\nimport {\n\tExtension,\n\tExtensionRuleGroup,\n\tExtensionRules,\n\tzExtension,\n\tzExtensionRules,\n\tzPackageImport,\n} from \"./eslint/schemas.js\";\nimport { intakeFile } from \"./intake/intakeFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\texplanations: z.array(z.string()).default([]),\n\t\textensions: z.array(z.union([z.string(), zExtension])).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t\trules: zExtensionRules.optional(),\n\t\tsettings: z.record(z.string(), z.unknown()).optional(),\n\t},\n\tintake({ files }) {\n\t\tconst eslintConfigRaw = intakeFile(files, [\n\t\t\t[\"eslint.config.js\", \"eslint.config.mjs\"],\n\t\t]);\n\n\t\treturn eslintConfigRaw ? blockESLintIntake(eslintConfigRaw[0]) : undefined;\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { explanations, extensions, ignores, imports, rules, settings } =\n\t\t\taddons;\n\n\t\tconst [configFileName, fileExtensions] =\n\t\t\toptions.type === \"commonjs\"\n\t\t\t\t? [\"eslint.config.mjs\", \"js,mjs,ts\"]\n\t\t\t\t: [\"eslint.config.js\", \"js,ts\"];\n\n\t\tconst explanation =\n\t\t\texplanations.length > 0\n\t\t\t\t? `${explanations\n\t\t\t\t\t\t.map((explanation) => `/*\\n${explanation}\\n*/\\n`)\n\t\t\t\t\t\t.join(\"\")}\\n`\n\t\t\t\t: \"\";\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${typeof packageImport.source === \"string\" ? packageImport.source : packageImport.source.packageName}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = Array.from(\n\t\t\tnew Set(\n\t\t\t\t[\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores].map((ignore) =>\n\t\t\t\t\tJSON.stringify(ignore),\n\t\t\t\t),\n\t\t\t),\n\t\t).sort();\n\n\t\tconst extensionLines = [\n\t\t\tprintExtension({\n\t\t\t\textends: [\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [`**/*.{${fileExtensions}}`],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: Array.from(\n\t\t\t\t\t\t\t\tnew Set(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\"*.config.*s\",\n\t\t\t\t\t\t\t\t\t\t...(typeof options.bin === \"object\"\n\t\t\t\t\t\t\t\t\t\t\t? Object.values(options.bin)\n\t\t\t\t\t\t\t\t\t\t\t: [options.bin]),\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t\t\t.sort(),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttsconfigRootDir: \"import.meta.dirname\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...(rules && { rules }),\n\t\t\t\t...(settings && { settings }),\n\t\t\t}),\n\t\t\t...(options.type === \"commonjs\"\n\t\t\t\t? [\n\t\t\t\t\t\tprintExtension({\n\t\t\t\t\t\t\tfiles: [\"*.mjs\"],\n\t\t\t\t\t\t\tlanguageOptions: { sourceType: \"module\" },\n\t\t\t\t\t\t}),\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t...extensions.map((extension) =>\n\t\t\t\ttypeof extension === \"string\" ? extension : printExtension(extension),\n\t\t\t),\n\t\t]\n\t\t\t.sort((a, b) => processForSort(a).localeCompare(processForSort(b)))\n\t\t\t.map((t) => t);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: {\n\t\t\t\t\t\t\t...getPackageDependencies(\n\t\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t\t...imports\n\t\t\t\t\t\t\t\t\t.filter((imported) => typeof imported.source === \"string\")\n\t\t\t\t\t\t\t\t\t.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as {\n\t\t\t\t\t\t\t\t\t\t\tname: string;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\timports\n\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\timported,\n\t\t\t\t\t\t\t\t\t\t): imported is typeof imported & { source: object } =>\n\t\t\t\t\t\t\t\t\t\t\ttypeof imported.source === \"object\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map((imported) => [\n\t\t\t\t\t\t\t\t\t\timported.source.packageName,\n\t\t\t\t\t\t\t\t\t\timported.source.version,\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t[configFileName]: `${explanation}${importLines.join(\"\\n\")}\n\nexport default tseslint.config(\n\t{ ignores: [${ignoreLines.join(\", \")}] },\n\t${printExtension({\n\t\tlinterOptions: { reportUnusedDisableDirectives: \"error\" },\n\t})},\n\teslint.configs.recommended,\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\ttransition({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveDependencies({\n\t\t\t\t\tdependencies: [\n\t\t\t\t\t\t\"@types/eslint\",\n\t\t\t\t\t\t\"@typescript-eslint/eslint-plugin\",\n\t\t\t\t\t\t\"@typescript-eslint/parser\",\n\t\t\t\t\t\t\"eslint-plugin-deprecation\",\n\t\t\t\t\t\t\"eslint-plugin-eslint-comments\",\n\t\t\t\t\t\t\"eslint-plugin-no-only-tests\",\n\t\t\t\t\t\t\"yaml-eslint-parser\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\".eslintrc*\",\n\t\t\t\t\t\t\".eslintignore\",\n\t\t\t\t\t\toptions.type === \"commonjs\"\n\t\t\t\t\t\t\t? \"eslint.config.{cjs,js}\"\n\t\t\t\t\t\t\t: \"eslint.config.{cjs,mjs}\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"eslint\", \"lint\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction groupByComment(rulesGroups: ExtensionRuleGroup[]) {\n\tconst byComment = new Map<string | undefined, ExtensionRuleGroup>();\n\tconst grouped: typeof rulesGroups = [];\n\n\tfor (const group of rulesGroups) {\n\t\tconst existing = byComment.get(group.comment);\n\n\t\tif (existing) {\n\t\t\texisting.entries = {\n\t\t\t\t...existing.entries,\n\t\t\t\t...group.entries,\n\t\t\t};\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tbyComment.set(group.comment, group);\n\t\t\tgrouped.push(group);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction printExtension(extension: Extension) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\textension.files &&\n\t\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings &&\n\t\t\t`settings: ${JSON.stringify(sortKeys(extension.settings))},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: ExtensionRules) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...groupByComment(rules).flatMap((group) => [\n\t\t\tprintGroupComment(group.comment),\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction printGroupComment(comment: string | undefined) {\n\treturn comment ? `\\n\\n// ${comment.replaceAll(\"\\n\", \"\\n// \")}\\n` : \"\";\n}\n\nfunction processForSort(line: string) {\n\tif (line.startsWith(\"...\") || /\\w+/.test(line[0])) {\n\t\treturn `A\\n${line.replaceAll(/\\W+/g, \"\")}`;\n\t}\n\n\treturn `B\\n${(/files: (.+)/.exec(line)?.[1] ?? line).replaceAll(/\\W+/g, \"\")}`;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"blockESLint.js","names":["explanation","rulesGroups: ExtensionRuleGroup[]","grouped: typeof rulesGroups","extension: Extension","rules: ExtensionRules","comment: string | undefined","line: string"],"sources":["../../src/blocks/blockESLint.ts"],"sourcesContent":["// @ts-expect-error -- https://github.com/egoist/parse-package-name/issues/30\nimport { parse as parsePackageName } from \"parse-package-name\";\nimport sortKeys from \"sort-keys\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveDependencies } from \"./blockRemoveDependencies.js\";\nimport { blockRemoveFiles } from \"./blockRemoveFiles.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { blockESLintIntake } from \"./eslint/blockESLintIntake.js\";\nimport {\n\tExtension,\n\tExtensionRuleGroup,\n\tExtensionRules,\n\tzExtension,\n\tzExtensionRules,\n\tzPackageImport,\n} from \"./eslint/schemas.js\";\nimport { intakeFile } from \"./intake/intakeFile.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\n\t\texplanations: z.array(z.string()).default([]),\n\t\textensions: z.array(z.union([z.string(), zExtension])).default([]),\n\t\tignores: z.array(z.string()).default([]),\n\t\timports: z.array(zPackageImport).default([]),\n\t\trules: zExtensionRules.optional(),\n\t\tsettings: z.record(z.string(), z.unknown()).optional(),\n\t},\n\tintake({ files }) {\n\t\tconst eslintConfigRaw = intakeFile(files, [\n\t\t\t[\"eslint.config.js\", \"eslint.config.mjs\"],\n\t\t]);\n\n\t\treturn eslintConfigRaw ? blockESLintIntake(eslintConfigRaw[0]) : undefined;\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { explanations, extensions, ignores, imports, rules, settings } =\n\t\t\taddons;\n\n\t\tconst [configFileName, fileExtensions] =\n\t\t\toptions.type === \"commonjs\"\n\t\t\t\t? [\"eslint.config.mjs\", \"js,mjs,ts\"]\n\t\t\t\t: [\"eslint.config.js\", \"js,ts\"];\n\n\t\tconst explanation =\n\t\t\texplanations.length > 0\n\t\t\t\t? `${explanations\n\t\t\t\t\t\t.map((explanation) => `/*\\n${explanation}\\n*/\\n`)\n\t\t\t\t\t\t.join(\"\")}\\n`\n\t\t\t\t: \"\";\n\n\t\tconst importLines = [\n\t\t\t'import eslint from \"@eslint/js\";',\n\t\t\t'import tseslint from \"typescript-eslint\";',\n\t\t\t...imports.map(\n\t\t\t\t(packageImport) =>\n\t\t\t\t\t`import ${packageImport.specifier} from \"${typeof packageImport.source === \"string\" ? packageImport.source : packageImport.source.packageName}\"`,\n\t\t\t),\n\t\t].sort((a, b) =>\n\t\t\ta.replace(/.+from/, \"\").localeCompare(b.replace(/.+from/, \"\")),\n\t\t);\n\n\t\tconst ignoreLines = Array.from(\n\t\t\tnew Set(\n\t\t\t\t[\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores].map((ignore) =>\n\t\t\t\t\tJSON.stringify(ignore),\n\t\t\t\t),\n\t\t\t),\n\t\t).sort();\n\n\t\tconst extensionLines = [\n\t\t\tprintExtension({\n\t\t\t\textends: [\n\t\t\t\t\t\"tseslint.configs.strictTypeChecked\",\n\t\t\t\t\t\"tseslint.configs.stylisticTypeChecked\",\n\t\t\t\t],\n\t\t\t\tfiles: [`**/*.{${fileExtensions}}`],\n\t\t\t\tlanguageOptions: {\n\t\t\t\t\tparserOptions: {\n\t\t\t\t\t\tprojectService: {\n\t\t\t\t\t\t\tallowDefaultProject: Array.from(\n\t\t\t\t\t\t\t\tnew Set(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\"*.config.*s\",\n\t\t\t\t\t\t\t\t\t\t...(typeof options.bin === \"object\"\n\t\t\t\t\t\t\t\t\t\t\t? Object.values(options.bin)\n\t\t\t\t\t\t\t\t\t\t\t: [options.bin]),\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t\t\t.sort(),\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t...(rules && { rules }),\n\t\t\t\t...(settings && { settings }),\n\t\t\t}),\n\t\t\t...(options.type === \"commonjs\"\n\t\t\t\t? [\n\t\t\t\t\t\tprintExtension({\n\t\t\t\t\t\t\tfiles: [\"*.mjs\"],\n\t\t\t\t\t\t\tlanguageOptions: { sourceType: \"module\" },\n\t\t\t\t\t\t}),\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t...extensions.map((extension) =>\n\t\t\t\ttypeof extension === \"string\" ? extension : printExtension(extension),\n\t\t\t),\n\t\t]\n\t\t\t.sort((a, b) => processForSort(a).localeCompare(processForSort(b)))\n\t\t\t.map((t) => t);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tLinting: {\n\t\t\t\t\t\t\tcontents: {\n\t\t\t\t\t\t\t\tafter: [\n\t\t\t\t\t\t\t\t\t`\nFor example, ESLint can be run with \\`--fix\\` to auto-fix some lint rule complaints:\n\n\\`\\`\\`shell\npnpm run lint --fix\n\\`\\`\\`\n`,\n\t\t\t\t\t\t\t\t\t...(addons.beforeLint ? [addons.beforeLint] : []),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tbefore: `\nThis package includes several forms of linting to enforce consistent code quality and styling.\nEach should be shown in VS Code, and can be run manually on the command-line:\n`,\n\t\t\t\t\t\t\t\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint\\` ([ESLint](https://eslint.org) with [typescript-eslint](https://typescript-eslint.io)): Lints JavaScript and TypeScript source files`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tplural: `Read the individual documentation for each linter to understand how it can be configured and used best.`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint\",\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t...(options.bin ? [{ run: \"pnpm build\" }] : []),\n\t\t\t\t\t\t\t\t{ run: \"pnpm lint\" },\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: {\n\t\t\t\t\t\t\t...getPackageDependencies(\n\t\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t\t...imports\n\t\t\t\t\t\t\t\t\t.filter((imported) => typeof imported.source === \"string\")\n\t\t\t\t\t\t\t\t\t.flatMap(({ source, types }) => {\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call -- https://github.com/egoist/parse-package-name/issues/30\n\t\t\t\t\t\t\t\t\t\tconst { name } = parsePackageName(source) as {\n\t\t\t\t\t\t\t\t\t\t\tname: string;\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t\t\t\timports\n\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\timported,\n\t\t\t\t\t\t\t\t\t\t): imported is typeof imported & { source: object } =>\n\t\t\t\t\t\t\t\t\t\t\ttypeof imported.source === \"object\",\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.map((imported) => [\n\t\t\t\t\t\t\t\t\t\timported.source.packageName,\n\t\t\t\t\t\t\t\t\t\timported.source.version,\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tlint: \"eslint . --max-warnings 0\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVSCode({\n\t\t\t\t\textensions: [\"dbaeumer.vscode-eslint\"],\n\t\t\t\t\tsettings: {\n\t\t\t\t\t\t\"editor.codeActionsOnSave\": {\n\t\t\t\t\t\t\t\"source.fixAll.eslint\": \"explicit\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"eslint.probe\": [\n\t\t\t\t\t\t\t\"javascript\",\n\t\t\t\t\t\t\t\"javascriptreact\",\n\t\t\t\t\t\t\t\"json\",\n\t\t\t\t\t\t\t\"jsonc\",\n\t\t\t\t\t\t\t\"markdown\",\n\t\t\t\t\t\t\t\"typescript\",\n\t\t\t\t\t\t\t\"typescriptreact\",\n\t\t\t\t\t\t\t\"yaml\",\n\t\t\t\t\t\t],\n\t\t\t\t\t\t\"eslint.rules.customizations\": [{ rule: \"*\", severity: \"warn\" }],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t[configFileName]: `${explanation}${importLines.join(\"\\n\")}\n\nexport default tseslint.config(\n\t{ ignores: [${ignoreLines.join(\", \")}] },\n\t${printExtension({\n\t\tlinterOptions: { reportUnusedDisableDirectives: \"error\" },\n\t})},\n\teslint.configs.recommended,\n\t${extensionLines.join(\",\")}\n);`,\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm lint --fix\"],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\ttransition({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveDependencies({\n\t\t\t\t\tdependencies: [\n\t\t\t\t\t\t\"@types/eslint\",\n\t\t\t\t\t\t\"@typescript-eslint/eslint-plugin\",\n\t\t\t\t\t\t\"@typescript-eslint/parser\",\n\t\t\t\t\t\t\"eslint-plugin-deprecation\",\n\t\t\t\t\t\t\"eslint-plugin-eslint-comments\",\n\t\t\t\t\t\t\"eslint-plugin-no-only-tests\",\n\t\t\t\t\t\t\"yaml-eslint-parser\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveFiles({\n\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\".eslintrc*\",\n\t\t\t\t\t\t\".eslintignore\",\n\t\t\t\t\t\toptions.type === \"commonjs\"\n\t\t\t\t\t\t\t? \"eslint.config.{cjs,js}\"\n\t\t\t\t\t\t\t: \"eslint.config.{cjs,mjs}\",\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"eslint\", \"lint\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n\nfunction groupByComment(rulesGroups: ExtensionRuleGroup[]) {\n\tconst byComment = new Map<string | undefined, ExtensionRuleGroup>();\n\tconst grouped: typeof rulesGroups = [];\n\n\tfor (const group of rulesGroups) {\n\t\tconst existing = byComment.get(group.comment);\n\n\t\tif (existing) {\n\t\t\texisting.entries = {\n\t\t\t\t...existing.entries,\n\t\t\t\t...group.entries,\n\t\t\t};\n\t\t\tcontinue;\n\t\t} else {\n\t\t\tbyComment.set(group.comment, group);\n\t\t\tgrouped.push(group);\n\t\t}\n\t}\n\n\treturn grouped;\n}\n\nfunction printExtension(extension: Extension) {\n\treturn [\n\t\t\"{\",\n\t\textension.extends && `extends: [${extension.extends.join(\", \")}],`,\n\t\textension.files &&\n\t\t\t`files: [${extension.files.map((glob) => JSON.stringify(glob)).join(\", \")}],`,\n\t\textension.languageOptions &&\n\t\t\t`languageOptions: ${JSON.stringify(extension.languageOptions).replace('\"import.meta.dirname\"', \"import.meta.dirname\")},`,\n\t\textension.linterOptions &&\n\t\t\t`linterOptions: ${JSON.stringify(extension.linterOptions)}`,\n\t\textension.rules && `rules: ${printExtensionRules(extension.rules)},`,\n\t\textension.settings &&\n\t\t\t`settings: ${JSON.stringify(sortKeys(extension.settings))},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: ExtensionRules) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...groupByComment(rules).flatMap((group) => [\n\t\t\tprintGroupComment(group.comment),\n\t\t\t...Object.entries(group.entries).map(\n\t\t\t\t([ruleName, options]) => `\"${ruleName}\": ${JSON.stringify(options)},`,\n\t\t\t),\n\t\t]),\n\t\t\"}\",\n\t].join(\"\");\n}\n\nfunction printGroupComment(comment: string | undefined) {\n\treturn comment ? `\\n\\n// ${comment.replaceAll(\"\\n\", \"\\n// \")}\\n` : \"\";\n}\n\nfunction processForSort(line: string) {\n\tif (line.startsWith(\"...\") || /\\w+/.test(line[0])) {\n\t\treturn `A\\n${line.replaceAll(/\\W+/g, \"\")}`;\n\t}\n\n\treturn `B\\n${(/files: (.+)/.exec(line)?.[1] ?? line).replaceAll(/\\W+/g, \"\")}`;\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum133 from "bingo-stratum";
1
+ import * as bingo_stratum360 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintComments.d.ts
4
- declare const blockESLintComments: bingo_stratum133.BlockWithoutAddons<{
4
+ declare const blockESLintComments: bingo_stratum360.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum265 from "bingo-stratum";
1
+ import * as bingo_stratum362 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintJSDoc.d.ts
4
- declare const blockESLintJSDoc: bingo_stratum265.BlockWithoutAddons<{
4
+ declare const blockESLintJSDoc: bingo_stratum362.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum267 from "bingo-stratum";
1
+ import * as bingo_stratum358 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintJSONC.d.ts
4
- declare const blockESLintJSONC: bingo_stratum267.BlockWithoutAddons<{
4
+ declare const blockESLintJSONC: bingo_stratum358.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum268 from "bingo-stratum";
1
+ import * as bingo_stratum1149 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintMarkdown.d.ts
4
- declare const blockESLintMarkdown: bingo_stratum268.BlockWithoutAddons<{
4
+ declare const blockESLintMarkdown: bingo_stratum1149.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintMarkdown.d.ts","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":[],"mappings":";;;cAGa,sCAAmB;;;EAAnB,SAAA,EAAA,MAAA;EAoBX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IApB8B,MAAA,EAAA,MAAA;;;;;;;;;;;;iBAoB9B"}
1
+ {"version":3,"file":"blockESLintMarkdown.d.ts","names":[],"sources":["../../src/blocks/blockESLintMarkdown.ts"],"sourcesContent":[],"mappings":";;;cAGa,uCAAmB;;;EAAnB,SAAA,EAAA,MAAA;EAoBX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IApB8B,MAAA,EAAA,MAAA;;;;;;;;;;;;iBAoB9B"}
@@ -1,8 +1,8 @@
1
- import * as bingo_stratum269 from "bingo-stratum";
1
+ import * as bingo_stratum1150 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintMoreStyling.d.ts
4
4
  declare const stylisticComment = "Stylistic concerns that don't interfere with Prettier";
5
- declare const blockESLintMoreStyling: bingo_stratum269.BlockWithoutAddons<{
5
+ declare const blockESLintMoreStyling: bingo_stratum1150.BlockWithoutAddons<{
6
6
  access: "public" | "restricted";
7
7
  description: string;
8
8
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintMoreStyling.d.ts","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":[],"mappings":";;;cAGa,gBAAA;cAGA,yCAAsB;;EAHtB,WAAA,EAAA,MAAgB;EAGhB,SAAA,EAAA,MAAA;EA2BX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IA3BiC,MAAA,EAAA,MAAA;;;;;;;;;;;;iBA2BjC"}
1
+ {"version":3,"file":"blockESLintMoreStyling.d.ts","names":[],"sources":["../../src/blocks/blockESLintMoreStyling.ts"],"sourcesContent":[],"mappings":";;;cAGa,gBAAA;cAGA,0CAAsB;;EAHtB,WAAA,EAAA,MAAgB;EAGhB,SAAA,EAAA,MAAA;EA2BX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IA3BiC,MAAA,EAAA,MAAA;;;;;;;;;;;;iBA2BjC"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum270 from "bingo-stratum";
1
+ import * as bingo_stratum1151 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintNode.d.ts
4
- declare const blockESLintNode: bingo_stratum270.BlockWithoutAddons<{
4
+ declare const blockESLintNode: bingo_stratum1151.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintNode.d.ts","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":[],"mappings":";;;cAGa,kCAAe;;;EAAf,SAAA,EAAA,MAAA;EAqBX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IArB0B,MAAA,EAAA,MAAA;;;;;;;;;;;;iBAqB1B"}
1
+ {"version":3,"file":"blockESLintNode.d.ts","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":[],"mappings":";;;cAGa,mCAAe;;;EAAf,SAAA,EAAA,MAAA;EAqBX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IArB0B,MAAA,EAAA,MAAA;;;;;;;;;;;;iBAqB1B"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum134 from "bingo-stratum";
1
+ import * as bingo_stratum1148 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintPackageJson.d.ts
4
- declare const blockESLintPackageJson: bingo_stratum134.BlockWithoutAddons<{
4
+ declare const blockESLintPackageJson: bingo_stratum1148.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintPackageJson.d.ts","names":[],"sources":["../../src/blocks/blockESLintPackageJson.ts"],"sourcesContent":[],"mappings":";;;cAOa,yCAAsB;;;EAAtB,SAAA,EAAA,MAAA;EA4CX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IA5CiC,MAAA,EAAA,MAAA;;;;;;;;;;;;iBA4CjC"}
1
+ {"version":3,"file":"blockESLintPackageJson.d.ts","names":[],"sources":["../../src/blocks/blockESLintPackageJson.ts"],"sourcesContent":[],"mappings":";;;cAOa,0CAAsB;;;EAAtB,SAAA,EAAA,MAAA;EA4CX,aAAA,EAAA;IAAA,MAAA,EAAA;;;;;;;;;IA5CiC,MAAA,EAAA,MAAA;;;;;;;;;;;;iBA4CjC"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum277 from "bingo-stratum";
1
+ import * as bingo_stratum266 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintPerfectionist.d.ts
4
- declare const blockESLintPerfectionist: bingo_stratum277.BlockWithoutAddons<{
4
+ declare const blockESLintPerfectionist: bingo_stratum266.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum280 from "bingo-stratum";
1
+ import * as bingo_stratum1153 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintPlugin.d.ts
4
- declare const blockESLintPlugin: bingo_stratum280.BlockWithAddons<{
4
+ declare const blockESLintPlugin: bingo_stratum1153.BlockWithAddons<{
5
5
  configEmoji?: [string, string][] | undefined;
6
6
  }, {
7
7
  access: "public" | "restricted";
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintPlugin.d.ts","names":[],"sources":["../../src/blocks/blockESLintPlugin.ts"],"sourcesContent":[],"mappings":";;;cAaa,oCAAiB;;;EAAjB,MAAA,EAAA,QAAA,GAAA,YA2QX;EAAA,WAAA,EAAA,MAAA;EAAA,SAAA,EAAA,MAAA;;;;;;;;wBA3Q4B,GAAA,SAAA;EAAA,CAAA;;;;;;;;;;;;;;iBA2Q5B"}
1
+ {"version":3,"file":"blockESLintPlugin.d.ts","names":[],"sources":["../../src/blocks/blockESLintPlugin.ts"],"sourcesContent":[],"mappings":";;;cAaa,qCAAiB;;;EAAjB,MAAA,EAAA,QAAA,GAAA,YA2QX;EAAA,WAAA,EAAA,MAAA;EAAA,SAAA,EAAA,MAAA;;;;;;;;wBA3Q4B,GAAA,SAAA;EAAA,CAAA;;;;;;;;;;;;;;iBA2Q5B"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum283 from "bingo-stratum";
1
+ import * as bingo_stratum299 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintRegexp.d.ts
4
- declare const blockESLintRegexp: bingo_stratum283.BlockWithoutAddons<{
4
+ declare const blockESLintRegexp: bingo_stratum299.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum285 from "bingo-stratum";
1
+ import * as bingo_stratum300 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockESLintYML.d.ts
4
- declare const blockESLintYML: bingo_stratum285.BlockWithoutAddons<{
4
+ declare const blockESLintYML: bingo_stratum300.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum287 from "bingo-stratum";
1
+ import * as bingo_stratum297 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockExampleFiles.d.ts
4
- declare const blockExampleFiles: bingo_stratum287.BlockWithAddons<{
4
+ declare const blockExampleFiles: bingo_stratum297.BlockWithAddons<{
5
5
  usage: string[];
6
6
  files: Record<string, string>;
7
7
  }, {
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum289 from "bingo-stratum";
1
+ import * as bingo_stratum366 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockFunding.d.ts
4
- declare const blockFunding: bingo_stratum289.BlockWithoutAddons<{
4
+ declare const blockFunding: bingo_stratum366.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum292 from "bingo-stratum";
1
+ import * as bingo_stratum1152 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitHubActionsCI.d.ts
4
- declare const blockGitHubActionsCI: bingo_stratum292.BlockWithAddons<{
4
+ declare const blockGitHubActionsCI: bingo_stratum1152.BlockWithAddons<{
5
5
  jobs?: {
6
6
  name: string;
7
7
  steps: ({
@@ -1 +1 @@
1
- {"version":3,"file":"blockGitHubActionsCI.d.ts","names":[],"sources":["../../src/blocks/blockGitHubActionsCI.ts"],"sourcesContent":[],"mappings":";;;cAWa,uCAAoB;;;IAApB,KAAA,EAAA,CAAA;MA2IX,GAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;MAAA,EAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;;;;;;;;;;EA3I+B,MAAA,EAAA,QAAA,GAAA,YAAA"}
1
+ {"version":3,"file":"blockGitHubActionsCI.d.ts","names":[],"sources":["../../src/blocks/blockGitHubActionsCI.ts"],"sourcesContent":[],"mappings":";;;cAWa,wCAAoB;;;IAApB,KAAA,EAAA,CAAA;MA2IX,GAAA,CAAA,EAAA,MAAA,CAAA,MAAA,EAAA,MAAA,CAAA,GAAA,SAAA;MAAA,EAAA,CAAA,EAAA,MAAA,GAAA,SAAA;;;;;;;;;;;;EA3I+B,MAAA,EAAA,QAAA,GAAA,YAAA"}
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum293 from "bingo-stratum";
1
+ import * as bingo_stratum264 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitHubApps.d.ts
4
- declare const blockGitHubApps: bingo_stratum293.BlockWithAddons<{
4
+ declare const blockGitHubApps: bingo_stratum264.BlockWithAddons<{
5
5
  apps: {
6
6
  name: string;
7
7
  url: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum296 from "bingo-stratum";
1
+ import * as bingo_stratum285 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitHubIssueTemplates.d.ts
4
- declare const blockGitHubIssueTemplates: bingo_stratum296.BlockWithoutAddons<{
4
+ declare const blockGitHubIssueTemplates: bingo_stratum285.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum297 from "bingo-stratum";
1
+ import * as bingo_stratum286 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitHubPRTemplate.d.ts
4
- declare const blockGitHubPRTemplate: bingo_stratum297.BlockWithoutAddons<{
4
+ declare const blockGitHubPRTemplate: bingo_stratum286.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum299 from "bingo-stratum";
1
+ import * as bingo_stratum288 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockGitignore.d.ts
4
- declare const blockGitignore: bingo_stratum299.BlockWithAddons<{
4
+ declare const blockGitignore: bingo_stratum288.BlockWithAddons<{
5
5
  ignores: string[];
6
6
  }, {
7
7
  access: "public" | "restricted";
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum301 from "bingo-stratum";
1
+ import * as bingo_stratum290 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockKnip.d.ts
4
- declare const blockKnip: bingo_stratum301.BlockWithAddons<{
4
+ declare const blockKnip: bingo_stratum290.BlockWithAddons<{
5
5
  entry?: string[] | undefined;
6
6
  ignoreDependencies?: string[] | undefined;
7
7
  project?: string[] | undefined;
@@ -1,7 +1,7 @@
1
- import * as bingo_stratum303 from "bingo-stratum";
1
+ import * as bingo_stratum291 from "bingo-stratum";
2
2
 
3
3
  //#region src/blocks/blockMITLicense.d.ts
4
- declare const blockMITLicense: bingo_stratum303.BlockWithoutAddons<{
4
+ declare const blockMITLicense: bingo_stratum291.BlockWithoutAddons<{
5
5
  access: "public" | "restricted";
6
6
  description: string;
7
7
  directory: string;