create-typescript-app 2.41.1 → 2.42.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.
@@ -0,0 +1,36 @@
1
+ import { IntakeDirectory } from 'bingo-fs';
2
+ import { z } from 'zod';
3
+
4
+ declare const zActionStep: z.ZodIntersection<z.ZodObject<{
5
+ env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
6
+ if: z.ZodOptional<z.ZodString>;
7
+ with: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ with?: Record<string, string> | undefined;
10
+ env?: Record<string, string> | undefined;
11
+ if?: string | undefined;
12
+ }, {
13
+ with?: Record<string, string> | undefined;
14
+ env?: Record<string, string> | undefined;
15
+ if?: string | undefined;
16
+ }>, z.ZodUnion<[z.ZodObject<{
17
+ run: z.ZodString;
18
+ }, "strip", z.ZodTypeAny, {
19
+ run: string;
20
+ }, {
21
+ run: string;
22
+ }>, z.ZodObject<{
23
+ uses: z.ZodString;
24
+ }, "strip", z.ZodTypeAny, {
25
+ uses: string;
26
+ }, {
27
+ uses: string;
28
+ }>]>>;
29
+ interface JobOrRunStep {
30
+ env?: Record<string, string>;
31
+ uses?: unknown;
32
+ with?: Record<string, string>;
33
+ }
34
+ declare function intakeFileYamlSteps(files: IntakeDirectory, filePath: string[], ymlPath: string[]): JobOrRunStep[] | undefined;
35
+
36
+ export { type JobOrRunStep, intakeFileYamlSteps, zActionStep };
@@ -0,0 +1,26 @@
1
+ import _ from "lodash";
2
+ import { z } from "zod";
3
+ import { intakeFileAsYaml } from "../intake/intakeFileAsYaml.js";
4
+ const zActionStep = z.intersection(
5
+ z.object({
6
+ env: z.record(z.string(), z.string()).optional(),
7
+ if: z.string().optional(),
8
+ with: z.record(z.string(), z.string()).optional()
9
+ }),
10
+ z.union([z.object({ run: z.string() }), z.object({ uses: z.string() })])
11
+ );
12
+ function intakeFileYamlSteps(files, filePath, ymlPath) {
13
+ const actionYml = intakeFileAsYaml(files, filePath);
14
+ if (!actionYml) {
15
+ return void 0;
16
+ }
17
+ const steps = _.get(actionYml, ymlPath);
18
+ if (!steps || !Array.isArray(steps)) {
19
+ return void 0;
20
+ }
21
+ return steps;
22
+ }
23
+ export {
24
+ intakeFileYamlSteps,
25
+ zActionStep
26
+ };
@@ -92,6 +92,8 @@ const blockCTATransitions = base.createBlock({
92
92
  },
93
93
  steps: [
94
94
  {
95
+ id: "checkout",
96
+ if: `(github.actor == '${options.owner}' || github.actor == 'renovate[bot]') && startsWith(github.head_ref, 'renovate/') && contains(github.event.pull_request.title, 'create-typescript-app')`,
95
97
  uses: resolveUses(
96
98
  "actions/checkout",
97
99
  "v4",
@@ -105,12 +107,11 @@ const blockCTATransitions = base.createBlock({
105
107
  }
106
108
  },
107
109
  {
108
- id: "check",
109
- if: `(github.actor == '${options.owner}' || github.actor == 'renovate[bot]') && startsWith(github.head_ref, 'renovate/') && contains(github.event.pull_request.title, 'create-typescript-app')`,
110
+ if: "steps.checkout.outcome != 'skipped'",
110
111
  uses: "./.github/actions/transition"
111
112
  },
112
113
  {
113
- if: "steps.check.outcome == 'skipped'",
114
+ if: "steps.checkout.outcome == 'skipped'",
114
115
  run: "echo 'Skipping transition mode because the PR does not appear to be an automated or owner-created update to create-typescript-app.'"
115
116
  }
116
117
  ]
@@ -1,12 +1,11 @@
1
- import _ from "lodash";
2
1
  import { z } from "zod";
3
2
  import { base } from "../base.js";
4
3
  import { resolveUses } from "./actions/resolveUses.js";
4
+ import { intakeFileYamlSteps } from "./actions/steps.js";
5
5
  import { blockGitHubApps } from "./blockGitHubApps.js";
6
6
  import { blockREADME } from "./blockREADME.js";
7
7
  import { blockRemoveFiles } from "./blockRemoveFiles.js";
8
8
  import { blockVitest } from "./blockVitest.js";
9
- import { intakeFileAsYaml } from "./intake/intakeFileAsYaml.js";
10
9
  const blockCodecov = base.createBlock({
11
10
  about: {
12
11
  name: "Codecov"
@@ -15,11 +14,11 @@ const blockCodecov = base.createBlock({
15
14
  env: z.record(z.string(), z.string()).optional()
16
15
  },
17
16
  intake({ files }) {
18
- const ciYaml = intakeFileAsYaml(files, [".github", "workflows", "ci.yml"]);
19
- if (!ciYaml) {
20
- return void 0;
21
- }
22
- const steps = _.get(ciYaml, ["jobs", "test", "steps"]);
17
+ const steps = intakeFileYamlSteps(
18
+ files,
19
+ [".github", "workflows", "ci.yml"],
20
+ ["jobs", "test", "steps"]
21
+ );
23
22
  if (!steps) {
24
23
  return void 0;
25
24
  }
@@ -1,31 +1,5 @@
1
1
  import * as bingo_stratum from 'bingo-stratum';
2
- import { z } from 'zod';
3
2
 
4
- declare const zActionStep: z.ZodIntersection<z.ZodObject<{
5
- env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
6
- if: z.ZodOptional<z.ZodString>;
7
- with: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
8
- }, "strip", z.ZodTypeAny, {
9
- with?: Record<string, string> | undefined;
10
- env?: Record<string, string> | undefined;
11
- if?: string | undefined;
12
- }, {
13
- with?: Record<string, string> | undefined;
14
- env?: Record<string, string> | undefined;
15
- if?: string | undefined;
16
- }>, z.ZodUnion<[z.ZodObject<{
17
- run: z.ZodString;
18
- }, "strip", z.ZodTypeAny, {
19
- run: string;
20
- }, {
21
- run: string;
22
- }>, z.ZodObject<{
23
- uses: z.ZodString;
24
- }, "strip", z.ZodTypeAny, {
25
- uses: string;
26
- }, {
27
- uses: string;
28
- }>]>>;
29
3
  declare const blockGitHubActionsCI: bingo_stratum.BlockWithAddons<{
30
4
  jobs?: {
31
5
  name: string;
@@ -111,4 +85,4 @@ declare const blockGitHubActionsCI: bingo_stratum.BlockWithAddons<{
111
85
  }>> | undefined;
112
86
  }>;
113
87
 
114
- export { blockGitHubActionsCI, zActionStep };
88
+ export { blockGitHubActionsCI };
@@ -1,21 +1,12 @@
1
- import _ from "lodash";
2
1
  import { z } from "zod";
3
2
  import { base } from "../base.js";
4
3
  import { resolveUses } from "./actions/resolveUses.js";
4
+ import { intakeFileYamlSteps, zActionStep } from "./actions/steps.js";
5
5
  import { blockRemoveFiles } from "./blockRemoveFiles.js";
6
6
  import { blockRepositoryBranchRuleset } from "./blockRepositoryBranchRuleset.js";
7
7
  import { createMultiWorkflowFile } from "./files/createMultiWorkflowFile.js";
8
8
  import { createSoloWorkflowFile } from "./files/createSoloWorkflowFile.js";
9
9
  import { formatYaml } from "./files/formatYaml.js";
10
- import { intakeFileAsYaml } from "./intake/intakeFileAsYaml.js";
11
- const zActionStep = z.intersection(
12
- z.object({
13
- env: z.record(z.string(), z.string()).optional(),
14
- if: z.string().optional(),
15
- with: z.record(z.string(), z.string()).optional()
16
- }),
17
- z.union([z.object({ run: z.string() }), z.object({ uses: z.string() })])
18
- );
19
10
  const blockGitHubActionsCI = base.createBlock({
20
11
  about: {
21
12
  name: "GitHub Actions CI"
@@ -32,17 +23,12 @@ const blockGitHubActionsCI = base.createBlock({
32
23
  nodeVersion: z.union([z.number(), z.string()]).optional()
33
24
  },
34
25
  intake({ files }) {
35
- const actionYml = intakeFileAsYaml(files, [
36
- ".github",
37
- "actions",
38
- "prepare",
39
- "action.yml"
40
- ]);
41
- if (!actionYml) {
42
- return;
43
- }
44
- const steps = _.get(actionYml, ["runs", "steps"]);
45
- if (!steps || !Array.isArray(steps)) {
26
+ const steps = intakeFileYamlSteps(
27
+ files,
28
+ [".github", "actions", "prepare", "action.yml"],
29
+ ["runs", "steps"]
30
+ );
31
+ if (!steps) {
46
32
  return void 0;
47
33
  }
48
34
  const setupNodeStep = steps.find(
@@ -103,34 +89,6 @@ const blockGitHubActionsCI = base.createBlock({
103
89
  }
104
90
  },
105
91
  workflows: {
106
- "accessibility-alt-text-bot.yml": createSoloWorkflowFile({
107
- if: "${{ !endsWith(github.actor, '[bot]') }}",
108
- name: "Accessibility Alt Text Bot",
109
- on: {
110
- issue_comment: {
111
- types: ["created", "edited"]
112
- },
113
- issues: {
114
- types: ["edited", "opened"]
115
- },
116
- pull_request: {
117
- types: ["edited", "opened"]
118
- }
119
- },
120
- permissions: {
121
- issues: "write",
122
- "pull-requests": "write"
123
- },
124
- steps: [
125
- {
126
- uses: resolveUses(
127
- "github/accessibility-alt-text-bot",
128
- "v1.4.0",
129
- options.workflowsVersions
130
- )
131
- }
132
- ]
133
- }),
134
92
  "ci.yml": jobs && createMultiWorkflowFile({
135
93
  jobs: jobs.sort((a, b) => a.name.localeCompare(b.name)),
136
94
  name: "CI",
@@ -181,6 +139,5 @@ echo "See https://github.com/actions-ecosystem/action-remove-labels/issues/221."
181
139
  }
182
140
  });
183
141
  export {
184
- blockGitHubActionsCI,
185
- zActionStep
142
+ blockGitHubActionsCI
186
143
  };
@@ -0,0 +1,74 @@
1
+ import * as bingo_stratum from 'bingo-stratum';
2
+
3
+ declare const blockOctoGuide: bingo_stratum.BlockWithAddons<{
4
+ config?: "strict" | "recommended" | undefined;
5
+ }, {
6
+ access: "public" | "restricted";
7
+ description: string;
8
+ directory: string;
9
+ documentation: {
10
+ readme: {
11
+ additional?: string | undefined;
12
+ explainer?: string | undefined;
13
+ footnotes?: string | undefined;
14
+ usage?: string | undefined;
15
+ };
16
+ development?: string | undefined;
17
+ };
18
+ email: {
19
+ github: string;
20
+ npm: string;
21
+ };
22
+ title: string;
23
+ node: {
24
+ minimum: string;
25
+ pinned?: string | undefined;
26
+ };
27
+ owner: string;
28
+ repository: string;
29
+ type?: "commonjs" | "module" | undefined;
30
+ author?: string | undefined;
31
+ bin?: string | Record<string, string> | undefined;
32
+ contributors?: {
33
+ avatar_url: string;
34
+ contributions: string[];
35
+ login: string;
36
+ name: string;
37
+ profile: string;
38
+ }[] | undefined;
39
+ emoji?: string | undefined;
40
+ existingLabels?: {
41
+ name: string;
42
+ description: string;
43
+ color: string;
44
+ }[] | undefined;
45
+ funding?: string | undefined;
46
+ guide?: {
47
+ href: string;
48
+ title: string;
49
+ } | undefined;
50
+ keywords?: string[] | undefined;
51
+ logo?: {
52
+ alt: string;
53
+ src: string;
54
+ height?: number | undefined;
55
+ width?: number | undefined;
56
+ } | undefined;
57
+ packageData?: {
58
+ dependencies?: Record<string, string> | undefined;
59
+ devDependencies?: Record<string, string> | undefined;
60
+ peerDependencies?: Record<string, string> | undefined;
61
+ peerDependenciesMeta?: Record<string, unknown> | undefined;
62
+ scripts?: Record<string, string | undefined> | undefined;
63
+ } | undefined;
64
+ pnpm?: string | undefined;
65
+ rulesetId?: string | undefined;
66
+ version?: string | undefined;
67
+ words?: string[] | undefined;
68
+ workflowsVersions?: Record<string, Record<string, {
69
+ pinned?: boolean | undefined;
70
+ hash?: string | undefined;
71
+ }>> | undefined;
72
+ }>;
73
+
74
+ export { blockOctoGuide };
@@ -0,0 +1,100 @@
1
+ import { z } from "zod";
2
+ import { base } from "../base.js";
3
+ import { resolveUses } from "./actions/resolveUses.js";
4
+ import { intakeFileYamlSteps } from "./actions/steps.js";
5
+ import { blockRemoveFiles } from "./blockRemoveFiles.js";
6
+ import { createSoloWorkflowFile } from "./files/createSoloWorkflowFile.js";
7
+ const blockOctoGuide = base.createBlock({
8
+ about: {
9
+ name: "OctoGuide"
10
+ },
11
+ addons: {
12
+ config: z.union([z.literal("recommended"), z.literal("strict")]).optional()
13
+ },
14
+ intake({ files }) {
15
+ const steps = intakeFileYamlSteps(
16
+ files,
17
+ [".github", "workflows", "octoguide.yml"],
18
+ ["jobs", "octoguide", "steps"]
19
+ );
20
+ if (!steps) {
21
+ return void 0;
22
+ }
23
+ const runOctoGuideStep = steps.find(
24
+ (step) => typeof step.uses === "string" && step.uses.startsWith("JoshuaKGoldberg/octoguide")
25
+ );
26
+ if (!runOctoGuideStep) {
27
+ return void 0;
28
+ }
29
+ return {
30
+ config: runOctoGuideStep.with?.config
31
+ };
32
+ },
33
+ produce({ addons, options }) {
34
+ return {
35
+ files: {
36
+ ".github": {
37
+ workflows: {
38
+ "octoguide.yml": createSoloWorkflowFile({
39
+ if: "${{ !endsWith(github.actor, '[bot]') }}",
40
+ name: "OctoGuide",
41
+ on: {
42
+ discussion: {
43
+ types: ["created", "edited"]
44
+ },
45
+ discussion_comment: {
46
+ types: ["created", "deleted", "edited"]
47
+ },
48
+ issue_comment: {
49
+ types: ["created", "deleted", "edited"]
50
+ },
51
+ issues: {
52
+ types: ["edited", "opened"]
53
+ },
54
+ pull_request_review_comment: {
55
+ types: ["created", "deleted", "edited"]
56
+ },
57
+ pull_request_target: {
58
+ types: ["edited", "opened"]
59
+ }
60
+ },
61
+ permissions: {
62
+ discussions: "write",
63
+ issues: "write",
64
+ "pull-requests": "write"
65
+ },
66
+ steps: [
67
+ {
68
+ uses: resolveUses(
69
+ "JoshuaKGoldberg/octoguide",
70
+ "0.11.1",
71
+ options.workflowsVersions
72
+ ),
73
+ with: {
74
+ config: addons.config ?? "recommended",
75
+ "github-token": "${{ secrets.GITHUB_TOKEN }}"
76
+ }
77
+ }
78
+ ]
79
+ })
80
+ }
81
+ }
82
+ }
83
+ };
84
+ },
85
+ transition() {
86
+ return {
87
+ addons: [
88
+ blockRemoveFiles({
89
+ files: [
90
+ ".github/accessibility-alt-text-bot.yml",
91
+ ".github/workflows/compliance.yml"
92
+ ]
93
+ })
94
+ ]
95
+ };
96
+ }
97
+ });
98
+ export {
99
+ blockOctoGuide
100
+ };
@@ -1,6 +1,6 @@
1
1
  import * as bingo_stratum from 'bingo-stratum';
2
2
 
3
- declare const blockPRCompliance: bingo_stratum.BlockWithoutAddons<{
3
+ declare const blockOctoGuideStrict: bingo_stratum.BlockWithoutAddons<{
4
4
  access: "public" | "restricted";
5
5
  description: string;
6
6
  directory: string;
@@ -69,4 +69,4 @@ declare const blockPRCompliance: bingo_stratum.BlockWithoutAddons<{
69
69
  }>> | undefined;
70
70
  }>;
71
71
 
72
- export { blockPRCompliance };
72
+ export { blockOctoGuideStrict };
@@ -0,0 +1,19 @@
1
+ import { base } from "../base.js";
2
+ import { blockOctoGuide } from "./blockOctoGuide.js";
3
+ const blockOctoGuideStrict = base.createBlock({
4
+ about: {
5
+ name: "OctoGuide Strict"
6
+ },
7
+ produce() {
8
+ return {
9
+ addons: [
10
+ blockOctoGuide({
11
+ config: "strict"
12
+ })
13
+ ]
14
+ };
15
+ }
16
+ });
17
+ export {
18
+ blockOctoGuideStrict
19
+ };
@@ -52,7 +52,6 @@ declare const blockPackageJson: bingo_stratum.BlockWithAddons<{
52
52
  })[] | undefined;
53
53
  publishConfig?: Record<string, unknown> | undefined;
54
54
  main?: string | undefined;
55
- types?: string | undefined;
56
55
  bugs?: string | {
57
56
  url?: string | undefined;
58
57
  email?: string | undefined;
@@ -68,6 +67,7 @@ declare const blockPackageJson: bingo_stratum.BlockWithAddons<{
68
67
  cpu?: string[] | undefined;
69
68
  workspaces?: string[] | undefined;
70
69
  deprecated?: string | undefined;
70
+ types?: string | undefined;
71
71
  typings?: string | undefined;
72
72
  typesVersions?: Record<string, Record<string, string[]>> | undefined;
73
73
  sideEffects?: boolean | string[] | undefined;
@@ -1,11 +1,12 @@
1
1
  import { z } from "zod";
2
2
  import { base } from "../base.js";
3
3
  import { getPackageDependencies } from "../data/packageData.js";
4
+ import { zActionStep } from "./actions/steps.js";
4
5
  import { blockCSpell } from "./blockCSpell.js";
5
6
  import { blockDevelopmentDocs } from "./blockDevelopmentDocs.js";
6
7
  import { blockESLint } from "./blockESLint.js";
7
8
  import { blockExampleFiles } from "./blockExampleFiles.js";
8
- import { blockGitHubActionsCI, zActionStep } from "./blockGitHubActionsCI.js";
9
+ import { blockGitHubActionsCI } from "./blockGitHubActionsCI.js";
9
10
  import { blockGitignore } from "./blockGitignore.js";
10
11
  import { blockKnip } from "./blockKnip.js";
11
12
  import { blockPackageJson } from "./blockPackageJson.js";
@@ -3,6 +3,12 @@ interface WorkflowFileConcurrency {
3
3
  group: string;
4
4
  }
5
5
  interface WorkflowFileOn {
6
+ discussion?: {
7
+ types?: string[];
8
+ };
9
+ discussion_comment?: {
10
+ types?: string[];
11
+ };
6
12
  issue_comment?: {
7
13
  types?: string[];
8
14
  };
@@ -13,6 +19,9 @@ interface WorkflowFileOn {
13
19
  branches?: string | string[];
14
20
  types?: string[];
15
21
  };
22
+ pull_request_review_comment?: {
23
+ types: string[];
24
+ };
16
25
  pull_request_target?: {
17
26
  types: string[];
18
27
  };
@@ -35,6 +44,7 @@ interface WorkflowFileOptions {
35
44
  }
36
45
  interface WorkflowFilePermissions {
37
46
  contents?: string;
47
+ discussions?: string;
38
48
  "id-token"?: string;
39
49
  issues?: string;
40
50
  "pull-requests"?: string;
@@ -30,9 +30,10 @@ export { blockMarkdownlint } from './blockMarkdownlint.js';
30
30
  export { blockMITLicense } from './blockMITLicense.js';
31
31
  export { blockNcc } from './blockNcc.js';
32
32
  export { blockNvmrc } from './blockNvmrc.js';
33
+ export { blockOctoGuide } from './blockOctoGuide.js';
34
+ export { blockOctoGuideStrict } from './blockOctoGuideStrict.js';
33
35
  export { blockPackageJson } from './blockPackageJson.js';
34
36
  export { blockPnpmDedupe } from './blockPnpmDedupe.js';
35
- export { blockPRCompliance } from './blockPRCompliance.js';
36
37
  export { blockPrettier } from './blockPrettier.js';
37
38
  export { blockPrettierPluginCurly } from './blockPrettierPluginCurly.js';
38
39
  export { blockPrettierPluginPackageJson } from './blockPrettierPluginPackageJson.js';
@@ -47,7 +48,6 @@ export { blockTypeScript } from './blockTypeScript.js';
47
48
  export { blockVitest } from './blockVitest.js';
48
49
  export { blockVSCode } from './blockVSCode.js';
49
50
  export { blockWebExt } from './blockWebExt.js';
50
- import 'zod';
51
51
 
52
52
  declare const blocks: {
53
53
  blockAllContributors: bingo_stratum.BlockWithoutAddons<{
@@ -2169,6 +2169,144 @@ declare const blocks: {
2169
2169
  hash?: string | undefined;
2170
2170
  }>> | undefined;
2171
2171
  }>;
2172
+ blockOctoGuide: bingo_stratum.BlockWithAddons<{
2173
+ config?: "strict" | "recommended" | undefined;
2174
+ }, {
2175
+ access: "public" | "restricted";
2176
+ description: string;
2177
+ directory: string;
2178
+ documentation: {
2179
+ readme: {
2180
+ additional?: string | undefined;
2181
+ explainer?: string | undefined;
2182
+ footnotes?: string | undefined;
2183
+ usage?: string | undefined;
2184
+ };
2185
+ development?: string | undefined;
2186
+ };
2187
+ email: {
2188
+ github: string;
2189
+ npm: string;
2190
+ };
2191
+ title: string;
2192
+ node: {
2193
+ minimum: string;
2194
+ pinned?: string | undefined;
2195
+ };
2196
+ owner: string;
2197
+ repository: string;
2198
+ type?: "commonjs" | "module" | undefined;
2199
+ author?: string | undefined;
2200
+ bin?: string | Record<string, string> | undefined;
2201
+ contributors?: {
2202
+ avatar_url: string;
2203
+ contributions: string[];
2204
+ login: string;
2205
+ name: string;
2206
+ profile: string;
2207
+ }[] | undefined;
2208
+ emoji?: string | undefined;
2209
+ existingLabels?: {
2210
+ name: string;
2211
+ description: string;
2212
+ color: string;
2213
+ }[] | undefined;
2214
+ funding?: string | undefined;
2215
+ guide?: {
2216
+ href: string;
2217
+ title: string;
2218
+ } | undefined;
2219
+ keywords?: string[] | undefined;
2220
+ logo?: {
2221
+ alt: string;
2222
+ src: string;
2223
+ height?: number | undefined;
2224
+ width?: number | undefined;
2225
+ } | undefined;
2226
+ packageData?: {
2227
+ dependencies?: Record<string, string> | undefined;
2228
+ devDependencies?: Record<string, string> | undefined;
2229
+ peerDependencies?: Record<string, string> | undefined;
2230
+ peerDependenciesMeta?: Record<string, unknown> | undefined;
2231
+ scripts?: Record<string, string | undefined> | undefined;
2232
+ } | undefined;
2233
+ pnpm?: string | undefined;
2234
+ rulesetId?: string | undefined;
2235
+ version?: string | undefined;
2236
+ words?: string[] | undefined;
2237
+ workflowsVersions?: Record<string, Record<string, {
2238
+ pinned?: boolean | undefined;
2239
+ hash?: string | undefined;
2240
+ }>> | undefined;
2241
+ }>;
2242
+ blockOctoGuideStrict: bingo_stratum.BlockWithoutAddons<{
2243
+ access: "public" | "restricted";
2244
+ description: string;
2245
+ directory: string;
2246
+ documentation: {
2247
+ readme: {
2248
+ additional?: string | undefined;
2249
+ explainer?: string | undefined;
2250
+ footnotes?: string | undefined;
2251
+ usage?: string | undefined;
2252
+ };
2253
+ development?: string | undefined;
2254
+ };
2255
+ email: {
2256
+ github: string;
2257
+ npm: string;
2258
+ };
2259
+ title: string;
2260
+ node: {
2261
+ minimum: string;
2262
+ pinned?: string | undefined;
2263
+ };
2264
+ owner: string;
2265
+ repository: string;
2266
+ type?: "commonjs" | "module" | undefined;
2267
+ author?: string | undefined;
2268
+ bin?: string | Record<string, string> | undefined;
2269
+ contributors?: {
2270
+ avatar_url: string;
2271
+ contributions: string[];
2272
+ login: string;
2273
+ name: string;
2274
+ profile: string;
2275
+ }[] | undefined;
2276
+ emoji?: string | undefined;
2277
+ existingLabels?: {
2278
+ name: string;
2279
+ description: string;
2280
+ color: string;
2281
+ }[] | undefined;
2282
+ funding?: string | undefined;
2283
+ guide?: {
2284
+ href: string;
2285
+ title: string;
2286
+ } | undefined;
2287
+ keywords?: string[] | undefined;
2288
+ logo?: {
2289
+ alt: string;
2290
+ src: string;
2291
+ height?: number | undefined;
2292
+ width?: number | undefined;
2293
+ } | undefined;
2294
+ packageData?: {
2295
+ dependencies?: Record<string, string> | undefined;
2296
+ devDependencies?: Record<string, string> | undefined;
2297
+ peerDependencies?: Record<string, string> | undefined;
2298
+ peerDependenciesMeta?: Record<string, unknown> | undefined;
2299
+ scripts?: Record<string, string | undefined> | undefined;
2300
+ } | undefined;
2301
+ pnpm?: string | undefined;
2302
+ rulesetId?: string | undefined;
2303
+ version?: string | undefined;
2304
+ words?: string[] | undefined;
2305
+ workflowsVersions?: Record<string, Record<string, {
2306
+ pinned?: boolean | undefined;
2307
+ hash?: string | undefined;
2308
+ }>> | undefined;
2309
+ }>;
2172
2310
  blockPackageJson: bingo_stratum.BlockWithAddons<{
2173
2311
  properties: {
2174
2312
  type?: "commonjs" | "module" | undefined;
@@ -2221,7 +2359,6 @@ declare const blocks: {
2221
2359
  })[] | undefined;
2222
2360
  publishConfig?: Record<string, unknown> | undefined;
2223
2361
  main?: string | undefined;
2224
- types?: string | undefined;
2225
2362
  bugs?: string | {
2226
2363
  url?: string | undefined;
2227
2364
  email?: string | undefined;
@@ -2237,6 +2374,7 @@ declare const blocks: {
2237
2374
  cpu?: string[] | undefined;
2238
2375
  workspaces?: string[] | undefined;
2239
2376
  deprecated?: string | undefined;
2377
+ types?: string | undefined;
2240
2378
  typings?: string | undefined;
2241
2379
  typesVersions?: Record<string, Record<string, string[]>> | undefined;
2242
2380
  sideEffects?: boolean | string[] | undefined;
@@ -2382,74 +2520,6 @@ declare const blocks: {
2382
2520
  hash?: string | undefined;
2383
2521
  }>> | undefined;
2384
2522
  }>;
2385
- blockPRCompliance: bingo_stratum.BlockWithoutAddons<{
2386
- access: "public" | "restricted";
2387
- description: string;
2388
- directory: string;
2389
- documentation: {
2390
- readme: {
2391
- additional?: string | undefined;
2392
- explainer?: string | undefined;
2393
- footnotes?: string | undefined;
2394
- usage?: string | undefined;
2395
- };
2396
- development?: string | undefined;
2397
- };
2398
- email: {
2399
- github: string;
2400
- npm: string;
2401
- };
2402
- title: string;
2403
- node: {
2404
- minimum: string;
2405
- pinned?: string | undefined;
2406
- };
2407
- owner: string;
2408
- repository: string;
2409
- type?: "commonjs" | "module" | undefined;
2410
- author?: string | undefined;
2411
- bin?: string | Record<string, string> | undefined;
2412
- contributors?: {
2413
- avatar_url: string;
2414
- contributions: string[];
2415
- login: string;
2416
- name: string;
2417
- profile: string;
2418
- }[] | undefined;
2419
- emoji?: string | undefined;
2420
- existingLabels?: {
2421
- name: string;
2422
- description: string;
2423
- color: string;
2424
- }[] | undefined;
2425
- funding?: string | undefined;
2426
- guide?: {
2427
- href: string;
2428
- title: string;
2429
- } | undefined;
2430
- keywords?: string[] | undefined;
2431
- logo?: {
2432
- alt: string;
2433
- src: string;
2434
- height?: number | undefined;
2435
- width?: number | undefined;
2436
- } | undefined;
2437
- packageData?: {
2438
- dependencies?: Record<string, string> | undefined;
2439
- devDependencies?: Record<string, string> | undefined;
2440
- peerDependencies?: Record<string, string> | undefined;
2441
- peerDependenciesMeta?: Record<string, unknown> | undefined;
2442
- scripts?: Record<string, string | undefined> | undefined;
2443
- } | undefined;
2444
- pnpm?: string | undefined;
2445
- rulesetId?: string | undefined;
2446
- version?: string | undefined;
2447
- words?: string[] | undefined;
2448
- workflowsVersions?: Record<string, Record<string, {
2449
- pinned?: boolean | undefined;
2450
- hash?: string | undefined;
2451
- }>> | undefined;
2452
- }>;
2453
2523
  blockPrettier: bingo_stratum.BlockWithAddons<{
2454
2524
  overrides: {
2455
2525
  options: {
@@ -28,9 +28,10 @@ import { blockMarkdownlint } from "./blockMarkdownlint.js";
28
28
  import { blockMITLicense } from "./blockMITLicense.js";
29
29
  import { blockNcc } from "./blockNcc.js";
30
30
  import { blockNvmrc } from "./blockNvmrc.js";
31
+ import { blockOctoGuide } from "./blockOctoGuide.js";
32
+ import { blockOctoGuideStrict } from "./blockOctoGuideStrict.js";
31
33
  import { blockPackageJson } from "./blockPackageJson.js";
32
34
  import { blockPnpmDedupe } from "./blockPnpmDedupe.js";
33
- import { blockPRCompliance } from "./blockPRCompliance.js";
34
35
  import { blockPrettier } from "./blockPrettier.js";
35
36
  import { blockPrettierPluginCurly } from "./blockPrettierPluginCurly.js";
36
37
  import { blockPrettierPluginPackageJson } from "./blockPrettierPluginPackageJson.js";
@@ -76,9 +77,10 @@ const blocks = {
76
77
  blockMITLicense,
77
78
  blockNcc,
78
79
  blockNvmrc,
80
+ blockOctoGuide,
81
+ blockOctoGuideStrict,
79
82
  blockPackageJson,
80
83
  blockPnpmDedupe,
81
- blockPRCompliance,
82
84
  blockPrettier,
83
85
  blockPrettierPluginCurly,
84
86
  blockPrettierPluginPackageJson,
@@ -125,9 +127,10 @@ import { blockMarkdownlint as blockMarkdownlint2 } from "./blockMarkdownlint.js"
125
127
  import { blockMITLicense as blockMITLicense2 } from "./blockMITLicense.js";
126
128
  import { blockNcc as blockNcc2 } from "./blockNcc.js";
127
129
  import { blockNvmrc as blockNvmrc2 } from "./blockNvmrc.js";
130
+ import { blockOctoGuide as blockOctoGuide2 } from "./blockOctoGuide.js";
131
+ import { blockOctoGuideStrict as blockOctoGuideStrict2 } from "./blockOctoGuideStrict.js";
128
132
  import { blockPackageJson as blockPackageJson2 } from "./blockPackageJson.js";
129
133
  import { blockPnpmDedupe as blockPnpmDedupe2 } from "./blockPnpmDedupe.js";
130
- import { blockPRCompliance as blockPRCompliance2 } from "./blockPRCompliance.js";
131
134
  import { blockPrettier as blockPrettier2 } from "./blockPrettier.js";
132
135
  import { blockPrettierPluginCurly as blockPrettierPluginCurly2 } from "./blockPrettierPluginCurly.js";
133
136
  import { blockPrettierPluginPackageJson as blockPrettierPluginPackageJson2 } from "./blockPrettierPluginPackageJson.js";
@@ -174,7 +177,8 @@ export {
174
177
  blockMarkdownlint2 as blockMarkdownlint,
175
178
  blockNcc2 as blockNcc,
176
179
  blockNvmrc2 as blockNvmrc,
177
- blockPRCompliance2 as blockPRCompliance,
180
+ blockOctoGuide2 as blockOctoGuide,
181
+ blockOctoGuideStrict2 as blockOctoGuideStrict,
178
182
  blockPackageJson2 as blockPackageJson,
179
183
  blockPnpmDedupe2 as blockPnpmDedupe,
180
184
  blockPrettier2 as blockPrettier,
@@ -1,5 +1,5 @@
1
1
  var name = "create-typescript-app";
2
- var version = "2.41.0";
2
+ var version = "2.41.2";
3
3
  var description = "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 🎁";
4
4
  var repository = {
5
5
  type: "git",
@@ -69,7 +69,7 @@ var dependencies = {
69
69
  "zod-tsconfig": "^0.2.0"
70
70
  };
71
71
  var devDependencies = {
72
- "@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
72
+ "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
73
73
  "@eslint/js": "9.22.0",
74
74
  "@prettier/sync": "0.5.3",
75
75
  "@release-it/conventional-changelog": "10.0.0",
package/lib/index.d.ts CHANGED
@@ -37,9 +37,10 @@ export { blockMarkdownlint } from './blocks/blockMarkdownlint.js';
37
37
  export { blockMITLicense } from './blocks/blockMITLicense.js';
38
38
  export { blockNcc } from './blocks/blockNcc.js';
39
39
  export { blockNvmrc } from './blocks/blockNvmrc.js';
40
+ export { blockOctoGuide } from './blocks/blockOctoGuide.js';
41
+ export { blockOctoGuideStrict } from './blocks/blockOctoGuideStrict.js';
40
42
  export { blockPackageJson } from './blocks/blockPackageJson.js';
41
43
  export { blockPnpmDedupe } from './blocks/blockPnpmDedupe.js';
42
- export { blockPRCompliance } from './blocks/blockPRCompliance.js';
43
44
  export { blockPrettier } from './blocks/blockPrettier.js';
44
45
  export { blockPrettierPluginCurly } from './blocks/blockPrettierPluginCurly.js';
45
46
  export { blockPrettierPluginPackageJson } from './blocks/blockPrettierPluginPackageJson.js';
@@ -2,6 +2,7 @@ import { base } from "../base.js";
2
2
  import { blockAllContributors } from "../blocks/blockAllContributors.js";
3
3
  import { blockCodecov } from "../blocks/blockCodecov.js";
4
4
  import { blockFunding } from "../blocks/blockFunding.js";
5
+ import { blockOctoGuide } from "../blocks/blockOctoGuide.js";
5
6
  import { blockReleaseIt } from "../blocks/blockReleaseIt.js";
6
7
  import { blockVitest } from "../blocks/blockVitest.js";
7
8
  import { presetMinimal } from "./minimal.js";
@@ -15,6 +16,7 @@ const presetCommon = base.createPreset({
15
16
  blockAllContributors,
16
17
  blockCodecov,
17
18
  blockFunding,
19
+ blockOctoGuide,
18
20
  blockReleaseIt,
19
21
  blockVitest
20
22
  ]
@@ -13,8 +13,8 @@ import { blockESLintYML } from "../blocks/blockESLintYML.js";
13
13
  import { blockKnip } from "../blocks/blockKnip.js";
14
14
  import { blockMarkdownlint } from "../blocks/blockMarkdownlint.js";
15
15
  import { blockNvmrc } from "../blocks/blockNvmrc.js";
16
+ import { blockOctoGuideStrict } from "../blocks/blockOctoGuideStrict.js";
16
17
  import { blockPnpmDedupe } from "../blocks/blockPnpmDedupe.js";
17
- import { blockPRCompliance } from "../blocks/blockPRCompliance.js";
18
18
  import { blockPrettierPluginCurly } from "../blocks/blockPrettierPluginCurly.js";
19
19
  import { blockPrettierPluginPackageJson } from "../blocks/blockPrettierPluginPackageJson.js";
20
20
  import { blockPrettierPluginSh } from "../blocks/blockPrettierPluginSh.js";
@@ -43,7 +43,7 @@ const presetEverything = base.createPreset({
43
43
  blockMarkdownlint,
44
44
  blockNvmrc,
45
45
  blockPnpmDedupe,
46
- blockPRCompliance,
46
+ blockOctoGuideStrict,
47
47
  blockPrettierPluginCurly,
48
48
  blockPrettierPluginPackageJson,
49
49
  blockPrettierPluginSh,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-typescript-app",
3
- "version": "2.41.1",
3
+ "version": "2.42.0",
4
4
  "description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 🎁",
5
5
  "repository": {
6
6
  "type": "git",
@@ -73,7 +73,7 @@
73
73
  "zod-tsconfig": "^0.2.0"
74
74
  },
75
75
  "devDependencies": {
76
- "@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
76
+ "@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
77
77
  "@eslint/js": "9.22.0",
78
78
  "@prettier/sync": "0.5.3",
79
79
  "@release-it/conventional-changelog": "10.0.0",
@@ -1,52 +0,0 @@
1
- import { base } from "../base.js";
2
- import { resolveUses } from "./actions/resolveUses.js";
3
- import { createSoloWorkflowFile } from "./files/createSoloWorkflowFile.js";
4
- const blockPRCompliance = base.createBlock({
5
- about: {
6
- name: "PR Compliance"
7
- },
8
- produce({ options }) {
9
- return {
10
- files: {
11
- ".github": {
12
- workflows: {
13
- "compliance.yml": createSoloWorkflowFile({
14
- name: "Compliance",
15
- on: {
16
- pull_request: {
17
- branches: ["main"],
18
- types: ["edited", "opened", "reopened", "synchronize"]
19
- }
20
- },
21
- permissions: {
22
- "pull-requests": "write"
23
- },
24
- steps: [
25
- {
26
- uses: resolveUses(
27
- "mtfoley/pr-compliance-action",
28
- "main",
29
- options.workflowsVersions
30
- ),
31
- with: {
32
- "body-auto-close": false,
33
- "ignore-authors": [
34
- "allcontributors",
35
- "allcontributors[bot]",
36
- "renovate",
37
- "renovate[bot]"
38
- ].join("\n"),
39
- "ignore-team-members": false
40
- }
41
- }
42
- ]
43
- })
44
- }
45
- }
46
- }
47
- };
48
- }
49
- });
50
- export {
51
- blockPRCompliance
52
- };