@kitschpatrol/create-project 1.1.3 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/index.js +26 -8
  2. package/package.json +11 -10
  3. package/readme.md +11 -10
  4. package/templates/cli/.npmrc +0 -12
  5. package/templates/cli/.vscode/settings.json +30 -30
  6. package/templates/cli/license.txt +1 -1
  7. package/templates/cli/package.json +19 -22
  8. package/templates/cli/pnpm-workspace.yaml +14 -0
  9. package/templates/cli+library/.npmrc +0 -12
  10. package/templates/cli+library/.vscode/settings.json +30 -30
  11. package/templates/cli+library/license.txt +1 -1
  12. package/templates/cli+library/package.json +19 -22
  13. package/templates/cli+library/pnpm-workspace.yaml +14 -0
  14. package/templates/electron/.npmrc +0 -12
  15. package/templates/electron/.vscode/settings.json +30 -30
  16. package/templates/electron/cspell.config.js +1 -1
  17. package/templates/electron/electron-builder.ts +2 -0
  18. package/templates/electron/eslint.config.ts +1 -0
  19. package/templates/electron/knip.config.ts +3 -1
  20. package/templates/electron/license.txt +1 -1
  21. package/templates/electron/package.json +17 -17
  22. package/templates/electron/pnpm-workspace.yaml +14 -0
  23. package/templates/electron/src/style.css +3 -4
  24. package/templates/electron/tsconfig.json +1 -1
  25. package/templates/library/.npmrc +0 -12
  26. package/templates/library/.vscode/settings.json +30 -30
  27. package/templates/library/license.txt +1 -1
  28. package/templates/library/package.json +14 -17
  29. package/templates/library/pnpm-workspace.yaml +14 -0
  30. package/templates/minimal/.npmrc +0 -12
  31. package/templates/minimal/.vscode/settings.json +30 -30
  32. package/templates/minimal/license.txt +1 -1
  33. package/templates/minimal/package.json +14 -14
  34. package/templates/minimal/pnpm-workspace.yaml +14 -0
  35. package/templates/unplugin/.github/workflows/github-release.yml +81 -0
  36. package/templates/unplugin/.github/workflows/set-github-metadata.yml +21 -0
  37. package/templates/unplugin/.gitignore +22 -0
  38. package/templates/unplugin/.npmrc +4 -0
  39. package/templates/unplugin/.prettierignore +8 -0
  40. package/templates/unplugin/.remarkrc.js +8 -0
  41. package/templates/unplugin/.vscode/extensions.json +9 -0
  42. package/templates/unplugin/.vscode/settings.json +68 -0
  43. package/templates/unplugin/cspell.config.js +3 -0
  44. package/templates/unplugin/eslint.config.ts +11 -0
  45. package/templates/unplugin/knip.config.ts +5 -0
  46. package/templates/unplugin/license.txt +21 -0
  47. package/templates/unplugin/mdat.config.ts +3 -0
  48. package/templates/unplugin/package.json +82 -0
  49. package/templates/unplugin/pnpm-workspace.yaml +17 -0
  50. package/templates/unplugin/prettier.config.js +3 -0
  51. package/templates/unplugin/readme.md +27 -0
  52. package/templates/unplugin/src/api.ts +2 -0
  53. package/templates/unplugin/src/core/options.ts +28 -0
  54. package/templates/unplugin/src/esbuild.ts +22 -0
  55. package/templates/unplugin/src/farm.ts +22 -0
  56. package/templates/unplugin/src/index.ts +27 -0
  57. package/templates/unplugin/src/rolldown.ts +22 -0
  58. package/templates/unplugin/src/rollup.ts +22 -0
  59. package/templates/unplugin/src/rspack.ts +22 -0
  60. package/templates/unplugin/src/vite.ts +22 -0
  61. package/templates/unplugin/src/webpack.ts +24 -0
  62. package/templates/unplugin/stylelint.config.js +3 -0
  63. package/templates/unplugin/tests/__snapshots__/rollup.test.ts.snap +10 -0
  64. package/templates/unplugin/tests/fixtures/basic.js +1 -0
  65. package/templates/unplugin/tests/rollup.test.ts +16 -0
  66. package/templates/unplugin/tsconfig.build.json +5 -0
  67. package/templates/unplugin/tsconfig.json +7 -0
  68. package/templates/unplugin/tsdown.config.ts +7 -0
  69. package/templates/web/.npmrc +0 -12
  70. package/templates/web/.vscode/settings.json +30 -30
  71. package/templates/web/license.txt +1 -1
  72. package/templates/web/package.json +14 -14
  73. package/templates/web/pnpm-workspace.yaml +14 -0
  74. package/templates/web/src/style.css +3 -4
package/dist/index.js CHANGED
@@ -3392,7 +3392,6 @@ ZodNaN.create = (params) => {
3392
3392
  ...processCreateParams(params)
3393
3393
  });
3394
3394
  };
3395
- const BRAND = Symbol("zod_brand");
3396
3395
  var ZodBranded = class extends ZodType {
3397
3396
  _parse(input) {
3398
3397
  const { ctx } = this._processInputParams(input);
@@ -3559,7 +3558,8 @@ const TEMPLATE_TYPES = [
3559
3558
  "cli",
3560
3559
  "library",
3561
3560
  "cli+library",
3562
- "electron"
3561
+ "electron",
3562
+ "unplugin"
3563
3563
  ];
3564
3564
  var template_default = createTemplate({
3565
3565
  about: {
@@ -3572,17 +3572,35 @@ var template_default = createTemplate({
3572
3572
  "author-email": stringType().default("eric@ericmika.com").describe("The email of the author"),
3573
3573
  "author-url": stringType().default("https://ericmika.com").describe("The URL of the author"),
3574
3574
  "cli-command-name": stringType().default("new-project").describe("CLI command name (if applicable)"),
3575
- "github-owner": stringType().default("kitschpatrol").describe("The owner of the future repository"),
3576
- "github-repository": stringType().default(`new-project`).describe("The name of the future repository / package"),
3575
+ "github-owner": stringType().default("kitschpatrol").describe("The owner of the repository"),
3576
+ "github-repository": stringType().default(`new-project`).describe("The name of the repository / package"),
3577
3577
  "npm-auth-command": stringType().default("op read 'op://Personal/npm/token'").describe("A shell command that sets the NPM_AUTH_TOKEN env variable with a granular token for publishing to npm")
3578
3578
  },
3579
- async produce(params) {
3580
- const { options } = params;
3579
+ async produce({ options }) {
3580
+ const extraOptions = {
3581
+ ...options,
3582
+ year: (/* @__PURE__ */ new Date()).getFullYear()
3583
+ };
3584
+ async function handlebarsHelper(...paths) {
3585
+ const result = {};
3586
+ for (const filePath of paths) result[filePath] = await handlebars(path.join(import.meta.dirname, `../templates/${options.type}/${filePath}`), extraOptions);
3587
+ return result;
3588
+ }
3581
3589
  return {
3582
3590
  files: {
3583
3591
  ...await intakeDirectory(path.join(import.meta.dirname, `../templates/${options.type}`), { exclude: /node_modules|pnpm-lock\.yaml/ }),
3584
- "license.txt": await handlebars(path.join(import.meta.dirname, `../templates/${options.type}/license.txt`), options),
3585
- "package.json": await handlebars(path.join(import.meta.dirname, `../templates/${options.type}/package.json`), options)
3592
+ ...await handlebarsHelper("license.txt", "package.json", ...options.type === "unplugin" ? [
3593
+ "src/esbuild.ts",
3594
+ "src/farm.ts",
3595
+ "src/index.ts",
3596
+ "src/rolldown.ts",
3597
+ "src/rollup.ts",
3598
+ "src/rspack.ts",
3599
+ "src/vite.ts",
3600
+ "src/webpack.ts",
3601
+ "src/webpack.ts",
3602
+ "tests/__snapshots__/rollup.test.ts.snap"
3603
+ ] : [])
3586
3604
  },
3587
3605
  scripts: [{
3588
3606
  commands: options.type === "electron" ? ["pnpm install", "pnpm run fix"] : [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitschpatrol/create-project",
3
- "version": "1.1.3",
3
+ "version": "1.2.1",
4
4
  "description": "Kitschpatrol's TypeScript project templates.",
5
5
  "keywords": [
6
6
  "cli",
@@ -28,18 +28,19 @@
28
28
  "templates/**/.npmrc"
29
29
  ],
30
30
  "dependencies": {
31
- "bingo": "^0.5.16",
32
- "bingo-fs": "^0.5.5",
31
+ "bingo": "^0.9.2",
32
+ "bingo-fs": "^0.5.6",
33
33
  "bingo-handlebars": "^0.1.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@kitschpatrol/shared-config": "^5.8.1",
37
- "@types/node": "^20.19.24",
38
- "bumpp": "^10.3.1",
39
- "taze": "^19.9.0",
40
- "tsdown": "^0.16.0",
36
+ "@kitschpatrol/shared-config": "^5.10.0",
37
+ "@types/node": "~20.19.27",
38
+ "bumpp": "^10.3.2",
39
+ "mdat": "^1.3.3",
40
+ "taze": "^19.9.2",
41
+ "tsdown": "^0.18.3",
41
42
  "typescript": "~5.9.3",
42
- "vitest": "^4.0.7",
43
+ "vitest": "^4.0.16",
43
44
  "zod": "^3.25.76"
44
45
  },
45
46
  "engines": {
@@ -52,7 +53,7 @@
52
53
  "build": "tsdown --no-fixed-extension",
53
54
  "clean": "git rm -f pnpm-lock.yaml ; git clean -fdX",
54
55
  "fix": "ksc fix",
55
- "lint": "ksc lint",
56
+ "lint": "ksc-repo lint ; mdat readme check readme.md ; ksc-typescript lint ; ksc-eslint lint ; ksc-stylelint lint ; ksc-cspell lint ; ksc-knip lint ; ksc-prettier lint",
56
57
  "release": "bumpp --commit 'Release: %s' && pnpm run build && NPM_AUTH_TOKEN=$(op read 'op://Personal/npm/token') && pnpm publish",
57
58
  "test": "vitest run",
58
59
  "update-templates": "for dir in ./templates/*; do taze -w --cwd \"$dir\"; done"
package/readme.md CHANGED
@@ -23,7 +23,7 @@
23
23
 
24
24
  This repository contains very basic starter templates for TypeScript projects integrating [@kitschpatrol/shared-config](https://github.com/kitschpatrol/shared-config).
25
25
 
26
- The lint tools and rules that come along with [@kitschpatrol/shared-config](https://github.com/kitschpatrol/shared-config) are quite opinionated and draconian, and won't be to everyone's taste.
26
+ The lint tools and rules that come along with [@kitschpatrol/shared-config](https://github.com/kitschpatrol/shared-config) are opinionated and draconian, and won't be to everyone's taste.
27
27
 
28
28
  The templates use [tsdown](https://tsdown.dev/) for building TypeScript libraries and Node-based CLI tools, and [Vite](https://vite.dev/) for web projects. [Bingo](https://www.create.bingo/) is used for the project templating system itself.
29
29
 
@@ -47,30 +47,31 @@ pnpm create @kitschpatrol/project@latest
47
47
  Bingo template options:
48
48
 
49
49
  --directory (string): What local directory path to run under
50
- npx new-project --directory my-fancy-project
50
+ npx @kitschpatrol/create-project --directory my-fancy-project
51
51
 
52
52
  --help (string): Prints help text.
53
- npx new-project --help
53
+ npx @kitschpatrol/create-project --help
54
54
 
55
55
  --mode ("setup" | "transition"): Which mode to run in.
56
- npx new-project --mode setup
57
- npx new-project --mode transition
56
+ npx @kitschpatrol/create-project --mode setup
57
+ npx @kitschpatrol/create-project --mode transition
58
58
 
59
59
  --offline (boolean): Whether to run in an "offline" mode that skips network requests.
60
- npx new-project --offline
60
+ npx @kitschpatrol/create-project --offline
61
61
 
62
62
  --version (boolean): Prints package versions.
63
- npx new-project --version
63
+ npx @kitschpatrol/create-project --version
64
64
 
65
- Kitschpatrol Create Project options:
65
+ Create Kitschpatrol Project options:
66
66
 
67
67
  --type (enum): The type of project to create.
68
68
  --author-name (string): The name of the author.
69
69
  --author-email (string): The email of the author.
70
70
  --author-url (string): The URL of the author.
71
71
  --cli-command-name (string): CLI command name (if applicable).
72
- --github-owner (string): The owner of the future repository.
73
- --github-repository (string): The name of the future repository / package.
72
+ --github-owner (string): The owner of the repository.
73
+ --github-repository (string): The name of the repository / package.
74
+ --npm-auth-command (string): A shell command that sets the NPM_AUTH_TOKEN env variable with a granular token for publishing to npm.
74
75
  ```
75
76
 
76
77
  ## Development Notes
@@ -1,16 +1,4 @@
1
1
  publish-branch=main
2
2
 
3
- # Required for using @kitschpatrol/shared-config and the ksc command with pnpm
4
- public-hoist-pattern[]=@kitschpatrol/repo-config
5
- public-hoist-pattern[]=@kitschpatrol/typescript-config
6
- public-hoist-pattern[]=case-police
7
- public-hoist-pattern[]=*cspell*
8
- public-hoist-pattern[]=*eslint*
9
- public-hoist-pattern[]=*knip*
10
- public-hoist-pattern[]=*mdat*
11
- public-hoist-pattern[]=*prettier*
12
- public-hoist-pattern[]=*remark*
13
- public-hoist-pattern[]=*stylelint*
14
-
15
3
  # Required for automated local publishing
16
4
  //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}
@@ -1,21 +1,30 @@
1
1
  {
2
- "explorer.fileNesting.enabled": true,
3
- "explorer.fileNesting.expand": false,
4
- "explorer.fileNesting.patterns": {
5
- "*.js": "${basename}.ts.map, ${basename}.js.map, ${basename}.d.ts, ${basename}.d.ts.map, ${basename}.d.js.map",
6
- "*.ts": "${basename}.ts.map, ${basename}.d.ts, ${basename}.d.ts.map",
7
- ".env": ".env.*",
8
- "package.json": ".*ignore, .*rc, .*.js, .*.mjs, .*.cjs, .*.ts, .*.mts, .*.cts, .*.json, .*.jsonc, .*.json5, .*.yml, .*.yaml, *config.js, *config.mjs, *config.cjs, *config.ts, *config.mts, *config.cts, *config.json, *config.jsonc, *config.json5, *config.yml, *config.yaml, pnpm*, workspace*, yarn*, lerna.json, netlify.toml, package-lock.json, turbo.json, vercel.json, wrangler.toml, yarn.lock",
9
- "readme.md": "authors*, backers*, changelog*, citation*, code_of_conduct*, contributing*, contributors*, copying*, credits*, governance*, history*, license*, maintainers*, release_notes*, security*, sponsors*"
2
+ "[astro]": {
3
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
10
4
  },
11
- "typescript.enablePromptUseWorkspaceTsdk": true,
12
- "typescript.tsdk": "node_modules/typescript/lib",
5
+ "[gitignore]": {
6
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
7
+ },
8
+ "[ruby]": {
9
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
10
+ },
11
+ "[shellscript]": {
12
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
13
+ },
14
+ "[svelte]": {
15
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
16
+ },
17
+ "cSpell.enabled": true,
18
+ "cSpell.workspaceRootPath": ".",
13
19
  "editor.codeActionsOnSave": {
14
20
  "source.fixAll": "explicit",
15
21
  "source.organizeImports": "never"
16
22
  },
23
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
24
+ "editor.formatOnSave": true,
17
25
  "eslint.enable": true,
18
26
  "eslint.runtime": "node",
27
+ "eslint.useFlatConfig": true,
19
28
  "eslint.validate": [
20
29
  "astro",
21
30
  "html",
@@ -33,26 +42,15 @@
33
42
  "xml",
34
43
  "yaml"
35
44
  ],
36
- "eslint.useFlatConfig": true,
37
- "cSpell.enabled": true,
38
- "cSpell.workspaceRootPath": ".",
39
- "[astro]": {
40
- "editor.defaultFormatter": "esbenp.prettier-vscode"
41
- },
42
- "[gitignore]": {
43
- "editor.defaultFormatter": "esbenp.prettier-vscode"
44
- },
45
- "[ruby]": {
46
- "editor.defaultFormatter": "esbenp.prettier-vscode"
47
- },
48
- "[shellscript]": {
49
- "editor.defaultFormatter": "esbenp.prettier-vscode"
50
- },
51
- "[svelte]": {
52
- "editor.defaultFormatter": "esbenp.prettier-vscode"
45
+ "explorer.fileNesting.enabled": true,
46
+ "explorer.fileNesting.expand": false,
47
+ "explorer.fileNesting.patterns": {
48
+ ".env": ".env.*, .template.env",
49
+ "*.js": "${basename}.ts.map, ${basename}.js.map, ${basename}.d.ts, ${basename}.d.ts.map, ${basename}.d.js.map",
50
+ "*.ts": "${basename}.ts.map, ${basename}.d.ts, ${basename}.d.ts.map",
51
+ "package.json": ".*ignore, .*rc, .*.js, .*.mjs, .*.cjs, .*.ts, .*.mts, .*.cts, .*.json, .*.jsonc, .*.json5, .*.yml, .*.yaml, *config.js, *config.mjs, *config.cjs, *config.ts, *config.mts, *config.cts, *config.json, *config.jsonc, *config.json5, *config.yml, *config.yaml, pnpm*, workspace*, yarn*, lerna.json, netlify.toml, package-lock.json, turbo.json, vercel.json, wrangler.toml, yarn.lock",
52
+ "readme.md": "authors*, backers*, changelog*, citation*, code_of_conduct*, contributing*, contributors*, copying*, credits*, governance*, history*, license*, maintainers*, release_notes*, security*, sponsors*"
53
53
  },
54
- "editor.defaultFormatter": "esbenp.prettier-vscode",
55
- "editor.formatOnSave": true,
56
54
  "prettier.documentSelectors": [
57
55
  "**/.eslintignore",
58
56
  "**/.node-version",
@@ -64,5 +62,7 @@
64
62
  ],
65
63
  "prettier.enable": true,
66
64
  "stylelint.enable": true,
67
- "stylelint.validate": ["css", "html", "svelte", "astro"]
65
+ "stylelint.validate": ["css", "html", "svelte", "astro"],
66
+ "typescript.enablePromptUseWorkspaceTsdk": true,
67
+ "typescript.tsdk": "node_modules/typescript/lib"
68
68
  }
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 {{author-name}}
3
+ Copyright (c) {{{year}}} {{{author-name}}}
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,26 +1,26 @@
1
1
  {
2
- "name": "{{github-repository}}",
2
+ "name": "{{{github-repository}}}",
3
3
  "version": "0.0.0",
4
- "description": "A {{type}} project.",
4
+ "description": "A {{{type}}} project.",
5
5
  "keywords": [
6
6
  "cli",
7
7
  "npm-package"
8
8
  ],
9
- "homepage": "https://github.com/{{github-owner}}/{{github-repository}}",
10
- "bugs": "https://github.com/{{github-owner}}/{{github-repository}}/issues",
9
+ "homepage": "https://github.com/{{{github-owner}}}/{{{github-repository}}}",
10
+ "bugs": "https://github.com/{{{github-owner}}}/{{{github-repository}}}/issues",
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "git+https://github.com/{{futureGitHubOwner}}/{{github-repository}}.git"
13
+ "url": "git+https://github.com/{{{github-owner}}}/{{{github-repository}}}.git"
14
14
  },
15
15
  "license": "MIT",
16
16
  "author": {
17
- "name": "{{author-name}}",
18
- "email": "{{author-email}}",
19
- "url": "{{author-url}}"
17
+ "name": "{{{author-name}}}",
18
+ "email": "{{{author-email}}}",
19
+ "url": "{{{author-url}}}"
20
20
  },
21
21
  "type": "module",
22
22
  "bin": {
23
- "{{cli-command-name}}": "dist/index.js"
23
+ "{{{cli-command-name}}}": "dist/index.js"
24
24
  },
25
25
  "files": [
26
26
  "dist/*"
@@ -30,27 +30,24 @@
30
30
  "clean": "git rm -f pnpm-lock.yaml ; git clean -fdX",
31
31
  "fix": "ksc fix",
32
32
  "lint": "ksc lint",
33
- "release": "bumpp --commit 'Release: %s' && pnpm run build && NPM_AUTH_TOKEN=$({{npm-auth-command}}) && pnpm publish",
33
+ "release": "bumpp --commit 'Release: %s' && pnpm run build && NPM_AUTH_TOKEN=$({{{npm-auth-command}}}) && pnpm publish",
34
34
  "test": "echo \"Error: no test specified\" && exit 1"
35
35
  },
36
36
  "dependencies": {
37
- "@types/node": "^20.19.24",
38
- "@types/yargs": "^17.0.34",
39
- "lognow": "^0.3.1",
40
- "yargs": "^17.7.2"
37
+ "@types/node": "~20.19.27",
38
+ "@types/yargs": "^17.0.35",
39
+ "lognow": "^0.3.2",
40
+ "yargs": "^18.0.0"
41
41
  },
42
42
  "devDependencies": {
43
- "@kitschpatrol/shared-config": "^5.8.1",
44
- "bumpp": "^10.3.1",
45
- "mdat-plugin-cli-help": "^1.0.2",
46
- "tsdown": "^0.16.0",
43
+ "@kitschpatrol/shared-config": "^5.10.0",
44
+ "bumpp": "^10.3.2",
45
+ "mdat-plugin-cli-help": "^1.0.4",
46
+ "tsdown": "^0.18.3",
47
47
  "typescript": "~5.9.3"
48
48
  },
49
- "packageManager": "pnpm@10.20.0",
49
+ "packageManager": "pnpm@10.26.2",
50
50
  "engines": {
51
51
  "node": ">=20.19.0"
52
- },
53
- "publishConfig": {
54
- "access": "public"
55
52
  }
56
53
  }
@@ -1,4 +1,18 @@
1
+ # Required by @kitschpatrol/shared-config
2
+
1
3
  onlyBuiltDependencies:
2
4
  - esbuild
3
5
  - puppeteer
4
6
  - unrs-resolver
7
+
8
+ publicHoistPattern:
9
+ - '@kitschpatrol/repo-config'
10
+ - '@kitschpatrol/typescript-config'
11
+ - 'case-police'
12
+ - '*cspell*'
13
+ - '*eslint*'
14
+ - '*knip*'
15
+ - '*mdat*'
16
+ - '*prettier*'
17
+ - '*remark*'
18
+ - '*stylelint*'
@@ -1,16 +1,4 @@
1
1
  publish-branch=main
2
2
 
3
- # Required for using @kitschpatrol/shared-config and the ksc command with pnpm
4
- public-hoist-pattern[]=@kitschpatrol/repo-config
5
- public-hoist-pattern[]=@kitschpatrol/typescript-config
6
- public-hoist-pattern[]=case-police
7
- public-hoist-pattern[]=*cspell*
8
- public-hoist-pattern[]=*eslint*
9
- public-hoist-pattern[]=*knip*
10
- public-hoist-pattern[]=*mdat*
11
- public-hoist-pattern[]=*prettier*
12
- public-hoist-pattern[]=*remark*
13
- public-hoist-pattern[]=*stylelint*
14
-
15
3
  # Required for automated local publishing
16
4
  //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}
@@ -1,21 +1,30 @@
1
1
  {
2
- "explorer.fileNesting.enabled": true,
3
- "explorer.fileNesting.expand": false,
4
- "explorer.fileNesting.patterns": {
5
- "*.js": "${basename}.ts.map, ${basename}.js.map, ${basename}.d.ts, ${basename}.d.ts.map, ${basename}.d.js.map",
6
- "*.ts": "${basename}.ts.map, ${basename}.d.ts, ${basename}.d.ts.map",
7
- ".env": ".env.*",
8
- "package.json": ".*ignore, .*rc, .*.js, .*.mjs, .*.cjs, .*.ts, .*.mts, .*.cts, .*.json, .*.jsonc, .*.json5, .*.yml, .*.yaml, *config.js, *config.mjs, *config.cjs, *config.ts, *config.mts, *config.cts, *config.json, *config.jsonc, *config.json5, *config.yml, *config.yaml, pnpm*, workspace*, yarn*, lerna.json, netlify.toml, package-lock.json, turbo.json, vercel.json, wrangler.toml, yarn.lock",
9
- "readme.md": "authors*, backers*, changelog*, citation*, code_of_conduct*, contributing*, contributors*, copying*, credits*, governance*, history*, license*, maintainers*, release_notes*, security*, sponsors*"
2
+ "[astro]": {
3
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
10
4
  },
11
- "typescript.enablePromptUseWorkspaceTsdk": true,
12
- "typescript.tsdk": "node_modules/typescript/lib",
5
+ "[gitignore]": {
6
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
7
+ },
8
+ "[ruby]": {
9
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
10
+ },
11
+ "[shellscript]": {
12
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
13
+ },
14
+ "[svelte]": {
15
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
16
+ },
17
+ "cSpell.enabled": true,
18
+ "cSpell.workspaceRootPath": ".",
13
19
  "editor.codeActionsOnSave": {
14
20
  "source.fixAll": "explicit",
15
21
  "source.organizeImports": "never"
16
22
  },
23
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
24
+ "editor.formatOnSave": true,
17
25
  "eslint.enable": true,
18
26
  "eslint.runtime": "node",
27
+ "eslint.useFlatConfig": true,
19
28
  "eslint.validate": [
20
29
  "astro",
21
30
  "html",
@@ -33,26 +42,15 @@
33
42
  "xml",
34
43
  "yaml"
35
44
  ],
36
- "eslint.useFlatConfig": true,
37
- "cSpell.enabled": true,
38
- "cSpell.workspaceRootPath": ".",
39
- "[astro]": {
40
- "editor.defaultFormatter": "esbenp.prettier-vscode"
41
- },
42
- "[gitignore]": {
43
- "editor.defaultFormatter": "esbenp.prettier-vscode"
44
- },
45
- "[ruby]": {
46
- "editor.defaultFormatter": "esbenp.prettier-vscode"
47
- },
48
- "[shellscript]": {
49
- "editor.defaultFormatter": "esbenp.prettier-vscode"
50
- },
51
- "[svelte]": {
52
- "editor.defaultFormatter": "esbenp.prettier-vscode"
45
+ "explorer.fileNesting.enabled": true,
46
+ "explorer.fileNesting.expand": false,
47
+ "explorer.fileNesting.patterns": {
48
+ ".env": ".env.*, .template.env",
49
+ "*.js": "${basename}.ts.map, ${basename}.js.map, ${basename}.d.ts, ${basename}.d.ts.map, ${basename}.d.js.map",
50
+ "*.ts": "${basename}.ts.map, ${basename}.d.ts, ${basename}.d.ts.map",
51
+ "package.json": ".*ignore, .*rc, .*.js, .*.mjs, .*.cjs, .*.ts, .*.mts, .*.cts, .*.json, .*.jsonc, .*.json5, .*.yml, .*.yaml, *config.js, *config.mjs, *config.cjs, *config.ts, *config.mts, *config.cts, *config.json, *config.jsonc, *config.json5, *config.yml, *config.yaml, pnpm*, workspace*, yarn*, lerna.json, netlify.toml, package-lock.json, turbo.json, vercel.json, wrangler.toml, yarn.lock",
52
+ "readme.md": "authors*, backers*, changelog*, citation*, code_of_conduct*, contributing*, contributors*, copying*, credits*, governance*, history*, license*, maintainers*, release_notes*, security*, sponsors*"
53
53
  },
54
- "editor.defaultFormatter": "esbenp.prettier-vscode",
55
- "editor.formatOnSave": true,
56
54
  "prettier.documentSelectors": [
57
55
  "**/.eslintignore",
58
56
  "**/.node-version",
@@ -64,5 +62,7 @@
64
62
  ],
65
63
  "prettier.enable": true,
66
64
  "stylelint.enable": true,
67
- "stylelint.validate": ["css", "html", "svelte", "astro"]
65
+ "stylelint.validate": ["css", "html", "svelte", "astro"],
66
+ "typescript.enablePromptUseWorkspaceTsdk": true,
67
+ "typescript.tsdk": "node_modules/typescript/lib"
68
68
  }
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 {{author-name}}
3
+ Copyright (c) {{{year}}} {{{author-name}}}
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,22 +1,22 @@
1
1
  {
2
- "name": "{{github-repository}}",
2
+ "name": "{{{github-repository}}}",
3
3
  "version": "0.0.0",
4
- "description": "A {{type}} project.",
4
+ "description": "A {{{type}}} project.",
5
5
  "keywords": [
6
6
  "cli",
7
7
  "npm-package"
8
8
  ],
9
- "homepage": "https://github.com/{{github-owner}}/{{github-repository}}",
10
- "bugs": "https://github.com/{{github-owner}}/{{github-repository}}/issues",
9
+ "homepage": "https://github.com/{{{github-owner}}}/{{{github-repository}}}",
10
+ "bugs": "https://github.com/{{{github-owner}}}/{{{github-repository}}}/issues",
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "git+https://github.com/{{github-owner}}/{{github-repository}}.git"
13
+ "url": "git+https://github.com/{{{github-owner}}}/{{{github-repository}}}.git"
14
14
  },
15
15
  "license": "MIT",
16
16
  "author": {
17
- "name": "{{author-name}}",
18
- "email": "{{author-email}}",
19
- "url": "{{author-url}}"
17
+ "name": "{{{author-name}}}",
18
+ "email": "{{{author-email}}}",
19
+ "url": "{{{author-url}}}"
20
20
  },
21
21
  "type": "module",
22
22
  "exports": {
@@ -28,7 +28,7 @@
28
28
  "main": "./dist/lib/index.js",
29
29
  "module": "./dist/lib/index.js",
30
30
  "bin": {
31
- "{{cli-command-name}}": "dist/bin/cli.js"
31
+ "{{{cli-command-name}}}": "dist/bin/cli.js"
32
32
  },
33
33
  "files": [
34
34
  "dist/*"
@@ -38,27 +38,24 @@
38
38
  "clean": "git rm -f pnpm-lock.yaml ; git clean -fdX",
39
39
  "fix": "ksc fix",
40
40
  "lint": "ksc lint",
41
- "release": "bumpp --commit 'Release: %s' && pnpm run build && NPM_AUTH_TOKEN=$({{npm-auth-command}}) && pnpm publish",
41
+ "release": "bumpp --commit 'Release: %s' && pnpm run build && NPM_AUTH_TOKEN=$({{{npm-auth-command}}}) && pnpm publish",
42
42
  "test": "echo \"Error: no test specified\" && exit 1"
43
43
  },
44
44
  "dependencies": {
45
- "@types/node": "^20.19.24",
46
- "@types/yargs": "^17.0.34",
47
- "lognow": "^0.3.1",
48
- "yargs": "^17.7.2"
45
+ "@types/node": "~20.19.27",
46
+ "@types/yargs": "^17.0.35",
47
+ "lognow": "^0.3.2",
48
+ "yargs": "^18.0.0"
49
49
  },
50
50
  "devDependencies": {
51
- "@kitschpatrol/shared-config": "^5.8.1",
52
- "bumpp": "^10.3.1",
53
- "mdat-plugin-cli-help": "^1.0.2",
54
- "tsdown": "^0.16.0",
51
+ "@kitschpatrol/shared-config": "^5.10.0",
52
+ "bumpp": "^10.3.2",
53
+ "mdat-plugin-cli-help": "^1.0.4",
54
+ "tsdown": "^0.18.3",
55
55
  "typescript": "~5.9.3"
56
56
  },
57
- "packageManager": "pnpm@10.20.0",
57
+ "packageManager": "pnpm@10.26.2",
58
58
  "engines": {
59
59
  "node": ">=20.19.0"
60
- },
61
- "publishConfig": {
62
- "access": "public"
63
60
  }
64
61
  }
@@ -1,4 +1,18 @@
1
+ # Required by @kitschpatrol/shared-config
2
+
1
3
  onlyBuiltDependencies:
2
4
  - esbuild
3
5
  - puppeteer
4
6
  - unrs-resolver
7
+
8
+ publicHoistPattern:
9
+ - '@kitschpatrol/repo-config'
10
+ - '@kitschpatrol/typescript-config'
11
+ - 'case-police'
12
+ - '*cspell*'
13
+ - '*eslint*'
14
+ - '*knip*'
15
+ - '*mdat*'
16
+ - '*prettier*'
17
+ - '*remark*'
18
+ - '*stylelint*'
@@ -1,16 +1,4 @@
1
1
  publish-branch=main
2
2
 
3
- # Required for using @kitschpatrol/shared-config and the ksc command with pnpm
4
- public-hoist-pattern[]=@kitschpatrol/repo-config
5
- public-hoist-pattern[]=@kitschpatrol/typescript-config
6
- public-hoist-pattern[]=case-police
7
- public-hoist-pattern[]=*cspell*
8
- public-hoist-pattern[]=*eslint*
9
- public-hoist-pattern[]=*knip*
10
- public-hoist-pattern[]=*mdat*
11
- public-hoist-pattern[]=*prettier*
12
- public-hoist-pattern[]=*remark*
13
- public-hoist-pattern[]=*stylelint*
14
-
15
3
  # Required for automated local publishing
16
4
  //registry.npmjs.org/:_authToken=${NPM_AUTH_TOKEN}