create-typescript-app 2.63.0 → 2.63.2

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.
@@ -6,13 +6,13 @@ declare const zActionStep: z.ZodIntersection<z.ZodObject<{
6
6
  if: z.ZodOptional<z.ZodString>;
7
7
  with: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
8
8
  }, "strip", z.ZodTypeAny, {
9
+ with?: Record<string, string> | undefined;
9
10
  env?: Record<string, string> | undefined;
10
11
  if?: string | undefined;
11
- with?: Record<string, string> | undefined;
12
12
  }, {
13
+ with?: Record<string, string> | undefined;
13
14
  env?: Record<string, string> | undefined;
14
15
  if?: string | undefined;
15
- with?: Record<string, string> | undefined;
16
16
  }>, z.ZodUnion<[z.ZodObject<{
17
17
  run: z.ZodString;
18
18
  }, "strip", z.ZodTypeAny, {
@@ -1,26 +1,26 @@
1
1
  //#region src/blocks/blockESLint.d.ts
2
2
  declare const blockESLint: import("bingo-stratum").BlockWithAddons<{
3
- imports: {
4
- source: string | {
5
- version: string;
6
- packageName: string;
7
- };
8
- specifier: string;
9
- types?: boolean | undefined;
10
- }[];
11
3
  ignores: string[];
12
4
  extensions: {
13
5
  files: string[];
6
+ plugins?: Record<string, string> | undefined;
7
+ settings?: Record<string, unknown> | undefined;
14
8
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
15
9
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
16
10
  comment?: string | undefined;
17
11
  }[] | undefined;
18
- plugins?: Record<string, string> | undefined;
19
- settings?: Record<string, unknown> | undefined;
20
12
  extends?: string[] | undefined;
21
13
  languageOptions?: unknown;
22
14
  linterOptions?: unknown;
23
15
  }[];
16
+ imports: {
17
+ source: string | {
18
+ version: string;
19
+ packageName: string;
20
+ };
21
+ specifier: string;
22
+ types?: boolean | undefined;
23
+ }[];
24
24
  explanations: string[];
25
25
  beforeLint?: string | undefined;
26
26
  }, {
@@ -8,11 +8,7 @@ const blockESLintNode = base.createBlock({
8
8
  return { addons: [blockESLint({
9
9
  extensions: [{
10
10
  extends: ["n.configs[\"flat/recommended\"]"],
11
- files: [getScriptFileExtension(options)],
12
- rules: [{
13
- comment: "https://github.com/eslint-community/eslint-plugin-n/issues/472",
14
- entries: { "n/no-unpublished-bin": "off" }
15
- }]
11
+ files: [getScriptFileExtension(options)]
16
12
  }, {
17
13
  extends: ["tseslint.configs.disableTypeChecked"],
18
14
  files: ["**/*.md/*.ts"],
@@ -1 +1 @@
1
- {"version":3,"file":"blockESLintNode.js","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\n\nexport const blockESLintNode = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint Node Plugin\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: ['n.configs[\"flat/recommended\"]'],\n\t\t\t\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\t\t\t\trules: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcomment:\n\t\t\t\t\t\t\t\t\t\t\"https://github.com/eslint-community/eslint-plugin-n/issues/472\",\n\t\t\t\t\t\t\t\t\tentries: {\n\t\t\t\t\t\t\t\t\t\t\"n/no-unpublished-bin\": \"off\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"tseslint.configs.disableTypeChecked\"],\n\t\t\t\t\t\t\tfiles: [\"**/*.md/*.ts\"],\n\t\t\t\t\t\t\trules: { \"n/no-missing-import\": \"off\" },\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\timports: [{ source: \"eslint-plugin-n\", specifier: \"n\" }],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;AAIA,MAAa,kBAAkB,KAAK,YAAY;CAC/C,OAAO,EACN,MAAM,qBACP;CACA,QAAQ,EAAE,WAAW;EACpB,OAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CACX;IACC,SAAS,CAAC,iCAA+B;IACzC,OAAO,CAAC,uBAAuB,OAAO,CAAC;IACvC,OAAO,CACN;KACC,SACC;KACD,SAAS,EACR,wBAAwB,MACzB;IACD,CACD;GACD,GACA;IACC,SAAS,CAAC,qCAAqC;IAC/C,OAAO,CAAC,cAAc;IACtB,OAAO,EAAE,uBAAuB,MAAM;GACvC,CACD;GACA,SAAS,CAAC;IAAE,QAAQ;IAAmB,WAAW;GAAI,CAAC;EACxD,CAAC,CACF,EACD;CACD;AACD,CAAC"}
1
+ {"version":3,"file":"blockESLintNode.js","names":[],"sources":["../../src/blocks/blockESLintNode.ts"],"sourcesContent":["import { base } from \"../base.js\";\nimport { blockESLint } from \"./blockESLint.js\";\nimport { getScriptFileExtension } from \"./eslint/getScriptFileExtension.js\";\n\nexport const blockESLintNode = base.createBlock({\n\tabout: {\n\t\tname: \"ESLint Node Plugin\",\n\t},\n\tproduce({ options }) {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockESLint({\n\t\t\t\t\textensions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: ['n.configs[\"flat/recommended\"]'],\n\t\t\t\t\t\t\tfiles: [getScriptFileExtension(options)],\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\textends: [\"tseslint.configs.disableTypeChecked\"],\n\t\t\t\t\t\t\tfiles: [\"**/*.md/*.ts\"],\n\t\t\t\t\t\t\trules: { \"n/no-missing-import\": \"off\" },\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\timports: [{ source: \"eslint-plugin-n\", specifier: \"n\" }],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;AAIA,MAAa,kBAAkB,KAAK,YAAY;CAC/C,OAAO,EACN,MAAM,qBACP;CACA,QAAQ,EAAE,WAAW;EACpB,OAAO,EACN,QAAQ,CACP,YAAY;GACX,YAAY,CACX;IACC,SAAS,CAAC,iCAA+B;IACzC,OAAO,CAAC,uBAAuB,OAAO,CAAC;GACxC,GACA;IACC,SAAS,CAAC,qCAAqC;IAC/C,OAAO,CAAC,cAAc;IACtB,OAAO,EAAE,uBAAuB,MAAM;GACvC,CACD;GACA,SAAS,CAAC;IAAE,QAAQ;IAAmB,WAAW;GAAI,CAAC;EACxD,CAAC,CACF,EACD;CACD;AACD,CAAC"}
@@ -3,9 +3,9 @@ declare const blockGitHubActionsCI: import("bingo-stratum").BlockWithAddons<{
3
3
  jobs?: {
4
4
  name: string;
5
5
  steps: ({
6
+ with?: Record<string, string> | undefined;
6
7
  env?: Record<string, string> | undefined;
7
8
  if?: string | undefined;
8
- with?: Record<string, string> | undefined;
9
9
  } & ({
10
10
  run: string;
11
11
  } | {
@@ -40,6 +40,7 @@ declare const blockPackageJson: import("bingo-stratum").BlockWithAddons<{
40
40
  engines?: Record<string, string> | undefined;
41
41
  packageManager?: string | undefined;
42
42
  files?: string[] | undefined;
43
+ overrides?: Record<string, unknown> | undefined;
43
44
  license?: string | undefined;
44
45
  config?: Record<string, unknown> | undefined;
45
46
  private?: boolean | undefined;
@@ -60,7 +61,6 @@ declare const blockPackageJson: import("bingo-stratum").BlockWithAddons<{
60
61
  bundleDependencies?: boolean | string[] | undefined;
61
62
  bundledDependencies?: boolean | string[] | undefined;
62
63
  optionalDependencies?: Record<string, string> | undefined;
63
- overrides?: Record<string, unknown> | undefined;
64
64
  os?: string[] | undefined;
65
65
  cpu?: string[] | undefined;
66
66
  publishConfig?: Record<string, unknown> | undefined;
@@ -1,12 +1,12 @@
1
1
  //#region src/blocks/blockPrettier.d.ts
2
2
  declare const blockPrettier: import("bingo-stratum").BlockWithAddons<{
3
+ ignores: string[];
3
4
  overrides: {
4
5
  options: {
5
6
  parser: string;
6
7
  };
7
8
  files: string;
8
9
  }[];
9
- ignores: string[];
10
10
  plugins: string[];
11
11
  runBefore: string[];
12
12
  }, {
@@ -1,7 +1,7 @@
1
1
  //#region src/blocks/blockTSDown.d.ts
2
2
  declare const blockTSDown: import("bingo-stratum").BlockWithAddons<{
3
- entry: string[];
4
3
  properties: Record<string, unknown>;
4
+ entry: string[];
5
5
  runInCI: string[];
6
6
  }, {
7
7
  access: "public" | "restricted";
@@ -121,7 +121,7 @@ greet("Hello, world! ${options.emoji}");
121
121
  resolveJsonModule: true,
122
122
  skipLibCheck: true,
123
123
  strict: true,
124
- target: "ES2022",
124
+ target: "ES2023",
125
125
  ...compilerOptions
126
126
  }),
127
127
  include: ["src"]
@@ -1 +1 @@
1
- {"version":3,"file":"blockTypeScript.js","names":[],"sources":["../../src/blocks/blockTypeScript.ts"],"sourcesContent":["import sortKeys from \"sort-keys\";\nimport { CompilerOptionsSchema } from \"zod-tsconfig\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { getPrimaryBin } from \"./bin/getPrimaryBin.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockKnip } from \"./blockKnip.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVitest } from \"./blockVitest.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { intakeFileAsJson } from \"./intake/intakeFileAsJson.js\";\n\nexport const blockTypeScript = base.createBlock({\n\tabout: {\n\t\tname: \"TypeScript\",\n\t},\n\taddons: {\n\t\tcompilerOptions: CompilerOptionsSchema.optional(),\n\t},\n\tintake({ files }) {\n\t\tconst raw = intakeFileAsJson(files, [\"tsconfig.json\"]);\n\t\tconst { data } = CompilerOptionsSchema.safeParse(raw?.compilerOptions);\n\t\tif (!data) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tcompilerOptions: data,\n\t\t};\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { compilerOptions } = addons;\n\t\tconst primaryBin = getPrimaryBin(options.bin, options.repository);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\t\"Type Checking\": {\n\t\t\t\t\t\t\tcontents: `\nYou should be able to see suggestions from [TypeScript](https://typescriptlang.org) in your editor for all open files.\n\nHowever, it can be useful to run the TypeScript command-line (\\`tsc\\`) to type check all files in \\`src/\\`:\n\n\\`\\`\\`shell\npnpm tsc\n\\`\\`\\`\n\nAdd \\`--watch\\` to keep the type checker running in a watch mode that updates the display as you save files:\n\n\\`\\`\\`shell\npnpm tsc --watch\n\\`\\`\\`\n`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockExampleFiles({\n\t\t\t\t\tfiles: {\n\t\t\t\t\t\t\"greet.ts\": `import { GreetOptions } from \"./types.js\";\n\n\texport function greet(options: GreetOptions | string) {\n\t\tconst {\n\t\t\tlogger = console.log.bind(console),\n\t\t\tmessage,\n\t\t\ttimes = 1,\n\t\t} = typeof options === \"string\" ? { message: options } : options;\n\n\t\tfor (let i = 0; i < times; i += 1) {\n\t\t\tlogger(message);\n\t\t}\n\t}\n\t`,\n\t\t\t\t\t\t\"index.ts\": `export * from \"./greet.js\";\nexport * from \"./types.js\";\n`,\n\t\t\t\t\t\t\"types.ts\": `export interface GreetOptions {\n\t\tlogger?: (message: string) => void;\n\t\tmessage: string;\n\t\ttimes?: number;\n\t}\n\t`,\n\t\t\t\t\t},\n\t\t\t\t\tusage: [\n\t\t\t\t\t\t`\\`\\`\\`shell\nnpm i ${options.repository}\n\\`\\`\\`\n\\`\\`\\`ts\nimport { greet } from \"${options.repository}\";\n\ngreet(\"Hello, world! ${options.emoji}\");\n\\`\\`\\``,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [\"/lib\"],\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [{ name: \"Type Check\", steps: [{ run: \"pnpm tsc\" }] }],\n\t\t\t\t}),\n\t\t\t\tblockKnip({\n\t\t\t\t\tproject: [\"src/**/*.ts\"],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\"typescript\"),\n\t\t\t\t\t\tfiles: [\"lib/\"],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVitest({ coverage: { include: [\"src\"] }, exclude: [\"lib\"] }),\n\t\t\t\tblockVSCode({\n\t\t\t\t\tdebuggers: primaryBin\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"Debug Program\",\n\t\t\t\t\t\t\t\t\tpreLaunchTask: \"build\",\n\t\t\t\t\t\t\t\t\tprogram: primaryBin,\n\t\t\t\t\t\t\t\t\trequest: \"launch\",\n\t\t\t\t\t\t\t\t\tskipFiles: [\"<node_internals>/**\"],\n\t\t\t\t\t\t\t\t\ttype: \"node\",\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\tsettings: {\n\t\t\t\t\t\t\"typescript.tsdk\": \"node_modules/typescript/lib\",\n\t\t\t\t\t},\n\t\t\t\t\ttasks: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdetail: \"Build the project\",\n\t\t\t\t\t\t\tlabel: \"build\",\n\t\t\t\t\t\t\tscript: \"build\",\n\t\t\t\t\t\t\ttype: \"npm\",\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\"tsconfig.json\": JSON.stringify({\n\t\t\t\t\tcompilerOptions: sortKeys({\n\t\t\t\t\t\tdeclaration: true,\n\t\t\t\t\t\tdeclarationMap: true,\n\t\t\t\t\t\tesModuleInterop: true,\n\t\t\t\t\t\tmodule: \"NodeNext\",\n\t\t\t\t\t\tmoduleResolution: \"NodeNext\",\n\t\t\t\t\t\tnoEmit: true,\n\t\t\t\t\t\tresolveJsonModule: true,\n\t\t\t\t\t\tskipLibCheck: true,\n\t\t\t\t\t\tstrict: true,\n\t\t\t\t\t\ttarget: \"ES2022\",\n\t\t\t\t\t\t...compilerOptions,\n\t\t\t\t\t}),\n\t\t\t\t\tinclude: [\"src\"],\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\t},\n\ttransition() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"tsc\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAa,kBAAkB,KAAK,YAAY;CAC/C,OAAO,EACN,MAAM,aACP;CACA,QAAQ,EACP,iBAAiB,sBAAsB,SAAS,EACjD;CACA,OAAO,EAAE,SAAS;EACjB,MAAM,MAAM,iBAAiB,OAAO,CAAC,eAAe,CAAC;EACrD,MAAM,EAAE,SAAS,sBAAsB,UAAU,KAAK,eAAe;EACrE,IAAI,CAAC,MACJ;EAGD,OAAO,EACN,iBAAiB,KAClB;CACD;CACA,QAAQ,EAAE,QAAQ,WAAW;EAC5B,MAAM,EAAE,oBAAoB;EAC5B,MAAM,aAAa,cAAc,QAAQ,KAAK,QAAQ,UAAU;EAEhE,OAAO;GACN,QAAQ;IACP,qBAAqB,EACpB,UAAU,EACT,iBAAiB,EAChB,UAAU;;;;;;;;;;;;;;EAeX,EACD,EACD,CAAC;IACD,kBAAkB;KACjB,OAAO;MACN,YAAY;;;;;;;;;;;;;;MAcZ,YAAY;;;MAGZ,YAAY;;;;;;KAMb;KACA,OAAO,CACN;QACE,QAAQ,WAAW;;;yBAGF,QAAQ,WAAW;;uBAErB,QAAQ,MAAM;OAEhC;IACD,CAAC;IACD,eAAe,EACd,SAAS,CAAC,MAAM,EACjB,CAAC;IACD,qBAAqB,EACpB,MAAM,CAAC;KAAE,MAAM;KAAc,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC;IAAE,CAAC,EAC5D,CAAC;IACD,UAAU,EACT,SAAS,CAAC,aAAa,EACxB,CAAC;IACD,iBAAiB,EAChB,YAAY;KACX,iBAAiB,uBAAuB,YAAY;KACpD,OAAO,CAAC,MAAM;IACf,EACD,CAAC;IACD,YAAY;KAAE,UAAU,EAAE,SAAS,CAAC,KAAK,EAAE;KAAG,SAAS,CAAC,KAAK;IAAE,CAAC;IAChE,YAAY;KACX,WAAW,aACR,CACA;MACC,MAAM;MACN,eAAe;MACf,SAAS;MACT,SAAS;MACT,WAAW,CAAC,qBAAqB;MACjC,MAAM;KACP,CACD,IACC,CAAC;KACJ,UAAU,EACT,mBAAmB,8BACpB;KACA,OAAO,CACN;MACC,QAAQ;MACR,OAAO;MACP,QAAQ;MACR,MAAM;KACP,CACD;IACD,CAAC;GACF;GACA,OAAO,EACN,iBAAiB,KAAK,UAAU;IAC/B,iBAAiB,SAAS;KACzB,aAAa;KACb,gBAAgB;KAChB,iBAAiB;KACjB,QAAQ;KACR,kBAAkB;KAClB,QAAQ;KACR,mBAAmB;KACnB,cAAc;KACd,QAAQ;KACR,QAAQ;KACR,GAAG;IACJ,CAAC;IACD,SAAS,CAAC,KAAK;GAChB,CAAC,EACF;EACD;CACD;CACA,aAAa;EACZ,OAAO,EACN,QAAQ,CACP,qBAAqB,EACpB,WAAW,CAAC,KAAK,EAClB,CAAC,CACF,EACD;CACD;AACD,CAAC"}
1
+ {"version":3,"file":"blockTypeScript.js","names":[],"sources":["../../src/blocks/blockTypeScript.ts"],"sourcesContent":["import sortKeys from \"sort-keys\";\nimport { CompilerOptionsSchema } from \"zod-tsconfig\";\n\nimport { base } from \"../base.js\";\nimport { getPackageDependencies } from \"../data/packageData.js\";\nimport { getPrimaryBin } from \"./bin/getPrimaryBin.js\";\nimport { blockDevelopmentDocs } from \"./blockDevelopmentDocs.js\";\nimport { blockExampleFiles } from \"./blockExampleFiles.js\";\nimport { blockGitHubActionsCI } from \"./blockGitHubActionsCI.js\";\nimport { blockGitignore } from \"./blockGitignore.js\";\nimport { blockKnip } from \"./blockKnip.js\";\nimport { blockPackageJson } from \"./blockPackageJson.js\";\nimport { blockRemoveWorkflows } from \"./blockRemoveWorkflows.js\";\nimport { blockVitest } from \"./blockVitest.js\";\nimport { blockVSCode } from \"./blockVSCode.js\";\nimport { intakeFileAsJson } from \"./intake/intakeFileAsJson.js\";\n\nexport const blockTypeScript = base.createBlock({\n\tabout: {\n\t\tname: \"TypeScript\",\n\t},\n\taddons: {\n\t\tcompilerOptions: CompilerOptionsSchema.optional(),\n\t},\n\tintake({ files }) {\n\t\tconst raw = intakeFileAsJson(files, [\"tsconfig.json\"]);\n\t\tconst { data } = CompilerOptionsSchema.safeParse(raw?.compilerOptions);\n\t\tif (!data) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\tcompilerOptions: data,\n\t\t};\n\t},\n\tproduce({ addons, options }) {\n\t\tconst { compilerOptions } = addons;\n\t\tconst primaryBin = getPrimaryBin(options.bin, options.repository);\n\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockDevelopmentDocs({\n\t\t\t\t\tsections: {\n\t\t\t\t\t\t\"Type Checking\": {\n\t\t\t\t\t\t\tcontents: `\nYou should be able to see suggestions from [TypeScript](https://typescriptlang.org) in your editor for all open files.\n\nHowever, it can be useful to run the TypeScript command-line (\\`tsc\\`) to type check all files in \\`src/\\`:\n\n\\`\\`\\`shell\npnpm tsc\n\\`\\`\\`\n\nAdd \\`--watch\\` to keep the type checker running in a watch mode that updates the display as you save files:\n\n\\`\\`\\`shell\npnpm tsc --watch\n\\`\\`\\`\n`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockExampleFiles({\n\t\t\t\t\tfiles: {\n\t\t\t\t\t\t\"greet.ts\": `import { GreetOptions } from \"./types.js\";\n\n\texport function greet(options: GreetOptions | string) {\n\t\tconst {\n\t\t\tlogger = console.log.bind(console),\n\t\t\tmessage,\n\t\t\ttimes = 1,\n\t\t} = typeof options === \"string\" ? { message: options } : options;\n\n\t\tfor (let i = 0; i < times; i += 1) {\n\t\t\tlogger(message);\n\t\t}\n\t}\n\t`,\n\t\t\t\t\t\t\"index.ts\": `export * from \"./greet.js\";\nexport * from \"./types.js\";\n`,\n\t\t\t\t\t\t\"types.ts\": `export interface GreetOptions {\n\t\tlogger?: (message: string) => void;\n\t\tmessage: string;\n\t\ttimes?: number;\n\t}\n\t`,\n\t\t\t\t\t},\n\t\t\t\t\tusage: [\n\t\t\t\t\t\t`\\`\\`\\`shell\nnpm i ${options.repository}\n\\`\\`\\`\n\\`\\`\\`ts\nimport { greet } from \"${options.repository}\";\n\ngreet(\"Hello, world! ${options.emoji}\");\n\\`\\`\\``,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t\tblockGitignore({\n\t\t\t\t\tignores: [\"/lib\"],\n\t\t\t\t}),\n\t\t\t\tblockGitHubActionsCI({\n\t\t\t\t\tjobs: [{ name: \"Type Check\", steps: [{ run: \"pnpm tsc\" }] }],\n\t\t\t\t}),\n\t\t\t\tblockKnip({\n\t\t\t\t\tproject: [\"src/**/*.ts\"],\n\t\t\t\t}),\n\t\t\t\tblockPackageJson({\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tdevDependencies: getPackageDependencies(\"typescript\"),\n\t\t\t\t\t\tfiles: [\"lib/\"],\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t\tblockVitest({ coverage: { include: [\"src\"] }, exclude: [\"lib\"] }),\n\t\t\t\tblockVSCode({\n\t\t\t\t\tdebuggers: primaryBin\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tname: \"Debug Program\",\n\t\t\t\t\t\t\t\t\tpreLaunchTask: \"build\",\n\t\t\t\t\t\t\t\t\tprogram: primaryBin,\n\t\t\t\t\t\t\t\t\trequest: \"launch\",\n\t\t\t\t\t\t\t\t\tskipFiles: [\"<node_internals>/**\"],\n\t\t\t\t\t\t\t\t\ttype: \"node\",\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\tsettings: {\n\t\t\t\t\t\t\"typescript.tsdk\": \"node_modules/typescript/lib\",\n\t\t\t\t\t},\n\t\t\t\t\ttasks: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdetail: \"Build the project\",\n\t\t\t\t\t\t\tlabel: \"build\",\n\t\t\t\t\t\t\tscript: \"build\",\n\t\t\t\t\t\t\ttype: \"npm\",\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\"tsconfig.json\": JSON.stringify({\n\t\t\t\t\tcompilerOptions: sortKeys({\n\t\t\t\t\t\tdeclaration: true,\n\t\t\t\t\t\tdeclarationMap: true,\n\t\t\t\t\t\tesModuleInterop: true,\n\t\t\t\t\t\tmodule: \"NodeNext\",\n\t\t\t\t\t\tmoduleResolution: \"NodeNext\",\n\t\t\t\t\t\tnoEmit: true,\n\t\t\t\t\t\tresolveJsonModule: true,\n\t\t\t\t\t\tskipLibCheck: true,\n\t\t\t\t\t\tstrict: true,\n\t\t\t\t\t\ttarget: \"ES2023\",\n\t\t\t\t\t\t...compilerOptions,\n\t\t\t\t\t}),\n\t\t\t\t\tinclude: [\"src\"],\n\t\t\t\t}),\n\t\t\t},\n\t\t};\n\t},\n\ttransition() {\n\t\treturn {\n\t\t\taddons: [\n\t\t\t\tblockRemoveWorkflows({\n\t\t\t\t\tworkflows: [\"tsc\"],\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\t},\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAa,kBAAkB,KAAK,YAAY;CAC/C,OAAO,EACN,MAAM,aACP;CACA,QAAQ,EACP,iBAAiB,sBAAsB,SAAS,EACjD;CACA,OAAO,EAAE,SAAS;EACjB,MAAM,MAAM,iBAAiB,OAAO,CAAC,eAAe,CAAC;EACrD,MAAM,EAAE,SAAS,sBAAsB,UAAU,KAAK,eAAe;EACrE,IAAI,CAAC,MACJ;EAGD,OAAO,EACN,iBAAiB,KAClB;CACD;CACA,QAAQ,EAAE,QAAQ,WAAW;EAC5B,MAAM,EAAE,oBAAoB;EAC5B,MAAM,aAAa,cAAc,QAAQ,KAAK,QAAQ,UAAU;EAEhE,OAAO;GACN,QAAQ;IACP,qBAAqB,EACpB,UAAU,EACT,iBAAiB,EAChB,UAAU;;;;;;;;;;;;;;EAeX,EACD,EACD,CAAC;IACD,kBAAkB;KACjB,OAAO;MACN,YAAY;;;;;;;;;;;;;;MAcZ,YAAY;;;MAGZ,YAAY;;;;;;KAMb;KACA,OAAO,CACN;QACE,QAAQ,WAAW;;;yBAGF,QAAQ,WAAW;;uBAErB,QAAQ,MAAM;OAEhC;IACD,CAAC;IACD,eAAe,EACd,SAAS,CAAC,MAAM,EACjB,CAAC;IACD,qBAAqB,EACpB,MAAM,CAAC;KAAE,MAAM;KAAc,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC;IAAE,CAAC,EAC5D,CAAC;IACD,UAAU,EACT,SAAS,CAAC,aAAa,EACxB,CAAC;IACD,iBAAiB,EAChB,YAAY;KACX,iBAAiB,uBAAuB,YAAY;KACpD,OAAO,CAAC,MAAM;IACf,EACD,CAAC;IACD,YAAY;KAAE,UAAU,EAAE,SAAS,CAAC,KAAK,EAAE;KAAG,SAAS,CAAC,KAAK;IAAE,CAAC;IAChE,YAAY;KACX,WAAW,aACR,CACA;MACC,MAAM;MACN,eAAe;MACf,SAAS;MACT,SAAS;MACT,WAAW,CAAC,qBAAqB;MACjC,MAAM;KACP,CACD,IACC,CAAC;KACJ,UAAU,EACT,mBAAmB,8BACpB;KACA,OAAO,CACN;MACC,QAAQ;MACR,OAAO;MACP,QAAQ;MACR,MAAM;KACP,CACD;IACD,CAAC;GACF;GACA,OAAO,EACN,iBAAiB,KAAK,UAAU;IAC/B,iBAAiB,SAAS;KACzB,aAAa;KACb,gBAAgB;KAChB,iBAAiB;KACjB,QAAQ;KACR,kBAAkB;KAClB,QAAQ;KACR,mBAAmB;KACnB,cAAc;KACd,QAAQ;KACR,QAAQ;KACR,GAAG;IACJ,CAAC;IACD,SAAS,CAAC,KAAK;GAChB,CAAC,EACF;EACD;CACD;CACA,aAAa;EACZ,OAAO,EACN,QAAQ,CACP,qBAAqB,EACpB,WAAW,CAAC,KAAK,EAClB,CAAC,CACF,EACD;CACD;AACD,CAAC"}
@@ -2,9 +2,9 @@
2
2
  declare const blockVitest: import("bingo-stratum").BlockWithAddons<{
3
3
  exclude: string[];
4
4
  actionSteps: ({
5
+ with?: Record<string, string> | undefined;
5
6
  env?: Record<string, string> | undefined;
6
7
  if?: string | undefined;
7
- with?: Record<string, string> | undefined;
8
8
  } & ({
9
9
  run: string;
10
10
  } | {
@@ -2,12 +2,12 @@ import { Extension } from "./schemas.js";
2
2
  //#region src/blocks/eslint/mergeAllExtensions.d.ts
3
3
  declare function mergeAllExtensions(...extensions: Extension[]): {
4
4
  files: string[];
5
+ plugins?: Record<string, string> | undefined;
6
+ settings?: Record<string, unknown> | undefined;
5
7
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
6
8
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
7
9
  comment?: string | undefined;
8
10
  }[] | undefined;
9
- plugins?: Record<string, string> | undefined;
10
- settings?: Record<string, unknown> | undefined;
11
11
  extends?: string[] | undefined;
12
12
  languageOptions?: unknown;
13
13
  linterOptions?: unknown;
@@ -57,23 +57,23 @@ declare const zExtension: z.ZodObject<{
57
57
  settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
58
58
  }, "strip", z.ZodTypeAny, {
59
59
  files: string[];
60
+ plugins?: Record<string, string> | undefined;
61
+ settings?: Record<string, unknown> | undefined;
60
62
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
61
63
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
62
64
  comment?: string | undefined;
63
65
  }[] | undefined;
64
- plugins?: Record<string, string> | undefined;
65
- settings?: Record<string, unknown> | undefined;
66
66
  extends?: string[] | undefined;
67
67
  languageOptions?: unknown;
68
68
  linterOptions?: unknown;
69
69
  }, {
70
70
  files: string[];
71
+ plugins?: Record<string, string> | undefined;
72
+ settings?: Record<string, unknown> | undefined;
71
73
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
72
74
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
73
75
  comment?: string | undefined;
74
76
  }[] | undefined;
75
- plugins?: Record<string, string> | undefined;
76
- settings?: Record<string, unknown> | undefined;
77
77
  extends?: string[] | undefined;
78
78
  languageOptions?: unknown;
79
79
  linterOptions?: unknown;
@@ -546,27 +546,27 @@ declare const blocks: {
546
546
  }>> | undefined;
547
547
  }>;
548
548
  blockESLint: import("bingo-stratum").BlockWithAddons<{
549
- imports: {
550
- source: string | {
551
- version: string;
552
- packageName: string;
553
- };
554
- specifier: string;
555
- types?: boolean | undefined;
556
- }[];
557
549
  ignores: string[];
558
550
  extensions: {
559
551
  files: string[];
552
+ plugins?: Record<string, string> | undefined;
553
+ settings?: Record<string, unknown> | undefined;
560
554
  rules?: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]> | {
561
555
  entries: Record<string, "off" | "error" | "warn" | ["error" | "warn", unknown] | ["error" | "warn", unknown, unknown]>;
562
556
  comment?: string | undefined;
563
557
  }[] | undefined;
564
- plugins?: Record<string, string> | undefined;
565
- settings?: Record<string, unknown> | undefined;
566
558
  extends?: string[] | undefined;
567
559
  languageOptions?: unknown;
568
560
  linterOptions?: unknown;
569
561
  }[];
562
+ imports: {
563
+ source: string | {
564
+ version: string;
565
+ packageName: string;
566
+ };
567
+ specifier: string;
568
+ types?: boolean | undefined;
569
+ }[];
570
570
  explanations: string[];
571
571
  beforeLint?: string | undefined;
572
572
  }, {
@@ -1530,9 +1530,9 @@ declare const blocks: {
1530
1530
  jobs?: {
1531
1531
  name: string;
1532
1532
  steps: ({
1533
+ with?: Record<string, string> | undefined;
1533
1534
  env?: Record<string, string> | undefined;
1534
1535
  if?: string | undefined;
1535
- with?: Record<string, string> | undefined;
1536
1536
  } & ({
1537
1537
  run: string;
1538
1538
  } | {
@@ -2273,6 +2273,7 @@ declare const blocks: {
2273
2273
  engines?: Record<string, string> | undefined;
2274
2274
  packageManager?: string | undefined;
2275
2275
  files?: string[] | undefined;
2276
+ overrides?: Record<string, unknown> | undefined;
2276
2277
  license?: string | undefined;
2277
2278
  config?: Record<string, unknown> | undefined;
2278
2279
  private?: boolean | undefined;
@@ -2293,7 +2294,6 @@ declare const blocks: {
2293
2294
  bundleDependencies?: boolean | string[] | undefined;
2294
2295
  bundledDependencies?: boolean | string[] | undefined;
2295
2296
  optionalDependencies?: Record<string, string> | undefined;
2296
- overrides?: Record<string, unknown> | undefined;
2297
2297
  os?: string[] | undefined;
2298
2298
  cpu?: string[] | undefined;
2299
2299
  publishConfig?: Record<string, unknown> | undefined;
@@ -2446,13 +2446,13 @@ declare const blocks: {
2446
2446
  }>> | undefined;
2447
2447
  }>;
2448
2448
  blockPrettier: import("bingo-stratum").BlockWithAddons<{
2449
+ ignores: string[];
2449
2450
  overrides: {
2450
2451
  options: {
2451
2452
  parser: string;
2452
2453
  };
2453
2454
  files: string;
2454
2455
  }[];
2455
- ignores: string[];
2456
2456
  plugins: string[];
2457
2457
  runBefore: string[];
2458
2458
  }, {
@@ -3226,8 +3226,8 @@ declare const blocks: {
3226
3226
  }>> | undefined;
3227
3227
  }>;
3228
3228
  blockTSDown: import("bingo-stratum").BlockWithAddons<{
3229
- entry: string[];
3230
3229
  properties: Record<string, unknown>;
3230
+ entry: string[];
3231
3231
  runInCI: string[];
3232
3232
  }, {
3233
3233
  access: "public" | "restricted";
@@ -3480,9 +3480,9 @@ declare const blocks: {
3480
3480
  blockVitest: import("bingo-stratum").BlockWithAddons<{
3481
3481
  exclude: string[];
3482
3482
  actionSteps: ({
3483
+ with?: Record<string, string> | undefined;
3483
3484
  env?: Record<string, string> | undefined;
3484
3485
  if?: string | undefined;
3485
- with?: Record<string, string> | undefined;
3486
3486
  } & ({
3487
3487
  run: string;
3488
3488
  } | {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-typescript-app",
3
- "version": "2.63.0",
3
+ "version": "2.63.2",
4
4
  "description": "Quickstart-friendly TypeScript template with comprehensive, configurable, opinionated tooling. 🎁",
5
5
  "repository": {
6
6
  "type": "git",
@@ -110,7 +110,7 @@
110
110
  "typescript-eslint": "8.67.0",
111
111
  "vitest": "4.1.10"
112
112
  },
113
- "packageManager": "pnpm@10.28.0",
113
+ "packageManager": "pnpm@10.34.5",
114
114
  "engines": {
115
115
  "node": ">=20.19.0"
116
116
  }