create-koppajs 1.0.1 → 1.1.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/CHANGELOG.md +105 -0
- package/README.md +169 -131
- package/bin/create-koppajs.js +201 -175
- package/package.json +54 -34
- package/template/AI_CONSTITUTION.md +50 -0
- package/template/ARCHITECTURE.md +86 -0
- package/template/CHANGELOG.md +34 -0
- package/template/CONTRIBUTING.md +92 -0
- package/template/DECISION_HIERARCHY.md +32 -0
- package/template/DEVELOPMENT_RULES.md +57 -0
- package/template/LICENSE +1 -1
- package/template/README.md +241 -49
- package/template/RELEASE.md +230 -0
- package/template/ROADMAP.md +34 -0
- package/template/TESTING_STRATEGY.md +93 -0
- package/template/_editorconfig +12 -0
- package/template/_gitattributes +1 -0
- package/template/_github/instructions/ai-workflow.md +33 -0
- package/template/_github/workflows/ci.yml +38 -0
- package/template/_github/workflows/release.yml +58 -0
- package/template/_gitignore +5 -0
- package/template/_husky/commit-msg +8 -0
- package/template/_husky/pre-commit +1 -0
- package/template/_npmrc +1 -0
- package/template/_prettierignore +7 -0
- package/template/commitlint.config.mjs +6 -0
- package/template/docs/adr/0001-keep-the-starter-minimal.md +32 -0
- package/template/docs/adr/0002-adopt-a-living-meta-layer.md +30 -0
- package/template/docs/adr/0003-normalize-kpa-plugin-output.md +24 -0
- package/template/docs/adr/0004-adopt-an-automated-quality-baseline.md +31 -0
- package/template/docs/adr/0005-adopt-a-tag-driven-release-baseline.md +45 -0
- package/template/docs/adr/0006-adopt-commit-message-conventions.md +39 -0
- package/template/docs/adr/README.md +37 -0
- package/template/docs/adr/TEMPLATE.md +18 -0
- package/template/docs/architecture/module-boundaries.md +48 -0
- package/template/docs/meta/maintenance.md +40 -0
- package/template/docs/quality/quality-gates.md +39 -0
- package/template/docs/specs/README.md +36 -0
- package/template/docs/specs/TEMPLATE.md +34 -0
- package/template/docs/specs/app-bootstrap.md +46 -0
- package/template/docs/specs/counter-component.md +48 -0
- package/template/docs/specs/quality-workflow.md +62 -0
- package/template/eslint.config.mjs +54 -0
- package/template/package.json +57 -6
- package/template/playwright.config.ts +31 -0
- package/template/pnpm-lock.yaml +3784 -0
- package/template/prettier.config.mjs +6 -0
- package/template/src/app-view.kpa +35 -36
- package/template/src/counter-component.kpa +87 -87
- package/template/src/style.css +5 -5
- package/template/tests/e2e/app.spec.ts +18 -0
- package/template/tests/integration/main-bootstrap.test.ts +33 -0
- package/template/tests/unit/normalize-kpa-module-export.test.ts +46 -0
- package/template/tsconfig.json +13 -2
- package/template/vite.config.d.mts +7 -0
- package/template/vite.config.mjs +39 -4
- package/template/vitest.config.mjs +19 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to **create-koppajs** are documented in this file.
|
|
4
|
+
|
|
5
|
+
This project uses a **manual, tag-driven release process**.
|
|
6
|
+
Only tagged versions represent official releases.
|
|
7
|
+
|
|
8
|
+
This changelog documents **intentional milestones and guarantees**,
|
|
9
|
+
not every internal refactor.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## [Unreleased]
|
|
14
|
+
|
|
15
|
+
_No unreleased changes yet._
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## [1.1.0] — Starter & Release Baseline Upgrade
|
|
20
|
+
|
|
21
|
+
**2026-03-17**
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- Added a repository meta layer covering architecture, decision hierarchy,
|
|
26
|
+
testing strategy, specs, ADRs, quality gates, and AI collaboration rules
|
|
27
|
+
- Added a repository-specific `RELEASE.md` aligned with the `koppajs-core`
|
|
28
|
+
release model and this package's npm publish path
|
|
29
|
+
- Added Conventional Commit enforcement with `commitlint`, Husky, and
|
|
30
|
+
`lint-staged`
|
|
31
|
+
- Added repository-level quality scripts for meta checks, syntax checks,
|
|
32
|
+
formatting hygiene, cleanup, and package dry-run validation
|
|
33
|
+
- Added generated-template build verification and wired it into CI and releases
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- Updated contributing guidance to match the actual scripts, workflows, and
|
|
38
|
+
repository responsibilities
|
|
39
|
+
- Expanded smoke coverage for README patching, invalid project names, and
|
|
40
|
+
scaffolding into an existing empty directory
|
|
41
|
+
- Documented the CI meta-layer presence guard in the quality and architecture
|
|
42
|
+
docs
|
|
43
|
+
- Added importable CLI helper coverage with the Node.js built-in test runner
|
|
44
|
+
- Synced the bundled starter template to the current `koppajs-example`
|
|
45
|
+
technical baseline, including quality tooling, meta docs, tests, and release
|
|
46
|
+
files
|
|
47
|
+
- Switched root CI and release workflows to pnpm-based dependency installation
|
|
48
|
+
so the new hook and commit tooling actually runs in automation
|
|
49
|
+
- Isolated the root pre-commit `lint-staged` config from the generated
|
|
50
|
+
starter's own hook tooling so root commits stay reliable
|
|
51
|
+
- Clarified the starter's supported Node.js lines and added an explicit
|
|
52
|
+
validation guard for unsupported runtimes such as Node 23
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## [1.0.1] — License & Metadata Fix
|
|
57
|
+
|
|
58
|
+
**2026-03-01**
|
|
59
|
+
|
|
60
|
+
Patch release to align license with the rest of the KoppaJS ecosystem.
|
|
61
|
+
No CLI or template changes.
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
|
|
65
|
+
- License changed from MIT to Apache License 2.0 (consistent with all KoppaJS projects)
|
|
66
|
+
- Static license badge updated in README
|
|
67
|
+
- Copyright year updated to 2026
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## [1.0.0] — Initial Stable Release
|
|
72
|
+
|
|
73
|
+
**2026-03-01**
|
|
74
|
+
|
|
75
|
+
First stable release of the official KoppaJS project scaffolder.
|
|
76
|
+
|
|
77
|
+
### Features
|
|
78
|
+
|
|
79
|
+
- CLI scaffolder: `pnpm create koppajs my-app`
|
|
80
|
+
- Interactive project name prompt when omitted
|
|
81
|
+
- Complete starter template with Vite, TypeScript, and sample `.kpa` components
|
|
82
|
+
- Supports `pnpm`, `npm`, and `npx`
|
|
83
|
+
- Smoke test suite for generated project validation
|
|
84
|
+
|
|
85
|
+
### Tooling
|
|
86
|
+
|
|
87
|
+
- CI workflow for syntax check and smoke test
|
|
88
|
+
- Tag-driven release workflow for npm publication
|
|
89
|
+
- Code of Conduct and Contributing guidelines
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Versioning Policy
|
|
94
|
+
|
|
95
|
+
- Semantic Versioning (SemVer) is followed pragmatically
|
|
96
|
+
- **Breaking changes** include:
|
|
97
|
+
- CLI behavior changes
|
|
98
|
+
- template structure changes
|
|
99
|
+
- Internal refactors without observable behavior change
|
|
100
|
+
do **not** require a major version bump
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
_This changelog documents intent.
|
|
105
|
+
If something is not written here, it is not guaranteed._
|
package/README.md
CHANGED
|
@@ -1,131 +1,169 @@
|
|
|
1
|
-
<a id="readme-top"></a>
|
|
2
|
-
|
|
3
|
-
<div align="center">
|
|
4
|
-
<img src="https://public-assets-1b57ca06-687a-4142-a525-0635f7649a5c.s3.eu-central-1.amazonaws.com/koppajs/koppajs-logo-text-900x226.png" width="500" alt="KoppaJS Logo">
|
|
5
|
-
</div>
|
|
6
|
-
|
|
7
|
-
<br>
|
|
8
|
-
|
|
9
|
-
<div align="center">
|
|
10
|
-
<a href="https://www.npmjs.com/package/create-koppajs"><img src="https://img.shields.io/npm/v/create-koppajs?style=flat-square" alt="npm version"></a>
|
|
11
|
-
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"></a>
|
|
12
|
-
</div>
|
|
13
|
-
|
|
14
|
-
<br>
|
|
15
|
-
|
|
16
|
-
<div align="center">
|
|
17
|
-
<h1 align="center">create-koppajs</h1>
|
|
18
|
-
<h3 align="center">Scaffold a new KoppaJS project in seconds</h3>
|
|
19
|
-
<p align="center">
|
|
20
|
-
<i>The fastest way to start building with KoppaJS.</i>
|
|
21
|
-
</p>
|
|
22
|
-
</div>
|
|
23
|
-
|
|
24
|
-
<br>
|
|
25
|
-
|
|
26
|
-
<div align="center">
|
|
27
|
-
<p align="center">
|
|
28
|
-
<a href="https://github.com/koppajs/koppajs-documentation">Documentation</a>
|
|
29
|
-
·
|
|
30
|
-
<a href="https://github.com/koppajs/koppajs-core">KoppaJS Core</a>
|
|
31
|
-
·
|
|
32
|
-
<a href="https://github.com/koppajs/koppajs-vite-plugin">Vite Plugin</a>
|
|
33
|
-
·
|
|
34
|
-
<a href="https://github.com/koppajs/create-koppajs/issues">Issues</a>
|
|
35
|
-
</p>
|
|
36
|
-
</div>
|
|
37
|
-
|
|
38
|
-
<br>
|
|
39
|
-
|
|
40
|
-
<details>
|
|
41
|
-
<summary>Table of Contents</summary>
|
|
42
|
-
<ol>
|
|
43
|
-
<li><a href="#what-is-this">What is this?</a></li>
|
|
44
|
-
<li><a href="#usage">Usage</a></li>
|
|
45
|
-
<li><a href="#what-gets-generated">What gets generated</a></li>
|
|
46
|
-
<li><a href="#requirements">Requirements</a></li>
|
|
47
|
-
<li><a href="#
|
|
48
|
-
<li><a href="#
|
|
49
|
-
|
|
50
|
-
</
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
pnpm
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
├──
|
|
94
|
-
├──
|
|
95
|
-
├──
|
|
96
|
-
├──
|
|
97
|
-
├──
|
|
98
|
-
├──
|
|
99
|
-
├──
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
1
|
+
<a id="readme-top"></a>
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
<img src="https://public-assets-1b57ca06-687a-4142-a525-0635f7649a5c.s3.eu-central-1.amazonaws.com/koppajs/koppajs-logo-text-900x226.png" width="500" alt="KoppaJS Logo">
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<br>
|
|
8
|
+
|
|
9
|
+
<div align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/create-koppajs"><img src="https://img.shields.io/npm/v/create-koppajs?style=flat-square" alt="npm version"></a>
|
|
11
|
+
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"></a>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<br>
|
|
15
|
+
|
|
16
|
+
<div align="center">
|
|
17
|
+
<h1 align="center">create-koppajs</h1>
|
|
18
|
+
<h3 align="center">Scaffold a new KoppaJS project in seconds</h3>
|
|
19
|
+
<p align="center">
|
|
20
|
+
<i>The fastest way to start building with KoppaJS.</i>
|
|
21
|
+
</p>
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
<br>
|
|
25
|
+
|
|
26
|
+
<div align="center">
|
|
27
|
+
<p align="center">
|
|
28
|
+
<a href="https://github.com/koppajs/koppajs-documentation">Documentation</a>
|
|
29
|
+
·
|
|
30
|
+
<a href="https://github.com/koppajs/koppajs-core">KoppaJS Core</a>
|
|
31
|
+
·
|
|
32
|
+
<a href="https://github.com/koppajs/koppajs-vite-plugin">Vite Plugin</a>
|
|
33
|
+
·
|
|
34
|
+
<a href="https://github.com/koppajs/create-koppajs/issues">Issues</a>
|
|
35
|
+
</p>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<br>
|
|
39
|
+
|
|
40
|
+
<details>
|
|
41
|
+
<summary>Table of Contents</summary>
|
|
42
|
+
<ol>
|
|
43
|
+
<li><a href="#what-is-this">What is this?</a></li>
|
|
44
|
+
<li><a href="#usage">Usage</a></li>
|
|
45
|
+
<li><a href="#what-gets-generated">What gets generated</a></li>
|
|
46
|
+
<li><a href="#requirements">Requirements</a></li>
|
|
47
|
+
<li><a href="#release--governance">Release & Governance</a></li>
|
|
48
|
+
<li><a href="#community--contribution">Community & Contribution</a></li>
|
|
49
|
+
<li><a href="#license">License</a></li>
|
|
50
|
+
</ol>
|
|
51
|
+
</details>
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## What is this?
|
|
56
|
+
|
|
57
|
+
`create-koppajs` is the **official project scaffolder** for KoppaJS.
|
|
58
|
+
|
|
59
|
+
It creates a ready-to-run starter project with a single command — no configuration, no dependencies to install first, no boilerplate to write by hand.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Usage
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pnpm create koppajs my-app
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm create koppajs my-app
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npx create-koppajs my-app
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Then:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cd my-app
|
|
81
|
+
pnpm install
|
|
82
|
+
pnpm dev
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
If you omit the project name, the CLI will prompt you for one.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## What gets generated
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
my-app/
|
|
93
|
+
├── .github/
|
|
94
|
+
├── .husky/
|
|
95
|
+
├── docs/
|
|
96
|
+
├── tests/
|
|
97
|
+
├── CHANGELOG.md
|
|
98
|
+
├── RELEASE.md
|
|
99
|
+
├── AI_CONSTITUTION.md
|
|
100
|
+
├── ARCHITECTURE.md
|
|
101
|
+
├── package.json
|
|
102
|
+
├── .gitignore
|
|
103
|
+
├── README.md
|
|
104
|
+
├── vite.config.mjs
|
|
105
|
+
├── vitest.config.mjs
|
|
106
|
+
├── playwright.config.ts
|
|
107
|
+
├── tsconfig.json
|
|
108
|
+
├── pnpm-lock.yaml
|
|
109
|
+
├── LICENSE
|
|
110
|
+
├── public/
|
|
111
|
+
│ └── favicon.svg
|
|
112
|
+
└── src/
|
|
113
|
+
├── main.ts
|
|
114
|
+
├── style.css
|
|
115
|
+
├── app-view.kpa
|
|
116
|
+
└── counter-component.kpa
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
- **Vite** as dev server and bundler
|
|
120
|
+
- **TypeScript**, **ESLint**, **Prettier**, **Vitest**, and **Playwright**
|
|
121
|
+
- **GitHub workflows**, **Husky**, **lint-staged**, and **Conventional Commits**
|
|
122
|
+
- **Meta-layer docs**, ADRs, specs, and a release baseline
|
|
123
|
+
- **Two sample components** (app view + counter) aligned with the current
|
|
124
|
+
`koppajs-example` starter
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Requirements
|
|
129
|
+
|
|
130
|
+
- `create-koppajs`: Node.js >= 20
|
|
131
|
+
- Generated starter workflow: pnpm >= 10 plus a starter-supported Node.js line
|
|
132
|
+
(currently 20.19+, 22.13+, or 24+)
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Release & Governance
|
|
137
|
+
|
|
138
|
+
The scaffolded starter now ships with the same quality and governance baseline
|
|
139
|
+
as the current official `koppajs-example`, adapted for generated projects:
|
|
140
|
+
|
|
141
|
+
- explicit meta docs and ADR/spec structure
|
|
142
|
+
- tag-driven `CHANGELOG.md` plus `RELEASE.md`
|
|
143
|
+
- Conventional Commit enforcement via `commitlint`
|
|
144
|
+
- a generated-project CI/release baseline under `.github/workflows`
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Community & Contribution
|
|
149
|
+
|
|
150
|
+
Issues and pull requests are welcome:
|
|
151
|
+
|
|
152
|
+
https://github.com/koppajs/create-koppajs/issues
|
|
153
|
+
|
|
154
|
+
## Governance & Architecture
|
|
155
|
+
|
|
156
|
+
Repository design and maintenance rules live in the meta layer:
|
|
157
|
+
|
|
158
|
+
- [AI_CONSTITUTION.md](./AI_CONSTITUTION.md)
|
|
159
|
+
- [ARCHITECTURE.md](./ARCHITECTURE.md)
|
|
160
|
+
- [DEVELOPMENT_RULES.md](./DEVELOPMENT_RULES.md)
|
|
161
|
+
- [TESTING_STRATEGY.md](./TESTING_STRATEGY.md)
|
|
162
|
+
- [RELEASE.md](./RELEASE.md)
|
|
163
|
+
- [docs/meta/README.md](./docs/meta/README.md)
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## License
|
|
168
|
+
|
|
169
|
+
Apache-2.0 — © 2026 KoppaJS, Bastian Bensch
|