kerfjs 4.1.0 → 4.1.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.
- package/CHANGELOG.md +7 -0
- package/README.md +3 -3
- package/ai/manifest.json +1 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [4.1.1] - 2026-08-14
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
- Added a CDN / importmap quickstart (`docs/6-jsx-runtime.md` §6.11.1) covering three no-install ways to load kerf from an ESM CDN: a direct `esm.sh` import, and jsDelivr / unpkg behind an importmap that also maps `@preact/signals-core`. Explains why a raw `dist/*.js` path fails (its unrewritten bare `@preact/signals-core` import won't resolve in the browser) and recommends pinning to a major version.
|
|
14
|
+
- Updated the README no-build example to use version-pinned CDN URLs (`kerfjs@4`) and noted that jsDelivr / unpkg need an importmap while esm.sh works with a direct import.
|
|
15
|
+
|
|
9
16
|
## [4.1.0] - 2026-07-31
|
|
10
17
|
|
|
11
18
|
|
package/README.md
CHANGED
|
@@ -189,8 +189,8 @@ Same algorithm `mount()` uses internally — `data-morph-skip`, `data-morph-skip
|
|
|
189
189
|
|
|
190
190
|
```html
|
|
191
191
|
<script type="module">
|
|
192
|
-
import { signal, mount, each } from 'https://esm.sh/kerfjs';
|
|
193
|
-
import { html } from 'https://esm.sh/kerfjs/html';
|
|
192
|
+
import { signal, mount, each } from 'https://esm.sh/kerfjs@4';
|
|
193
|
+
import { html } from 'https://esm.sh/kerfjs@4/html';
|
|
194
194
|
|
|
195
195
|
const items = signal([{ id: 1, label: 'no build step' }]);
|
|
196
196
|
|
|
@@ -200,7 +200,7 @@ Same algorithm `mount()` uses internally — `data-morph-skip`, `data-morph-skip
|
|
|
200
200
|
</script>
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
-
Attribute names are written verbatim (`class`, not `className`), and holes are only legal in text positions or as a complete attribute value — anything ambiguous throws with an actionable message.
|
|
203
|
+
Nothing is self-hosted — `kerfjs` is on npm, so every ESM CDN (esm.sh, jsDelivr, unpkg) mirrors it automatically. esm.sh works with a direct import as shown; jsDelivr / unpkg want an importmap so the internal `@preact/signals-core` import resolves. Pin to a major (`@4`, as shown — the latest `4.x`) rather than floating on `latest`, or an exact version (`@4.1.0`) for full reproducibility. Attribute names are written verbatim (`class`, not `className`), and holes are only legal in text positions or as a complete attribute value — anything ambiguous throws with an actionable message. See [`docs/6-jsx-runtime.md`](./docs/6-jsx-runtime.md) §6.11 (§6.11.1 for the full CDN / importmap recipes) — or the [live-poll example](https://brianwestphal.github.io/kerf/examples/complete/live-poll/), a complete app served exactly as authored: no bundler ever touches it.
|
|
204
204
|
|
|
205
205
|
## Install
|
|
206
206
|
|
package/ai/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kerfjs",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.1",
|
|
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": [
|
|
@@ -91,12 +91,13 @@
|
|
|
91
91
|
"bench:serve": "bash bench/site.sh",
|
|
92
92
|
"lint": "eslint src tests",
|
|
93
93
|
"typecheck": "node node_modules/typescript7/bin/tsc --noEmit",
|
|
94
|
-
"check": "npm run lint && npm run typecheck && node scripts/check-doc-test-inventory.mjs && node scripts/check-doc-api-coverage.mjs && node scripts/check-doc-site-tickets.mjs && node scripts/check-dev-warn-docs.mjs && node scripts/check-skill-freshness.mjs && node scripts/check-design-rule-5.mjs && node scripts/check-feature-coverage.mjs && node scripts/check-ai-bundle.mjs && npm test && npm run build && node scripts/check-bundle-size.mjs && node scripts/check-doc-api-signatures.mjs && vitest run --config vitest.config.dist.ts && vitest run --config vitest.config.dist-full.ts && node node_modules/typescript7/bin/tsc -p tests/dist/jsx-typing/tsconfig.json && node node_modules/typescript7/bin/tsc -p site/src/examples/complete/tsconfig.json && node node_modules/typescript7/bin/tsc -p tests/dist/scaffold-typing/tsconfig.json && node scripts/check-docs-examples.mjs",
|
|
94
|
+
"check": "npm run lint && npm run typecheck && node scripts/check-doc-test-inventory.mjs && node scripts/check-doc-api-coverage.mjs && node scripts/check-doc-site-tickets.mjs && node scripts/check-cdn-versions.mjs && node scripts/check-dev-warn-docs.mjs && node scripts/check-skill-freshness.mjs && node scripts/check-design-rule-5.mjs && node scripts/check-feature-coverage.mjs && node scripts/check-ai-bundle.mjs && npm test && npm run build && node scripts/check-bundle-size.mjs && node scripts/check-doc-api-signatures.mjs && vitest run --config vitest.config.dist.ts && vitest run --config vitest.config.dist-full.ts && node node_modules/typescript7/bin/tsc -p tests/dist/jsx-typing/tsconfig.json && node node_modules/typescript7/bin/tsc -p site/src/examples/complete/tsconfig.json && node node_modules/typescript7/bin/tsc -p tests/dist/scaffold-typing/tsconfig.json && node scripts/check-docs-examples.mjs",
|
|
95
95
|
"check:docs:examples": "node scripts/check-docs-examples.mjs",
|
|
96
96
|
"check:full": "npm run check && npm run --silent check:audit && playwright test",
|
|
97
97
|
"check:docs:test-inventory": "node scripts/check-doc-test-inventory.mjs",
|
|
98
98
|
"check:docs:api-coverage": "node scripts/check-doc-api-coverage.mjs",
|
|
99
99
|
"check:docs:site-tickets": "node scripts/check-doc-site-tickets.mjs",
|
|
100
|
+
"check:cdn-versions": "node scripts/check-cdn-versions.mjs",
|
|
100
101
|
"check:docs:api-signatures": "npm run build && node scripts/check-doc-api-signatures.mjs",
|
|
101
102
|
"fuzz:soak": "node scripts/fuzz-soak.mjs",
|
|
102
103
|
"check:features": "node scripts/check-feature-coverage.mjs",
|
|
@@ -130,7 +131,7 @@
|
|
|
130
131
|
"@typescript-eslint/eslint-plugin": "^8.65.0",
|
|
131
132
|
"@typescript-eslint/parser": "^8.65.0",
|
|
132
133
|
"@vitest/coverage-v8": "^4.1.10",
|
|
133
|
-
"domotion-svg": "^0.
|
|
134
|
+
"domotion-svg": "^0.22.2",
|
|
134
135
|
"eslint": "^10.8.0",
|
|
135
136
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
136
137
|
"gitgist": "^1.1.0",
|