kerfjs 0.15.1 → 0.15.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +11 -0
- package/ai/manifest.json +1 -1
- package/package.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@ All notable changes to **kerf** are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.15.2] - 2026-06-30
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
- Added the `create-kerf-component` initializer — scaffold a ready-to-publish kerf component package with `npm create kerf-component@latest <dir>`, no need to reverse-engineer the packaging rules.
|
|
12
|
+
|
|
13
|
+
## [Unreleased]
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- New `create-kerf-component` initializer (`npm create kerf-component@latest <dir>`) — scaffolds a publishable kerf component package that already follows the hard packaging rules (kerfjs as a peer dependency and `external` in the build, ESM + `.d.ts` output, `jsxImportSource: "kerfjs"`, subpath exports) plus an example component demonstrating per-instance state via a factory and a `wire(root)` delegation disposer. Releases in lockstep with kerfjs.
|
|
18
|
+
|
|
7
19
|
## [0.15.1] - 2026-06-30
|
|
8
20
|
|
|
9
21
|
|
package/README.md
CHANGED
|
@@ -172,6 +172,16 @@ export default [kerfjs.configs.recommended];
|
|
|
172
172
|
|
|
173
173
|
Full docs at [brianwestphal.github.io/kerf/docs/eslint-plugin/](https://brianwestphal.github.io/kerf/docs/eslint-plugin/) — legacy `.eslintrc` config, per-rule examples, and the rationale for which violations get lint rules vs. dev-warns vs. strict TS.
|
|
174
174
|
|
|
175
|
+
### Optional: `create-kerf-component`
|
|
176
|
+
|
|
177
|
+
Building a reusable component package? Scaffold one that already follows kerf's hard packaging rules (kerfjs as a peer dependency and `external` in the build, ESM + `.d.ts`, `jsxImportSource: "kerfjs"`, subpath exports) plus an example component showing per-instance state via a factory and a `wire(root)` delegation disposer:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
npm create kerf-component@latest my-widgets
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
See [`docs/13-component-packages.md`](./docs/13-component-packages.md) for the full authoring guide.
|
|
184
|
+
|
|
175
185
|
## Links
|
|
176
186
|
|
|
177
187
|
- **Site:** [brianwestphal.github.io/kerf](https://brianwestphal.github.io/kerf/)
|
|
@@ -179,6 +189,7 @@ Full docs at [brianwestphal.github.io/kerf/docs/eslint-plugin/](https://brianwes
|
|
|
179
189
|
- **Migrating:** [coming from another framework?](https://brianwestphal.github.io/kerf/migrating/) — side-by-side TodoMVC translations + per-framework gotchas
|
|
180
190
|
- **AI guide:** [`docs/ai/usage-guide.md`](./docs/ai/usage-guide.md) — reference for AI tools fetching kerf docs (linked from `llms.txt`)
|
|
181
191
|
- **ESLint plugin:** [brianwestphal.github.io/kerf/docs/eslint-plugin/](https://brianwestphal.github.io/kerf/docs/eslint-plugin/) — `eslint-plugin-kerfjs`; eight rules (four hard-rule errors + four warns: `require-delegate-disposer`, `prefer-attr-selector`, `no-raw-with-dynamic-arg`, `ai-assistant-configs`) at edit time (source: [`eslint-plugin/`](./eslint-plugin/))
|
|
192
|
+
- **Component scaffold:** `npm create kerf-component@latest <dir>` — `create-kerf-component`; generates a publishable component package with the hard packaging rules pre-wired (source: [`create-kerf-component/`](./create-kerf-component/))
|
|
182
193
|
- **Demo:** [live demo](https://brianwestphal.github.io/kerf/demo/) — eight sections exercising every primitive (counter, store-backed cart, focus survival, keyed list, morph-skip, SVG render, Tier-2 capture, `arraySignal` patches)
|
|
183
194
|
- **Repo:** [github.com/brianwestphal/kerf](https://github.com/brianwestphal/kerf)
|
|
184
195
|
|
package/ai/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kerfjs",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.2",
|
|
4
4
|
"description": "Tiny reactive UI framework — fine-grained signals + DOM morphing + JSX. Apply the smallest possible cut to update your DOM.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -73,11 +73,12 @@
|
|
|
73
73
|
"test:dist:full": "npm run build && vitest run --config vitest.config.dist-full.ts",
|
|
74
74
|
"test:dist:jsx-typing": "npm run build && tsc -p tests/dist/jsx-typing/tsconfig.json",
|
|
75
75
|
"test:dist:examples": "npm run build && tsc -p site/src/examples/complete/tsconfig.json",
|
|
76
|
+
"test:dist:scaffold-typing": "npm run build && tsc -p tests/dist/scaffold-typing/tsconfig.json",
|
|
76
77
|
"test:browser": "npm run build && playwright test",
|
|
77
78
|
"bench:micro": "vitest bench --run --config vitest.config.bench.ts",
|
|
78
79
|
"lint": "eslint src tests",
|
|
79
80
|
"typecheck": "tsc --noEmit",
|
|
80
|
-
"check": "npm run lint && npm run typecheck && node scripts/check-doc-test-inventory.mjs && node scripts/check-doc-api-coverage.mjs && node scripts/check-ai-bundle.mjs && npm test && npm run build && vitest run --config vitest.config.dist.ts && vitest run --config vitest.config.dist-full.ts && tsc -p tests/dist/jsx-typing/tsconfig.json && tsc -p site/src/examples/complete/tsconfig.json && node scripts/check-docs-examples.mjs",
|
|
81
|
+
"check": "npm run lint && npm run typecheck && node scripts/check-doc-test-inventory.mjs && node scripts/check-doc-api-coverage.mjs && node scripts/check-ai-bundle.mjs && npm test && npm run build && vitest run --config vitest.config.dist.ts && vitest run --config vitest.config.dist-full.ts && tsc -p tests/dist/jsx-typing/tsconfig.json && tsc -p site/src/examples/complete/tsconfig.json && tsc -p tests/dist/scaffold-typing/tsconfig.json && node scripts/check-docs-examples.mjs",
|
|
81
82
|
"check:docs:examples": "node scripts/check-docs-examples.mjs",
|
|
82
83
|
"check:full": "npm run check && playwright test",
|
|
83
84
|
"check:docs:test-inventory": "node scripts/check-doc-test-inventory.mjs",
|
|
@@ -106,6 +107,7 @@
|
|
|
106
107
|
"@typescript-eslint/eslint-plugin": "^8.18.0",
|
|
107
108
|
"@typescript-eslint/parser": "^8.18.0",
|
|
108
109
|
"@vitest/coverage-v8": "^3.0.0",
|
|
110
|
+
"domotion-svg": "^0.17.0",
|
|
109
111
|
"eslint": "^9.16.0",
|
|
110
112
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
111
113
|
"gitgist": "^1.1.0",
|