create-koppajs 1.2.2 → 1.2.4
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 +57 -0
- package/README.md +13 -12
- package/bin/create-koppajs.js +4 -24
- package/package.json +4 -4
- package/template/README.md +18 -208
- package/template/index.html +1 -1
- package/template/package.json +9 -46
- package/template/public/favicon.png +0 -0
- package/template/public/koppajs-logo.png +0 -0
- package/template/src/app-view.kpa +1 -3
- package/template/tsconfig.json +2 -9
- package/template-overlays/router/README.md +24 -202
- package/template-overlays/router/index.html +1 -1
- package/template-overlays/router/package.json +10 -47
- package/template-overlays/router/src/app-view.kpa +21 -78
- package/template-overlays/router/src/home-page.kpa +23 -60
- package/template-overlays/router/src/main.ts +0 -9
- package/template-overlays/router/src/not-found-page.kpa +16 -48
- package/template-overlays/router/src/router-page.kpa +34 -69
- package/template-overlays/router/src/style.css +5 -29
- package/template/AI_CONSTITUTION.md +0 -50
- package/template/ARCHITECTURE.md +0 -84
- package/template/CHANGELOG.md +0 -35
- package/template/CONTRIBUTING.md +0 -89
- package/template/DECISION_HIERARCHY.md +0 -32
- package/template/DEVELOPMENT_RULES.md +0 -57
- package/template/LICENSE +0 -201
- package/template/RELEASE.md +0 -227
- package/template/ROADMAP.md +0 -34
- package/template/TESTING_STRATEGY.md +0 -96
- package/template/_editorconfig +0 -12
- package/template/_gitattributes +0 -1
- package/template/_github/instructions/ai-workflow.md +0 -33
- package/template/_github/workflows/ci.yml +0 -41
- package/template/_github/workflows/release.yml +0 -58
- package/template/_gitignore +0 -10
- package/template/_husky/commit-msg +0 -8
- package/template/_husky/pre-commit +0 -1
- package/template/_npmrc +0 -1
- package/template/_prettierignore +0 -7
- package/template/commitlint.config.mjs +0 -6
- package/template/docs/adr/0001-keep-the-starter-minimal.md +0 -32
- package/template/docs/adr/0002-adopt-a-living-meta-layer.md +0 -30
- package/template/docs/adr/0003-rely-on-upstream-kpa-es-module-output.md +0 -32
- package/template/docs/adr/0004-adopt-an-automated-quality-baseline.md +0 -31
- package/template/docs/adr/0005-adopt-a-tag-driven-release-baseline.md +0 -45
- package/template/docs/adr/0006-adopt-commit-message-conventions.md +0 -39
- package/template/docs/adr/README.md +0 -37
- package/template/docs/adr/TEMPLATE.md +0 -18
- package/template/docs/architecture/module-boundaries.md +0 -47
- package/template/docs/meta/maintenance.md +0 -40
- package/template/docs/quality/quality-gates.md +0 -39
- package/template/docs/specs/README.md +0 -36
- package/template/docs/specs/TEMPLATE.md +0 -34
- package/template/docs/specs/app-bootstrap.md +0 -46
- package/template/docs/specs/counter-component.md +0 -48
- package/template/docs/specs/quality-workflow.md +0 -62
- package/template/eslint.config.mjs +0 -54
- package/template/playwright.config.ts +0 -31
- package/template/pnpm-lock.yaml +0 -3777
- package/template/prettier.config.mjs +0 -6
- package/template/public/favicon.svg +0 -15
- package/template/tests/e2e/app.spec.ts +0 -18
- package/template/tests/integration/main-bootstrap.test.ts +0 -33
- package/template/vite.config.d.mts +0 -5
- package/template/vitest.config.mjs +0 -19
- package/template-overlays/router/ARCHITECTURE.md +0 -86
- package/template-overlays/router/CHANGELOG.md +0 -50
- package/template-overlays/router/DEVELOPMENT_RULES.md +0 -57
- package/template-overlays/router/ROADMAP.md +0 -34
- package/template-overlays/router/TESTING_STRATEGY.md +0 -67
- package/template-overlays/router/docs/adr/0001-keep-the-starter-minimal.md +0 -32
- package/template-overlays/router/docs/architecture/module-boundaries.md +0 -39
- package/template-overlays/router/docs/meta/maintenance.md +0 -38
- package/template-overlays/router/docs/specs/README.md +0 -19
- package/template-overlays/router/docs/specs/app-bootstrap.md +0 -42
- package/template-overlays/router/docs/specs/router-navigation.md +0 -41
- package/template-overlays/router/pnpm-lock.yaml +0 -3786
- package/template-overlays/router/tests/e2e/app.spec.ts +0 -38
- package/template-overlays/router/tests/integration/main-bootstrap.test.ts +0 -150
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,63 @@ _No unreleased changes yet._
|
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
19
|
+
## [1.2.4] — Starter Dotfile Removal
|
|
20
|
+
|
|
21
|
+
**2026-04-24**
|
|
22
|
+
|
|
23
|
+
Patch release to remove the last generated dotfile defaults from new apps.
|
|
24
|
+
|
|
25
|
+
### Removed
|
|
26
|
+
|
|
27
|
+
- removed generated `.gitattributes`, `.gitignore`, and `.npmrc` files from
|
|
28
|
+
generated minimal and router starters
|
|
29
|
+
- removed the remaining CLI copy-time dotfile rename behavior because the
|
|
30
|
+
generated starter no longer ships underscore-prefixed dotfile placeholders
|
|
31
|
+
|
|
32
|
+
### Changed
|
|
33
|
+
|
|
34
|
+
- updated pnpm usage examples to `pnpm create koppajs@latest` so users bypass
|
|
35
|
+
stale pnpm create/dlx cache entries after a new release
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## [1.2.3] — Lean Starter Maintenance
|
|
40
|
+
|
|
41
|
+
**2026-04-24**
|
|
42
|
+
|
|
43
|
+
Patch release to keep generated projects focused on runnable KoppaJS app code.
|
|
44
|
+
This is a maintainer-approved patch exception to the versioning policy because
|
|
45
|
+
the CLI invocation contract stays unchanged while the generated starter tree is
|
|
46
|
+
intentionally reduced.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- trimmed generated starters to app source, README, and Vite/TypeScript build
|
|
51
|
+
files
|
|
52
|
+
- switched generated starter views from the remote KoppaJS logo URL to a local
|
|
53
|
+
`public/koppajs-logo.png` asset
|
|
54
|
+
- switched generated starter favicon output from `public/favicon.svg` to
|
|
55
|
+
`public/favicon.png`
|
|
56
|
+
- stopped patching generated `CHANGELOG.md` and `RELEASE.md`; those files are
|
|
57
|
+
no longer included in new apps
|
|
58
|
+
- refreshed the compatible generated-starter toolchain to `vite@7.3.2` and
|
|
59
|
+
`@types/node@25.6.0` while keeping `typescript@5.9.3` within the current
|
|
60
|
+
`@koppajs/koppajs-vite-plugin` peer range
|
|
61
|
+
- raised repository and generated-starter pnpm metadata to `pnpm@10.33.2`,
|
|
62
|
+
with a declared minimum of `>=10.24.0`
|
|
63
|
+
- raised repository and generated-starter Node.js metadata to `>=22.12.0`
|
|
64
|
+
|
|
65
|
+
### Removed
|
|
66
|
+
|
|
67
|
+
- removed governance, ADR/spec docs, GitHub workflows, Husky hooks, commitlint,
|
|
68
|
+
lint-staged, release files, changelog files, license files, and starter
|
|
69
|
+
lockfiles from generated projects
|
|
70
|
+
- removed generated-starter lint, format, and test tooling, including ESLint,
|
|
71
|
+
Prettier, Vitest, Playwright, their configs, scripts, dependencies, and test
|
|
72
|
+
files
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
19
76
|
## [1.2.2] — Node & Validation Baseline Alignment
|
|
20
77
|
|
|
21
78
|
**2026-03-27**
|
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
<h1 align="center">create-koppajs</h1>
|
|
19
19
|
<h3 align="center">Official project scaffolder for KoppaJS</h3>
|
|
20
20
|
<p align="center">
|
|
21
|
-
<i>Generate a ready-to-run KoppaJS starter
|
|
21
|
+
<i>Generate a ready-to-run KoppaJS starter in one command.</i>
|
|
22
22
|
</p>
|
|
23
23
|
</div>
|
|
24
24
|
|
|
@@ -118,9 +118,7 @@ The stable public contract of this repository is:
|
|
|
118
118
|
target directories
|
|
119
119
|
- recursive copying of the bundled `template/` directory plus any selected
|
|
120
120
|
overlay
|
|
121
|
-
-
|
|
122
|
-
- patching of generated `package.json`, `README.md`, `CHANGELOG.md`, and
|
|
123
|
-
`RELEASE.md`
|
|
121
|
+
- patching of generated `package.json` and `README.md`
|
|
124
122
|
- the generated starter baselines defined by `template/` and
|
|
125
123
|
`template-overlays/`
|
|
126
124
|
- the npm package payload: `bin/`, `template/`, `template-overlays/`,
|
|
@@ -138,13 +136,13 @@ The governing specs for that contract are:
|
|
|
138
136
|
Default starter:
|
|
139
137
|
|
|
140
138
|
```bash
|
|
141
|
-
pnpm create koppajs my-app
|
|
139
|
+
pnpm create koppajs@latest my-app
|
|
142
140
|
```
|
|
143
141
|
|
|
144
142
|
Router starter:
|
|
145
143
|
|
|
146
144
|
```bash
|
|
147
|
-
pnpm create koppajs my-app --template router
|
|
145
|
+
pnpm create koppajs@latest my-app --template router
|
|
148
146
|
```
|
|
149
147
|
|
|
150
148
|
Alternative entrypoints:
|
|
@@ -173,8 +171,8 @@ pnpm dev
|
|
|
173
171
|
|
|
174
172
|
## Requirements
|
|
175
173
|
|
|
176
|
-
- for `create-koppajs`: Node.js `>=22`
|
|
177
|
-
- for generated starter projects: Node.js `>=22` and pnpm `>=10`
|
|
174
|
+
- for `create-koppajs`: Node.js `>=22.12.0` and pnpm `>=10.24.0`
|
|
175
|
+
- for generated starter projects: Node.js `>=22.12.0` and pnpm `>=10.24.0`
|
|
178
176
|
|
|
179
177
|
---
|
|
180
178
|
|
|
@@ -189,10 +187,13 @@ The generated project includes one of two supported starters:
|
|
|
189
187
|
|
|
190
188
|
Every starter also includes:
|
|
191
189
|
|
|
192
|
-
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
190
|
+
- a focused README with setup, scripts, and project structure
|
|
191
|
+
|
|
192
|
+
The generated project intentionally excludes repository governance files,
|
|
193
|
+
release automation, GitHub workflows, Git hooks, changelog files, lockfiles,
|
|
194
|
+
default dotfiles, and lint/format/test tooling. Those files belong to this
|
|
195
|
+
scaffolder repository or to project-specific app decisions, not to every new
|
|
196
|
+
application created from it.
|
|
196
197
|
|
|
197
198
|
The root repository treats those starters as versioned product surface, not
|
|
198
199
|
test data. `template/` plus the supported overlays are the only source of truth
|
package/bin/create-koppajs.js
CHANGED
|
@@ -103,7 +103,7 @@ export function printHelp() {
|
|
|
103
103
|
Scaffold a new KoppaJS project.
|
|
104
104
|
|
|
105
105
|
Usage:
|
|
106
|
-
pnpm create koppajs [project-name]
|
|
106
|
+
pnpm create koppajs@latest [project-name]
|
|
107
107
|
npm create koppajs [project-name]
|
|
108
108
|
npx create-koppajs [project-name]
|
|
109
109
|
|
|
@@ -114,8 +114,8 @@ export function printHelp() {
|
|
|
114
114
|
--router Shortcut for --template router
|
|
115
115
|
|
|
116
116
|
Example:
|
|
117
|
-
pnpm create koppajs my-app
|
|
118
|
-
pnpm create koppajs my-app --template router
|
|
117
|
+
pnpm create koppajs@latest my-app
|
|
118
|
+
pnpm create koppajs@latest my-app --template router
|
|
119
119
|
`);
|
|
120
120
|
}
|
|
121
121
|
|
|
@@ -203,17 +203,7 @@ export function ensureTargetDir(targetPath) {
|
|
|
203
203
|
|
|
204
204
|
// ── Copy ────────────────────────────────────────────────────────────
|
|
205
205
|
|
|
206
|
-
|
|
207
|
-
// and rename during scaffolding (same approach as create-vite).
|
|
208
|
-
const RENAME_FILES = {
|
|
209
|
-
_editorconfig: ".editorconfig",
|
|
210
|
-
_gitattributes: ".gitattributes",
|
|
211
|
-
_github: ".github",
|
|
212
|
-
_gitignore: ".gitignore",
|
|
213
|
-
_husky: ".husky",
|
|
214
|
-
_npmrc: ".npmrc",
|
|
215
|
-
_prettierignore: ".prettierignore",
|
|
216
|
-
};
|
|
206
|
+
const RENAME_FILES = {};
|
|
217
207
|
|
|
218
208
|
export function copyDirRecursive(src, dest) {
|
|
219
209
|
mkdirSync(dest, { recursive: true });
|
|
@@ -261,14 +251,6 @@ export function patchReadme(destDir, projectName) {
|
|
|
261
251
|
patchTextFile(destDir, "README.md", projectName);
|
|
262
252
|
}
|
|
263
253
|
|
|
264
|
-
export function patchChangelog(destDir, projectName) {
|
|
265
|
-
patchTextFile(destDir, "CHANGELOG.md", projectName);
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
export function patchReleaseNotes(destDir, projectName) {
|
|
269
|
-
patchTextFile(destDir, "RELEASE.md", projectName);
|
|
270
|
-
}
|
|
271
|
-
|
|
272
254
|
// ── Final output ────────────────────────────────────────────────────
|
|
273
255
|
|
|
274
256
|
export function printNextSteps(projectName) {
|
|
@@ -327,8 +309,6 @@ export async function runCli(
|
|
|
327
309
|
copyStarterTemplate(templateName, targetDir);
|
|
328
310
|
patchPackageJson(targetDir, projectName);
|
|
329
311
|
patchReadme(targetDir, projectName);
|
|
330
|
-
patchChangelog(targetDir, projectName);
|
|
331
|
-
patchReleaseNotes(targetDir, projectName);
|
|
332
312
|
printNextSteps(projectName);
|
|
333
313
|
|
|
334
314
|
return 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-koppajs",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Scaffold a new KoppaJS project in seconds.",
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"README.md",
|
|
16
16
|
"LICENSE"
|
|
17
17
|
],
|
|
18
|
-
"packageManager": "pnpm@10.
|
|
18
|
+
"packageManager": "pnpm@10.33.2",
|
|
19
19
|
"engines": {
|
|
20
|
-
"node": ">=22",
|
|
21
|
-
"pnpm": ">=10"
|
|
20
|
+
"node": ">=22.12.0",
|
|
21
|
+
"pnpm": ">=10.24.0"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"check:meta": "node scripts/check-meta-layer.mjs",
|
package/template/README.md
CHANGED
|
@@ -1,90 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
# __PROJECT_NAME__
|
|
2
2
|
|
|
3
|
-
|
|
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="./LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-blue?style=flat-square" alt="License"></a>
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<br>
|
|
14
|
-
|
|
15
|
-
<div align="center">
|
|
16
|
-
<h1 align="center">__PROJECT_NAME__</h1>
|
|
17
|
-
<h3 align="center">KoppaJS starter project</h3>
|
|
18
|
-
<p align="center">
|
|
19
|
-
<i>Scaffolded from the current official KoppaJS starter baseline.</i>
|
|
20
|
-
</p>
|
|
21
|
-
</div>
|
|
22
|
-
|
|
23
|
-
<br>
|
|
24
|
-
|
|
25
|
-
<div align="center">
|
|
26
|
-
<p align="center">
|
|
27
|
-
<a href="https://github.com/koppajs/koppajs-documentation">Documentation</a>
|
|
28
|
-
·
|
|
29
|
-
<a href="https://github.com/koppajs/koppajs-core">KoppaJS Core</a>
|
|
30
|
-
·
|
|
31
|
-
<a href="https://github.com/koppajs/koppajs-vite-plugin">Vite Plugin</a>
|
|
32
|
-
</p>
|
|
33
|
-
</div>
|
|
34
|
-
|
|
35
|
-
<br>
|
|
36
|
-
|
|
37
|
-
<details>
|
|
38
|
-
<summary>Table of Contents</summary>
|
|
39
|
-
<ol>
|
|
40
|
-
<li><a href="#what-is-this">What is this?</a></li>
|
|
41
|
-
<li><a href="#requirements">Requirements</a></li>
|
|
42
|
-
<li><a href="#getting-started">Getting Started</a></li>
|
|
43
|
-
<li><a href="#quality-workflow">Quality Workflow</a></li>
|
|
44
|
-
<li><a href="#release-workflow">Release Workflow</a></li>
|
|
45
|
-
<li><a href="#project-structure">Project Structure</a></li>
|
|
46
|
-
<li><a href="#meta-layer">Meta Layer</a></li>
|
|
47
|
-
<li><a href="#community--contribution">Community & Contribution</a></li>
|
|
48
|
-
<li><a href="#license">License</a></li>
|
|
49
|
-
</ol>
|
|
50
|
-
</details>
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## What is this?
|
|
55
|
-
|
|
56
|
-
This project was scaffolded from the current official minimal starter baseline
|
|
57
|
-
for KoppaJS.
|
|
58
|
-
|
|
59
|
-
It keeps the runtime intentionally small:
|
|
60
|
-
|
|
61
|
-
- one HTML shell
|
|
62
|
-
- one TypeScript bootstrap file
|
|
63
|
-
- one root view
|
|
64
|
-
- one stateful child component
|
|
65
|
-
|
|
66
|
-
It also carries a small quality baseline so the starter stays runnable and trustworthy:
|
|
67
|
-
|
|
68
|
-
- ESLint for source and tooling files
|
|
69
|
-
- Prettier plus `.editorconfig` for supported text formats
|
|
70
|
-
- Vitest for local unit and integration coverage
|
|
71
|
-
- Playwright for a real-browser smoke test
|
|
72
|
-
- Husky plus lint-staged for fast staged-file checks
|
|
73
|
-
- Conventional Commits enforcement via `commitlint`
|
|
74
|
-
- a tag-driven GitHub release baseline with `CHANGELOG.md` and `RELEASE.md`
|
|
75
|
-
|
|
76
|
-
Use it as a starting point for new KoppaJS projects or as a reference for how components are registered, composed, and validated.
|
|
77
|
-
|
|
78
|
-
> **Note:** This repository uses published npm packages, so it works as a standalone starter after `pnpm install`.
|
|
79
|
-
|
|
80
|
-
---
|
|
3
|
+
KoppaJS starter project scaffolded with `create-koppajs`.
|
|
81
4
|
|
|
82
5
|
## Requirements
|
|
83
6
|
|
|
84
|
-
- Node.js >= 22
|
|
85
|
-
- pnpm >= 10
|
|
86
|
-
|
|
87
|
-
---
|
|
7
|
+
- Node.js >= 22.12.0
|
|
8
|
+
- pnpm >= 10.24.0
|
|
88
9
|
|
|
89
10
|
## Getting Started
|
|
90
11
|
|
|
@@ -93,146 +14,35 @@ pnpm install
|
|
|
93
14
|
pnpm dev
|
|
94
15
|
```
|
|
95
16
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
```bash
|
|
99
|
-
pnpm exec playwright install chromium
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Useful commands:
|
|
17
|
+
## Scripts
|
|
103
18
|
|
|
104
19
|
```bash
|
|
105
|
-
pnpm lint
|
|
106
|
-
pnpm format:check
|
|
107
|
-
pnpm typecheck
|
|
108
|
-
pnpm test:run
|
|
109
|
-
pnpm test:coverage
|
|
110
20
|
pnpm build
|
|
21
|
+
pnpm typecheck
|
|
111
22
|
pnpm serve
|
|
112
|
-
pnpm release:check
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Commit messages follow Conventional Commits, for example:
|
|
116
|
-
|
|
117
|
-
```text
|
|
118
|
-
feat: add release workflow
|
|
119
|
-
docs: update starter governance
|
|
120
|
-
fix: align counter button labels
|
|
121
23
|
```
|
|
122
24
|
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
## Quality Workflow
|
|
126
|
-
|
|
127
|
-
Fast local baseline:
|
|
128
|
-
|
|
129
|
-
```bash
|
|
130
|
-
pnpm check
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
Full validation, including Playwright:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
pnpm validate
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
Standalone browser smoke test:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
pnpm test:e2e
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## Release Workflow
|
|
148
|
-
|
|
149
|
-
Tagged releases are documented in `CHANGELOG.md`.
|
|
150
|
-
The maintainer procedure lives in `RELEASE.md`.
|
|
151
|
-
|
|
152
|
-
Release tags must use the form `vX.Y.Z` and match `package.json`.
|
|
153
|
-
The included automation creates GitHub Releases only. If your project later
|
|
154
|
-
needs npm publishing or deployment-specific release steps, update `RELEASE.md`
|
|
155
|
-
and `.github/workflows/release.yml` together.
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
25
|
## Project Structure
|
|
160
26
|
|
|
161
27
|
```text
|
|
162
28
|
__PROJECT_NAME__/
|
|
163
|
-
├── .
|
|
164
|
-
├── .github/
|
|
165
|
-
├── .gitignore
|
|
166
|
-
├── .husky/
|
|
167
|
-
├── .npmrc
|
|
168
|
-
├── .prettierignore
|
|
169
|
-
├── CHANGELOG.md
|
|
170
|
-
├── commitlint.config.mjs
|
|
171
|
-
├── AI_CONSTITUTION.md
|
|
172
|
-
├── ARCHITECTURE.md
|
|
173
|
-
├── CONTRIBUTING.md
|
|
174
|
-
├── DECISION_HIERARCHY.md
|
|
175
|
-
├── DEVELOPMENT_RULES.md
|
|
176
|
-
├── RELEASE.md
|
|
177
|
-
├── ROADMAP.md
|
|
178
|
-
├── TESTING_STRATEGY.md
|
|
179
|
-
├── eslint.config.mjs
|
|
29
|
+
├── README.md
|
|
180
30
|
├── index.html
|
|
181
31
|
├── package.json
|
|
182
|
-
├── playwright.config.ts
|
|
183
|
-
├── pnpm-lock.yaml
|
|
184
|
-
├── prettier.config.mjs
|
|
185
32
|
├── tsconfig.json
|
|
186
33
|
├── vite.config.mjs
|
|
187
|
-
├── vitest.config.mjs
|
|
188
|
-
├── docs/
|
|
189
|
-
│ ├── adr/
|
|
190
|
-
│ ├── architecture/
|
|
191
|
-
│ ├── meta/
|
|
192
|
-
│ ├── quality/
|
|
193
|
-
│ └── specs/
|
|
194
34
|
├── public/
|
|
195
|
-
│
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
└──
|
|
202
|
-
├── e2e/
|
|
203
|
-
├── integration/
|
|
204
|
-
└── unit/
|
|
35
|
+
│ ├── favicon.png
|
|
36
|
+
│ └── koppajs-logo.png
|
|
37
|
+
└── src/
|
|
38
|
+
├── app-view.kpa
|
|
39
|
+
├── counter-component.kpa
|
|
40
|
+
├── main.ts
|
|
41
|
+
└── style.css
|
|
205
42
|
```
|
|
206
43
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
## Meta Layer
|
|
210
|
-
|
|
211
|
-
The repository includes an explicit meta layer so architecture, testing, and contributor rules evolve together with the codebase.
|
|
212
|
-
|
|
213
|
-
Start here:
|
|
214
|
-
|
|
215
|
-
- `DECISION_HIERARCHY.md`
|
|
216
|
-
- `AI_CONSTITUTION.md`
|
|
217
|
-
- `ARCHITECTURE.md`
|
|
218
|
-
- `DEVELOPMENT_RULES.md`
|
|
219
|
-
- `TESTING_STRATEGY.md`
|
|
220
|
-
- `CHANGELOG.md`
|
|
221
|
-
- `RELEASE.md`
|
|
222
|
-
- `docs/quality/quality-gates.md`
|
|
223
|
-
- `docs/adr/`
|
|
224
|
-
- `docs/specs/`
|
|
225
|
-
|
|
226
|
-
---
|
|
227
|
-
|
|
228
|
-
## Community & Contribution
|
|
229
|
-
|
|
230
|
-
Contribution workflow details live in `CONTRIBUTING.md`.
|
|
231
|
-
Update this section with your own repository links once the project has a
|
|
232
|
-
canonical home.
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## License
|
|
44
|
+
## Useful Links
|
|
237
45
|
|
|
238
|
-
|
|
46
|
+
- [KoppaJS documentation](https://github.com/koppajs/koppajs-documentation)
|
|
47
|
+
- [KoppaJS core](https://github.com/koppajs/koppajs-core)
|
|
48
|
+
- [KoppaJS Vite plugin](https://github.com/koppajs/koppajs-vite-plugin)
|
package/template/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>KoppaJS Minimal Starter</title>
|
|
7
|
-
<link rel="icon" type="image/
|
|
7
|
+
<link rel="icon" type="image/png" href="/favicon.png" />
|
|
8
8
|
<link rel="stylesheet" href="/src/style.css" />
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
package/template/package.json
CHANGED
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"private": true,
|
|
5
5
|
"description": "KoppaJS application scaffolded with create-koppajs.",
|
|
6
|
-
"author": "Bastian Bensch",
|
|
7
|
-
"license": "Apache-2.0",
|
|
8
6
|
"keywords": [
|
|
9
7
|
"koppajs",
|
|
10
8
|
"koppa",
|
|
@@ -14,59 +12,24 @@
|
|
|
14
12
|
"typescript",
|
|
15
13
|
"web-components"
|
|
16
14
|
],
|
|
17
|
-
"packageManager": "pnpm@10.
|
|
15
|
+
"packageManager": "pnpm@10.33.2",
|
|
18
16
|
"engines": {
|
|
19
|
-
"node": ">=22",
|
|
20
|
-
"pnpm": ">=10"
|
|
17
|
+
"node": ">=22.12.0",
|
|
18
|
+
"pnpm": ">=10.24.0"
|
|
21
19
|
},
|
|
22
20
|
"scripts": {
|
|
23
21
|
"dev": "vite --host",
|
|
24
22
|
"build": "tsc --noEmit && vite build",
|
|
25
|
-
"lint": "eslint .",
|
|
26
|
-
"lint:fix": "eslint . --fix",
|
|
27
|
-
"format": "prettier . --write --ignore-unknown",
|
|
28
|
-
"format:check": "prettier . --check --ignore-unknown",
|
|
29
|
-
"test": "vitest run",
|
|
30
|
-
"test:watch": "vitest",
|
|
31
|
-
"test:run": "vitest run",
|
|
32
|
-
"test:coverage": "vitest run --coverage",
|
|
33
|
-
"test:e2e": "pnpm build && playwright test",
|
|
34
|
-
"test:e2e:headed": "pnpm build && playwright test --headed",
|
|
35
|
-
"test:e2e:ui": "pnpm build && playwright test --ui",
|
|
36
|
-
"check": "pnpm lint && pnpm format:check && pnpm typecheck && pnpm test:run && pnpm build",
|
|
37
|
-
"validate": "pnpm check && playwright test",
|
|
38
|
-
"release:check": "pnpm validate",
|
|
39
23
|
"typecheck": "tsc --noEmit",
|
|
40
|
-
"serve": "vite preview"
|
|
41
|
-
"serve:e2e": "vite preview --host 127.0.0.1 --strictPort --port 4173",
|
|
42
|
-
"prepare": "husky"
|
|
24
|
+
"serve": "vite preview"
|
|
43
25
|
},
|
|
44
26
|
"dependencies": {
|
|
45
|
-
"@koppajs/koppajs-core": "
|
|
27
|
+
"@koppajs/koppajs-core": "3.0.7"
|
|
46
28
|
},
|
|
47
29
|
"devDependencies": {
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"@playwright/test": "^1.58.2",
|
|
53
|
-
"@types/node": "^25.4.0",
|
|
54
|
-
"@vitest/coverage-v8": "^4.0.18",
|
|
55
|
-
"eslint": "^10.0.3",
|
|
56
|
-
"globals": "^17.4.0",
|
|
57
|
-
"husky": "^9.1.7",
|
|
58
|
-
"lint-staged": "^16.3.3",
|
|
59
|
-
"prettier": "^3.8.1",
|
|
60
|
-
"typescript": "^5.9.3",
|
|
61
|
-
"typescript-eslint": "^8.57.0",
|
|
62
|
-
"vite": "7.2.6",
|
|
63
|
-
"vitest": "^4.0.18"
|
|
64
|
-
},
|
|
65
|
-
"lint-staged": {
|
|
66
|
-
"*.{js,mjs,cjs,ts,mts,cts}": [
|
|
67
|
-
"eslint --fix",
|
|
68
|
-
"prettier --write"
|
|
69
|
-
],
|
|
70
|
-
"*.{css,html,json,md,yml,yaml}": "prettier --write"
|
|
30
|
+
"@koppajs/koppajs-vite-plugin": "1.0.4",
|
|
31
|
+
"@types/node": "25.6.0",
|
|
32
|
+
"typescript": "5.9.3",
|
|
33
|
+
"vite": "7.3.2"
|
|
71
34
|
}
|
|
72
35
|
}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[template]
|
|
2
2
|
<div class="app-root">
|
|
3
|
-
<img src="
|
|
3
|
+
<img src="/koppajs-logo.png" width="420" alt="KoppaJS Logo" class="logo">
|
|
4
4
|
<p class="subtitle">Minimal Starter</p>
|
|
5
5
|
<counter-component></counter-component>
|
|
6
6
|
</div>
|
|
@@ -31,5 +31,3 @@
|
|
|
31
31
|
opacity: 0.8;
|
|
32
32
|
}
|
|
33
33
|
[/css]
|
|
34
|
-
|
|
35
|
-
|
package/template/tsconfig.json
CHANGED
|
@@ -10,17 +10,10 @@
|
|
|
10
10
|
"forceConsistentCasingInFileNames": true,
|
|
11
11
|
"noEmit": true
|
|
12
12
|
},
|
|
13
|
-
"include": [
|
|
14
|
-
"src/**/*.ts",
|
|
15
|
-
"tests/**/*.ts",
|
|
16
|
-
"playwright.config.ts",
|
|
17
|
-
"vite.config.d.mts"
|
|
18
|
-
],
|
|
13
|
+
"include": ["src/**/*.ts"],
|
|
19
14
|
"exclude": [
|
|
20
15
|
"coverage",
|
|
21
16
|
"dist",
|
|
22
|
-
"node_modules"
|
|
23
|
-
"playwright-report",
|
|
24
|
-
"test-results"
|
|
17
|
+
"node_modules"
|
|
25
18
|
]
|
|
26
19
|
}
|