create-typescript-app 2.5.0 → 2.6.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 (70) hide show
  1. package/README.md +1 -1
  2. package/lib/base.d.ts +1 -0
  3. package/lib/base.js +8 -3
  4. package/lib/blocks/blockAllContributors.d.ts +1 -0
  5. package/lib/blocks/blockAreTheTypesWrong.d.ts +1 -0
  6. package/lib/blocks/blockCSpell.d.ts +1 -0
  7. package/lib/blocks/blockCodecov.d.ts +1 -0
  8. package/lib/blocks/blockContributingDocs.d.ts +1 -0
  9. package/lib/blocks/blockContributingDocs.js +2 -2
  10. package/lib/blocks/blockContributorCovenant.d.ts +1 -0
  11. package/lib/blocks/blockDevelopmentDocs.d.ts +1 -0
  12. package/lib/blocks/blockESLint.d.ts +1 -0
  13. package/lib/blocks/blockESLintComments.d.ts +1 -0
  14. package/lib/blocks/blockESLintJSDoc.d.ts +1 -0
  15. package/lib/blocks/blockESLintJSONC.d.ts +1 -0
  16. package/lib/blocks/blockESLintMarkdown.d.ts +1 -0
  17. package/lib/blocks/blockESLintMoreStyling.d.ts +1 -0
  18. package/lib/blocks/blockESLintNode.d.ts +1 -0
  19. package/lib/blocks/blockESLintPackageJson.d.ts +1 -0
  20. package/lib/blocks/blockESLintPerfectionist.d.ts +1 -0
  21. package/lib/blocks/blockESLintRegexp.d.ts +1 -0
  22. package/lib/blocks/blockESLintYML.d.ts +1 -0
  23. package/lib/blocks/blockExampleFiles.d.ts +1 -0
  24. package/lib/blocks/blockFunding.d.ts +1 -0
  25. package/lib/blocks/blockGitHubActionsCI.d.ts +1 -0
  26. package/lib/blocks/blockGitHubApps.d.ts +1 -0
  27. package/lib/blocks/blockGitHubIssueTemplates.d.ts +1 -0
  28. package/lib/blocks/blockGitHubPRTemplate.d.ts +1 -0
  29. package/lib/blocks/blockGitHubPRTemplate.js +1 -1
  30. package/lib/blocks/blockGitignore.d.ts +1 -0
  31. package/lib/blocks/blockKnip.d.ts +1 -0
  32. package/lib/blocks/blockMITLicense.d.ts +1 -0
  33. package/lib/blocks/blockMarkdownlint.d.ts +1 -0
  34. package/lib/blocks/blockNvmrc.d.ts +1 -0
  35. package/lib/blocks/blockPRCompliance.d.ts +1 -0
  36. package/lib/blocks/blockPackageJson.d.ts +1 -0
  37. package/lib/blocks/blockPnpmDedupe.d.ts +1 -0
  38. package/lib/blocks/blockPrettier.d.ts +1 -0
  39. package/lib/blocks/blockPrettierPluginCurly.d.ts +1 -0
  40. package/lib/blocks/blockPrettierPluginPackageJson.d.ts +1 -0
  41. package/lib/blocks/blockPrettierPluginSh.d.ts +1 -0
  42. package/lib/blocks/blockREADME.d.ts +1 -0
  43. package/lib/blocks/blockREADME.js +1 -1
  44. package/lib/blocks/blockReleaseIt.d.ts +1 -0
  45. package/lib/blocks/blockRenovate.d.ts +1 -0
  46. package/lib/blocks/blockRepositoryBranchRuleset.d.ts +1 -0
  47. package/lib/blocks/blockRepositoryLabels.d.ts +1 -0
  48. package/lib/blocks/blockRepositorySecrets.d.ts +1 -0
  49. package/lib/blocks/blockRepositorySettings.d.ts +1 -0
  50. package/lib/blocks/blockSecurityDocs.d.ts +1 -0
  51. package/lib/blocks/blockTSup.d.ts +1 -0
  52. package/lib/blocks/blockTemplatedWith.d.ts +1 -0
  53. package/lib/blocks/blockTypeScript.d.ts +1 -0
  54. package/lib/blocks/blockVSCode.d.ts +1 -0
  55. package/lib/blocks/blockVitest.d.ts +1 -0
  56. package/lib/blocks/index.d.ts +43 -0
  57. package/lib/blocks/options.fakes.d.ts +1 -0
  58. package/lib/blocks/options.fakes.js +1 -0
  59. package/lib/data/packageData.d.ts +3 -3
  60. package/lib/index.d.ts +2 -0
  61. package/lib/options/parseEmojiFromDescription.d.ts +3 -0
  62. package/lib/options/parseEmojiFromDescription.js +6 -0
  63. package/lib/options/readDefaultsFromReadme.d.ts +1 -1
  64. package/lib/options/readDefaultsFromReadme.js +2 -2
  65. package/lib/presets/common.d.ts +1 -0
  66. package/lib/presets/everything.d.ts +1 -0
  67. package/lib/presets/index.d.ts +3 -0
  68. package/lib/presets/minimal.d.ts +1 -0
  69. package/lib/template.d.ts +1 -0
  70. package/package.json +3 -3
package/README.md CHANGED
@@ -59,7 +59,7 @@ You can read more about `create-typescript-app` and the tooling it supports:
59
59
  ## Development
60
60
 
61
61
  See [`.github/CONTRIBUTING.md`](./.github/CONTRIBUTING.md), then [`.github/DEVELOPMENT.md`](./.github/DEVELOPMENT.md).
62
- Thanks! 💖
62
+ Thanks! 🎁
63
63
 
64
64
  ## Contributors
65
65
 
package/lib/base.d.ts CHANGED
@@ -64,6 +64,7 @@ declare const base: bingo_stratum.Base<{
64
64
  github: string;
65
65
  npm: string;
66
66
  }>;
67
+ emoji: z.ZodOptional<z.ZodString>;
67
68
  existingLabels: z.ZodOptional<z.ZodArray<z.ZodObject<{
68
69
  color: z.ZodString;
69
70
  description: z.ZodString;
package/lib/base.js CHANGED
@@ -9,6 +9,7 @@ import npmUser from "npm-user";
9
9
  import { z } from "zod";
10
10
  import { inputFromOctokit } from "./inputs/inputFromOctokit.js";
11
11
  import { getExistingLabels } from "./options/getExistingLabels.js";
12
+ import { parseEmojiFromDescription } from "./options/parseEmojiFromDescription.js";
12
13
  import { parsePackageAuthor } from "./options/parsePackageAuthor.js";
13
14
  import { readAllContributors } from "./options/readAllContributors.js";
14
15
  import { readDefaultsFromReadme } from "./options/readDefaultsFromReadme.js";
@@ -35,7 +36,7 @@ const base = createBase({
35
36
  author: z.string().optional().describe("username on npm to publish packages under"),
36
37
  bin: z.string().optional().describe('value to set in `package.json`\'s `"bin"` property'),
37
38
  contributors: z.array(zContributor).optional().describe("AllContributors contributors to store in .all-contributorsrc"),
38
- description: z.string().default("A very lovely package. Hooray! \u{1F496}").describe("'Sentence case.' description of the repository"),
39
+ description: z.string().default("A very lovely package. Hooray!").describe("'Sentence case.' description of the repository"),
39
40
  directory: z.string().describe("Directory to create the repository in"),
40
41
  documentation: z.string().optional().describe("any additional docs to add to .github/DEVELOPMENT.md"),
41
42
  email: z.union([
@@ -49,6 +50,7 @@ const base = createBase({
49
50
  ).describe(
50
51
  "email address to be listed as the point of contact in docs and packages"
51
52
  ),
53
+ emoji: z.string().optional().describe("decorative emoji to use in descriptions and docs"),
52
54
  existingLabels: z.array(
53
55
  z.object({
54
56
  color: z.string(),
@@ -121,6 +123,8 @@ const base = createBase({
121
123
  (ruleset) => ruleset.name === "Branch protection for main"
122
124
  )?.id;
123
125
  });
126
+ const emoji = async () => parseEmojiFromDescription(description);
127
+ const description = async () => await readDescription(packageData, readme);
124
128
  const gitDefaults = tryCatchLazyValueAsync(
125
129
  async () => gitUrlParse(await gitRemoteOriginUrl())
126
130
  );
@@ -156,9 +160,10 @@ const base = createBase({
156
160
  author,
157
161
  bin: async () => (await packageData()).bin,
158
162
  contributors: allContributors,
159
- description: async () => await readDescription(packageData, readme),
163
+ description,
160
164
  documentation,
161
165
  email,
166
+ emoji,
162
167
  existingLabels,
163
168
  funding: readFunding,
164
169
  guide: readGuide,
@@ -176,7 +181,7 @@ const base = createBase({
176
181
  pnpm,
177
182
  repository,
178
183
  rulesetId,
179
- ...readDefaultsFromReadme(readme, repository),
184
+ ...readDefaultsFromReadme(emoji, readme, repository),
180
185
  version
181
186
  };
182
187
  }
@@ -21,6 +21,7 @@ declare const blockAllContributors: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockAreTheTypesWrong: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -24,6 +24,7 @@ declare const blockCSpell: bingo_stratum.BlockWithAddons<{
24
24
  profile: string;
25
25
  }[] | undefined;
26
26
  documentation?: string | undefined;
27
+ emoji?: string | undefined;
27
28
  existingLabels?: {
28
29
  name: string;
29
30
  description: string;
@@ -23,6 +23,7 @@ declare const blockCodecov: bingo_stratum.BlockWithAddons<{
23
23
  profile: string;
24
24
  }[] | undefined;
25
25
  documentation?: string | undefined;
26
+ emoji?: string | undefined;
26
27
  existingLabels?: {
27
28
  name: string;
28
29
  description: string;
@@ -21,6 +21,7 @@ declare const blockContributingDocs: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -10,7 +10,7 @@ const blockContributingDocs = base.createBlock({
10
10
  ".github": {
11
11
  "CONTRIBUTING.md": `# Contributing
12
12
 
13
- Thanks for your interest in contributing to \`${options.repository}\`! \u{1F496}
13
+ Thanks for your interest in contributing to \`${options.repository}\`! ${options.emoji}
14
14
 
15
15
  > After this page, see [DEVELOPMENT.md](./DEVELOPMENT.md) for local development instructions.
16
16
 
@@ -104,7 +104,7 @@ Please do ping the maintainer who merged your PR if that doesn't happen within 2
104
104
 
105
105
  If you made it all the way to the end, bravo dear user, we love you.
106
106
  Please include your favorite emoji in the bottom of your issues and PRs to signal to us that you did in fact read this file and are trying to conform to it as best as possible.
107
- \u{1F496} is a good starter if you're not sure which to use.
107
+ ${options.emoji} is a good starter if you're not sure which to use.
108
108
  `
109
109
  }
110
110
  }
@@ -21,6 +21,7 @@ declare const blockContributorCovenant: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -35,6 +35,7 @@ declare const blockDevelopmentDocs: bingo_stratum.BlockWithAddons<{
35
35
  profile: string;
36
36
  }[] | undefined;
37
37
  documentation?: string | undefined;
38
+ emoji?: string | undefined;
38
39
  existingLabels?: {
39
40
  name: string;
40
41
  description: string;
@@ -47,6 +47,7 @@ declare const blockESLint: bingo_stratum.BlockWithAddons<{
47
47
  profile: string;
48
48
  }[] | undefined;
49
49
  documentation?: string | undefined;
50
+ emoji?: string | undefined;
50
51
  existingLabels?: {
51
52
  name: string;
52
53
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintComments: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintJSDoc: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintJSONC: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintMarkdown: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintMoreStyling: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintNode: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintPackageJson: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintPerfectionist: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintRegexp: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockESLintYML: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -23,6 +23,7 @@ declare const blockExampleFiles: bingo_stratum.BlockWithAddons<{
23
23
  profile: string;
24
24
  }[] | undefined;
25
25
  documentation?: string | undefined;
26
+ emoji?: string | undefined;
26
27
  existingLabels?: {
27
28
  name: string;
28
29
  description: string;
@@ -21,6 +21,7 @@ declare const blockFunding: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -60,6 +60,7 @@ declare const blockGitHubActionsCI: bingo_stratum.BlockWithAddons<{
60
60
  profile: string;
61
61
  }[] | undefined;
62
62
  documentation?: string | undefined;
63
+ emoji?: string | undefined;
63
64
  existingLabels?: {
64
65
  name: string;
65
66
  description: string;
@@ -26,6 +26,7 @@ declare const blockGitHubApps: bingo_stratum.BlockWithAddons<{
26
26
  profile: string;
27
27
  }[] | undefined;
28
28
  documentation?: string | undefined;
29
+ emoji?: string | undefined;
29
30
  existingLabels?: {
30
31
  name: string;
31
32
  description: string;
@@ -21,6 +21,7 @@ declare const blockGitHubIssueTemplates: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockGitHubPRTemplate: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -7,7 +7,7 @@ const blockGitHubPRTemplate = base.createBlock({
7
7
  return {
8
8
  files: {
9
9
  ".github": {
10
- "PULL_REQUEST_TEMPLATE.md": `<!-- \u{1F44B} Hi, thanks for sending a PR to ${options.repository}! \u{1F496}.
10
+ "PULL_REQUEST_TEMPLATE.md": `<!-- \u{1F44B} Hi, thanks for sending a PR to ${options.repository}! ${options.emoji}.
11
11
  Please fill out all fields below and make sure each item is true and [x] checked.
12
12
  Otherwise we may not be able to review your PR. -->
13
13
 
@@ -23,6 +23,7 @@ declare const blockGitignore: bingo_stratum.BlockWithAddons<{
23
23
  profile: string;
24
24
  }[] | undefined;
25
25
  documentation?: string | undefined;
26
+ emoji?: string | undefined;
26
27
  existingLabels?: {
27
28
  name: string;
28
29
  description: string;
@@ -23,6 +23,7 @@ declare const blockKnip: bingo_stratum.BlockWithAddons<{
23
23
  profile: string;
24
24
  }[] | undefined;
25
25
  documentation?: string | undefined;
26
+ emoji?: string | undefined;
26
27
  existingLabels?: {
27
28
  name: string;
28
29
  description: string;
@@ -21,6 +21,7 @@ declare const blockMITLicense: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -23,6 +23,7 @@ declare const blockMarkdownlint: bingo_stratum.BlockWithAddons<{
23
23
  profile: string;
24
24
  }[] | undefined;
25
25
  documentation?: string | undefined;
26
+ emoji?: string | undefined;
26
27
  existingLabels?: {
27
28
  name: string;
28
29
  description: string;
@@ -21,6 +21,7 @@ declare const blockNvmrc: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockPRCompliance: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -30,6 +30,7 @@ declare const blockPackageJson: bingo_stratum.BlockWithAddons<{
30
30
  profile: string;
31
31
  }[] | undefined;
32
32
  documentation?: string | undefined;
33
+ emoji?: string | undefined;
33
34
  existingLabels?: {
34
35
  name: string;
35
36
  description: string;
@@ -21,6 +21,7 @@ declare const blockPnpmDedupe: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -30,6 +30,7 @@ declare const blockPrettier: bingo_stratum.BlockWithAddons<{
30
30
  profile: string;
31
31
  }[] | undefined;
32
32
  documentation?: string | undefined;
33
+ emoji?: string | undefined;
33
34
  existingLabels?: {
34
35
  name: string;
35
36
  description: string;
@@ -21,6 +21,7 @@ declare const blockPrettierPluginCurly: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockPrettierPluginPackageJson: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockPrettierPluginSh: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -25,6 +25,7 @@ declare const blockREADME: bingo_stratum.BlockWithAddons<{
25
25
  profile: string;
26
26
  }[] | undefined;
27
27
  documentation?: string | undefined;
28
+ emoji?: string | undefined;
28
29
  existingLabels?: {
29
30
  name: string;
30
31
  description: string;
@@ -42,7 +42,7 @@ ${options.usage}
42
42
  ## Development
43
43
 
44
44
  See [\`.github/CONTRIBUTING.md\`](./.github/CONTRIBUTING.md), then [\`.github/DEVELOPMENT.md\`](./.github/DEVELOPMENT.md).
45
- Thanks! \u{1F496}
45
+ Thanks! ${options.emoji}
46
46
  ${sections.map((section) => `
47
47
  ${section}`).join("")}
48
48
  ${notices.length ? `
@@ -21,6 +21,7 @@ declare const blockReleaseIt: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockRenovate: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -23,6 +23,7 @@ declare const blockRepositoryBranchRuleset: bingo_stratum.BlockWithAddons<{
23
23
  profile: string;
24
24
  }[] | undefined;
25
25
  documentation?: string | undefined;
26
+ emoji?: string | undefined;
26
27
  existingLabels?: {
27
28
  name: string;
28
29
  description: string;
@@ -21,6 +21,7 @@ declare const blockRepositoryLabels: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -26,6 +26,7 @@ declare const blockRepositorySecrets: bingo_stratum.BlockWithAddons<{
26
26
  profile: string;
27
27
  }[] | undefined;
28
28
  documentation?: string | undefined;
29
+ emoji?: string | undefined;
29
30
  existingLabels?: {
30
31
  name: string;
31
32
  description: string;
@@ -21,6 +21,7 @@ declare const blockRepositorySettings: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockSecurityDocs: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -24,6 +24,7 @@ declare const blockTSup: bingo_stratum.BlockWithAddons<{
24
24
  profile: string;
25
25
  }[] | undefined;
26
26
  documentation?: string | undefined;
27
+ emoji?: string | undefined;
27
28
  existingLabels?: {
28
29
  name: string;
29
30
  description: string;
@@ -21,6 +21,7 @@ declare const blockTemplatedWith: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -21,6 +21,7 @@ declare const blockTypeScript: bingo_stratum.BlockWithoutAddons<{
21
21
  profile: string;
22
22
  }[] | undefined;
23
23
  documentation?: string | undefined;
24
+ emoji?: string | undefined;
24
25
  existingLabels?: {
25
26
  name: string;
26
27
  description: string;
@@ -30,6 +30,7 @@ declare const blockVSCode: bingo_stratum.BlockWithAddons<{
30
30
  profile: string;
31
31
  }[] | undefined;
32
32
  documentation?: string | undefined;
33
+ emoji?: string | undefined;
33
34
  existingLabels?: {
34
35
  name: string;
35
36
  description: string;
@@ -36,6 +36,7 @@ declare const blockVitest: bingo_stratum.BlockWithAddons<{
36
36
  profile: string;
37
37
  }[] | undefined;
38
38
  documentation?: string | undefined;
39
+ emoji?: string | undefined;
39
40
  existingLabels?: {
40
41
  name: string;
41
42
  description: string;
@@ -66,6 +66,7 @@ declare const blocks: {
66
66
  profile: string;
67
67
  }[] | undefined;
68
68
  documentation?: string | undefined;
69
+ emoji?: string | undefined;
69
70
  existingLabels?: {
70
71
  name: string;
71
72
  description: string;
@@ -119,6 +120,7 @@ declare const blocks: {
119
120
  profile: string;
120
121
  }[] | undefined;
121
122
  documentation?: string | undefined;
123
+ emoji?: string | undefined;
122
124
  existingLabels?: {
123
125
  name: string;
124
126
  description: string;
@@ -174,6 +176,7 @@ declare const blocks: {
174
176
  profile: string;
175
177
  }[] | undefined;
176
178
  documentation?: string | undefined;
179
+ emoji?: string | undefined;
177
180
  existingLabels?: {
178
181
  name: string;
179
182
  description: string;
@@ -227,6 +230,7 @@ declare const blocks: {
227
230
  profile: string;
228
231
  }[] | undefined;
229
232
  documentation?: string | undefined;
233
+ emoji?: string | undefined;
230
234
  existingLabels?: {
231
235
  name: string;
232
236
  description: string;
@@ -280,6 +284,7 @@ declare const blocks: {
280
284
  profile: string;
281
285
  }[] | undefined;
282
286
  documentation?: string | undefined;
287
+ emoji?: string | undefined;
283
288
  existingLabels?: {
284
289
  name: string;
285
290
  description: string;
@@ -336,6 +341,7 @@ declare const blocks: {
336
341
  profile: string;
337
342
  }[] | undefined;
338
343
  documentation?: string | undefined;
344
+ emoji?: string | undefined;
339
345
  existingLabels?: {
340
346
  name: string;
341
347
  description: string;
@@ -403,6 +409,7 @@ declare const blocks: {
403
409
  profile: string;
404
410
  }[] | undefined;
405
411
  documentation?: string | undefined;
412
+ emoji?: string | undefined;
406
413
  existingLabels?: {
407
414
  name: string;
408
415
  description: string;
@@ -482,6 +489,7 @@ declare const blocks: {
482
489
  profile: string;
483
490
  }[] | undefined;
484
491
  documentation?: string | undefined;
492
+ emoji?: string | undefined;
485
493
  existingLabels?: {
486
494
  name: string;
487
495
  description: string;
@@ -535,6 +543,7 @@ declare const blocks: {
535
543
  profile: string;
536
544
  }[] | undefined;
537
545
  documentation?: string | undefined;
546
+ emoji?: string | undefined;
538
547
  existingLabels?: {
539
548
  name: string;
540
549
  description: string;
@@ -588,6 +597,7 @@ declare const blocks: {
588
597
  profile: string;
589
598
  }[] | undefined;
590
599
  documentation?: string | undefined;
600
+ emoji?: string | undefined;
591
601
  existingLabels?: {
592
602
  name: string;
593
603
  description: string;
@@ -641,6 +651,7 @@ declare const blocks: {
641
651
  profile: string;
642
652
  }[] | undefined;
643
653
  documentation?: string | undefined;
654
+ emoji?: string | undefined;
644
655
  existingLabels?: {
645
656
  name: string;
646
657
  description: string;
@@ -694,6 +705,7 @@ declare const blocks: {
694
705
  profile: string;
695
706
  }[] | undefined;
696
707
  documentation?: string | undefined;
708
+ emoji?: string | undefined;
697
709
  existingLabels?: {
698
710
  name: string;
699
711
  description: string;
@@ -747,6 +759,7 @@ declare const blocks: {
747
759
  profile: string;
748
760
  }[] | undefined;
749
761
  documentation?: string | undefined;
762
+ emoji?: string | undefined;
750
763
  existingLabels?: {
751
764
  name: string;
752
765
  description: string;
@@ -800,6 +813,7 @@ declare const blocks: {
800
813
  profile: string;
801
814
  }[] | undefined;
802
815
  documentation?: string | undefined;
816
+ emoji?: string | undefined;
803
817
  existingLabels?: {
804
818
  name: string;
805
819
  description: string;
@@ -853,6 +867,7 @@ declare const blocks: {
853
867
  profile: string;
854
868
  }[] | undefined;
855
869
  documentation?: string | undefined;
870
+ emoji?: string | undefined;
856
871
  existingLabels?: {
857
872
  name: string;
858
873
  description: string;
@@ -906,6 +921,7 @@ declare const blocks: {
906
921
  profile: string;
907
922
  }[] | undefined;
908
923
  documentation?: string | undefined;
924
+ emoji?: string | undefined;
909
925
  existingLabels?: {
910
926
  name: string;
911
927
  description: string;
@@ -959,6 +975,7 @@ declare const blocks: {
959
975
  profile: string;
960
976
  }[] | undefined;
961
977
  documentation?: string | undefined;
978
+ emoji?: string | undefined;
962
979
  existingLabels?: {
963
980
  name: string;
964
981
  description: string;
@@ -1012,6 +1029,7 @@ declare const blocks: {
1012
1029
  profile: string;
1013
1030
  }[] | undefined;
1014
1031
  documentation?: string | undefined;
1032
+ emoji?: string | undefined;
1015
1033
  existingLabels?: {
1016
1034
  name: string;
1017
1035
  description: string;
@@ -1065,6 +1083,7 @@ declare const blocks: {
1065
1083
  profile: string;
1066
1084
  }[] | undefined;
1067
1085
  documentation?: string | undefined;
1086
+ emoji?: string | undefined;
1068
1087
  existingLabels?: {
1069
1088
  name: string;
1070
1089
  description: string;
@@ -1131,6 +1150,7 @@ declare const blocks: {
1131
1150
  profile: string;
1132
1151
  }[] | undefined;
1133
1152
  documentation?: string | undefined;
1153
+ emoji?: string | undefined;
1134
1154
  existingLabels?: {
1135
1155
  name: string;
1136
1156
  description: string;
@@ -1184,6 +1204,7 @@ declare const blocks: {
1184
1204
  profile: string;
1185
1205
  }[] | undefined;
1186
1206
  documentation?: string | undefined;
1207
+ emoji?: string | undefined;
1187
1208
  existingLabels?: {
1188
1209
  name: string;
1189
1210
  description: string;
@@ -1237,6 +1258,7 @@ declare const blocks: {
1237
1258
  profile: string;
1238
1259
  }[] | undefined;
1239
1260
  documentation?: string | undefined;
1261
+ emoji?: string | undefined;
1240
1262
  existingLabels?: {
1241
1263
  name: string;
1242
1264
  description: string;
@@ -1292,6 +1314,7 @@ declare const blocks: {
1292
1314
  profile: string;
1293
1315
  }[] | undefined;
1294
1316
  documentation?: string | undefined;
1317
+ emoji?: string | undefined;
1295
1318
  existingLabels?: {
1296
1319
  name: string;
1297
1320
  description: string;
@@ -1347,6 +1370,7 @@ declare const blocks: {
1347
1370
  profile: string;
1348
1371
  }[] | undefined;
1349
1372
  documentation?: string | undefined;
1373
+ emoji?: string | undefined;
1350
1374
  existingLabels?: {
1351
1375
  name: string;
1352
1376
  description: string;
@@ -1402,6 +1426,7 @@ declare const blocks: {
1402
1426
  profile: string;
1403
1427
  }[] | undefined;
1404
1428
  documentation?: string | undefined;
1429
+ emoji?: string | undefined;
1405
1430
  existingLabels?: {
1406
1431
  name: string;
1407
1432
  description: string;
@@ -1455,6 +1480,7 @@ declare const blocks: {
1455
1480
  profile: string;
1456
1481
  }[] | undefined;
1457
1482
  documentation?: string | undefined;
1483
+ emoji?: string | undefined;
1458
1484
  existingLabels?: {
1459
1485
  name: string;
1460
1486
  description: string;
@@ -1508,6 +1534,7 @@ declare const blocks: {
1508
1534
  profile: string;
1509
1535
  }[] | undefined;
1510
1536
  documentation?: string | undefined;
1537
+ emoji?: string | undefined;
1511
1538
  existingLabels?: {
1512
1539
  name: string;
1513
1540
  description: string;
@@ -1570,6 +1597,7 @@ declare const blocks: {
1570
1597
  profile: string;
1571
1598
  }[] | undefined;
1572
1599
  documentation?: string | undefined;
1600
+ emoji?: string | undefined;
1573
1601
  existingLabels?: {
1574
1602
  name: string;
1575
1603
  description: string;
@@ -1623,6 +1651,7 @@ declare const blocks: {
1623
1651
  profile: string;
1624
1652
  }[] | undefined;
1625
1653
  documentation?: string | undefined;
1654
+ emoji?: string | undefined;
1626
1655
  existingLabels?: {
1627
1656
  name: string;
1628
1657
  description: string;
@@ -1676,6 +1705,7 @@ declare const blocks: {
1676
1705
  profile: string;
1677
1706
  }[] | undefined;
1678
1707
  documentation?: string | undefined;
1708
+ emoji?: string | undefined;
1679
1709
  existingLabels?: {
1680
1710
  name: string;
1681
1711
  description: string;
@@ -1738,6 +1768,7 @@ declare const blocks: {
1738
1768
  profile: string;
1739
1769
  }[] | undefined;
1740
1770
  documentation?: string | undefined;
1771
+ emoji?: string | undefined;
1741
1772
  existingLabels?: {
1742
1773
  name: string;
1743
1774
  description: string;
@@ -1791,6 +1822,7 @@ declare const blocks: {
1791
1822
  profile: string;
1792
1823
  }[] | undefined;
1793
1824
  documentation?: string | undefined;
1825
+ emoji?: string | undefined;
1794
1826
  existingLabels?: {
1795
1827
  name: string;
1796
1828
  description: string;
@@ -1844,6 +1876,7 @@ declare const blocks: {
1844
1876
  profile: string;
1845
1877
  }[] | undefined;
1846
1878
  documentation?: string | undefined;
1879
+ emoji?: string | undefined;
1847
1880
  existingLabels?: {
1848
1881
  name: string;
1849
1882
  description: string;
@@ -1897,6 +1930,7 @@ declare const blocks: {
1897
1930
  profile: string;
1898
1931
  }[] | undefined;
1899
1932
  documentation?: string | undefined;
1933
+ emoji?: string | undefined;
1900
1934
  existingLabels?: {
1901
1935
  name: string;
1902
1936
  description: string;
@@ -1954,6 +1988,7 @@ declare const blocks: {
1954
1988
  profile: string;
1955
1989
  }[] | undefined;
1956
1990
  documentation?: string | undefined;
1991
+ emoji?: string | undefined;
1957
1992
  existingLabels?: {
1958
1993
  name: string;
1959
1994
  description: string;
@@ -2007,6 +2042,7 @@ declare const blocks: {
2007
2042
  profile: string;
2008
2043
  }[] | undefined;
2009
2044
  documentation?: string | undefined;
2045
+ emoji?: string | undefined;
2010
2046
  existingLabels?: {
2011
2047
  name: string;
2012
2048
  description: string;
@@ -2060,6 +2096,7 @@ declare const blocks: {
2060
2096
  profile: string;
2061
2097
  }[] | undefined;
2062
2098
  documentation?: string | undefined;
2099
+ emoji?: string | undefined;
2063
2100
  existingLabels?: {
2064
2101
  name: string;
2065
2102
  description: string;
@@ -2113,6 +2150,7 @@ declare const blocks: {
2113
2150
  profile: string;
2114
2151
  }[] | undefined;
2115
2152
  documentation?: string | undefined;
2153
+ emoji?: string | undefined;
2116
2154
  existingLabels?: {
2117
2155
  name: string;
2118
2156
  description: string;
@@ -2166,6 +2204,7 @@ declare const blocks: {
2166
2204
  profile: string;
2167
2205
  }[] | undefined;
2168
2206
  documentation?: string | undefined;
2207
+ emoji?: string | undefined;
2169
2208
  existingLabels?: {
2170
2209
  name: string;
2171
2210
  description: string;
@@ -2222,6 +2261,7 @@ declare const blocks: {
2222
2261
  profile: string;
2223
2262
  }[] | undefined;
2224
2263
  documentation?: string | undefined;
2264
+ emoji?: string | undefined;
2225
2265
  existingLabels?: {
2226
2266
  name: string;
2227
2267
  description: string;
@@ -2275,6 +2315,7 @@ declare const blocks: {
2275
2315
  profile: string;
2276
2316
  }[] | undefined;
2277
2317
  documentation?: string | undefined;
2318
+ emoji?: string | undefined;
2278
2319
  existingLabels?: {
2279
2320
  name: string;
2280
2321
  description: string;
@@ -2343,6 +2384,7 @@ declare const blocks: {
2343
2384
  profile: string;
2344
2385
  }[] | undefined;
2345
2386
  documentation?: string | undefined;
2387
+ emoji?: string | undefined;
2346
2388
  existingLabels?: {
2347
2389
  name: string;
2348
2390
  description: string;
@@ -2405,6 +2447,7 @@ declare const blocks: {
2405
2447
  profile: string;
2406
2448
  }[] | undefined;
2407
2449
  documentation?: string | undefined;
2450
+ emoji?: string | undefined;
2408
2451
  existingLabels?: {
2409
2452
  name: string;
2410
2453
  description: string;
@@ -6,6 +6,7 @@ declare const optionsBase: {
6
6
  github: string;
7
7
  npm: string;
8
8
  };
9
+ emoji: string;
9
10
  owner: string;
10
11
  repository: string;
11
12
  title: string;
@@ -6,6 +6,7 @@ const optionsBase = {
6
6
  github: "github@email.com",
7
7
  npm: "npm@email.com"
8
8
  },
9
+ emoji: "\u{1F496}",
9
10
  owner: "test-owner",
10
11
  repository: "test-repository",
11
12
  title: "Test Title"
@@ -1,5 +1,5 @@
1
1
  var name = "create-typescript-app";
2
- var version = "2.4.6";
2
+ var version = "2.5.0";
3
3
  var description = "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 🎁";
4
4
  var repository = {
5
5
  type: "git",
@@ -86,7 +86,7 @@ var devDependencies = {
86
86
  "eslint-plugin-markdown": "5.1.0",
87
87
  "eslint-plugin-n": "17.16.2",
88
88
  "eslint-plugin-package-json": "0.26.2",
89
- "eslint-plugin-perfectionist": "4.9.0",
89
+ "eslint-plugin-perfectionist": "4.10.0",
90
90
  "eslint-plugin-regexp": "2.7.0",
91
91
  "eslint-plugin-yml": "1.17.0",
92
92
  husky: "9.1.7",
@@ -106,7 +106,7 @@ var devDependencies = {
106
106
  "typescript-eslint": "8.26.0",
107
107
  vitest: "3.0.7"
108
108
  };
109
- var packageManager = "pnpm@10.5.2";
109
+ var packageManager = "pnpm@10.6.0";
110
110
  var engines = {
111
111
  node: ">=18.3.0"
112
112
  };
package/lib/index.d.ts CHANGED
@@ -95,6 +95,7 @@ declare const createConfig: bingo.CreateTemplateConfig<{
95
95
  github: string;
96
96
  npm: string;
97
97
  }>;
98
+ emoji: zod.ZodOptional<zod.ZodString>;
98
99
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
99
100
  color: zod.ZodString;
100
101
  description: zod.ZodString;
@@ -188,6 +189,7 @@ declare const createConfig: bingo.CreateTemplateConfig<{
188
189
  profile: string;
189
190
  }[] | undefined;
190
191
  documentation?: string | undefined;
192
+ emoji?: string | undefined;
191
193
  existingLabels?: {
192
194
  name: string;
193
195
  description: string;
@@ -0,0 +1,3 @@
1
+ declare function parseEmojiFromDescription(getDescription: () => Promise<string | undefined>): Promise<string>;
2
+
3
+ export { parseEmojiFromDescription };
@@ -0,0 +1,6 @@
1
+ async function parseEmojiFromDescription(getDescription) {
2
+ return (await getDescription())?.match(/\p{Extended_Pictographic}/gu)?.at(-1) ?? "\u{1F496}";
3
+ }
4
+ export {
5
+ parseEmojiFromDescription
6
+ };
@@ -1,4 +1,4 @@
1
- declare function readDefaultsFromReadme(readme: () => Promise<string>, repository: () => Promise<string | undefined>): {
1
+ declare function readDefaultsFromReadme(emoji: () => Promise<string>, readme: () => Promise<string>, repository: () => Promise<string | undefined>): {
2
2
  explainer: () => Promise<string[] | undefined>;
3
3
  logo: () => Promise<{
4
4
  height?: number;
@@ -2,7 +2,7 @@ import lazyValue from "lazy-value";
2
2
  import { titleCase } from "title-case";
3
3
  import { getUsageFromReadme } from "./getUsageFromReadme.js";
4
4
  import { readLogoSizing } from "./readLogoSizing.js";
5
- function readDefaultsFromReadme(readme, repository) {
5
+ function readDefaultsFromReadme(emoji, readme, repository) {
6
6
  const imageTag = lazyValue(
7
7
  async () => /\n<img.+src=.+>/.exec(await readme())?.[0]
8
8
  );
@@ -47,7 +47,7 @@ npm i ${await repository()}
47
47
  \`\`\`ts
48
48
  import { greet } from "${await repository()}";
49
49
 
50
- greet("Hello, world! \u{1F496}");
50
+ greet("Hello, world! ${await emoji()}");
51
51
  \`\`\``;
52
52
  }
53
53
  };
@@ -43,6 +43,7 @@ declare const presetCommon: bingo_stratum.Preset<{
43
43
  github: string;
44
44
  npm: string;
45
45
  }>;
46
+ emoji: zod.ZodOptional<zod.ZodString>;
46
47
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
47
48
  color: zod.ZodString;
48
49
  description: zod.ZodString;
@@ -43,6 +43,7 @@ declare const presetEverything: bingo_stratum.Preset<{
43
43
  github: string;
44
44
  npm: string;
45
45
  }>;
46
+ emoji: zod.ZodOptional<zod.ZodString>;
46
47
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
47
48
  color: zod.ZodString;
48
49
  description: zod.ZodString;
@@ -47,6 +47,7 @@ declare const presets: {
47
47
  github: string;
48
48
  npm: string;
49
49
  }>;
50
+ emoji: zod.ZodOptional<zod.ZodString>;
50
51
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
51
52
  color: zod.ZodString;
52
53
  description: zod.ZodString;
@@ -162,6 +163,7 @@ declare const presets: {
162
163
  github: string;
163
164
  npm: string;
164
165
  }>;
166
+ emoji: zod.ZodOptional<zod.ZodString>;
165
167
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
166
168
  color: zod.ZodString;
167
169
  description: zod.ZodString;
@@ -277,6 +279,7 @@ declare const presets: {
277
279
  github: string;
278
280
  npm: string;
279
281
  }>;
282
+ emoji: zod.ZodOptional<zod.ZodString>;
280
283
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
281
284
  color: zod.ZodString;
282
285
  description: zod.ZodString;
@@ -43,6 +43,7 @@ declare const presetMinimal: bingo_stratum.Preset<{
43
43
  github: string;
44
44
  npm: string;
45
45
  }>;
46
+ emoji: zod.ZodOptional<zod.ZodString>;
46
47
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
47
48
  color: zod.ZodString;
48
49
  description: zod.ZodString;
package/lib/template.d.ts CHANGED
@@ -43,6 +43,7 @@ declare const template: bingo_stratum_lib_types_templates_js.StratumTemplate<{
43
43
  github: string;
44
44
  npm: string;
45
45
  }>;
46
+ emoji: zod.ZodOptional<zod.ZodString>;
46
47
  existingLabels: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
47
48
  color: zod.ZodString;
48
49
  description: zod.ZodString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-typescript-app",
3
- "version": "2.5.0",
3
+ "version": "2.6.0",
4
4
  "description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 🎁",
5
5
  "repository": {
6
6
  "type": "git",
@@ -90,7 +90,7 @@
90
90
  "eslint-plugin-markdown": "5.1.0",
91
91
  "eslint-plugin-n": "17.16.2",
92
92
  "eslint-plugin-package-json": "0.26.2",
93
- "eslint-plugin-perfectionist": "4.9.0",
93
+ "eslint-plugin-perfectionist": "4.10.0",
94
94
  "eslint-plugin-regexp": "2.7.0",
95
95
  "eslint-plugin-yml": "1.17.0",
96
96
  "husky": "9.1.7",
@@ -110,7 +110,7 @@
110
110
  "typescript-eslint": "8.26.0",
111
111
  "vitest": "3.0.7"
112
112
  },
113
- "packageManager": "pnpm@10.5.2",
113
+ "packageManager": "pnpm@10.6.0",
114
114
  "engines": {
115
115
  "node": ">=18.3.0"
116
116
  },