create-typescript-app 1.78.0 → 1.80.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 (183) hide show
  1. package/README.md +49 -49
  2. package/lib/create/createAndEnterGitDirectory.d.ts +1 -1
  3. package/lib/create/createAndEnterGitDirectory.js +4 -3
  4. package/lib/create/createAndEnterGitDirectory.js.map +1 -1
  5. package/lib/create/createRerunDirectorySuggestion.d.ts +7 -0
  6. package/lib/create/createRerunDirectorySuggestion.js +8 -0
  7. package/lib/create/createRerunDirectorySuggestion.js.map +1 -0
  8. package/lib/create/createRerunSuggestion.js +3 -1
  9. package/lib/create/createRerunSuggestion.js.map +1 -1
  10. package/lib/create/createWithOptions.d.ts +1 -1
  11. package/lib/create/createWithOptions.js +7 -8
  12. package/lib/create/createWithOptions.js.map +1 -1
  13. package/lib/create/index.js +8 -2
  14. package/lib/create/index.js.map +1 -1
  15. package/lib/index.d.ts +3 -0
  16. package/lib/index.js +1 -0
  17. package/lib/index.js.map +1 -1
  18. package/lib/next/base.d.ts +7 -2
  19. package/lib/next/base.js +42 -29
  20. package/lib/next/base.js.map +1 -1
  21. package/lib/next/blocks/blockAllContributors.d.ts +3 -2
  22. package/lib/next/blocks/blockAllContributors.js +11 -2
  23. package/lib/next/blocks/blockAllContributors.js.map +1 -1
  24. package/lib/next/blocks/blockAreTheTypesWrong.d.ts +3 -2
  25. package/lib/next/blocks/blockCSpell.d.ts +3 -2
  26. package/lib/next/blocks/blockCSpell.js +16 -0
  27. package/lib/next/blocks/blockCSpell.js.map +1 -1
  28. package/lib/next/blocks/blockContributingDocs.d.ts +3 -2
  29. package/lib/next/blocks/blockContributorCovenant.d.ts +3 -2
  30. package/lib/next/blocks/blockDevelopmentDocs.d.ts +3 -2
  31. package/lib/next/blocks/blockESLint.d.ts +3 -2
  32. package/lib/next/blocks/blockESLintComments.d.ts +3 -2
  33. package/lib/next/blocks/blockESLintJSDoc.d.ts +3 -2
  34. package/lib/next/blocks/blockESLintJSONC.d.ts +3 -2
  35. package/lib/next/blocks/blockESLintMarkdown.d.ts +3 -2
  36. package/lib/next/blocks/blockESLintMoreStyling.d.ts +3 -2
  37. package/lib/next/blocks/blockESLintNode.d.ts +3 -2
  38. package/lib/next/blocks/blockESLintPackageJson.d.ts +3 -2
  39. package/lib/next/blocks/blockESLintPerfectionist.d.ts +3 -2
  40. package/lib/next/blocks/blockESLintRegexp.d.ts +3 -2
  41. package/lib/next/blocks/blockESLintYML.d.ts +3 -2
  42. package/lib/next/blocks/blockExampleFiles.d.ts +3 -2
  43. package/lib/next/blocks/blockFunding.d.ts +3 -2
  44. package/lib/next/blocks/blockGitHubActionsCI.d.ts +3 -2
  45. package/lib/next/blocks/blockGitHubApps.d.ts +54 -0
  46. package/lib/next/blocks/blockGitHubApps.js +34 -0
  47. package/lib/next/blocks/blockGitHubApps.js.map +1 -0
  48. package/lib/next/blocks/blockGitHubIssueTemplates.d.ts +3 -2
  49. package/lib/next/blocks/blockGitHubPRTemplate.d.ts +3 -2
  50. package/lib/next/blocks/blockGitignore.d.ts +3 -2
  51. package/lib/next/blocks/blockKnip.d.ts +3 -2
  52. package/lib/next/blocks/blockKnip.js +2 -2
  53. package/lib/next/blocks/blockKnip.js.map +1 -1
  54. package/lib/next/blocks/blockMITLicense.d.ts +3 -2
  55. package/lib/next/blocks/blockMarkdownlint.d.ts +3 -2
  56. package/lib/next/blocks/blockNvmrc.d.ts +3 -2
  57. package/lib/next/blocks/blockPRCompliance.d.ts +3 -2
  58. package/lib/next/blocks/blockPackageJson.d.ts +3 -2
  59. package/lib/next/blocks/blockPackageJson.js +46 -41
  60. package/lib/next/blocks/blockPackageJson.js.map +1 -1
  61. package/lib/next/blocks/blockPnpmDedupe.d.ts +3 -2
  62. package/lib/next/blocks/blockPrettier.d.ts +3 -2
  63. package/lib/next/blocks/blockPrettierPluginCurly.d.ts +3 -2
  64. package/lib/next/blocks/blockPrettierPluginPackageJson.d.ts +3 -2
  65. package/lib/next/blocks/blockPrettierPluginSh.d.ts +3 -2
  66. package/lib/next/blocks/blockREADME.d.ts +3 -2
  67. package/lib/next/blocks/blockREADME.js +5 -1
  68. package/lib/next/blocks/blockREADME.js.map +1 -1
  69. package/lib/next/blocks/blockReleaseIt.d.ts +3 -2
  70. package/lib/next/blocks/blockReleaseIt.js +13 -0
  71. package/lib/next/blocks/blockReleaseIt.js.map +1 -1
  72. package/lib/next/blocks/blockRenovate.d.ts +3 -2
  73. package/lib/next/blocks/blockRenovate.js +9 -0
  74. package/lib/next/blocks/blockRenovate.js.map +1 -1
  75. package/lib/next/blocks/blockRepositoryBranchRuleset.d.ts +3 -2
  76. package/lib/next/blocks/blockRepositoryBranchRuleset.js +9 -0
  77. package/lib/next/blocks/blockRepositoryBranchRuleset.js.map +1 -1
  78. package/lib/next/blocks/blockRepositoryLabels.d.ts +3 -2
  79. package/lib/next/blocks/blockRepositoryLabels.js +12 -2
  80. package/lib/next/blocks/blockRepositoryLabels.js.map +1 -1
  81. package/lib/next/blocks/blockRepositorySecrets.d.ts +54 -0
  82. package/lib/next/blocks/blockRepositorySecrets.js +34 -0
  83. package/lib/next/blocks/blockRepositorySecrets.js.map +1 -0
  84. package/lib/next/blocks/blockRepositorySettings.d.ts +3 -2
  85. package/lib/next/blocks/blockRepositorySettings.js +1 -1
  86. package/lib/next/blocks/blockRepositorySettings.js.map +1 -1
  87. package/lib/next/blocks/blockSecurityDocs.d.ts +3 -2
  88. package/lib/next/blocks/blockTSup.d.ts +3 -2
  89. package/lib/next/blocks/blockTemplatedBy.d.ts +3 -2
  90. package/lib/next/blocks/blockTypeScript.d.ts +3 -2
  91. package/lib/next/blocks/blockVSCode.d.ts +3 -2
  92. package/lib/next/blocks/blockVitest.d.ts +3 -2
  93. package/lib/next/blocks/blockVitest.js +26 -17
  94. package/lib/next/blocks/blockVitest.js.map +1 -1
  95. package/lib/next/blocks/options.fakes.d.ts +1 -0
  96. package/lib/next/blocks/options.fakes.js +1 -0
  97. package/lib/next/blocks/options.fakes.js.map +1 -1
  98. package/lib/next/blocks/packageData.d.ts +3 -2
  99. package/lib/next/blocks/packageData.js +22 -21
  100. package/lib/next/blocks/packageData.js.map +1 -1
  101. package/lib/next/blocks/sourcePackageJson.d.ts +162 -0
  102. package/lib/next/blocks/sourcePackageJson.js +10 -0
  103. package/lib/next/blocks/sourcePackageJson.js.map +1 -0
  104. package/lib/next/presets/index.d.ts +5 -0
  105. package/lib/next/presets/index.js +4 -0
  106. package/lib/next/presets/index.js.map +1 -0
  107. package/lib/next/{presetCommon.d.ts → presets/presetCommon.d.ts} +7 -2
  108. package/lib/next/{presetCommon.js → presets/presetCommon.js} +4 -4
  109. package/lib/next/presets/presetCommon.js.map +1 -0
  110. package/lib/next/{presetEverything.d.ts → presets/presetEverything.d.ts} +7 -2
  111. package/lib/next/presets/presetEverything.js +59 -0
  112. package/lib/next/presets/presetEverything.js.map +1 -0
  113. package/lib/next/{presetMinimal.d.ts → presets/presetMinimal.d.ts} +7 -2
  114. package/lib/next/presets/presetMinimal.js +57 -0
  115. package/lib/next/presets/presetMinimal.js.map +1 -0
  116. package/lib/next/readDescription.d.ts +7 -0
  117. package/lib/next/readDescription.js +10 -0
  118. package/lib/next/readDescription.js.map +1 -0
  119. package/lib/next/readDocumentation.d.ts +5 -0
  120. package/lib/next/readDocumentation.js +28 -0
  121. package/lib/next/readDocumentation.js.map +1 -0
  122. package/lib/next/runCreateEnginePreset.js +3 -3
  123. package/lib/next/runCreateEnginePreset.js.map +1 -1
  124. package/lib/next/template.d.ts +8 -3
  125. package/lib/next/template.js +5 -9
  126. package/lib/next/template.js.map +1 -1
  127. package/lib/next/utils/resolveBin.d.ts +3 -0
  128. package/lib/next/utils/resolveBin.js +7 -0
  129. package/lib/next/utils/resolveBin.js.map +1 -0
  130. package/lib/shared/getGitHubUserAsAllContributor.js +1 -1
  131. package/lib/shared/getGitHubUserAsAllContributor.js.map +1 -1
  132. package/lib/shared/options/args.d.ts +14 -2
  133. package/lib/shared/options/args.js +18 -2
  134. package/lib/shared/options/args.js.map +1 -1
  135. package/lib/shared/options/createOptionDefaults/index.d.ts +2 -0
  136. package/lib/shared/options/createOptionDefaults/index.js +2 -1
  137. package/lib/shared/options/createOptionDefaults/index.js.map +1 -1
  138. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.d.ts +2 -0
  139. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js +3 -1
  140. package/lib/shared/options/createOptionDefaults/readDefaultsFromReadme.js.map +1 -1
  141. package/lib/shared/options/exclusionKeys.js +3 -3
  142. package/lib/shared/options/exclusionKeys.js.map +1 -1
  143. package/lib/shared/options/logInferredOptions.js +6 -0
  144. package/lib/shared/options/logInferredOptions.js.map +1 -1
  145. package/lib/shared/options/optionsSchema.d.ts +4 -4
  146. package/lib/shared/options/optionsSchema.js +1 -1
  147. package/lib/shared/options/optionsSchema.js.map +1 -1
  148. package/lib/shared/options/readLogoSizing.d.ts +7 -0
  149. package/lib/shared/options/readLogoSizing.js +29 -0
  150. package/lib/shared/options/readLogoSizing.js.map +1 -0
  151. package/lib/shared/options/readOptions.js +4 -2
  152. package/lib/shared/options/readOptions.js.map +1 -1
  153. package/lib/shared/packages.js +1 -3
  154. package/lib/shared/packages.js.map +1 -1
  155. package/lib/shared/types.d.ts +3 -1
  156. package/lib/steps/addToolAllContributors.js +1 -1
  157. package/lib/steps/addToolAllContributors.js.map +1 -1
  158. package/lib/steps/finalizeDependencies.js +1 -1
  159. package/lib/steps/finalizeDependencies.js.map +1 -1
  160. package/lib/steps/initializeGitHubRepository/initializeBranchProtectionSettings.js +9 -0
  161. package/lib/steps/initializeGitHubRepository/initializeBranchProtectionSettings.js.map +1 -1
  162. package/lib/steps/uninstallPackages.js +5 -0
  163. package/lib/steps/uninstallPackages.js.map +1 -1
  164. package/lib/steps/updateAllContributorsTable.js +1 -1
  165. package/lib/steps/updateAllContributorsTable.js.map +1 -1
  166. package/lib/steps/updateReadme.js +1 -1
  167. package/lib/steps/updateReadme.js.map +1 -1
  168. package/lib/steps/writing/creation/createESLintConfig.js +2 -2
  169. package/lib/steps/writing/creation/createESLintConfig.js.map +1 -1
  170. package/lib/steps/writing/creation/createKnipConfig.d.ts +3 -0
  171. package/lib/steps/writing/creation/createKnipConfig.js +20 -0
  172. package/lib/steps/writing/creation/createKnipConfig.js.map +1 -0
  173. package/lib/steps/writing/creation/index.d.ts +2 -1
  174. package/lib/steps/writing/creation/index.js +24 -11
  175. package/lib/steps/writing/creation/index.js.map +1 -1
  176. package/lib/steps/writing/creation/rootFiles.js +2 -9
  177. package/lib/steps/writing/creation/rootFiles.js.map +1 -1
  178. package/package.json +18 -13
  179. package/lib/next/presetCommon.js.map +0 -1
  180. package/lib/next/presetEverything.js +0 -59
  181. package/lib/next/presetEverything.js.map +0 -1
  182. package/lib/next/presetMinimal.js +0 -53
  183. package/lib/next/presetMinimal.js.map +0 -1
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockPRCompliance: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ directory: string;
5
6
  email: {
6
7
  github: string;
7
8
  npm: string;
@@ -12,7 +13,6 @@ declare const blockPRCompliance: create.BlockWithoutAddons<{
12
13
  access?: "public" | "restricted" | undefined;
13
14
  author?: string | undefined;
14
15
  bin?: string | undefined;
15
- login?: string | undefined;
16
16
  contributors?: {
17
17
  name: string;
18
18
  avatar_url: string;
@@ -31,6 +31,8 @@ declare const blockPRCompliance: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,7 +43,6 @@ declare const blockPRCompliance: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
44
- preserveGeneratedFrom?: boolean | undefined;
45
46
  version?: string | undefined;
46
47
  }>;
47
48
 
@@ -11,6 +11,7 @@ declare const blockPackageJson: create.BlockWithAddons<{
11
11
  } & Record<string, unknown>;
12
12
  }, {
13
13
  description: string;
14
+ directory: string;
14
15
  email: {
15
16
  github: string;
16
17
  npm: string;
@@ -21,7 +22,6 @@ declare const blockPackageJson: create.BlockWithAddons<{
21
22
  access?: "public" | "restricted" | undefined;
22
23
  author?: string | undefined;
23
24
  bin?: string | undefined;
24
- login?: string | undefined;
25
25
  contributors?: {
26
26
  name: string;
27
27
  avatar_url: string;
@@ -40,6 +40,8 @@ declare const blockPackageJson: create.BlockWithAddons<{
40
40
  logo?: {
41
41
  alt: string;
42
42
  src: string;
43
+ height?: number | undefined;
44
+ width?: number | undefined;
43
45
  } | undefined;
44
46
  node?: {
45
47
  minimum: string;
@@ -50,7 +52,6 @@ declare const blockPackageJson: create.BlockWithAddons<{
50
52
  devDependencies?: Record<string, string> | undefined;
51
53
  scripts?: Record<string, string> | undefined;
52
54
  } | undefined;
53
- preserveGeneratedFrom?: boolean | undefined;
54
55
  version?: string | undefined;
55
56
  }>;
56
57
 
@@ -1,3 +1,4 @@
1
+ import removeUndefinedObjects from "remove-undefined-objects";
1
2
  import sortPackageJson from "sort-package-json";
2
3
  import { z } from "zod";
3
4
  import { base } from "../base.js";
@@ -31,50 +32,54 @@ const blockPackageJson = base.createBlock({
31
32
  };
32
33
  },
33
34
  produce({ addons, options }) {
35
+ const dependencies = {
36
+ ...options.packageData?.dependencies,
37
+ ...addons.properties.dependencies
38
+ };
39
+ const devDependencies = {
40
+ ...options.packageData?.devDependencies,
41
+ ...addons.properties.devDependencies
42
+ };
34
43
  return {
35
44
  files: {
36
45
  "package.json": sortPackageJson(
37
- JSON.stringify({
38
- ...addons.properties,
39
- author: { email: options.email.npm, name: options.author },
40
- bin: options.bin,
41
- dependencies: {
42
- ...options.packageData?.dependencies,
43
- ...addons.properties.dependencies
44
- },
45
- description: options.description,
46
- devDependencies: {
47
- ...options.packageData?.devDependencies,
48
- ...addons.properties.devDependencies
49
- },
50
- ...options.node && {
51
- engines: {
52
- node: `>=${options.node.minimum}`
53
- }
54
- },
55
- files: [
56
- options.bin?.replace(/^\.\//, ""),
57
- ...addons.properties.files ?? [],
58
- "package.json",
59
- "README.md"
60
- ].filter(Boolean).sort(),
61
- keywords: options.keywords?.flatMap(
62
- (keyword) => keyword.split(/ /)
63
- ),
64
- license: "MIT",
65
- main: "./lib/index.js",
66
- name: options.repository,
67
- repository: {
68
- type: "git",
69
- url: `https://github.com/${options.owner}/${options.repository}`
70
- },
71
- scripts: {
72
- ...options.packageData?.scripts,
73
- ...addons.properties.scripts
74
- },
75
- type: "module",
76
- version: options.version ?? "0.0.0"
77
- })
46
+ JSON.stringify(
47
+ removeUndefinedObjects({
48
+ ...addons.properties,
49
+ author: { email: options.email.npm, name: options.author },
50
+ bin: options.bin,
51
+ dependencies: Object.keys(dependencies).length ? dependencies : void 0,
52
+ description: options.description,
53
+ devDependencies: Object.keys(devDependencies).length ? devDependencies : void 0,
54
+ ...options.node && {
55
+ engines: {
56
+ node: `>=${options.node.minimum}`
57
+ }
58
+ },
59
+ files: [
60
+ options.bin?.replace(/^\.\//, ""),
61
+ ...addons.properties.files ?? [],
62
+ "package.json",
63
+ "README.md"
64
+ ].filter(Boolean).sort(),
65
+ keywords: options.keywords?.flatMap(
66
+ (keyword) => keyword.split(/ /)
67
+ ),
68
+ license: "MIT",
69
+ main: "./lib/index.js",
70
+ name: options.repository,
71
+ repository: {
72
+ type: "git",
73
+ url: `https://github.com/${options.owner}/${options.repository}`
74
+ },
75
+ scripts: {
76
+ ...options.packageData?.scripts,
77
+ ...addons.properties.scripts
78
+ },
79
+ type: "module",
80
+ version: options.version ?? "0.0.0"
81
+ })
82
+ )
78
83
  )
79
84
  },
80
85
  scripts: [
@@ -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\";\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":[]}
1
+ {"version":3,"sources":["../../../src/next/blocks/blockPackageJson.ts"],"sourcesContent":["import removeUndefinedObjects from \"remove-undefined-objects\";\nimport 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\tconst dependencies = {\n\t\t\t...options.packageData?.dependencies,\n\t\t\t...addons.properties.dependencies,\n\t\t};\n\t\tconst devDependencies = {\n\t\t\t...options.packageData?.devDependencies,\n\t\t\t...addons.properties.devDependencies,\n\t\t};\n\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\tremoveUndefinedObjects({\n\t\t\t\t\t\t\t...addons.properties,\n\t\t\t\t\t\t\tauthor: { email: options.email.npm, name: options.author },\n\t\t\t\t\t\t\tbin: options.bin,\n\t\t\t\t\t\t\tdependencies: Object.keys(dependencies).length\n\t\t\t\t\t\t\t\t? dependencies\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\tdescription: options.description,\n\t\t\t\t\t\t\tdevDependencies: Object.keys(devDependencies).length\n\t\t\t\t\t\t\t\t? devDependencies\n\t\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t\t\t...(options.node && {\n\t\t\t\t\t\t\t\tengines: {\n\t\t\t\t\t\t\t\t\tnode: `>=${options.node.minimum}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tfiles: [\n\t\t\t\t\t\t\t\toptions.bin?.replace(/^\\.\\//, \"\"),\n\t\t\t\t\t\t\t\t...(addons.properties.files ?? []),\n\t\t\t\t\t\t\t\t\"package.json\",\n\t\t\t\t\t\t\t\t\"README.md\",\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t\t\t\t.sort(),\n\t\t\t\t\t\t\tkeywords: options.keywords?.flatMap((keyword) =>\n\t\t\t\t\t\t\t\tkeyword.split(/ /),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tlicense: \"MIT\",\n\t\t\t\t\t\t\tmain: \"./lib/index.js\",\n\t\t\t\t\t\t\tname: options.repository,\n\t\t\t\t\t\t\trepository: {\n\t\t\t\t\t\t\t\ttype: \"git\",\n\t\t\t\t\t\t\t\turl: `https://github.com/${options.owner}/${options.repository}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tscripts: {\n\t\t\t\t\t\t\t\t...options.packageData?.scripts,\n\t\t\t\t\t\t\t\t...addons.properties.scripts,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttype: \"module\",\n\t\t\t\t\t\t\tversion: options.version ?? \"0.0.0\",\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\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,4BAA4B;AACnC,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,UAAM,eAAe;AAAA,MACpB,GAAG,QAAQ,aAAa;AAAA,MACxB,GAAG,OAAO,WAAW;AAAA,IACtB;AACA,UAAM,kBAAkB;AAAA,MACvB,GAAG,QAAQ,aAAa;AAAA,MACxB,GAAG,OAAO,WAAW;AAAA,IACtB;AAEA,WAAO;AAAA,MACN,OAAO;AAAA,QACN,gBAAgB;AAAA,UACf,KAAK;AAAA,YACJ,uBAAuB;AAAA,cACtB,GAAG,OAAO;AAAA,cACV,QAAQ,EAAE,OAAO,QAAQ,MAAM,KAAK,MAAM,QAAQ,OAAO;AAAA,cACzD,KAAK,QAAQ;AAAA,cACb,cAAc,OAAO,KAAK,YAAY,EAAE,SACrC,eACA;AAAA,cACH,aAAa,QAAQ;AAAA,cACrB,iBAAiB,OAAO,KAAK,eAAe,EAAE,SAC3C,kBACA;AAAA,cACH,GAAI,QAAQ,QAAQ;AAAA,gBACnB,SAAS;AAAA,kBACR,MAAM,KAAK,QAAQ,KAAK,OAAO;AAAA,gBAChC;AAAA,cACD;AAAA,cACA,OAAO;AAAA,gBACN,QAAQ,KAAK,QAAQ,SAAS,EAAE;AAAA,gBAChC,GAAI,OAAO,WAAW,SAAS,CAAC;AAAA,gBAChC;AAAA,gBACA;AAAA,cACD,EACE,OAAO,OAAO,EACd,KAAK;AAAA,cACP,UAAU,QAAQ,UAAU;AAAA,gBAAQ,CAAC,YACpC,QAAQ,MAAM,GAAG;AAAA,cAClB;AAAA,cACA,SAAS;AAAA,cACT,MAAM;AAAA,cACN,MAAM,QAAQ;AAAA,cACd,YAAY;AAAA,gBACX,MAAM;AAAA,gBACN,KAAK,sBAAsB,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,cAC/D;AAAA,cACA,SAAS;AAAA,gBACR,GAAG,QAAQ,aAAa;AAAA,gBACxB,GAAG,OAAO,WAAW;AAAA,cACtB;AAAA,cACA,MAAM;AAAA,cACN,SAAS,QAAQ,WAAW;AAAA,YAC7B,CAAC;AAAA,UACF;AAAA,QACD;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":[]}
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockPnpmDedupe: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ directory: string;
5
6
  email: {
6
7
  github: string;
7
8
  npm: string;
@@ -12,7 +13,6 @@ declare const blockPnpmDedupe: create.BlockWithoutAddons<{
12
13
  access?: "public" | "restricted" | undefined;
13
14
  author?: string | undefined;
14
15
  bin?: string | undefined;
15
- login?: string | undefined;
16
16
  contributors?: {
17
17
  name: string;
18
18
  avatar_url: string;
@@ -31,6 +31,8 @@ declare const blockPnpmDedupe: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,7 +43,6 @@ declare const blockPnpmDedupe: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
44
- preserveGeneratedFrom?: boolean | undefined;
45
46
  version?: string | undefined;
46
47
  }>;
47
48
 
@@ -11,6 +11,7 @@ declare const blockPrettier: create.BlockWithAddons<{
11
11
  }[];
12
12
  }, {
13
13
  description: string;
14
+ directory: string;
14
15
  email: {
15
16
  github: string;
16
17
  npm: string;
@@ -21,7 +22,6 @@ declare const blockPrettier: create.BlockWithAddons<{
21
22
  access?: "public" | "restricted" | undefined;
22
23
  author?: string | undefined;
23
24
  bin?: string | undefined;
24
- login?: string | undefined;
25
25
  contributors?: {
26
26
  name: string;
27
27
  avatar_url: string;
@@ -40,6 +40,8 @@ declare const blockPrettier: create.BlockWithAddons<{
40
40
  logo?: {
41
41
  alt: string;
42
42
  src: string;
43
+ height?: number | undefined;
44
+ width?: number | undefined;
43
45
  } | undefined;
44
46
  node?: {
45
47
  minimum: string;
@@ -50,7 +52,6 @@ declare const blockPrettier: create.BlockWithAddons<{
50
52
  devDependencies?: Record<string, string> | undefined;
51
53
  scripts?: Record<string, string> | undefined;
52
54
  } | undefined;
53
- preserveGeneratedFrom?: boolean | undefined;
54
55
  version?: string | undefined;
55
56
  }>;
56
57
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockPrettierPluginCurly: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ directory: string;
5
6
  email: {
6
7
  github: string;
7
8
  npm: string;
@@ -12,7 +13,6 @@ declare const blockPrettierPluginCurly: create.BlockWithoutAddons<{
12
13
  access?: "public" | "restricted" | undefined;
13
14
  author?: string | undefined;
14
15
  bin?: string | undefined;
15
- login?: string | undefined;
16
16
  contributors?: {
17
17
  name: string;
18
18
  avatar_url: string;
@@ -31,6 +31,8 @@ declare const blockPrettierPluginCurly: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,7 +43,6 @@ declare const blockPrettierPluginCurly: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
44
- preserveGeneratedFrom?: boolean | undefined;
45
46
  version?: string | undefined;
46
47
  }>;
47
48
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockPrettierPluginPackageJson: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ directory: string;
5
6
  email: {
6
7
  github: string;
7
8
  npm: string;
@@ -12,7 +13,6 @@ declare const blockPrettierPluginPackageJson: create.BlockWithoutAddons<{
12
13
  access?: "public" | "restricted" | undefined;
13
14
  author?: string | undefined;
14
15
  bin?: string | undefined;
15
- login?: string | undefined;
16
16
  contributors?: {
17
17
  name: string;
18
18
  avatar_url: string;
@@ -31,6 +31,8 @@ declare const blockPrettierPluginPackageJson: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,7 +43,6 @@ declare const blockPrettierPluginPackageJson: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
44
- preserveGeneratedFrom?: boolean | undefined;
45
46
  version?: string | undefined;
46
47
  }>;
47
48
 
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockPrettierPluginSh: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ directory: string;
5
6
  email: {
6
7
  github: string;
7
8
  npm: string;
@@ -12,7 +13,6 @@ declare const blockPrettierPluginSh: create.BlockWithoutAddons<{
12
13
  access?: "public" | "restricted" | undefined;
13
14
  author?: string | undefined;
14
15
  bin?: string | undefined;
15
- login?: string | undefined;
16
16
  contributors?: {
17
17
  name: string;
18
18
  avatar_url: string;
@@ -31,6 +31,8 @@ declare const blockPrettierPluginSh: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,7 +43,6 @@ declare const blockPrettierPluginSh: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
44
- preserveGeneratedFrom?: boolean | undefined;
45
46
  version?: string | undefined;
46
47
  }>;
47
48
 
@@ -4,6 +4,7 @@ declare const blockREADME: create.BlockWithAddons<{
4
4
  notices: string[];
5
5
  }, {
6
6
  description: string;
7
+ directory: string;
7
8
  email: {
8
9
  github: string;
9
10
  npm: string;
@@ -14,7 +15,6 @@ declare const blockREADME: create.BlockWithAddons<{
14
15
  access?: "public" | "restricted" | undefined;
15
16
  author?: string | undefined;
16
17
  bin?: string | undefined;
17
- login?: string | undefined;
18
18
  contributors?: {
19
19
  name: string;
20
20
  avatar_url: string;
@@ -33,6 +33,8 @@ declare const blockREADME: create.BlockWithAddons<{
33
33
  logo?: {
34
34
  alt: string;
35
35
  src: string;
36
+ height?: number | undefined;
37
+ width?: number | undefined;
36
38
  } | undefined;
37
39
  node?: {
38
40
  minimum: string;
@@ -43,7 +45,6 @@ declare const blockREADME: create.BlockWithAddons<{
43
45
  devDependencies?: Record<string, string> | undefined;
44
46
  scripts?: Record<string, string> | undefined;
45
47
  } | undefined;
46
- preserveGeneratedFrom?: boolean | undefined;
47
48
  version?: string | undefined;
48
49
  }>;
49
50
 
@@ -1,5 +1,8 @@
1
1
  import { z } from "zod";
2
2
  import { base } from "../base.js";
3
+ function printAttributes(attributes) {
4
+ return Object.entries(attributes).map(([key, value]) => `${key}="${value}"`).join(" ");
5
+ }
3
6
  const blockREADME = base.createBlock({
4
7
  about: {
5
8
  name: "README.md"
@@ -9,6 +12,7 @@ const blockREADME = base.createBlock({
9
12
  },
10
13
  produce({ addons, options }) {
11
14
  const { notices } = addons;
15
+ const logo = options.logo ? `<img ${printAttributes({ align: "right", ...options.logo })}>` : "";
12
16
  return {
13
17
  files: {
14
18
  "README.md": `<h1 align="center">${options.title}</h1>
@@ -27,7 +31,7 @@ const blockREADME = base.createBlock({
27
31
  <img alt="\u{1F4AA} TypeScript: Strict" src="https://img.shields.io/badge/%F0%9F%92%AA_typescript-strict-21bb42.svg" />
28
32
  </p>
29
33
 
30
- ${options.logo ? `<img align="right" alt="${options.logo.alt}" src="${options.logo.src}">` : ""}
34
+ ${logo}
31
35
 
32
36
  ## Usage
33
37
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/blocks/blockREADME.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\n\nexport const blockREADME = base.createBlock({\n\tabout: {\n\t\tname: \"README.md\",\n\t},\n\taddons: {\n\t\tnotices: z.array(z.string()).default([]),\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { notices } = addons;\n\n\t\treturn {\n\t\t\tfiles: {\n\t\t\t\t\"README.md\": `<h1 align=\"center\">${options.title}</h1>\n\n<p align=\"center\">${options.description}</p>\n\n<p align=\"center\">\n\t<!-- prettier-ignore-start -->\n\t<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\t<!-- prettier-ignore-end -->\n\t<a href=\"https://github.com/${options.owner}/${options.repository}/blob/main/.github/CODE_OF_CONDUCT.md\" target=\"_blank\"><img alt=\"🤝 Code of Conduct: Kept\" src=\"https://img.shields.io/badge/%F0%9F%A4%9D_code_of_conduct-kept-21bb42\" /></a>\n\t<a href=\"https://codecov.io/gh/${options.owner}/${options.repository}\" target=\"_blank\"><img alt=\"🧪 Coverage\" src=\"https://img.shields.io/codecov/c/github/${options.owner}/${options.repository}?label=%F0%9F%A7%AA%20coverage\" /></a>\n\t<a href=\"https://github.com/${options.owner}/${options.repository}/blob/main/LICENSE.md\" target=\"_blank\"><img alt=\"📝 License: MIT\" src=\"https://img.shields.io/badge/%F0%9F%93%9D_license-MIT-21bb42.svg\"></a>\n\t<a href=\"http://npmjs.com/package/${options.repository}\"><img alt=\"📦 npm version\" src=\"https://img.shields.io/npm/v/${options.repository}?color=21bb42&label=%F0%9F%93%A6%20npm\" /></a>\n\t<img alt=\"💪 TypeScript: Strict\" src=\"https://img.shields.io/badge/%F0%9F%92%AA_typescript-strict-21bb42.svg\" />\n</p>\n\n${options.logo ? `<img align=\"right\" alt=\"${options.logo.alt}\" src=\"${options.logo.src}\">` : \"\"}\n\n## Usage\n\n\\`\\`\\`shell\nnpm i ${options.repository}\n\\`\\`\\`\n\\`\\`\\`ts\nimport { greet } from \"${options.repository}\";\n\ngreet(\"Hello, world! 💖\");\n\\`\\`\\`\n\n## Development\n\nSee [\\`.github/CONTRIBUTING.md\\`](./.github/CONTRIBUTING.md), then [\\`.github/DEVELOPMENT.md\\`](./.github/DEVELOPMENT.md).\nThanks! 💖\n\n## Contributors\n\n<!-- spellchecker: disable -->\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- spellchecker: enable -->\n${notices.length ? `\\n${notices.map((notice) => notice.trim()).join(\"\\n\\n\")}` : \"\"}`,\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,YAAY;AAEd,MAAM,cAAc,KAAK,YAAY;AAAA,EAC3C,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxC;AAAA,EACA,QAAQ,EAAE,QAAQ,QAAQ,GAAG;AAC5B,UAAM,EAAE,QAAQ,IAAI;AAEpB,WAAO;AAAA,MACN,OAAO;AAAA,QACN,aAAa,sBAAsB,QAAQ,KAAK;AAAA;AAAA,oBAEhC,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAOR,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,kCAChC,QAAQ,KAAK,IAAI,QAAQ,UAAU,gGAAyF,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,+BAClK,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,qCAC7B,QAAQ,UAAU,wEAAiE,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,EAIxI,QAAQ,OAAO,2BAA2B,QAAQ,KAAK,GAAG,UAAU,QAAQ,KAAK,GAAG,OAAO,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA,QAKvF,QAAQ,UAAU;AAAA;AAAA;AAAA,yBAGD,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBzC,QAAQ,SAAS;AAAA,EAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE;AAAA,MAC/E;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/next/blocks/blockREADME.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { base } from \"../base.js\";\n\nfunction printAttributes(attributes: Record<string, number | string>) {\n\treturn Object.entries(attributes)\n\t\t.map(([key, value]) => `${key}=\"${value}\"`)\n\t\t.join(\" \");\n}\n\nexport const blockREADME = base.createBlock({\n\tabout: {\n\t\tname: \"README.md\",\n\t},\n\taddons: {\n\t\tnotices: z.array(z.string()).default([]),\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { notices } = addons;\n\n\t\tconst logo = options.logo\n\t\t\t? `<img ${printAttributes({ align: \"right\", ...options.logo })}>`\n\t\t\t: \"\";\n\n\t\treturn {\n\t\t\tfiles: {\n\t\t\t\t\"README.md\": `<h1 align=\"center\">${options.title}</h1>\n\n<p align=\"center\">${options.description}</p>\n\n<p align=\"center\">\n\t<!-- prettier-ignore-start -->\n\t<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n<!-- ALL-CONTRIBUTORS-BADGE:END -->\n\t<!-- prettier-ignore-end -->\n\t<a href=\"https://github.com/${options.owner}/${options.repository}/blob/main/.github/CODE_OF_CONDUCT.md\" target=\"_blank\"><img alt=\"🤝 Code of Conduct: Kept\" src=\"https://img.shields.io/badge/%F0%9F%A4%9D_code_of_conduct-kept-21bb42\" /></a>\n\t<a href=\"https://codecov.io/gh/${options.owner}/${options.repository}\" target=\"_blank\"><img alt=\"🧪 Coverage\" src=\"https://img.shields.io/codecov/c/github/${options.owner}/${options.repository}?label=%F0%9F%A7%AA%20coverage\" /></a>\n\t<a href=\"https://github.com/${options.owner}/${options.repository}/blob/main/LICENSE.md\" target=\"_blank\"><img alt=\"📝 License: MIT\" src=\"https://img.shields.io/badge/%F0%9F%93%9D_license-MIT-21bb42.svg\"></a>\n\t<a href=\"http://npmjs.com/package/${options.repository}\"><img alt=\"📦 npm version\" src=\"https://img.shields.io/npm/v/${options.repository}?color=21bb42&label=%F0%9F%93%A6%20npm\" /></a>\n\t<img alt=\"💪 TypeScript: Strict\" src=\"https://img.shields.io/badge/%F0%9F%92%AA_typescript-strict-21bb42.svg\" />\n</p>\n\n${logo}\n\n## Usage\n\n\\`\\`\\`shell\nnpm i ${options.repository}\n\\`\\`\\`\n\\`\\`\\`ts\nimport { greet } from \"${options.repository}\";\n\ngreet(\"Hello, world! 💖\");\n\\`\\`\\`\n\n## Development\n\nSee [\\`.github/CONTRIBUTING.md\\`](./.github/CONTRIBUTING.md), then [\\`.github/DEVELOPMENT.md\\`](./.github/DEVELOPMENT.md).\nThanks! 💖\n\n## Contributors\n\n<!-- spellchecker: disable -->\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n<!-- spellchecker: enable -->\n${notices.length ? `\\n${notices.map((notice) => notice.trim()).join(\"\\n\\n\")}` : \"\"}`,\n\t\t\t},\n\t\t};\n\t},\n});\n"],"mappings":"AAAA,SAAS,SAAS;AAElB,SAAS,YAAY;AAErB,SAAS,gBAAgB,YAA6C;AACrE,SAAO,OAAO,QAAQ,UAAU,EAC9B,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM,GAAG,GAAG,KAAK,KAAK,GAAG,EACzC,KAAK,GAAG;AACX;AAEO,MAAM,cAAc,KAAK,YAAY;AAAA,EAC3C,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,IACP,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AAAA,EACxC;AAAA,EACA,QAAQ,EAAE,QAAQ,QAAQ,GAAG;AAC5B,UAAM,EAAE,QAAQ,IAAI;AAEpB,UAAM,OAAO,QAAQ,OAClB,QAAQ,gBAAgB,EAAE,OAAO,SAAS,GAAG,QAAQ,KAAK,CAAC,CAAC,MAC5D;AAEH,WAAO;AAAA,MACN,OAAO;AAAA,QACN,aAAa,sBAAsB,QAAQ,KAAK;AAAA;AAAA,oBAEhC,QAAQ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAOR,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,kCAChC,QAAQ,KAAK,IAAI,QAAQ,UAAU,gGAAyF,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,+BAClK,QAAQ,KAAK,IAAI,QAAQ,UAAU;AAAA,qCAC7B,QAAQ,UAAU,wEAAiE,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA,EAIxI,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA,QAKE,QAAQ,UAAU;AAAA;AAAA;AAAA,yBAGD,QAAQ,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBzC,QAAQ,SAAS;AAAA,EAAK,QAAQ,IAAI,CAAC,WAAW,OAAO,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,KAAK,EAAE;AAAA,MAC/E;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockReleaseIt: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ directory: string;
5
6
  email: {
6
7
  github: string;
7
8
  npm: string;
@@ -12,7 +13,6 @@ declare const blockReleaseIt: create.BlockWithoutAddons<{
12
13
  access?: "public" | "restricted" | undefined;
13
14
  author?: string | undefined;
14
15
  bin?: string | undefined;
15
- login?: string | undefined;
16
16
  contributors?: {
17
17
  name: string;
18
18
  avatar_url: string;
@@ -31,6 +31,8 @@ declare const blockReleaseIt: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,7 +43,6 @@ declare const blockReleaseIt: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
44
- preserveGeneratedFrom?: boolean | undefined;
45
46
  version?: string | undefined;
46
47
  }>;
47
48
 
@@ -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 { blockRepositorySecrets } from "./blockRepositorySecrets.js";
5
6
  import { getPackageDependencies } from "./packageData.js";
6
7
  const blockReleaseIt = base.createBlock({
7
8
  about: {
@@ -23,6 +24,18 @@ const blockReleaseIt = base.createBlock({
23
24
  provenance: true
24
25
  }
25
26
  }
27
+ }),
28
+ blockRepositorySecrets({
29
+ secrets: [
30
+ {
31
+ description: "a GitHub PAT with repo and workflow permissions",
32
+ name: "ACCESS_TOKEN"
33
+ },
34
+ {
35
+ description: "an npm access token with automation permissions",
36
+ name: "NPM_TOKEN"
37
+ }
38
+ ]
26
39
  })
27
40
  ],
28
41
  files: {
@@ -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\";\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":[]}
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 { blockRepositorySecrets } from \"./blockRepositorySecrets.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\tblockRepositorySecrets({\n\t\t\t\t\tsecrets: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: \"a GitHub PAT with repo and workflow permissions\",\n\t\t\t\t\t\t\tname: \"ACCESS_TOKEN\",\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdescription: \"an npm access token with automation permissions\",\n\t\t\t\t\t\t\tname: \"NPM_TOKEN\",\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":"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","names":[]}
@@ -2,6 +2,7 @@ import * as create from 'create';
2
2
 
3
3
  declare const blockRenovate: create.BlockWithoutAddons<{
4
4
  description: string;
5
+ directory: string;
5
6
  email: {
6
7
  github: string;
7
8
  npm: string;
@@ -12,7 +13,6 @@ declare const blockRenovate: create.BlockWithoutAddons<{
12
13
  access?: "public" | "restricted" | undefined;
13
14
  author?: string | undefined;
14
15
  bin?: string | undefined;
15
- login?: string | undefined;
16
16
  contributors?: {
17
17
  name: string;
18
18
  avatar_url: string;
@@ -31,6 +31,8 @@ declare const blockRenovate: create.BlockWithoutAddons<{
31
31
  logo?: {
32
32
  alt: string;
33
33
  src: string;
34
+ height?: number | undefined;
35
+ width?: number | undefined;
34
36
  } | undefined;
35
37
  node?: {
36
38
  minimum: string;
@@ -41,7 +43,6 @@ declare const blockRenovate: create.BlockWithoutAddons<{
41
43
  devDependencies?: Record<string, string> | undefined;
42
44
  scripts?: Record<string, string> | undefined;
43
45
  } | undefined;
44
- preserveGeneratedFrom?: boolean | undefined;
45
46
  version?: string | undefined;
46
47
  }>;
47
48
 
@@ -1,5 +1,6 @@
1
1
  import { base } from "../base.js";
2
2
  import { blockCSpell } from "./blockCSpell.js";
3
+ import { blockGitHubApps } from "./blockGitHubApps.js";
3
4
  const blockRenovate = base.createBlock({
4
5
  about: {
5
6
  name: "Renovate"
@@ -9,6 +10,14 @@ const blockRenovate = base.createBlock({
9
10
  addons: [
10
11
  blockCSpell({
11
12
  words: ["automerge"]
13
+ }),
14
+ blockGitHubApps({
15
+ apps: [
16
+ {
17
+ name: "Renovate",
18
+ url: "https://github.com/apps/renovate"
19
+ }
20
+ ]
12
21
  })
13
22
  ],
14
23
  files: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/next/blocks/blockRenovate.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\n\nexport const blockRenovate = base.createBlock({\n\tabout: {\n\t\tname: \"Renovate\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\twords: [\"automerge\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t\tfiles: {\n\t\t\t\t\".github\": {\n\t\t\t\t\t\"renovate.json\": JSON.stringify({\n\t\t\t\t\t\t$schema: \"https://docs.renovatebot.com/renovate-schema.json\",\n\t\t\t\t\t\tautomerge: true,\n\t\t\t\t\t\textends: [\"config:best-practices\", \"replacements:all\"],\n\t\t\t\t\t\tignoreDeps: [\"codecov/codecov-action\"],\n\t\t\t\t\t\tlabels: [\"dependencies\"],\n\t\t\t\t\t\tminimumReleaseAge: \"7 days\",\n\t\t\t\t\t\tpatch: { enabled: false },\n\t\t\t\t\t\tpostUpdateOptions: [\"pnpmDedupe\"],\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,mBAAmB;AAErB,MAAM,gBAAgB,KAAK,YAAY;AAAA,EAC7C,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AACT,WAAO;AAAA,MACN,QAAQ;AAAA,QACP,YAAY;AAAA,UACX,OAAO,CAAC,WAAW;AAAA,QACpB,CAAC;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACN,WAAW;AAAA,UACV,iBAAiB,KAAK,UAAU;AAAA,YAC/B,SAAS;AAAA,YACT,WAAW;AAAA,YACX,SAAS,CAAC,yBAAyB,kBAAkB;AAAA,YACrD,YAAY,CAAC,wBAAwB;AAAA,YACrC,QAAQ,CAAC,cAAc;AAAA,YACvB,mBAAmB;AAAA,YACnB,OAAO,EAAE,SAAS,MAAM;AAAA,YACxB,mBAAmB,CAAC,YAAY;AAAA,UACjC,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../../src/next/blocks/blockRenovate.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockCSpell } from \"./blockCSpell.js\";\nimport { blockGitHubApps } from \"./blockGitHubApps.js\";\n\nexport const blockRenovate = base.createBlock({\n\tabout: {\n\t\tname: \"Renovate\",\n\t},\n\tproduce() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockCSpell({\n\t\t\t\t\twords: [\"automerge\"],\n\t\t\t\t}),\n\t\t\t\tblockGitHubApps({\n\t\t\t\t\tapps: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: \"Renovate\",\n\t\t\t\t\t\t\turl: \"https://github.com/apps/renovate\",\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\t\"renovate.json\": JSON.stringify({\n\t\t\t\t\t\t$schema: \"https://docs.renovatebot.com/renovate-schema.json\",\n\t\t\t\t\t\tautomerge: true,\n\t\t\t\t\t\textends: [\"config:best-practices\", \"replacements:all\"],\n\t\t\t\t\t\tignoreDeps: [\"codecov/codecov-action\"],\n\t\t\t\t\t\tlabels: [\"dependencies\"],\n\t\t\t\t\t\tminimumReleaseAge: \"7 days\",\n\t\t\t\t\t\tpatch: { enabled: false },\n\t\t\t\t\t\tpostUpdateOptions: [\"pnpmDedupe\"],\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,mBAAmB;AAC5B,SAAS,uBAAuB;AAEzB,MAAM,gBAAgB,KAAK,YAAY;AAAA,EAC7C,OAAO;AAAA,IACN,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AACT,WAAO;AAAA,MACN,QAAQ;AAAA,QACP,YAAY;AAAA,UACX,OAAO,CAAC,WAAW;AAAA,QACpB,CAAC;AAAA,QACD,gBAAgB;AAAA,UACf,MAAM;AAAA,YACL;AAAA,cACC,MAAM;AAAA,cACN,KAAK;AAAA,YACN;AAAA,UACD;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MACA,OAAO;AAAA,QACN,WAAW;AAAA,UACV,iBAAiB,KAAK,UAAU;AAAA,YAC/B,SAAS;AAAA,YACT,WAAW;AAAA,YACX,SAAS,CAAC,yBAAyB,kBAAkB;AAAA,YACrD,YAAY,CAAC,wBAAwB;AAAA,YACrC,QAAQ,CAAC,cAAc;AAAA,YACvB,mBAAmB;AAAA,YACnB,OAAO,EAAE,SAAS,MAAM;AAAA,YACxB,mBAAmB,CAAC,YAAY;AAAA,UACjC,CAAC;AAAA,QACF;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD,CAAC;","names":[]}
@@ -4,6 +4,7 @@ declare const blockRepositoryBranchRuleset: create.BlockWithAddons<{
4
4
  requiredStatusChecks: string[];
5
5
  }, {
6
6
  description: string;
7
+ directory: string;
7
8
  email: {
8
9
  github: string;
9
10
  npm: string;
@@ -14,7 +15,6 @@ declare const blockRepositoryBranchRuleset: create.BlockWithAddons<{
14
15
  access?: "public" | "restricted" | undefined;
15
16
  author?: string | undefined;
16
17
  bin?: string | undefined;
17
- login?: string | undefined;
18
18
  contributors?: {
19
19
  name: string;
20
20
  avatar_url: string;
@@ -33,6 +33,8 @@ declare const blockRepositoryBranchRuleset: create.BlockWithAddons<{
33
33
  logo?: {
34
34
  alt: string;
35
35
  src: string;
36
+ height?: number | undefined;
37
+ width?: number | undefined;
36
38
  } | undefined;
37
39
  node?: {
38
40
  minimum: string;
@@ -43,7 +45,6 @@ declare const blockRepositoryBranchRuleset: create.BlockWithAddons<{
43
45
  devDependencies?: Record<string, string> | undefined;
44
46
  scripts?: Record<string, string> | undefined;
45
47
  } | undefined;
46
- preserveGeneratedFrom?: boolean | undefined;
47
48
  version?: string | undefined;
48
49
  }>;
49
50
 
@@ -14,6 +14,15 @@ const blockRepositoryBranchRuleset = base.createBlock({
14
14
  id: "branch-ruleset",
15
15
  async send({ octokit }) {
16
16
  await octokit.request("POST /repos/{owner}/{repo}/rulesets", {
17
+ bypass_actors: [
18
+ {
19
+ // This *seems* to be the Repository Admin role always?
20
+ // https://github.com/github/rest-api-description/issues/4406
21
+ actor_id: 5,
22
+ actor_type: "RepositoryRole",
23
+ bypass_mode: "always"
24
+ }
25
+ ],
17
26
  conditions: {
18
27
  ref_name: {
19
28
  exclude: [],