create-typescript-app 1.77.0 → 1.77.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bin/promptForMode.js +2 -1
- package/lib/bin/promptForMode.js.map +1 -1
- package/lib/create/createWithOptions.d.ts +3 -4
- package/lib/create/createWithOptions.js +19 -11
- package/lib/create/createWithOptions.js.map +1 -1
- package/lib/initialize/initializeWithOptions.d.ts +3 -4
- package/lib/initialize/initializeWithOptions.js +4 -4
- package/lib/initialize/initializeWithOptions.js.map +1 -1
- package/lib/migrate/migrateWithOptions.d.ts +3 -4
- package/lib/migrate/migrateWithOptions.js +8 -5
- package/lib/migrate/migrateWithOptions.js.map +1 -1
- package/lib/next/base.js +4 -0
- package/lib/next/base.js.map +1 -1
- package/lib/next/blocks/blockAllContributors.js +12 -11
- package/lib/next/blocks/blockAllContributors.js.map +1 -1
- package/lib/next/blocks/blockCSpell.js +2 -7
- package/lib/next/blocks/blockCSpell.js.map +1 -1
- package/lib/next/blocks/blockContributingDocs.js +11 -0
- package/lib/next/blocks/blockContributingDocs.js.map +1 -1
- package/lib/next/blocks/blockContributorCovenant.js +11 -0
- package/lib/next/blocks/blockContributorCovenant.js.map +1 -1
- package/lib/next/blocks/blockDevelopmentDocs.js +15 -9
- package/lib/next/blocks/blockDevelopmentDocs.js.map +1 -1
- package/lib/next/blocks/blockESLint.js +18 -1
- package/lib/next/blocks/blockESLint.js.map +1 -1
- package/lib/next/blocks/blockExampleFiles.d.ts +50 -0
- package/lib/next/blocks/blockExampleFiles.js +25 -0
- package/lib/next/blocks/blockExampleFiles.js.map +1 -0
- package/lib/next/blocks/blockGitHubActionsCI.js +11 -0
- package/lib/next/blocks/blockGitHubActionsCI.js.map +1 -1
- package/lib/next/blocks/blockPackageJson.d.ts +1 -0
- package/lib/next/blocks/blockPackageJson.js +18 -7
- package/lib/next/blocks/blockPackageJson.js.map +1 -1
- package/lib/next/blocks/blockPnpmDedupe.js +1 -6
- package/lib/next/blocks/blockPnpmDedupe.js.map +1 -1
- package/lib/next/blocks/blockPrettier.js +18 -8
- package/lib/next/blocks/blockPrettier.js.map +1 -1
- package/lib/next/blocks/blockReleaseIt.js +5 -0
- package/lib/next/blocks/blockReleaseIt.js.map +1 -1
- package/lib/next/blocks/blockRepositoryBranchProtection.d.ts +50 -0
- package/lib/next/blocks/blockRepositoryBranchProtection.js +49 -0
- package/lib/next/blocks/blockRepositoryBranchProtection.js.map +1 -0
- package/lib/next/blocks/blockRepositoryLabels.d.ts +48 -0
- package/lib/next/blocks/blockRepositoryLabels.js +18 -0
- package/lib/next/blocks/blockRepositoryLabels.js.map +1 -0
- package/lib/next/blocks/blockRepositorySettings.d.ts +48 -0
- package/lib/next/blocks/blockRepositorySettings.js +42 -0
- package/lib/next/blocks/blockRepositorySettings.js.map +1 -0
- package/lib/next/blocks/blockTSup.js +19 -2
- package/lib/next/blocks/blockTSup.js.map +1 -1
- package/lib/next/blocks/blockTemplatedBy.d.ts +1 -3
- package/lib/next/blocks/blockTemplatedBy.js +0 -4
- package/lib/next/blocks/blockTemplatedBy.js.map +1 -1
- package/lib/next/blocks/blockTypeScript.js +28 -0
- package/lib/next/blocks/blockTypeScript.js.map +1 -1
- package/lib/next/blocks/blockVSCode.js +4 -0
- package/lib/next/blocks/blockVSCode.js.map +1 -1
- package/lib/next/blocks/blockVitest.js +63 -0
- package/lib/next/blocks/blockVitest.js.map +1 -1
- package/lib/next/blocks/packageData.js.map +1 -1
- package/lib/next/blocks/phases.d.ts +9 -0
- package/lib/next/blocks/phases.js +11 -0
- package/lib/next/blocks/phases.js.map +1 -0
- package/lib/next/presetMinimal.js +8 -0
- package/lib/next/presetMinimal.js.map +1 -1
- package/lib/next/runCreateEnginePreset.d.ts +7 -0
- package/lib/next/runCreateEnginePreset.js +20 -0
- package/lib/next/runCreateEnginePreset.js.map +1 -0
- package/lib/shared/options/ensureRepositoryExists.d.ts +3 -4
- package/lib/shared/options/ensureRepositoryExists.js +9 -8
- package/lib/shared/options/ensureRepositoryExists.js.map +1 -1
- package/lib/shared/options/readOptions.d.ts +5 -6
- package/lib/shared/options/readOptions.js +7 -4
- package/lib/shared/options/readOptions.js.map +1 -1
- package/lib/steps/finalizeDependencies.js +43 -48
- package/lib/steps/finalizeDependencies.js.map +1 -1
- package/lib/steps/initializeGitHubRepository/index.js +7 -2
- package/lib/steps/initializeGitHubRepository/index.js.map +1 -1
- package/lib/steps/initializeGitHubRepository/outcomeLabels.d.ts +13 -0
- package/lib/steps/initializeGitHubRepository/{labels/outcomeLabels.js → outcomeLabels.js} +4 -1
- package/lib/steps/initializeGitHubRepository/outcomeLabels.js.map +1 -0
- package/lib/steps/uninstallPackages.js +4 -2
- package/lib/steps/uninstallPackages.js.map +1 -1
- package/lib/steps/writing/creation/index.js +4 -5
- package/lib/steps/writing/creation/index.js.map +1 -1
- package/lib/steps/writing/creation/writeAllContributorsRC.js +1 -9
- package/lib/steps/writing/creation/writeAllContributorsRC.js.map +1 -1
- package/package.json +27 -25
- package/lib/next/utils/removeTrailingSlash.d.ts +0 -3
- package/lib/next/utils/removeTrailingSlash.js +0 -7
- package/lib/next/utils/removeTrailingSlash.js.map +0 -1
- package/lib/shared/options/getGitHub.d.ts +0 -9
- package/lib/shared/options/getGitHub.js +0 -17
- package/lib/shared/options/getGitHub.js.map +0 -1
- package/lib/steps/detectExistingContributors.d.ts +0 -7
- package/lib/steps/detectExistingContributors.js +0 -19
- package/lib/steps/detectExistingContributors.js.map +0 -1
- package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.d.ts +0 -8
- package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.js +0 -14
- package/lib/steps/initializeGitHubRepository/labels/getExistingEquivalentLabels.js.map +0 -1
- package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.d.ts +0 -8
- package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.js +0 -63
- package/lib/steps/initializeGitHubRepository/labels/initializeRepositoryLabels.js.map +0 -1
- package/lib/steps/initializeGitHubRepository/labels/outcomeLabels.d.ts +0 -7
- package/lib/steps/initializeGitHubRepository/labels/outcomeLabels.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { base } from "../base.js";
|
|
3
|
+
import { CommandPhase } from "./phases.js";
|
|
3
4
|
const zInnerSection = z.object({
|
|
4
5
|
contents: z.string(),
|
|
5
6
|
heading: z.string()
|
|
@@ -17,12 +18,9 @@ const zSection = z.object({
|
|
|
17
18
|
plural: z.string().optional()
|
|
18
19
|
})
|
|
19
20
|
]).optional(),
|
|
20
|
-
innerSections: z.array(zInnerSection).
|
|
21
|
+
innerSections: z.array(zInnerSection).optional()
|
|
21
22
|
});
|
|
22
23
|
function printSection(heading, section) {
|
|
23
|
-
if (typeof section === "string") {
|
|
24
|
-
return section;
|
|
25
|
-
}
|
|
26
24
|
const innerSections = section.innerSections?.flatMap(printInnerSection) ?? [];
|
|
27
25
|
if (section.contents === void 0) {
|
|
28
26
|
return innerSections;
|
|
@@ -48,15 +46,25 @@ const blockDevelopmentDocs = base.createBlock({
|
|
|
48
46
|
hints: z.array(z.string()).default([]),
|
|
49
47
|
sections: z.record(z.string(), zSection).default({})
|
|
50
48
|
},
|
|
49
|
+
migrate() {
|
|
50
|
+
return {
|
|
51
|
+
scripts: [
|
|
52
|
+
{
|
|
53
|
+
commands: ["rm DEVELOPMENT.md"],
|
|
54
|
+
phase: CommandPhase.Migrations
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
};
|
|
58
|
+
},
|
|
51
59
|
produce({ addons, options }) {
|
|
52
60
|
const lines = [
|
|
53
61
|
`# Development`,
|
|
54
62
|
``,
|
|
55
63
|
...options.guide ? [
|
|
56
64
|
`> If you'd like a more guided walkthrough, see [${options.guide.title}](${options.guide.href}).`,
|
|
57
|
-
`> It'll walk you through the common activities you'll need to contribute
|
|
65
|
+
`> It'll walk you through the common activities you'll need to contribute.`,
|
|
66
|
+
``
|
|
58
67
|
] : [],
|
|
59
|
-
``,
|
|
60
68
|
`After [forking the repo from GitHub](https://help.github.com/articles/fork-a-repo) and [installing pnpm](https://pnpm.io/installation):`,
|
|
61
69
|
``,
|
|
62
70
|
`\`\`\`shell`,
|
|
@@ -65,9 +73,7 @@ const blockDevelopmentDocs = base.createBlock({
|
|
|
65
73
|
`pnpm install`,
|
|
66
74
|
`\`\`\``,
|
|
67
75
|
``,
|
|
68
|
-
|
|
69
|
-
`> It's a good idea to use [VS Code](https://code.visualstudio.com) and accept its suggestion to install them, as they'll help with development.`,
|
|
70
|
-
``,
|
|
76
|
+
...addons.hints.length ? [...addons.hints, ``] : [],
|
|
71
77
|
...Object.entries(addons.sections).sort(([a], [b]) => a.localeCompare(b)).flatMap(([heading, section]) => printSection(heading, section)),
|
|
72
78
|
...options.documentation ? [options.documentation] : []
|
|
73
79
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/blocks/blockDevelopmentDocs.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\n\nconst zInnerSection = z.object({\n\tcontents: z.string(),\n\theading: z.string(),\n});\n\ntype InnerSection = z.infer<typeof zInnerSection>;\n\nfunction printInnerSection(innerSection: InnerSection) {\n\treturn [`### ${innerSection.heading}`, ``, innerSection.contents];\n}\n\nconst zSection = z.object({\n\tcontents: z\n\t\t.union([\n\t\t\tz.string(),\n\t\t\tz.object({\n\t\t\t\tafter: z.array(z.string()).optional(),\n\t\t\t\tbefore: z.string().optional(),\n\t\t\t\titems: z.array(z.string()).optional(),\n\t\t\t\tplural: z.string().optional(),\n\t\t\t}),\n\t\t])\n\t\t.optional(),\n\tinnerSections: z.array(zInnerSection).
|
|
1
|
+
{"version":3,"sources":["../../../src/next/blocks/blockDevelopmentDocs.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nconst zInnerSection = z.object({\n\tcontents: z.string(),\n\theading: z.string(),\n});\n\ntype InnerSection = z.infer<typeof zInnerSection>;\n\nfunction printInnerSection(innerSection: InnerSection) {\n\treturn [`### ${innerSection.heading}`, ``, innerSection.contents];\n}\n\nconst zSection = z.object({\n\tcontents: z\n\t\t.union([\n\t\t\tz.string(),\n\t\t\tz.object({\n\t\t\t\tafter: z.array(z.string()).optional(),\n\t\t\t\tbefore: z.string().optional(),\n\t\t\t\titems: z.array(z.string()).optional(),\n\t\t\t\tplural: z.string().optional(),\n\t\t\t}),\n\t\t])\n\t\t.optional(),\n\tinnerSections: z.array(zInnerSection).optional(),\n});\n\ntype Section = z.infer<typeof zSection>;\n\nfunction printSection(heading: string, section: Section) {\n\tconst innerSections = section.innerSections?.flatMap(printInnerSection) ?? [];\n\n\tif (section.contents === undefined) {\n\t\treturn innerSections;\n\t}\n\n\tconst contents =\n\t\ttypeof section.contents === \"string\"\n\t\t\t? { before: section.contents }\n\t\t\t: section.contents;\n\n\treturn [\n\t\t`## ${heading}`,\n\t\t``,\n\t\t...(contents.before ? [contents.before] : []),\n\t\t...(contents.items?.sort((a, b) =>\n\t\t\ta.replaceAll(\"`\", \"\").localeCompare(b.replaceAll(\"`\", \"\")),\n\t\t) ?? []),\n\t\t...(contents.items?.length && contents.plural ? [``, contents.plural] : []),\n\t\t...(contents.after ?? []),\n\t\t...innerSections,\n\t];\n}\n\nexport const blockDevelopmentDocs = base.createBlock({\n\tabout: {\n\t\tname: \"Development Docs\",\n\t},\n\taddons: {\n\t\thints: z.array(z.string()).default([]),\n\t\tsections: z.record(z.string(), zSection).default({}),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm DEVELOPMENT.md\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons, options }) {\n\t\tconst lines = [\n\t\t\t`# Development`,\n\t\t\t``,\n\t\t\t...(options.guide\n\t\t\t\t? [\n\t\t\t\t\t\t`> If you'd like a more guided walkthrough, see [${options.guide.title}](${options.guide.href}).`,\n\t\t\t\t\t\t`> It'll walk you through the common activities you'll need to contribute.`,\n\t\t\t\t\t\t``,\n\t\t\t\t\t]\n\t\t\t\t: []),\n\t\t\t`After [forking the repo from GitHub](https://help.github.com/articles/fork-a-repo) and [installing pnpm](https://pnpm.io/installation):`,\n\t\t\t``,\n\t\t\t`\\`\\`\\`shell`,\n\t\t\t`git clone https://github.com/<your-name-here>/${options.repository}`,\n\t\t\t`cd ${options.repository}`,\n\t\t\t`pnpm install`,\n\t\t\t`\\`\\`\\``,\n\t\t\t``,\n\t\t\t...(addons.hints.length ? [...addons.hints, ``] : []),\n\t\t\t...Object.entries(addons.sections)\n\t\t\t\t.sort(([a], [b]) => a.localeCompare(b))\n\t\t\t\t.flatMap(([heading, section]) => printSection(heading, section)),\n\t\t\t...(options.documentation ? [options.documentation] : []),\n\t\t];\n\n\t\treturn {\n\t\t\tfiles: {\n\t\t\t\t\".github\": {\n\t\t\t\t\t\"DEVELOPMENT.md\": lines.join(\"\\n\"),\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"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","names":[]}
|
|
@@ -7,6 +7,7 @@ import { blockGitHubActionsCI } from "./blockGitHubActionsCI.js";
|
|
|
7
7
|
import { blockPackageJson } from "./blockPackageJson.js";
|
|
8
8
|
import { blockVSCode } from "./blockVSCode.js";
|
|
9
9
|
import { getPackageDependencies } from "./packageData.js";
|
|
10
|
+
import { CommandPhase } from "./phases.js";
|
|
10
11
|
const zRuleOptions = z.union([
|
|
11
12
|
z.literal("error"),
|
|
12
13
|
z.literal("off"),
|
|
@@ -55,6 +56,16 @@ const blockESLint = base.createBlock({
|
|
|
55
56
|
rules: zExtensionRules.optional(),
|
|
56
57
|
settings: z.record(z.string(), z.unknown()).optional()
|
|
57
58
|
},
|
|
59
|
+
migrate() {
|
|
60
|
+
return {
|
|
61
|
+
scripts: [
|
|
62
|
+
{
|
|
63
|
+
commands: ["rm .eslintrc* .eslintignore"],
|
|
64
|
+
phase: CommandPhase.Migrations
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
};
|
|
68
|
+
},
|
|
58
69
|
produce({ addons, options }) {
|
|
59
70
|
const { extensions, ignores, imports, rules, settings } = addons;
|
|
60
71
|
const importLines = [
|
|
@@ -179,7 +190,13 @@ export default tseslint.config(
|
|
|
179
190
|
eslint.configs.recommended,
|
|
180
191
|
${extensionLines.join(",")}
|
|
181
192
|
);`
|
|
182
|
-
}
|
|
193
|
+
},
|
|
194
|
+
scripts: [
|
|
195
|
+
{
|
|
196
|
+
commands: ["pnpm lint --fix"],
|
|
197
|
+
phase: CommandPhase.Process
|
|
198
|
+
}
|
|
199
|
+
]
|
|
183
200
|
};
|
|
184
201
|
}
|
|
185
202
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/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 { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\n\nconst zRuleOptions = z.union([\n\tz.literal(\"error\"),\n\tz.literal(\"off\"),\n\tz.literal(\"warn\"),\n\tz.union([\n\t\tz.tuple([z.union([z.literal(\"error\"), z.literal(\"warn\")]), z.unknown()]),\n\t\tz.tuple([\n\t\t\tz.union([z.literal(\"error\"), z.literal(\"warn\")]),\n\t\t\tz.unknown(),\n\t\t\tz.unknown(),\n\t\t]),\n\t]),\n]);\n\nconst zExtensionRules = z.union([\n\tz.record(z.string(), zRuleOptions),\n\tz.array(\n\t\tz.object({\n\t\t\tcomment: z.string().optional(),\n\t\t\tentries: z.record(z.string(), zRuleOptions),\n\t\t}),\n\t),\n]);\n\nconst zExtension = z.object({\n\textends: z.array(z.string()).optional(),\n\tfiles: z.array(z.string()).optional(),\n\tlanguageOptions: z.unknown().optional(),\n\tlinterOptions: z.unknown().optional(),\n\tplugins: z.record(z.string(), z.string()).optional(),\n\trules: zExtensionRules.optional(),\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst zPackageImport = z.object({\n\tsource: z.string(),\n\tspecifier: z.string(),\n\ttypes: z.boolean().optional(),\n});\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\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\tproduce({ addons, options }) {\n\t\tconst { extensions, ignores, imports, rules, settings } = addons;\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 \"${packageImport.source}\"`,\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 = [\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores]\n\t\t\t.map((ignore) => JSON.stringify(ignore))\n\t\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: [\"**/*.js\", \"**/*.ts\"],\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: [\"*.config.*s\"],\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...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\tblockCSpell({\n\t\t\t\t\twords: [\"tseslint\"],\n\t\t\t\t}),\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: getPackageDependencies(\n\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t...imports.flatMap(({ source, types }) => {\n\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\tconst { name } = parsePackageName(source) as { name: string };\n\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\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\"eslint.config.js\": `${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};\n\t},\n});\n\nfunction printExtension(extension: z.infer<typeof zExtension>) {\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 && `settings: ${JSON.stringify(extension.settings)},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: z.infer<typeof zExtensionRules>) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...rules.flatMap((group) => [\n\t\t\tgroup.comment ? `// ${group.comment}\\n` : \"\",\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 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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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/next/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 { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nconst zRuleOptions = z.union([\n\tz.literal(\"error\"),\n\tz.literal(\"off\"),\n\tz.literal(\"warn\"),\n\tz.union([\n\t\tz.tuple([z.union([z.literal(\"error\"), z.literal(\"warn\")]), z.unknown()]),\n\t\tz.tuple([\n\t\t\tz.union([z.literal(\"error\"), z.literal(\"warn\")]),\n\t\t\tz.unknown(),\n\t\t\tz.unknown(),\n\t\t]),\n\t]),\n]);\n\nconst zExtensionRules = z.union([\n\tz.record(z.string(), zRuleOptions),\n\tz.array(\n\t\tz.object({\n\t\t\tcomment: z.string().optional(),\n\t\t\tentries: z.record(z.string(), zRuleOptions),\n\t\t}),\n\t),\n]);\n\nconst zExtension = z.object({\n\textends: z.array(z.string()).optional(),\n\tfiles: z.array(z.string()).optional(),\n\tlanguageOptions: z.unknown().optional(),\n\tlinterOptions: z.unknown().optional(),\n\tplugins: z.record(z.string(), z.string()).optional(),\n\trules: zExtensionRules.optional(),\n\tsettings: z.record(z.string(), z.unknown()).optional(),\n});\n\nconst zPackageImport = z.object({\n\tsource: z.string(),\n\tspecifier: z.string(),\n\ttypes: z.boolean().optional(),\n});\n\nexport const blockESLint = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint\",\n\t},\n\taddons: {\n\t\tbeforeLint: z.string().optional(),\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\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm .eslintrc* .eslintignore\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { extensions, ignores, imports, rules, settings } = addons;\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 \"${packageImport.source}\"`,\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 = [\"lib\", \"node_modules\", \"pnpm-lock.yaml\", ...ignores]\n\t\t\t.map((ignore) => JSON.stringify(ignore))\n\t\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: [\"**/*.js\", \"**/*.ts\"],\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: [\"*.config.*s\"],\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...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\tblockCSpell({\n\t\t\t\t\twords: [\"tseslint\"],\n\t\t\t\t}),\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: getPackageDependencies(\n\t\t\t\t\t\t\t\"@eslint/js\",\n\t\t\t\t\t\t\t\"@types/node\",\n\t\t\t\t\t\t\t\"eslint\",\n\t\t\t\t\t\t\t\"typescript-eslint\",\n\t\t\t\t\t\t\t...imports.flatMap(({ source, types }) => {\n\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\tconst { name } = parsePackageName(source) as { name: string };\n\t\t\t\t\t\t\t\treturn types ? [name, `@types/${name}`] : [name];\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\"eslint.config.js\": `${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});\n\nfunction printExtension(extension: z.infer<typeof zExtension>) {\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 && `settings: ${JSON.stringify(extension.settings)},`,\n\t\t\"}\",\n\t]\n\t\t.filter(Boolean)\n\t\t.join(\" \");\n}\n\nfunction printExtensionRules(rules: z.infer<typeof zExtensionRules>) {\n\tif (!Array.isArray(rules)) {\n\t\treturn JSON.stringify(rules);\n\t}\n\n\treturn [\n\t\t\"{\",\n\t\t...rules.flatMap((group) => [\n\t\t\tgroup.comment ? `// ${group.comment}\\n` : \"\",\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 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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","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as create from 'create';
|
|
2
|
+
|
|
3
|
+
declare const blockExampleFiles: create.BlockWithAddons<{
|
|
4
|
+
files: Record<string, string>;
|
|
5
|
+
}, {
|
|
6
|
+
description: string;
|
|
7
|
+
email: {
|
|
8
|
+
github: string;
|
|
9
|
+
npm: string;
|
|
10
|
+
};
|
|
11
|
+
title: string;
|
|
12
|
+
owner: string;
|
|
13
|
+
repository: string;
|
|
14
|
+
access?: "public" | "restricted" | undefined;
|
|
15
|
+
author?: string | undefined;
|
|
16
|
+
bin?: string | undefined;
|
|
17
|
+
login?: string | undefined;
|
|
18
|
+
contributors?: {
|
|
19
|
+
name: string;
|
|
20
|
+
avatar_url: string;
|
|
21
|
+
contributions: string[];
|
|
22
|
+
login: string;
|
|
23
|
+
profile: string;
|
|
24
|
+
}[] | undefined;
|
|
25
|
+
documentation?: string | undefined;
|
|
26
|
+
funding?: string | undefined;
|
|
27
|
+
guide?: {
|
|
28
|
+
href: string;
|
|
29
|
+
title: string;
|
|
30
|
+
} | undefined;
|
|
31
|
+
hideTemplatedBy?: boolean | undefined;
|
|
32
|
+
keywords?: string[] | undefined;
|
|
33
|
+
logo?: {
|
|
34
|
+
alt: string;
|
|
35
|
+
src: string;
|
|
36
|
+
} | undefined;
|
|
37
|
+
node?: {
|
|
38
|
+
minimum: string;
|
|
39
|
+
pinned?: string | undefined;
|
|
40
|
+
} | undefined;
|
|
41
|
+
packageData?: {
|
|
42
|
+
dependencies?: Record<string, string> | undefined;
|
|
43
|
+
devDependencies?: Record<string, string> | undefined;
|
|
44
|
+
scripts?: Record<string, string> | undefined;
|
|
45
|
+
} | undefined;
|
|
46
|
+
preserveGeneratedFrom?: boolean | undefined;
|
|
47
|
+
version?: string | undefined;
|
|
48
|
+
}>;
|
|
49
|
+
|
|
50
|
+
export { blockExampleFiles };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { base } from "../base.js";
|
|
3
|
+
const blockExampleFiles = base.createBlock({
|
|
4
|
+
about: {
|
|
5
|
+
name: "Example Files"
|
|
6
|
+
},
|
|
7
|
+
addons: {
|
|
8
|
+
files: z.record(z.string()).default({})
|
|
9
|
+
},
|
|
10
|
+
initialize({ addons }) {
|
|
11
|
+
return {
|
|
12
|
+
files: {
|
|
13
|
+
src: addons.files
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
// TODO: Make produce() optional (so base is generic on its definition)
|
|
18
|
+
produce() {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
export {
|
|
23
|
+
blockExampleFiles
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=blockExampleFiles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/next/blocks/blockExampleFiles.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\n\nexport const blockExampleFiles = base.createBlock({\n\tabout: {\n\t\tname: \"Example Files\",\n\t},\n\taddons: {\n\t\tfiles: z.record(z.string()).default({}),\n\t},\n\tinitialize({ addons }) {\n\t\treturn {\n\t\t\tfiles: {\n\t\t\t\tsrc: addons.files,\n\t\t\t},\n\t\t};\n\t},\n\t// TODO: Make produce() optional (so base is generic on its definition)\n\tproduce() {\n\t\treturn {};\n\t},\n});\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,YAAY;AAEd,MAAM,oBAAoB,KAAK,YAAY;AAAA,EACjD,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACvC;AAAA,EACA,WAAW,EAAE,OAAO,GAAG;AACtB,WAAO;AAAA,MACN,OAAO;AAAA,QACN,KAAK,OAAO;AAAA,MACb;AAAA,IACD;AAAA,EACD;AAAA;AAAA,EAEA,UAAU;AACT,WAAO,CAAC;AAAA,EACT;AACD,CAAC;","names":[]}
|
|
@@ -3,6 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { createMultiWorkflowFile } from "../../steps/writing/creation/dotGitHub/createMultiWorkflowFile.js";
|
|
4
4
|
import { createSoloWorkflowFile } from "../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js";
|
|
5
5
|
import { base } from "../base.js";
|
|
6
|
+
import { CommandPhase } from "./phases.js";
|
|
6
7
|
const blockGitHubActionsCI = base.createBlock({
|
|
7
8
|
about: {
|
|
8
9
|
name: "GitHub Actions CI"
|
|
@@ -26,6 +27,16 @@ const blockGitHubActionsCI = base.createBlock({
|
|
|
26
27
|
})
|
|
27
28
|
).optional()
|
|
28
29
|
},
|
|
30
|
+
migrate() {
|
|
31
|
+
return {
|
|
32
|
+
scripts: [
|
|
33
|
+
{
|
|
34
|
+
commands: ["rm -rf .circleci travis.yml"],
|
|
35
|
+
phase: CommandPhase.Migrations
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
};
|
|
39
|
+
},
|
|
29
40
|
produce({ addons }) {
|
|
30
41
|
const { jobs } = addons;
|
|
31
42
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/blocks/blockGitHubActionsCI.ts"],"sourcesContent":["import jsYaml from \"js-yaml\";\nimport { z } from \"zod\";\n\nimport { createMultiWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createMultiWorkflowFile.js\";\nimport { createSoloWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js\";\nimport { base } from \"../base.js\";\n\nexport const blockGitHubActionsCI = base.createBlock({\n\tabout: {\n\t\tname: \"GitHub Actions CI\",\n\t},\n\taddons: {\n\t\tjobs: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tname: z.string(),\n\t\t\t\t\tsteps: z.array(\n\t\t\t\t\t\tz.intersection(\n\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\tif: z.string().optional(),\n\t\t\t\t\t\t\t\twith: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tz.union([\n\t\t\t\t\t\t\t\tz.object({ run: z.string() }),\n\t\t\t\t\t\t\t\tz.object({ uses: z.string() }),\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t},\n\tproduce({ addons }) {\n\t\tconst { jobs } = addons;\n\n\t\treturn {\n\t\t\tfiles: {\n\t\t\t\t\".github\": {\n\t\t\t\t\tactions: {\n\t\t\t\t\t\tprepare: {\n\t\t\t\t\t\t\t\"action.yml\": jsYaml\n\t\t\t\t\t\t\t\t.dump({\n\t\t\t\t\t\t\t\t\tdescription: \"Prepares the repo for a typical CI job\",\n\t\t\t\t\t\t\t\t\tname: \"Prepare\",\n\t\t\t\t\t\t\t\t\truns: {\n\t\t\t\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tuses: \"pnpm/action-setup@v4\",\n\t\t\t\t\t\t\t\t\t\t\t\twith: { version: 9 },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tuses: \"actions/setup-node@v4\",\n\t\t\t\t\t\t\t\t\t\t\t\twith: { cache: \"pnpm\", \"node-version\": \"20\" },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\trun: \"pnpm install --frozen-lockfile\",\n\t\t\t\t\t\t\t\t\t\t\t\tshell: \"bash\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tusing: \"composite\",\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\t.replaceAll(/\\n(\\S)/g, \"\\n\\n$1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"accessibility-alt-text-bot.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tif: \"${{ !endsWith(github.actor, '[bot]') }}\",\n\t\t\t\t\t\t\tname: \"Accessibility Alt Text Bot\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tissue_comment: {\n\t\t\t\t\t\t\t\t\ttypes: [\"created\", \"edited\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tissues: {\n\t\t\t\t\t\t\t\t\ttypes: [\"edited\", \"opened\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tpull_request: {\n\t\t\t\t\t\t\t\t\ttypes: [\"edited\", \"opened\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\tissues: \"write\",\n\t\t\t\t\t\t\t\t\"pull-requests\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"github/accessibility-alt-text-bot@v1.4.0\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t\"ci.yml\":\n\t\t\t\t\t\t\tjobs &&\n\t\t\t\t\t\t\tcreateMultiWorkflowFile({\n\t\t\t\t\t\t\t\tjobs: jobs.sort((a, b) => a.name.localeCompare(b.name)),\n\t\t\t\t\t\t\t\tname: \"CI\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\"pr-review-requested.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"PR Review Requested\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpull_request_target: {\n\t\t\t\t\t\t\t\t\ttypes: [\"review_requested\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\t\"pull-requests\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"actions-ecosystem/action-remove-labels@v1\",\n\t\t\t\t\t\t\t\t\twith: {\n\t\t\t\t\t\t\t\t\t\tlabels: \"status: waiting for author\",\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\t{\n\t\t\t\t\t\t\t\t\tif: \"failure()\",\n\t\t\t\t\t\t\t\t\trun: 'echo \"Don\\'t worry if the previous step failed.\"\\necho \"See https://github.com/actions-ecosystem/action-remove-labels/issues/221.\"\\n',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,OAAO,YAAY;AACnB,SAAS,SAAS;AAElB,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,YAAY;
|
|
1
|
+
{"version":3,"sources":["../../../src/next/blocks/blockGitHubActionsCI.ts"],"sourcesContent":["import jsYaml from \"js-yaml\";\nimport { z } from \"zod\";\n\nimport { createMultiWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createMultiWorkflowFile.js\";\nimport { createSoloWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js\";\nimport { base } from \"../base.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockGitHubActionsCI = base.createBlock({\n\tabout: {\n\t\tname: \"GitHub Actions CI\",\n\t},\n\taddons: {\n\t\tjobs: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tname: z.string(),\n\t\t\t\t\tsteps: z.array(\n\t\t\t\t\t\tz.intersection(\n\t\t\t\t\t\t\tz.object({\n\t\t\t\t\t\t\t\tif: z.string().optional(),\n\t\t\t\t\t\t\t\twith: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tz.union([\n\t\t\t\t\t\t\t\tz.object({ run: z.string() }),\n\t\t\t\t\t\t\t\tz.object({ uses: z.string() }),\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t),\n\t\t\t\t\t),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.optional(),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm -rf .circleci travis.yml\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons }) {\n\t\tconst { jobs } = addons;\n\n\t\treturn {\n\t\t\tfiles: {\n\t\t\t\t\".github\": {\n\t\t\t\t\tactions: {\n\t\t\t\t\t\tprepare: {\n\t\t\t\t\t\t\t\"action.yml\": jsYaml\n\t\t\t\t\t\t\t\t.dump({\n\t\t\t\t\t\t\t\t\tdescription: \"Prepares the repo for a typical CI job\",\n\t\t\t\t\t\t\t\t\tname: \"Prepare\",\n\t\t\t\t\t\t\t\t\truns: {\n\t\t\t\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tuses: \"pnpm/action-setup@v4\",\n\t\t\t\t\t\t\t\t\t\t\t\twith: { version: 9 },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tuses: \"actions/setup-node@v4\",\n\t\t\t\t\t\t\t\t\t\t\t\twith: { cache: \"pnpm\", \"node-version\": \"20\" },\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\trun: \"pnpm install --frozen-lockfile\",\n\t\t\t\t\t\t\t\t\t\t\t\tshell: \"bash\",\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\tusing: \"composite\",\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\t.replaceAll(/\\n(\\S)/g, \"\\n\\n$1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"accessibility-alt-text-bot.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tif: \"${{ !endsWith(github.actor, '[bot]') }}\",\n\t\t\t\t\t\t\tname: \"Accessibility Alt Text Bot\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tissue_comment: {\n\t\t\t\t\t\t\t\t\ttypes: [\"created\", \"edited\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tissues: {\n\t\t\t\t\t\t\t\t\ttypes: [\"edited\", \"opened\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tpull_request: {\n\t\t\t\t\t\t\t\t\ttypes: [\"edited\", \"opened\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\tissues: \"write\",\n\t\t\t\t\t\t\t\t\"pull-requests\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"github/accessibility-alt-text-bot@v1.4.0\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t\"ci.yml\":\n\t\t\t\t\t\t\tjobs &&\n\t\t\t\t\t\t\tcreateMultiWorkflowFile({\n\t\t\t\t\t\t\t\tjobs: jobs.sort((a, b) => a.name.localeCompare(b.name)),\n\t\t\t\t\t\t\t\tname: \"CI\",\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\"pr-review-requested.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"PR Review Requested\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpull_request_target: {\n\t\t\t\t\t\t\t\t\ttypes: [\"review_requested\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\t\"pull-requests\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"actions-ecosystem/action-remove-labels@v1\",\n\t\t\t\t\t\t\t\t\twith: {\n\t\t\t\t\t\t\t\t\t\tlabels: \"status: waiting for author\",\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\t{\n\t\t\t\t\t\t\t\t\tif: \"failure()\",\n\t\t\t\t\t\t\t\t\trun: 'echo \"Don\\'t worry if the previous step failed.\"\\necho \"See https://github.com/actions-ecosystem/action-remove-labels/issues/221.\"\\n',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"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","names":[]}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import sortPackageJson from "sort-package-json";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { base } from "../base.js";
|
|
4
|
+
import { CommandPhase } from "./phases.js";
|
|
4
5
|
const blockPackageJson = base.createBlock({
|
|
5
6
|
about: {
|
|
6
7
|
name: "Package JSON"
|
|
7
8
|
},
|
|
8
9
|
addons: {
|
|
10
|
+
cleanupCommands: z.array(z.string()).default([]),
|
|
9
11
|
// TODO: Find a zod package for this?
|
|
10
12
|
properties: z.intersection(
|
|
11
13
|
z.object({
|
|
@@ -18,15 +20,18 @@ const blockPackageJson = base.createBlock({
|
|
|
18
20
|
z.record(z.string(), z.unknown())
|
|
19
21
|
).default({})
|
|
20
22
|
},
|
|
21
|
-
|
|
23
|
+
migrate() {
|
|
22
24
|
return {
|
|
23
|
-
|
|
25
|
+
scripts: [
|
|
24
26
|
{
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
script: "pnpm i"
|
|
27
|
+
commands: ["rm package-lock.json yarn.lock"],
|
|
28
|
+
phase: CommandPhase.Migrations
|
|
28
29
|
}
|
|
29
|
-
]
|
|
30
|
+
]
|
|
31
|
+
};
|
|
32
|
+
},
|
|
33
|
+
produce({ addons, options }) {
|
|
34
|
+
return {
|
|
30
35
|
files: {
|
|
31
36
|
"package.json": sortPackageJson(
|
|
32
37
|
JSON.stringify({
|
|
@@ -71,7 +76,13 @@ const blockPackageJson = base.createBlock({
|
|
|
71
76
|
version: options.version ?? "0.0.0"
|
|
72
77
|
})
|
|
73
78
|
)
|
|
74
|
-
}
|
|
79
|
+
},
|
|
80
|
+
scripts: [
|
|
81
|
+
{
|
|
82
|
+
commands: ["pnpm install", ...addons.cleanupCommands],
|
|
83
|
+
phase: CommandPhase.Install
|
|
84
|
+
}
|
|
85
|
+
]
|
|
75
86
|
};
|
|
76
87
|
}
|
|
77
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/blocks/blockPackageJson.ts"],"sourcesContent":["import sortPackageJson from \"sort-package-json\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\n\nexport const blockPackageJson = base.createBlock({\n\tabout: {\n\t\tname: \"Package JSON\",\n\t},\n\taddons: {\n\t\t// TODO: Find a zod package for this?\n\t\tproperties: z\n\t\t\t.intersection(\n\t\t\t\tz.object({\n\t\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\tfiles: z.array(z.string()).optional(),\n\t\t\t\t\tpeerDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\tscripts: z.record(z.string(), z.string()).optional(),\n\t\t\t\t}),\n\t\t\t\tz.record(z.string(), z.unknown()),\n\t\t\t)\n\t\t\t.default({}),\n\t},\n\
|
|
1
|
+
{"version":3,"sources":["../../../src/next/blocks/blockPackageJson.ts"],"sourcesContent":["import sortPackageJson from \"sort-package-json\";\nimport { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockPackageJson = base.createBlock({\n\tabout: {\n\t\tname: \"Package JSON\",\n\t},\n\taddons: {\n\t\tcleanupCommands: z.array(z.string()).default([]),\n\t\t// TODO: Find a zod package for this?\n\t\tproperties: z\n\t\t\t.intersection(\n\t\t\t\tz.object({\n\t\t\t\t\tdependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\tdevDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\tfiles: z.array(z.string()).optional(),\n\t\t\t\t\tpeerDependencies: z.record(z.string(), z.string()).optional(),\n\t\t\t\t\tscripts: z.record(z.string(), z.string()).optional(),\n\t\t\t\t}),\n\t\t\t\tz.record(z.string(), z.unknown()),\n\t\t\t)\n\t\t\t.default({}),\n\t},\n\tmigrate() {\n\t\treturn {\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"rm package-lock.json yarn.lock\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons, options }) {\n\t\treturn {\n\t\t\tfiles: {\n\t\t\t\t\"package.json\": sortPackageJson(\n\t\t\t\t\tJSON.stringify({\n\t\t\t\t\t\t...addons.properties,\n\t\t\t\t\t\tauthor: { email: options.email.npm, name: options.author },\n\t\t\t\t\t\tbin: options.bin,\n\t\t\t\t\t\tdependencies: {\n\t\t\t\t\t\t\t...options.packageData?.dependencies,\n\t\t\t\t\t\t\t...addons.properties.dependencies,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdescription: options.description,\n\t\t\t\t\t\tdevDependencies: {\n\t\t\t\t\t\t\t...options.packageData?.devDependencies,\n\t\t\t\t\t\t\t...addons.properties.devDependencies,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...(options.node && {\n\t\t\t\t\t\t\tengines: {\n\t\t\t\t\t\t\t\tnode: `>=${options.node.minimum}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\toptions.bin?.replace(/^\\.\\//, \"\"),\n\t\t\t\t\t\t\t...(addons.properties.files ?? []),\n\t\t\t\t\t\t\t\"package.json\",\n\t\t\t\t\t\t\t\"README.md\",\n\t\t\t\t\t\t]\n\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t.sort(),\n\t\t\t\t\t\tkeywords: options.keywords?.flatMap((keyword) =>\n\t\t\t\t\t\t\tkeyword.split(/ /),\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlicense: \"MIT\",\n\t\t\t\t\t\tmain: \"./lib/index.js\",\n\t\t\t\t\t\tname: options.repository,\n\t\t\t\t\t\trepository: {\n\t\t\t\t\t\t\ttype: \"git\",\n\t\t\t\t\t\t\turl: `https://github.com/${options.owner}/${options.repository}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\t...options.packageData?.scripts,\n\t\t\t\t\t\t\t...addons.properties.scripts,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttype: \"module\",\n\t\t\t\t\t\tversion: options.version ?? \"0.0.0\",\n\t\t\t\t\t}),\n\t\t\t\t),\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm install\", ...addons.cleanupCommands],\n\t\t\t\t\tphase: CommandPhase.Install,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,OAAO,qBAAqB;AAC5B,SAAS,SAAS;AAElB,SAAS,YAAY;AACrB,SAAS,oBAAoB;AAEtB,MAAM,mBAAmB,KAAK,YAAY;AAAA,EAChD,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA;AAAA,IAE/C,YAAY,EACV;AAAA,MACA,EAAE,OAAO;AAAA,QACR,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QACxD,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QAC3D,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QACpC,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,QAC5D,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACpD,CAAC;AAAA,MACD,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC;AAAA,IACjC,EACC,QAAQ,CAAC,CAAC;AAAA,EACb;AAAA,EACA,UAAU;AACT,WAAO;AAAA,MACN,SAAS;AAAA,QACR;AAAA,UACC,UAAU,CAAC,gCAAgC;AAAA,UAC3C,OAAO,aAAa;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,QAAQ,EAAE,QAAQ,QAAQ,GAAG;AAC5B,WAAO;AAAA,MACN,OAAO;AAAA,QACN,gBAAgB;AAAA,UACf,KAAK,UAAU;AAAA,YACd,GAAG,OAAO;AAAA,YACV,QAAQ,EAAE,OAAO,QAAQ,MAAM,KAAK,MAAM,QAAQ,OAAO;AAAA,YACzD,KAAK,QAAQ;AAAA,YACb,cAAc;AAAA,cACb,GAAG,QAAQ,aAAa;AAAA,cACxB,GAAG,OAAO,WAAW;AAAA,YACtB;AAAA,YACA,aAAa,QAAQ;AAAA,YACrB,iBAAiB;AAAA,cAChB,GAAG,QAAQ,aAAa;AAAA,cACxB,GAAG,OAAO,WAAW;AAAA,YACtB;AAAA,YACA,GAAI,QAAQ,QAAQ;AAAA,cACnB,SAAS;AAAA,gBACR,MAAM,KAAK,QAAQ,KAAK,OAAO;AAAA,cAChC;AAAA,YACD;AAAA,YACA,OAAO;AAAA,cACN,QAAQ,KAAK,QAAQ,SAAS,EAAE;AAAA,cAChC,GAAI,OAAO,WAAW,SAAS,CAAC;AAAA,cAChC;AAAA,cACA;AAAA,YACD,EACE,OAAO,OAAO,EACd,KAAK;AAAA,YACP,UAAU,QAAQ,UAAU;AAAA,cAAQ,CAAC,YACpC,QAAQ,MAAM,GAAG;AAAA,YAClB;AAAA,YACA,SAAS;AAAA,YACT,MAAM;AAAA,YACN,MAAM,QAAQ;AAAA,YACd,YAAY;AAAA,cACX,MAAM;AAAA,cACN,KAAK,sBAAsB,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,YAC/D;AAAA,YACA,SAAS;AAAA,cACR,GAAG,QAAQ,aAAa;AAAA,cACxB,GAAG,OAAO,WAAW;AAAA,YACtB;AAAA,YACA,MAAM;AAAA,YACN,SAAS,QAAQ,WAAW;AAAA,UAC7B,CAAC;AAAA,QACF;AAAA,MACD;AAAA,MACA,SAAS;AAAA,QACR;AAAA,UACC,UAAU,CAAC,gBAAgB,GAAG,OAAO,eAAe;AAAA,UACpD,OAAO,aAAa;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
|
|
@@ -29,18 +29,13 @@ const blockPnpmDedupe = base.createBlock({
|
|
|
29
29
|
]
|
|
30
30
|
}),
|
|
31
31
|
blockPackageJson({
|
|
32
|
+
cleanupCommands: ["pnpm dedupe --offline"],
|
|
32
33
|
properties: {
|
|
33
34
|
scripts: {
|
|
34
35
|
"lint:packages": "pnpm dedupe --check"
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
})
|
|
38
|
-
],
|
|
39
|
-
commands: [
|
|
40
|
-
{
|
|
41
|
-
phase: 1,
|
|
42
|
-
script: "pnpm dedupe"
|
|
43
|
-
}
|
|
44
39
|
]
|
|
45
40
|
};
|
|
46
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/blocks/blockPnpmDedupe.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\n\nexport const blockPnpmDedupe = base.createBlock({\n\tabout: {\n\t\tname: \"pnpm Dedupe\",\n\t},\n\tproduce() {\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\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint:packages\\` ([pnpm dedupe --check](https://pnpm.io/cli/dedupe)): Checks for unnecessarily duplicated packages in the \\`pnpm-lock.yml\\` file`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint Packages\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm lint:packages\" }],\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\tscripts: {\n\t\t\t\t\t\t\t\"lint:packages\": \"pnpm dedupe --check\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t
|
|
1
|
+
{"version":3,"sources":["../../../src/next/blocks/blockPnpmDedupe.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\n\nexport const blockPnpmDedupe = base.createBlock({\n\tabout: {\n\t\tname: \"pnpm Dedupe\",\n\t},\n\tproduce() {\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\titems: [\n\t\t\t\t\t\t\t\t\t`- \\`pnpm lint:packages\\` ([pnpm dedupe --check](https://pnpm.io/cli/dedupe)): Checks for unnecessarily duplicated packages in the \\`pnpm-lock.yml\\` file`,\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Lint Packages\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm lint:packages\" }],\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\tcleanupCommands: [\"pnpm dedupe --offline\"],\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\t\"lint:packages\": \"pnpm dedupe --check\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,YAAY;AACrB,SAAS,4BAA4B;AACrC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAE1B,MAAM,kBAAkB,KAAK,YAAY;AAAA,EAC/C,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AACT,WAAO;AAAA,MACN,QAAQ;AAAA,QACP,qBAAqB;AAAA,UACpB,UAAU;AAAA,YACT,SAAS;AAAA,cACR,UAAU;AAAA,gBACT,OAAO;AAAA,kBACN;AAAA,gBACD;AAAA,cACD;AAAA,YACD;AAAA,UACD;AAAA,QACD,CAAC;AAAA,QACD,qBAAqB;AAAA,UACpB,MAAM;AAAA,YACL;AAAA,cACC,MAAM;AAAA,cACN,OAAO,CAAC,EAAE,KAAK,qBAAqB,CAAC;AAAA,YACtC;AAAA,UACD;AAAA,QACD,CAAC;AAAA,QACD,iBAAiB;AAAA,UAChB,iBAAiB,CAAC,uBAAuB;AAAA,UACzC,YAAY;AAAA,YACX,SAAS;AAAA,cACR,iBAAiB;AAAA,YAClB;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
|
|
@@ -6,6 +6,7 @@ import { blockGitHubActionsCI } from "./blockGitHubActionsCI.js";
|
|
|
6
6
|
import { blockPackageJson } from "./blockPackageJson.js";
|
|
7
7
|
import { blockVSCode } from "./blockVSCode.js";
|
|
8
8
|
import { getPackageDependencies } from "./packageData.js";
|
|
9
|
+
import { CommandPhase } from "./phases.js";
|
|
9
10
|
const blockPrettier = base.createBlock({
|
|
10
11
|
about: {
|
|
11
12
|
name: "Prettier"
|
|
@@ -22,6 +23,16 @@ const blockPrettier = base.createBlock({
|
|
|
22
23
|
).default([]),
|
|
23
24
|
plugins: z.array(z.string()).default([])
|
|
24
25
|
},
|
|
26
|
+
migrate() {
|
|
27
|
+
return {
|
|
28
|
+
scripts: [
|
|
29
|
+
{
|
|
30
|
+
commands: ["rm .prettierrc* prettier.config*"],
|
|
31
|
+
phase: CommandPhase.Migrations
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
};
|
|
35
|
+
},
|
|
25
36
|
produce({ addons }) {
|
|
26
37
|
const { ignores, overrides, plugins } = addons;
|
|
27
38
|
return {
|
|
@@ -75,13 +86,6 @@ pnpm format --write
|
|
|
75
86
|
settings: { "editor.defaultFormatter": "esbenp.prettier-vscode" }
|
|
76
87
|
})
|
|
77
88
|
],
|
|
78
|
-
commands: [
|
|
79
|
-
{
|
|
80
|
-
phase: 2,
|
|
81
|
-
// TODO: ???
|
|
82
|
-
script: "pnpm format --write"
|
|
83
|
-
}
|
|
84
|
-
],
|
|
85
89
|
files: {
|
|
86
90
|
".husky": {
|
|
87
91
|
".gitignore": "_",
|
|
@@ -94,7 +98,13 @@ pnpm format --write
|
|
|
94
98
|
...plugins.length && { plugins: plugins.sort() },
|
|
95
99
|
useTabs: true
|
|
96
100
|
})
|
|
97
|
-
}
|
|
101
|
+
},
|
|
102
|
+
scripts: [
|
|
103
|
+
{
|
|
104
|
+
commands: ["pnpm format --write"],
|
|
105
|
+
phase: CommandPhase.Format
|
|
106
|
+
}
|
|
107
|
+
]
|
|
98
108
|
};
|
|
99
109
|
}
|
|
100
110
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/blocks/blockPrettier.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\n\nexport const blockPrettier = base.createBlock({\n\tabout: {\n\t\tname: \"Prettier\",\n\t},\n\taddons: {\n\t\tignores: z.array(z.string()).default([]),\n\t\toverrides: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tfiles: z.string(),\n\t\t\t\t\toptions: z.object({\n\t\t\t\t\t\tparser: z.string(),\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.default([]),\n\t\tplugins: z.array(z.string()).default([]),\n\t},\n\tproduce({ addons }) {\n\t\tconst { ignores, overrides, plugins } = addons;\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignores: [\".all-contributorsrc\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tFormatting: {\n\t\t\t\t\t\t\tcontents: `\n[Prettier](https://prettier.io) is used to format code.\nIt should be applied automatically when you save files in VS Code or make a Git commit.\n\nTo manually reformat all files, you can run:\n\n\\`\\`\\`shell\npnpm format --write\n\\`\\`\\`\n`,\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: \"Prettier\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm format --list-different\" }],\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...plugins,\n\t\t\t\t\t\t\t\"husky\",\n\t\t\t\t\t\t\t\"lint-staged\",\n\t\t\t\t\t\t\t\"prettier\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\t\"lint-staged\": {\n\t\t\t\t\t\t\t\"*\": \"prettier --ignore-unknown --write\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tformat: \"prettier .\",\n\t\t\t\t\t\t\tprepare: \"husky\",\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: [\"esbenp.prettier-vscode\"],\n\t\t\t\t\tsettings: { \"editor.defaultFormatter\": \"esbenp.prettier-vscode\" },\n\t\t\t\t}),\n\t\t\t],\n\t\t\
|
|
1
|
+
{"version":3,"sources":["../../../src/next/blocks/blockPrettier.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\nimport { CommandPhase } from \"./phases.js\";\n\nexport const blockPrettier = base.createBlock({\n\tabout: {\n\t\tname: \"Prettier\",\n\t},\n\taddons: {\n\t\tignores: z.array(z.string()).default([]),\n\t\toverrides: z\n\t\t\t.array(\n\t\t\t\tz.object({\n\t\t\t\t\tfiles: z.string(),\n\t\t\t\t\toptions: z.object({\n\t\t\t\t\t\tparser: z.string(),\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.default([]),\n\t\tplugins: 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: [\"rm .prettierrc* prettier.config*\"],\n\t\t\t\t\tphase: CommandPhase.Migrations,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n\tproduce({ addons }) {\n\t\tconst { ignores, overrides, plugins } = addons;\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\tignores: [\".all-contributorsrc\"],\n\t\t\t\t}),\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\tFormatting: {\n\t\t\t\t\t\t\tcontents: `\n[Prettier](https://prettier.io) is used to format code.\nIt should be applied automatically when you save files in VS Code or make a Git commit.\n\nTo manually reformat all files, you can run:\n\n\\`\\`\\`shell\npnpm format --write\n\\`\\`\\`\n`,\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: \"Prettier\",\n\t\t\t\t\t\t\tsteps: [{ run: \"pnpm format --list-different\" }],\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...plugins,\n\t\t\t\t\t\t\t\"husky\",\n\t\t\t\t\t\t\t\"lint-staged\",\n\t\t\t\t\t\t\t\"prettier\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\t\"lint-staged\": {\n\t\t\t\t\t\t\t\"*\": \"prettier --ignore-unknown --write\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\tformat: \"prettier .\",\n\t\t\t\t\t\t\tprepare: \"husky\",\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: [\"esbenp.prettier-vscode\"],\n\t\t\t\t\tsettings: { \"editor.defaultFormatter\": \"esbenp.prettier-vscode\" },\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".husky\": {\n\t\t\t\t\t\".gitignore\": \"_\",\n\t\t\t\t\t\"pre-commit\": [\"npx lint-staged\", { mode: 0x777 }],\n\t\t\t\t},\n\t\t\t\t\".prettierignore\": [\"/.husky\", \"/lib\", \"/pnpm-lock.yaml\", ...ignores]\n\t\t\t\t\t.sort()\n\t\t\t\t\t.join(\"\\n\"),\n\t\t\t\t\".prettierrc.json\": JSON.stringify({\n\t\t\t\t\t$schema: \"http://json.schemastore.org/prettierrc\",\n\t\t\t\t\t...(overrides.length && { overrides: overrides.sort() }),\n\t\t\t\t\t...(plugins.length && { plugins: plugins.sort() }),\n\t\t\t\t\tuseTabs: true,\n\t\t\t\t}),\n\t\t\t},\n\t\t\tscripts: [\n\t\t\t\t{\n\t\t\t\t\tcommands: [\"pnpm format --write\"],\n\t\t\t\t\tphase: CommandPhase.Format,\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,4BAA4B;AACrC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,mBAAmB;AAC5B,SAAS,8BAA8B;AACvC,SAAS,oBAAoB;AAEtB,MAAM,gBAAgB,KAAK,YAAY;AAAA,EAC7C,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,IACvC,WAAW,EACT;AAAA,MACA,EAAE,OAAO;AAAA,QACR,OAAO,EAAE,OAAO;AAAA,QAChB,SAAS,EAAE,OAAO;AAAA,UACjB,QAAQ,EAAE,OAAO;AAAA,QAClB,CAAC;AAAA,MACF,CAAC;AAAA,IACF,EACC,QAAQ,CAAC,CAAC;AAAA,IACZ,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxC;AAAA,EACA,UAAU;AACT,WAAO;AAAA,MACN,SAAS;AAAA,QACR;AAAA,UACC,UAAU,CAAC,kCAAkC;AAAA,UAC7C,OAAO,aAAa;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAAA,EACA,QAAQ,EAAE,OAAO,GAAG;AACnB,UAAM,EAAE,SAAS,WAAW,QAAQ,IAAI;AAExC,WAAO;AAAA,MACN,QAAQ;AAAA,QACP,YAAY;AAAA,UACX,SAAS,CAAC,qBAAqB;AAAA,QAChC,CAAC;AAAA,QACD,qBAAqB;AAAA,UACpB,UAAU;AAAA,YACT,YAAY;AAAA,cACX,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAUX;AAAA,UACD;AAAA,QACD,CAAC;AAAA,QACD,qBAAqB;AAAA,UACpB,MAAM;AAAA,YACL;AAAA,cACC,MAAM;AAAA,cACN,OAAO,CAAC,EAAE,KAAK,+BAA+B,CAAC;AAAA,YAChD;AAAA,UACD;AAAA,QACD,CAAC;AAAA,QACD,iBAAiB;AAAA,UAChB,YAAY;AAAA,YACX,iBAAiB;AAAA,cAChB,GAAG;AAAA,cACH;AAAA,cACA;AAAA,cACA;AAAA,YACD;AAAA,YACA,eAAe;AAAA,cACd,KAAK;AAAA,YACN;AAAA,YACA,SAAS;AAAA,cACR,QAAQ;AAAA,cACR,SAAS;AAAA,YACV;AAAA,UACD;AAAA,QACD,CAAC;AAAA,QACD,YAAY;AAAA,UACX,YAAY,CAAC,wBAAwB;AAAA,UACrC,UAAU,EAAE,2BAA2B,yBAAyB;AAAA,QACjE,CAAC;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACN,UAAU;AAAA,UACT,cAAc;AAAA,UACd,cAAc,CAAC,mBAAmB,EAAE,MAAM,KAAM,CAAC;AAAA,QAClD;AAAA,QACA,mBAAmB,CAAC,WAAW,QAAQ,mBAAmB,GAAG,OAAO,EAClE,KAAK,EACL,KAAK,IAAI;AAAA,QACX,oBAAoB,KAAK,UAAU;AAAA,UAClC,SAAS;AAAA,UACT,GAAI,UAAU,UAAU,EAAE,WAAW,UAAU,KAAK,EAAE;AAAA,UACtD,GAAI,QAAQ,UAAU,EAAE,SAAS,QAAQ,KAAK,EAAE;AAAA,UAChD,SAAS;AAAA,QACV,CAAC;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACR;AAAA,UACC,UAAU,CAAC,qBAAqB;AAAA,UAChC,OAAO,aAAa;AAAA,QACrB;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
|
|
@@ -2,6 +2,7 @@ import { createSoloWorkflowFile } from "../../steps/writing/creation/dotGitHub/c
|
|
|
2
2
|
import { base } from "../base.js";
|
|
3
3
|
import { blockCSpell } from "./blockCSpell.js";
|
|
4
4
|
import { blockPackageJson } from "./blockPackageJson.js";
|
|
5
|
+
import { getPackageDependencies } from "./packageData.js";
|
|
5
6
|
const blockReleaseIt = base.createBlock({
|
|
6
7
|
about: {
|
|
7
8
|
name: "release-it"
|
|
@@ -14,6 +15,10 @@ const blockReleaseIt = base.createBlock({
|
|
|
14
15
|
}),
|
|
15
16
|
blockPackageJson({
|
|
16
17
|
properties: {
|
|
18
|
+
devDependencies: getPackageDependencies(
|
|
19
|
+
"@release-it/conventional-changelog",
|
|
20
|
+
"release-it"
|
|
21
|
+
),
|
|
17
22
|
publishConfig: {
|
|
18
23
|
provenance: true
|
|
19
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/next/blocks/blockReleaseIt.ts"],"sourcesContent":["import { createSoloWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js\";\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\n\nexport const blockReleaseIt = base.createBlock({\n\tabout: {\n\t\tname: \"release-it\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\twords: [\"apexskier\"],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tpublishConfig: {\n\t\t\t\t\t\t\tprovenance: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".github\": {\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"post-release.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"Post Release\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\trelease: {\n\t\t\t\t\t\t\t\t\ttypes: [\"published\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\tissues: \"write\",\n\t\t\t\t\t\t\t\t\"pull-requests\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ uses: \"actions/checkout@v4\", with: { \"fetch-depth\": 0 } },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\trun: `echo \"npm_version=$(npm pkg get version | tr -d '\"')\" >> \"$GITHUB_ENV\"`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"apexskier/github-release-commenter@v1\",\n\t\t\t\t\t\t\t\t\twith: {\n\t\t\t\t\t\t\t\t\t\t\"comment-template\": `\n\t\t\t\t\t\t\t:tada: This is included in version {release_link} :tada:\n\n\t\t\t\t\t\t\tThe release is available on:\n\n\t\t\t\t\t\t\t* [GitHub releases](https://github.com/${options.owner}/${options.repository}/releases/tag/{release_tag})\n\t\t\t\t\t\t\t* [npm package (@latest dist-tag)](https://www.npmjs.com/package/${options.repository}/v/\\${{ env.npm_version }})\n\n\t\t\t\t\t\t\tCheers! 📦🚀\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tGITHUB_TOKEN: \"${{ secrets.GITHUB_TOKEN }}\",\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\t\"release.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tconcurrency: {\n\t\t\t\t\t\t\t\tgroup: \"${{ github.workflow }}\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tname: \"Release\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpush: {\n\t\t\t\t\t\t\t\t\tbranches: [\"main\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\tcontents: \"write\",\n\t\t\t\t\t\t\t\t\"id-token\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"actions/checkout@v4\",\n\t\t\t\t\t\t\t\t\twith: {\n\t\t\t\t\t\t\t\t\t\t\"fetch-depth\": 0,\n\t\t\t\t\t\t\t\t\t\tref: \"main\",\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\t{\n\t\t\t\t\t\t\t\t\tuses: \"./.github/actions/prepare\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\trun: \"pnpm build\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\t\t\t\tGITHUB_TOKEN: \"${{ secrets.ACCESS_TOKEN }}\",\n\t\t\t\t\t\t\t\t\t\tNPM_TOKEN: \"${{ secrets.NPM_TOKEN }}\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tuses: \"JoshuaKGoldberg/release-it-action@v0.2.2\",\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\".release-it.json\": JSON.stringify({\n\t\t\t\t\tgit: {\n\t\t\t\t\t\tcommitMessage: \"chore: release v${version}\",\n\t\t\t\t\t\trequireCommits: true,\n\t\t\t\t\t},\n\t\t\t\t\tgithub: {\n\t\t\t\t\t\tautoGenerate: true,\n\t\t\t\t\t\trelease: true,\n\t\t\t\t\t\treleaseName: \"v${version}\",\n\t\t\t\t\t},\n\t\t\t\t\tnpm: {\n\t\t\t\t\t\tpublishArgs: [`--access ${options.access}`, \"--provenance\"],\n\t\t\t\t\t},\n\t\t\t\t\tplugins: {\n\t\t\t\t\t\t\"@release-it/conventional-changelog\": {\n\t\t\t\t\t\t\tinfile: \"CHANGELOG.md\",\n\t\t\t\t\t\t\tpreset: \"angular\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;
|
|
1
|
+
{"version":3,"sources":["../../../src/next/blocks/blockReleaseIt.ts"],"sourcesContent":["import { createSoloWorkflowFile } from \"../../steps/writing/creation/dotGitHub/createSoloWorkflowFile.js\";\nimport { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { getPackageDependencies } from \"./packageData.js\";\n\nexport const blockReleaseIt = base.createBlock({\n\tabout: {\n\t\tname: \"release-it\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\twords: [\"apexskier\"],\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\"@release-it/conventional-changelog\",\n\t\t\t\t\t\t\t\"release-it\",\n\t\t\t\t\t\t),\n\t\t\t\t\t\tpublishConfig: {\n\t\t\t\t\t\t\tprovenance: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".github\": {\n\t\t\t\t\tworkflows: {\n\t\t\t\t\t\t\"post-release.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tname: \"Post Release\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\trelease: {\n\t\t\t\t\t\t\t\t\ttypes: [\"published\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\tissues: \"write\",\n\t\t\t\t\t\t\t\t\"pull-requests\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{ uses: \"actions/checkout@v4\", with: { \"fetch-depth\": 0 } },\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\trun: `echo \"npm_version=$(npm pkg get version | tr -d '\"')\" >> \"$GITHUB_ENV\"`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"apexskier/github-release-commenter@v1\",\n\t\t\t\t\t\t\t\t\twith: {\n\t\t\t\t\t\t\t\t\t\t\"comment-template\": `\n\t\t\t\t\t\t\t:tada: This is included in version {release_link} :tada:\n\n\t\t\t\t\t\t\tThe release is available on:\n\n\t\t\t\t\t\t\t* [GitHub releases](https://github.com/${options.owner}/${options.repository}/releases/tag/{release_tag})\n\t\t\t\t\t\t\t* [npm package (@latest dist-tag)](https://www.npmjs.com/package/${options.repository}/v/\\${{ env.npm_version }})\n\n\t\t\t\t\t\t\tCheers! 📦🚀\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\tGITHUB_TOKEN: \"${{ secrets.GITHUB_TOKEN }}\",\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\t\"release.yml\": createSoloWorkflowFile({\n\t\t\t\t\t\t\tconcurrency: {\n\t\t\t\t\t\t\t\tgroup: \"${{ github.workflow }}\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tname: \"Release\",\n\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\tpush: {\n\t\t\t\t\t\t\t\t\tbranches: [\"main\"],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpermissions: {\n\t\t\t\t\t\t\t\tcontents: \"write\",\n\t\t\t\t\t\t\t\t\"id-token\": \"write\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tsteps: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tuses: \"actions/checkout@v4\",\n\t\t\t\t\t\t\t\t\twith: {\n\t\t\t\t\t\t\t\t\t\t\"fetch-depth\": 0,\n\t\t\t\t\t\t\t\t\t\tref: \"main\",\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\t{\n\t\t\t\t\t\t\t\t\tuses: \"./.github/actions/prepare\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\trun: \"pnpm build\",\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tenv: {\n\t\t\t\t\t\t\t\t\t\tGITHUB_TOKEN: \"${{ secrets.ACCESS_TOKEN }}\",\n\t\t\t\t\t\t\t\t\t\tNPM_TOKEN: \"${{ secrets.NPM_TOKEN }}\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tuses: \"JoshuaKGoldberg/release-it-action@v0.2.2\",\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\".release-it.json\": JSON.stringify({\n\t\t\t\t\tgit: {\n\t\t\t\t\t\tcommitMessage: \"chore: release v${version}\",\n\t\t\t\t\t\trequireCommits: true,\n\t\t\t\t\t},\n\t\t\t\t\tgithub: {\n\t\t\t\t\t\tautoGenerate: true,\n\t\t\t\t\t\trelease: true,\n\t\t\t\t\t\treleaseName: \"v${version}\",\n\t\t\t\t\t},\n\t\t\t\t\tnpm: {\n\t\t\t\t\t\tpublishArgs: [`--access ${options.access}`, \"--provenance\"],\n\t\t\t\t\t},\n\t\t\t\t\tplugins: {\n\t\t\t\t\t\t\"@release-it/conventional-changelog\": {\n\t\t\t\t\t\t\tinfile: \"CHANGELOG.md\",\n\t\t\t\t\t\t\tpreset: \"angular\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,wBAAwB;AACjC,SAAS,8BAA8B;AAEhC,MAAM,iBAAiB,KAAK,YAAY;AAAA,EAC9C,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ,EAAE,QAAQ,GAAG;AACpB,WAAO;AAAA,MACN,QAAQ;AAAA,QACP,YAAY;AAAA,UACX,OAAO,CAAC,WAAW;AAAA,QACpB,CAAC;AAAA,QACD,iBAAiB;AAAA,UAChB,YAAY;AAAA,YACX,iBAAiB;AAAA,cAChB;AAAA,cACA;AAAA,YACD;AAAA,YACA,eAAe;AAAA,cACd,YAAY;AAAA,YACb;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACN,WAAW;AAAA,UACV,WAAW;AAAA,YACV,oBAAoB,uBAAuB;AAAA,cAC1C,MAAM;AAAA,cACN,IAAI;AAAA,gBACH,SAAS;AAAA,kBACR,OAAO,CAAC,WAAW;AAAA,gBACpB;AAAA,cACD;AAAA,cACA,aAAa;AAAA,gBACZ,QAAQ;AAAA,gBACR,iBAAiB;AAAA,cAClB;AAAA,cACA,OAAO;AAAA,gBACN,EAAE,MAAM,uBAAuB,MAAM,EAAE,eAAe,EAAE,EAAE;AAAA,gBAC1D;AAAA,kBACC,KAAK;AAAA,gBACN;AAAA,gBACA;AAAA,kBACC,MAAM;AAAA,kBACN,MAAM;AAAA,oBACL,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA,gDAKkB,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,0EACT,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,oBAIlF,cAAc;AAAA,kBACf;AAAA,gBACD;AAAA,cACD;AAAA,YACD,CAAC;AAAA,YACD,eAAe,uBAAuB;AAAA,cACrC,aAAa;AAAA,gBACZ,OAAO;AAAA,cACR;AAAA,cACA,MAAM;AAAA,cACN,IAAI;AAAA,gBACH,MAAM;AAAA,kBACL,UAAU,CAAC,MAAM;AAAA,gBAClB;AAAA,cACD;AAAA,cACA,aAAa;AAAA,gBACZ,UAAU;AAAA,gBACV,YAAY;AAAA,cACb;AAAA,cACA,OAAO;AAAA,gBACN;AAAA,kBACC,MAAM;AAAA,kBACN,MAAM;AAAA,oBACL,eAAe;AAAA,oBACf,KAAK;AAAA,kBACN;AAAA,gBACD;AAAA,gBACA;AAAA,kBACC,MAAM;AAAA,gBACP;AAAA,gBACA;AAAA,kBACC,KAAK;AAAA,gBACN;AAAA,gBACA;AAAA,kBACC,KAAK;AAAA,oBACJ,cAAc;AAAA,oBACd,WAAW;AAAA,kBACZ;AAAA,kBACA,MAAM;AAAA,gBACP;AAAA,cACD;AAAA,YACD,CAAC;AAAA,UACF;AAAA,QACD;AAAA,QACA,oBAAoB,KAAK,UAAU;AAAA,UAClC,KAAK;AAAA,YACJ,eAAe;AAAA,YACf,gBAAgB;AAAA,UACjB;AAAA,UACA,QAAQ;AAAA,YACP,cAAc;AAAA,YACd,SAAS;AAAA,YACT,aAAa;AAAA,UACd;AAAA,UACA,KAAK;AAAA,YACJ,aAAa,CAAC,YAAY,QAAQ,MAAM,IAAI,cAAc;AAAA,UAC3D;AAAA,UACA,SAAS;AAAA,YACR,sCAAsC;AAAA,cACrC,QAAQ;AAAA,cACR,QAAQ;AAAA,YACT;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
|