create-typescript-app 2.0.0-beta.8 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +14 -15
  2. package/bin/index.js +3 -13
  3. package/lib/base.d.ts +4 -3
  4. package/lib/base.js +25 -15
  5. package/lib/base.js.map +1 -1
  6. package/lib/blocks/blockAllContributors.d.ts +5 -4
  7. package/lib/blocks/blockAllContributors.js +3 -2
  8. package/lib/blocks/blockAllContributors.js.map +1 -1
  9. package/lib/blocks/blockAreTheTypesWrong.d.ts +5 -4
  10. package/lib/blocks/blockCSpell.d.ts +5 -4
  11. package/lib/blocks/blockCSpell.js +13 -13
  12. package/lib/blocks/blockCSpell.js.map +1 -1
  13. package/lib/blocks/blockCodecov.d.ts +5 -4
  14. package/lib/blocks/blockCodecov.js +11 -11
  15. package/lib/blocks/blockCodecov.js.map +1 -1
  16. package/lib/blocks/blockContributingDocs.d.ts +5 -4
  17. package/lib/blocks/blockContributingDocs.js +11 -11
  18. package/lib/blocks/blockContributingDocs.js.map +1 -1
  19. package/lib/blocks/blockContributorCovenant.d.ts +5 -4
  20. package/lib/blocks/blockContributorCovenant.js +11 -11
  21. package/lib/blocks/blockContributorCovenant.js.map +1 -1
  22. package/lib/blocks/blockDevelopmentDocs.d.ts +5 -4
  23. package/lib/blocks/blockDevelopmentDocs.js +11 -11
  24. package/lib/blocks/blockDevelopmentDocs.js.map +1 -1
  25. package/lib/blocks/blockESLint.d.ts +5 -4
  26. package/lib/blocks/blockESLint.js +11 -11
  27. package/lib/blocks/blockESLint.js.map +1 -1
  28. package/lib/blocks/blockESLintComments.d.ts +5 -4
  29. package/lib/blocks/blockESLintJSDoc.d.ts +5 -4
  30. package/lib/blocks/blockESLintJSONC.d.ts +5 -4
  31. package/lib/blocks/blockESLintMarkdown.d.ts +5 -4
  32. package/lib/blocks/blockESLintMoreStyling.d.ts +5 -4
  33. package/lib/blocks/blockESLintNode.d.ts +5 -4
  34. package/lib/blocks/blockESLintPackageJson.d.ts +5 -4
  35. package/lib/blocks/blockESLintPerfectionist.d.ts +5 -4
  36. package/lib/blocks/blockESLintRegexp.d.ts +5 -4
  37. package/lib/blocks/blockESLintYML.d.ts +5 -4
  38. package/lib/blocks/blockExampleFiles.d.ts +5 -4
  39. package/lib/blocks/blockExampleFiles.js +3 -2
  40. package/lib/blocks/blockExampleFiles.js.map +1 -1
  41. package/lib/blocks/blockFunding.d.ts +5 -4
  42. package/lib/blocks/blockGitHubActionsCI.d.ts +5 -4
  43. package/lib/blocks/blockGitHubActionsCI.js +11 -11
  44. package/lib/blocks/blockGitHubActionsCI.js.map +1 -1
  45. package/lib/blocks/blockGitHubApps.d.ts +5 -4
  46. package/lib/blocks/blockGitHubIssueTemplates.d.ts +5 -4
  47. package/lib/blocks/blockGitHubPRTemplate.d.ts +5 -4
  48. package/lib/blocks/blockGitignore.d.ts +5 -4
  49. package/lib/blocks/blockKnip.d.ts +5 -4
  50. package/lib/blocks/blockKnip.js +11 -11
  51. package/lib/blocks/blockKnip.js.map +1 -1
  52. package/lib/blocks/blockMITLicense.d.ts +5 -4
  53. package/lib/blocks/blockMarkdownlint.d.ts +5 -4
  54. package/lib/blocks/blockNvmrc.d.ts +5 -4
  55. package/lib/blocks/blockPRCompliance.d.ts +5 -4
  56. package/lib/blocks/blockPackageJson.d.ts +5 -4
  57. package/lib/blocks/blockPackageJson.js +11 -11
  58. package/lib/blocks/blockPackageJson.js.map +1 -1
  59. package/lib/blocks/blockPnpmDedupe.d.ts +5 -4
  60. package/lib/blocks/blockPrettier.d.ts +5 -4
  61. package/lib/blocks/blockPrettier.js +11 -10
  62. package/lib/blocks/blockPrettier.js.map +1 -1
  63. package/lib/blocks/blockPrettierPluginCurly.d.ts +5 -4
  64. package/lib/blocks/blockPrettierPluginPackageJson.d.ts +5 -4
  65. package/lib/blocks/blockPrettierPluginSh.d.ts +5 -4
  66. package/lib/blocks/blockREADME.d.ts +5 -4
  67. package/lib/blocks/blockReleaseIt.d.ts +5 -4
  68. package/lib/blocks/blockReleaseIt.js +0 -1
  69. package/lib/blocks/blockReleaseIt.js.map +1 -1
  70. package/lib/blocks/blockRenovate.d.ts +5 -4
  71. package/lib/blocks/blockRepositoryBranchRuleset.d.ts +5 -4
  72. package/lib/blocks/blockRepositoryBranchRuleset.js +78 -54
  73. package/lib/blocks/blockRepositoryBranchRuleset.js.map +1 -1
  74. package/lib/blocks/blockRepositoryLabels.d.ts +5 -4
  75. package/lib/blocks/blockRepositorySecrets.d.ts +6 -5
  76. package/lib/blocks/blockRepositorySettings.d.ts +5 -4
  77. package/lib/blocks/blockSecurityDocs.d.ts +5 -4
  78. package/lib/blocks/blockTSup.d.ts +5 -4
  79. package/lib/blocks/blockTSup.js +18 -18
  80. package/lib/blocks/blockTSup.js.map +1 -1
  81. package/lib/blocks/blockTemplatedWith.d.ts +5 -4
  82. package/lib/blocks/blockTemplatedWith.js +2 -2
  83. package/lib/blocks/blockTemplatedWith.js.map +1 -1
  84. package/lib/blocks/blockTypeScript.d.ts +5 -4
  85. package/lib/blocks/blockVSCode.d.ts +5 -4
  86. package/lib/blocks/blockVitest.d.ts +5 -4
  87. package/lib/blocks/blockVitest.js +17 -17
  88. package/lib/blocks/blockVitest.js.map +1 -1
  89. package/lib/blocks/index.d.ts +173 -130
  90. package/lib/data/contributions.d.ts +3 -0
  91. package/lib/data/contributions.js +14 -0
  92. package/lib/data/contributions.js.map +1 -0
  93. package/lib/data/packageData.d.ts +40 -44
  94. package/lib/index.d.ts +155 -3
  95. package/lib/index.js +4 -2
  96. package/lib/index.js.map +1 -1
  97. package/lib/inputs/inputFromOctokit.d.ts +9 -0
  98. package/lib/inputs/inputFromOctokit.js +28 -0
  99. package/lib/inputs/inputFromOctokit.js.map +1 -0
  100. package/lib/options/readAllContributors.d.ts +6 -0
  101. package/lib/options/readAllContributors.js +27 -0
  102. package/lib/options/readAllContributors.js.map +1 -0
  103. package/lib/options/readDocumentation.d.ts +1 -1
  104. package/lib/options/readDocumentation.js.map +1 -1
  105. package/lib/presets/common.d.ts +5 -4
  106. package/lib/presets/everything.d.ts +5 -4
  107. package/lib/presets/index.d.ts +13 -10
  108. package/lib/presets/minimal.d.ts +5 -4
  109. package/lib/template.d.ts +6 -5
  110. package/lib/template.js +6 -4
  111. package/lib/template.js.map +1 -1
  112. package/package.json +38 -40
@@ -25,23 +25,6 @@ const blockVitest = base.createBlock({
25
25
  }).default({}),
26
26
  exclude: z.array(z.string()).default([])
27
27
  },
28
- migrate() {
29
- return {
30
- scripts: [
31
- {
32
- commands: [
33
- `node ${resolveBin("remove-dependencies/bin/index.js")} eslint-plugin-jest eslint-plugin-mocha eslint-plugin-vitest jest mocha`
34
- ],
35
- phase: CommandPhase.Process
36
- },
37
- {
38
- commands: ["rm .mocha* jest.config.* vitest.config.*"],
39
- phase: CommandPhase.Migrations,
40
- silent: true
41
- }
42
- ]
43
- };
44
- },
45
28
  produce({ addons }) {
46
29
  const { actionSteps, coverage, exclude = [] } = addons;
47
30
  const excludeText = JSON.stringify(exclude);
@@ -207,6 +190,23 @@ export default defineConfig({
207
190
  `
208
191
  }
209
192
  };
193
+ },
194
+ transition() {
195
+ return {
196
+ scripts: [
197
+ {
198
+ commands: [
199
+ `node ${resolveBin("remove-dependencies/bin/index.js")} eslint-plugin-jest eslint-plugin-mocha eslint-plugin-vitest jest mocha`
200
+ ],
201
+ phase: CommandPhase.Process
202
+ },
203
+ {
204
+ commands: ["rm .mocha* jest.config.* vitest.config.*"],
205
+ phase: CommandPhase.Migrations,
206
+ silent: true
207
+ }
208
+ ]
209
+ };
210
210
  }
211
211
  });
212
212
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/blocks/blockVitest.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { resolveBin } from \"../utils/resolveBin.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI, zActionStep } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\nimport { blockTSup } from \"./blockTSup.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { CommandPhase } from \"./phases.js\";\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: z\n\t\t\t.object({\n\t\t\t\texclude: z.array(z.string()).optional(),\n\t\t\t\tinclude: z.array(z.string()).optional(),\n\t\t\t})\n\t\t\t.default({}),\n\t\texclude: z.array(z.string()).default([]),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t`node ${resolveBin(\"remove-dependencies/bin/index.js\")} eslint-plugin-jest eslint-plugin-mocha eslint-plugin-vitest jest mocha`,\n\t\t\t\t\t],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm .mocha* jest.config.* vitest.config.*\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t\tsilent: true,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons }) {\n\t\tconst { actionSteps, coverage, exclude = [] } = addons;\n\t\tconst excludeText = JSON.stringify(exclude);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignores: [\"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}),\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\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\",\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\tblockTSup({\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\texclude: [${excludeText.slice(1, excludeText.length - 1)}, \"node_modules\"],\n\t\tsetupFiles: [\"console-fail-test/setup\"],\n\t},\n});\n\t`,\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/blocks/blockVitest.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { resolveBin } from \"../utils/resolveBin.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI, zActionStep } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockPrettier } from \"./blockPrettier.js\";\nimport { blockTSup } from \"./blockTSup.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { CommandPhase } from \"./phases.js\";\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: z\n\t\t\t.object({\n\t\t\t\texclude: z.array(z.string()).optional(),\n\t\t\t\tinclude: z.array(z.string()).optional(),\n\t\t\t})\n\t\t\t.default({}),\n\t\texclude: z.array(z.string()).default([]),\n\t},\n\tproduce({ addons }) {\n\t\tconst { actionSteps, coverage, exclude = [] } = addons;\n\t\tconst excludeText = JSON.stringify(exclude);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignores: [\"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}),\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\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\",\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\tblockTSup({\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\texclude: [${excludeText.slice(1, excludeText.length - 1)}, \"node_modules\"],\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\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\n\t\t\t\t\t\t`node ${resolveBin(\"remove-dependencies/bin/index.js\")} eslint-plugin-jest eslint-plugin-mocha eslint-plugin-vitest jest mocha`,\n\t\t\t\t\t],\n\t\t\t\t\tphase: CommandPhase.Process,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm .mocha* jest.config.* vitest.config.*\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t\tsilent: true,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"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","names":[]}