@kitschpatrol/create-project 1.0.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.
- package/.github/workflows/github-release.yml +81 -0
- package/.github/workflows/set-github-metadata.yml +21 -0
- package/.prettierignore +8 -0
- package/.remarkrc.js +5 -0
- package/.vscode/extensions.json +11 -0
- package/.vscode/settings.json +66 -0
- package/cspell.config.js +3 -0
- package/dist/index.js +3602 -0
- package/eslint.config.ts +19 -0
- package/knip.config.ts +5 -0
- package/license.txt +21 -0
- package/mdat.config.ts +3 -0
- package/package.json +49 -0
- package/pnpm-workspace.yaml +7 -0
- package/prettier.config.js +3 -0
- package/readme.md +98 -0
- package/src/index.ts +9 -0
- package/src/template.ts +72 -0
- package/stylelint.config.js +3 -0
- package/templates/cli/.github/workflows/github-release.yml +81 -0
- package/templates/cli/.github/workflows/set-github-metadata.yml +21 -0
- package/templates/cli/.prettierignore +8 -0
- package/templates/cli/.remarkrc.js +6 -0
- package/templates/cli/.vscode/extensions.json +8 -0
- package/templates/cli/.vscode/settings.json +68 -0
- package/templates/cli/cspell.config.js +3 -0
- package/templates/cli/eslint.config.ts +5 -0
- package/templates/cli/knip.config.ts +3 -0
- package/templates/cli/license.txt +21 -0
- package/templates/cli/mdat.config.ts +3 -0
- package/templates/cli/package.json +54 -0
- package/templates/cli/prettier.config.js +3 -0
- package/templates/cli/readme.md +45 -0
- package/templates/cli/src/index.ts +30 -0
- package/templates/cli/tsconfig.json +7 -0
- package/templates/cli+library/.github/workflows/github-release.yml +81 -0
- package/templates/cli+library/.github/workflows/set-github-metadata.yml +21 -0
- package/templates/cli+library/.prettierignore +8 -0
- package/templates/cli+library/.remarkrc.js +6 -0
- package/templates/cli+library/.vscode/extensions.json +8 -0
- package/templates/cli+library/.vscode/settings.json +68 -0
- package/templates/cli+library/cspell.config.js +3 -0
- package/templates/cli+library/eslint.config.ts +5 -0
- package/templates/cli+library/knip.config.ts +3 -0
- package/templates/cli+library/license.txt +21 -0
- package/templates/cli+library/mdat.config.ts +3 -0
- package/templates/cli+library/package.json +62 -0
- package/templates/cli+library/prettier.config.js +3 -0
- package/templates/cli+library/readme.md +53 -0
- package/templates/cli+library/src/bin/cli.ts +42 -0
- package/templates/cli+library/src/lib/index.ts +13 -0
- package/templates/cli+library/tsconfig.build.json +8 -0
- package/templates/cli+library/tsconfig.json +7 -0
- package/templates/cli+library/tsdown.config.ts +17 -0
- package/templates/library/.github/workflows/github-release.yml +81 -0
- package/templates/library/.github/workflows/set-github-metadata.yml +21 -0
- package/templates/library/.prettierignore +8 -0
- package/templates/library/.remarkrc.js +6 -0
- package/templates/library/.vscode/extensions.json +8 -0
- package/templates/library/.vscode/settings.json +68 -0
- package/templates/library/cspell.config.js +3 -0
- package/templates/library/eslint.config.ts +5 -0
- package/templates/library/knip.config.ts +3 -0
- package/templates/library/license.txt +21 -0
- package/templates/library/mdat.config.ts +3 -0
- package/templates/library/package.json +58 -0
- package/templates/library/prettier.config.js +3 -0
- package/templates/library/readme.md +43 -0
- package/templates/library/src/index.ts +13 -0
- package/templates/library/tsconfig.build.json +8 -0
- package/templates/library/tsconfig.json +7 -0
- package/templates/minimal/.github/workflows/github-release.yml +81 -0
- package/templates/minimal/.github/workflows/set-github-metadata.yml +21 -0
- package/templates/minimal/.prettierignore +8 -0
- package/templates/minimal/.remarkrc.js +6 -0
- package/templates/minimal/.vscode/extensions.json +9 -0
- package/templates/minimal/.vscode/settings.json +68 -0
- package/templates/minimal/cspell.config.js +3 -0
- package/templates/minimal/eslint.config.ts +5 -0
- package/templates/minimal/knip.config.ts +3 -0
- package/templates/minimal/license.txt +21 -0
- package/templates/minimal/mdat.config.ts +3 -0
- package/templates/minimal/package.json +46 -0
- package/templates/minimal/prettier.config.js +3 -0
- package/templates/minimal/readme.md +27 -0
- package/templates/minimal/script.ts +1 -0
- package/templates/minimal/stylelint.config.js +3 -0
- package/templates/minimal/tsconfig.build.json +8 -0
- package/templates/minimal/tsconfig.json +7 -0
- package/templates/web/.github/workflows/github-release.yml +81 -0
- package/templates/web/.github/workflows/set-github-metadata.yml +21 -0
- package/templates/web/.prettierignore +8 -0
- package/templates/web/.remarkrc.js +6 -0
- package/templates/web/.vscode/extensions.json +9 -0
- package/templates/web/.vscode/settings.json +68 -0
- package/templates/web/cspell.config.js +3 -0
- package/templates/web/eslint.config.ts +5 -0
- package/templates/web/index.html +13 -0
- package/templates/web/knip.config.ts +3 -0
- package/templates/web/license.txt +21 -0
- package/templates/web/mdat.config.ts +3 -0
- package/templates/web/package.json +52 -0
- package/templates/web/prettier.config.js +3 -0
- package/templates/web/public/vite.svg +35 -0
- package/templates/web/readme.md +27 -0
- package/templates/web/src/counter.ts +15 -0
- package/templates/web/src/main.ts +24 -0
- package/templates/web/src/style.css +102 -0
- package/templates/web/src/typescript.svg +14 -0
- package/templates/web/stylelint.config.js +3 -0
- package/templates/web/tsconfig.build.json +8 -0
- package/templates/web/tsconfig.json +7 -0
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +7 -0
package/eslint.config.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { eslintConfig } from '@kitschpatrol/eslint-config'
|
|
2
|
+
|
|
3
|
+
export default eslintConfig(
|
|
4
|
+
{
|
|
5
|
+
// Enable as needed:
|
|
6
|
+
// astro: true,
|
|
7
|
+
// react: true,
|
|
8
|
+
// svelte: true,
|
|
9
|
+
type: 'lib',
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
basePath: 'templates/cli',
|
|
13
|
+
files: ['package.json'],
|
|
14
|
+
rules: {
|
|
15
|
+
'json-package/valid-author': 'off',
|
|
16
|
+
'json-package/valid-name': 'off',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
)
|
package/knip.config.ts
ADDED
package/license.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Eric Mika
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/mdat.config.ts
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kitschpatrol/create-project",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Kitschpatrol's TypeScript project templates.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"cli",
|
|
7
|
+
"template",
|
|
8
|
+
"bingo"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://github.com/kitschpatrol/create-project",
|
|
11
|
+
"bugs": "https://github.com/kitschpatrol/create-project/issues",
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/kitschpatrol/create-project.git"
|
|
15
|
+
},
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"author": {
|
|
18
|
+
"name": "Eric Mika",
|
|
19
|
+
"email": "eric@ericmika.com",
|
|
20
|
+
"url": "https://ericmika.com"
|
|
21
|
+
},
|
|
22
|
+
"type": "module",
|
|
23
|
+
"bin": "dist/index.js",
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"bingo": "^0.5.16",
|
|
26
|
+
"bingo-fs": "^0.5.5",
|
|
27
|
+
"bingo-handlebars": "^0.1.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@kitschpatrol/shared-config": "^5.7.2",
|
|
31
|
+
"bumpp": "^10.3.1",
|
|
32
|
+
"tsdown": "^0.15.7",
|
|
33
|
+
"typescript": "~5.9.3",
|
|
34
|
+
"zod": "^3.25.76"
|
|
35
|
+
},
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=20.19.0"
|
|
38
|
+
},
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"build": "tsdown",
|
|
44
|
+
"clean": "git rm -f pnpm-lock.yaml ; git clean -fdX",
|
|
45
|
+
"fix": "ksc fix",
|
|
46
|
+
"lint": "ksc lint",
|
|
47
|
+
"release": "bumpp --commit 'Release: %s' && pnpm run build && pnpm publish --otp $(op read 'op://Personal/Npmjs/one-time password?attribute=otp')"
|
|
48
|
+
}
|
|
49
|
+
}
|
package/readme.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<!--+ Warning: Content inside HTML comment blocks was generated by mdat and may be overwritten. +-->
|
|
2
|
+
|
|
3
|
+
<!-- title -->
|
|
4
|
+
|
|
5
|
+
# @kitschpatrol/create-project
|
|
6
|
+
|
|
7
|
+
<!-- /title -->
|
|
8
|
+
|
|
9
|
+
<!-- badges -->
|
|
10
|
+
|
|
11
|
+
[](https://npmjs.com/package/@kitschpatrol/create-project)
|
|
12
|
+
[](https://opensource.org/licenses/MIT)
|
|
13
|
+
|
|
14
|
+
<!-- /badges -->
|
|
15
|
+
|
|
16
|
+
<!-- short-description -->
|
|
17
|
+
|
|
18
|
+
**Kitschpatrol's TypeScript project templates.**
|
|
19
|
+
|
|
20
|
+
<!-- /short-description -->
|
|
21
|
+
|
|
22
|
+
## Overview
|
|
23
|
+
|
|
24
|
+
This repository contains very basic starter templates for TypeScript projects integrating [@kitschpatrol/shared-config](https://github.com/kitschpatrol/shared-config).
|
|
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.
|
|
27
|
+
|
|
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
|
+
|
|
30
|
+
## Getting started
|
|
31
|
+
|
|
32
|
+
### Dependencies
|
|
33
|
+
|
|
34
|
+
[Node.js](https://nodejs.org/) 20.19.0 or higher and [pnpm](https://pnpm.io/) are required.
|
|
35
|
+
|
|
36
|
+
## Usage
|
|
37
|
+
|
|
38
|
+
### Create a new project
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
pnpm create @kitschpatrol/project
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### CLI options
|
|
45
|
+
|
|
46
|
+
```txt
|
|
47
|
+
Bingo template options:
|
|
48
|
+
|
|
49
|
+
--directory (string): What local directory path to run under
|
|
50
|
+
npx new-project --directory my-fancy-project
|
|
51
|
+
|
|
52
|
+
--help (string): Prints help text.
|
|
53
|
+
npx new-project --help
|
|
54
|
+
|
|
55
|
+
--mode ("setup" | "transition"): Which mode to run in.
|
|
56
|
+
npx new-project --mode setup
|
|
57
|
+
npx new-project --mode transition
|
|
58
|
+
|
|
59
|
+
--offline (boolean): Whether to run in an "offline" mode that skips network requests.
|
|
60
|
+
npx new-project --offline
|
|
61
|
+
|
|
62
|
+
--version (boolean): Prints package versions.
|
|
63
|
+
npx new-project --version
|
|
64
|
+
|
|
65
|
+
Kitschpatrol Create Project options:
|
|
66
|
+
|
|
67
|
+
--type (enum): The type of project to create.
|
|
68
|
+
--author-name (string): The name of the author.
|
|
69
|
+
--author-email (string): The email of the author.
|
|
70
|
+
--author-url (string): The URL of the author.
|
|
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.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Maintainers
|
|
77
|
+
|
|
78
|
+
[@kitschpatrol](https://github.com/kitschpatrol)
|
|
79
|
+
|
|
80
|
+
## Acknowledgments
|
|
81
|
+
|
|
82
|
+
Thanks to [Josh Goldberg](https://www.joshuakgoldberg.com/) for creating the [Bingo](https://www.create.bingo/) template system.
|
|
83
|
+
|
|
84
|
+
<!-- contributing -->
|
|
85
|
+
|
|
86
|
+
## Contributing
|
|
87
|
+
|
|
88
|
+
[Issues](https://github.com/kitschpatrol/create-project/issues) and pull requests are welcome.
|
|
89
|
+
|
|
90
|
+
<!-- /contributing -->
|
|
91
|
+
|
|
92
|
+
<!-- license -->
|
|
93
|
+
|
|
94
|
+
## License
|
|
95
|
+
|
|
96
|
+
[MIT](license.txt) © Eric Mika
|
|
97
|
+
|
|
98
|
+
<!-- /license -->
|
package/src/index.ts
ADDED
package/src/template.ts
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/* eslint-disable node/no-unsupported-features/node-builtins */
|
|
2
|
+
|
|
3
|
+
import { createTemplate } from 'bingo'
|
|
4
|
+
import { intakeDirectory } from 'bingo-fs'
|
|
5
|
+
import { handlebars } from 'bingo-handlebars'
|
|
6
|
+
import path from 'node:path'
|
|
7
|
+
import { z } from 'zod'
|
|
8
|
+
|
|
9
|
+
export default createTemplate({
|
|
10
|
+
about: {
|
|
11
|
+
name: 'Kitschpatrol Create Project',
|
|
12
|
+
// Show template origin in GitHub... don't want this right now
|
|
13
|
+
// repository: {
|
|
14
|
+
// owner: 'kitschpatrol',
|
|
15
|
+
// repository: 'https://github.com/kitschpatrol/create-project',
|
|
16
|
+
// },
|
|
17
|
+
},
|
|
18
|
+
options: {
|
|
19
|
+
/* eslint-disable perfectionist/sort-objects */
|
|
20
|
+
type: z
|
|
21
|
+
.enum(['minimal', 'web', 'cli', 'library', 'cli+library'])
|
|
22
|
+
.default('minimal')
|
|
23
|
+
.describe('The type of project to create'),
|
|
24
|
+
'author-name': z.string().default('Eric Mika').describe('The name of the author'),
|
|
25
|
+
'author-email': z.string().default('eric@ericmika.com').describe('The email of the author'),
|
|
26
|
+
'author-url': z.string().default('https://ericmika.com').describe('The URL of the author'),
|
|
27
|
+
'cli-command-name': z
|
|
28
|
+
.string()
|
|
29
|
+
.default('new-project')
|
|
30
|
+
.describe('CLI command name (if applicable)'),
|
|
31
|
+
// "Future" prefix prevents Bingo from creating a GitHub repository
|
|
32
|
+
// Pending resolution of https://github.com/bingo-js/bingo/issues/365
|
|
33
|
+
'github-owner': z
|
|
34
|
+
.string()
|
|
35
|
+
.default('kitschpatrol')
|
|
36
|
+
.describe('The owner of the future repository'),
|
|
37
|
+
'github-repository': z
|
|
38
|
+
.string()
|
|
39
|
+
.default(`new-project`)
|
|
40
|
+
.describe('The name of the future repository / package'),
|
|
41
|
+
'npm-otp-command': z
|
|
42
|
+
.string()
|
|
43
|
+
.default("op read 'op://Personal/Npmjs/one-time password?attribute=otp'")
|
|
44
|
+
.describe('A shell command that returns your one-time password for publishing to npm'),
|
|
45
|
+
/* eslint-enable perfectionist/sort-objects */
|
|
46
|
+
},
|
|
47
|
+
async produce(params) {
|
|
48
|
+
const { options } = params
|
|
49
|
+
|
|
50
|
+
return {
|
|
51
|
+
files: {
|
|
52
|
+
...(await intakeDirectory(path.join(import.meta.dirname, `../templates/${options.type}`), {
|
|
53
|
+
exclude: /node_modules|pnpm-lock\.yaml/,
|
|
54
|
+
})),
|
|
55
|
+
'license.txt': await handlebars(
|
|
56
|
+
path.join(import.meta.dirname, `../templates/${options.type}/license.txt`),
|
|
57
|
+
options,
|
|
58
|
+
),
|
|
59
|
+
'package.json': await handlebars(
|
|
60
|
+
path.join(import.meta.dirname, `../templates/${options.type}/package.json`),
|
|
61
|
+
options,
|
|
62
|
+
),
|
|
63
|
+
},
|
|
64
|
+
scripts: [
|
|
65
|
+
{
|
|
66
|
+
commands: ['pnpm install', 'pnpm run build', 'pnpm run fix'],
|
|
67
|
+
phase: 0,
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
})
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
name: Create GitHub Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v[0-9]*'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
name: Create Release
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
env:
|
|
13
|
+
ACCESS_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN || secrets.GITHUB_TOKEN }}
|
|
14
|
+
IS_VALID_COMMIT: false
|
|
15
|
+
TAG_NAME: ''
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout
|
|
19
|
+
uses: actions/checkout@v4
|
|
20
|
+
with:
|
|
21
|
+
fetch-depth: 0
|
|
22
|
+
|
|
23
|
+
- name: Log Token Type
|
|
24
|
+
run: |
|
|
25
|
+
if [ ${{ env.ACCESS_TOKEN }} == ${{ secrets.GITHUB_TOKEN }} ]; then
|
|
26
|
+
echo "🗝️ Authenticated with GitHub Token"
|
|
27
|
+
else
|
|
28
|
+
echo "🔑 Authenticated with Personal Access token"
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
- name: Validate Tag and Branch
|
|
32
|
+
id: validation
|
|
33
|
+
run: |
|
|
34
|
+
TAG=$(git tag --contains HEAD | grep '^v[0-9]' | head -n 1)
|
|
35
|
+
echo "🏷️ Tag for commit is: $TAG"
|
|
36
|
+
BRANCH=$(git branch -r --contains tags/${GITHUB_REF_NAME} | grep 'origin/main' | xargs)
|
|
37
|
+
if [[ -z "$BRANCH" ]]; then
|
|
38
|
+
echo "🚨 Tag is not on main branch"
|
|
39
|
+
else
|
|
40
|
+
echo "🕊️ Current branch is: $BRANCH"
|
|
41
|
+
fi
|
|
42
|
+
if [[ -z "$TAG" || -z "$BRANCH" ]]; then
|
|
43
|
+
echo "IS_VALID_COMMIT=false" >> "$GITHUB_ENV"
|
|
44
|
+
echo "TAG_NAME=''" >> "$GITHUB_ENV"
|
|
45
|
+
else
|
|
46
|
+
echo "IS_VALID_COMMIT=true" >> "$GITHUB_ENV"
|
|
47
|
+
echo "TAG_NAME=$TAG" >> "$GITHUB_ENV"
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
- name: Release Notes
|
|
51
|
+
if: env.IS_VALID_COMMIT == 'true'
|
|
52
|
+
id: release-notes
|
|
53
|
+
uses: kitschpatrol/github-action-release-changelog@v2
|
|
54
|
+
|
|
55
|
+
- name: Release
|
|
56
|
+
if: env.IS_VALID_COMMIT == 'true'
|
|
57
|
+
id: release
|
|
58
|
+
uses: kitschpatrol/github-action-release@v2
|
|
59
|
+
with:
|
|
60
|
+
token: ${{ env.ACCESS_TOKEN }}
|
|
61
|
+
draft: false
|
|
62
|
+
prerelease: false
|
|
63
|
+
name: ${{ env.TAG_NAME }}
|
|
64
|
+
tag_name: ${{ env.TAG_NAME }}
|
|
65
|
+
body: |
|
|
66
|
+
${{ steps.release-notes.outputs.changelog }}
|
|
67
|
+
files: |
|
|
68
|
+
readme.md
|
|
69
|
+
README.md
|
|
70
|
+
LICENSE
|
|
71
|
+
license.txt
|
|
72
|
+
CHANGELOG
|
|
73
|
+
CHANGELOG.md
|
|
74
|
+
changelog.md
|
|
75
|
+
|
|
76
|
+
- name: Log Release Details
|
|
77
|
+
if: env.IS_VALID_COMMIT == 'true'
|
|
78
|
+
run: |
|
|
79
|
+
echo "📦 Successfully released: ${{ env.TAG_NAME }}"
|
|
80
|
+
echo "🔗 Release URL: ${{ steps.release.outputs.url }}"
|
|
81
|
+
echo "🪪 Release ID: ${{ steps.release.outputs.id }}"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Set GitHub Metadata
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches: [main]
|
|
5
|
+
workflow_dispatch: {}
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
build:
|
|
9
|
+
name: Set GitHub Metadata
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
|
|
18
|
+
- name: Sync Package info to GitHub
|
|
19
|
+
uses: kitschpatrol/github-action-repo-sync@v3
|
|
20
|
+
with:
|
|
21
|
+
TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"explorer.fileNesting.enabled": true,
|
|
3
|
+
"explorer.fileNesting.expand": false,
|
|
4
|
+
"explorer.fileNesting.patterns": {
|
|
5
|
+
"*.js": "*.ts.map, *.js.map, *.d.ts, *.d.ts.map, *.d.js.map",
|
|
6
|
+
"*.ts": "*.ts.map, *.d.ts, *.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*"
|
|
10
|
+
},
|
|
11
|
+
"typescript.enablePromptUseWorkspaceTsdk": true,
|
|
12
|
+
"typescript.tsdk": "node_modules/typescript/lib",
|
|
13
|
+
"editor.codeActionsOnSave": {
|
|
14
|
+
"source.fixAll": "explicit",
|
|
15
|
+
"source.organizeImports": "never"
|
|
16
|
+
},
|
|
17
|
+
"eslint.enable": true,
|
|
18
|
+
"eslint.runtime": "node",
|
|
19
|
+
"eslint.validate": [
|
|
20
|
+
"astro",
|
|
21
|
+
"html",
|
|
22
|
+
"javascript",
|
|
23
|
+
"javascriptreact",
|
|
24
|
+
"json",
|
|
25
|
+
"json5",
|
|
26
|
+
"jsonc",
|
|
27
|
+
"markdown",
|
|
28
|
+
"mdx",
|
|
29
|
+
"svelte",
|
|
30
|
+
"toml",
|
|
31
|
+
"typescript",
|
|
32
|
+
"typescriptreact",
|
|
33
|
+
"xml",
|
|
34
|
+
"yaml"
|
|
35
|
+
],
|
|
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"
|
|
53
|
+
},
|
|
54
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
55
|
+
"editor.formatOnSave": true,
|
|
56
|
+
"prettier.documentSelectors": [
|
|
57
|
+
"**/.eslintignore",
|
|
58
|
+
"**/.node-version",
|
|
59
|
+
"**/.npmrc",
|
|
60
|
+
"**/.prettierignore",
|
|
61
|
+
"**/*.astro",
|
|
62
|
+
"**/*.rb",
|
|
63
|
+
"**/*.svelte"
|
|
64
|
+
],
|
|
65
|
+
"prettier.enable": true,
|
|
66
|
+
"stylelint.enable": true,
|
|
67
|
+
"stylelint.validate": ["css", "html", "svelte", "astro"]
|
|
68
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 {{author-name}}
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{github-repository}}",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "A {{type}} project.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"cli",
|
|
7
|
+
"npm-package"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://github.com/{{github-owner}}/{{github-repository}}",
|
|
10
|
+
"bugs": "https://github.com/{{github-owner}}/{{github-repository}}/issues",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/{{futureGitHubOwner}}/{{github-repository}}.git"
|
|
14
|
+
},
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"author": {
|
|
17
|
+
"name": "{{author-name}}",
|
|
18
|
+
"email": "{{author-email}}",
|
|
19
|
+
"url": "{{author-url}}"
|
|
20
|
+
},
|
|
21
|
+
"type": "module",
|
|
22
|
+
"bin": {
|
|
23
|
+
"{{cli-command-name}}": "dist/index.js"
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist/*"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "tsdown --dts false",
|
|
30
|
+
"clean": "git rm -f pnpm-lock.yaml ; git clean -fdX",
|
|
31
|
+
"fix": "ksc fix",
|
|
32
|
+
"lint": "ksc lint",
|
|
33
|
+
"release": "bumpp --commit 'Release: %s' && pnpm run build && pnpm publish --otp $({{npm-otp-command}})",
|
|
34
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@types/node": "^20.19.21",
|
|
38
|
+
"@types/yargs": "^17.0.33",
|
|
39
|
+
"yargs": "^17.7.2"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@kitschpatrol/shared-config": "^5.7.2",
|
|
43
|
+
"bumpp": "^10.3.1",
|
|
44
|
+
"tsdown": "^0.15.7",
|
|
45
|
+
"typescript": "~5.9.3"
|
|
46
|
+
},
|
|
47
|
+
"packageManager": "pnpm@10.18.3",
|
|
48
|
+
"engines": {
|
|
49
|
+
"node": ">=20.19.0"
|
|
50
|
+
},
|
|
51
|
+
"publishConfig": {
|
|
52
|
+
"access": "public"
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!--+ Warning: Content inside HTML comment blocks was generated by mdat and may be overwritten. +-->
|
|
2
|
+
|
|
3
|
+
<!-- title -->
|
|
4
|
+
|
|
5
|
+
<!-- badges -->
|
|
6
|
+
|
|
7
|
+
<!-- short-description -->
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
## Getting started
|
|
12
|
+
|
|
13
|
+
### Dependencies
|
|
14
|
+
|
|
15
|
+
### Installation
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
### CLI
|
|
20
|
+
|
|
21
|
+
<!-- cli-help -->
|
|
22
|
+
|
|
23
|
+
### Examples
|
|
24
|
+
|
|
25
|
+
## Background
|
|
26
|
+
|
|
27
|
+
### Motivation
|
|
28
|
+
|
|
29
|
+
### Implementation notes
|
|
30
|
+
|
|
31
|
+
### Similar projects
|
|
32
|
+
|
|
33
|
+
## The future
|
|
34
|
+
|
|
35
|
+
## Maintainers
|
|
36
|
+
|
|
37
|
+
_List maintainer(s) for a repository, along with one way of contacting them (e.g. GitHub link or email)._
|
|
38
|
+
|
|
39
|
+
## Acknowledgments
|
|
40
|
+
|
|
41
|
+
_State anyone or anything that significantly helped with the development of your project. State public contact hyper-links if applicable._
|
|
42
|
+
|
|
43
|
+
<!-- contributing -->
|
|
44
|
+
|
|
45
|
+
<!-- license -->
|