kerfjs 4.0.0 → 4.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 +19 -0
- package/ai/manifest.json +1 -1
- package/package.json +8 -6
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,25 @@ 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.0] - 2026-07-31
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
- ESLint 10 is now supported: `eslint-plugin-kerfjs` declares `peerDependencies.eslint` as `^9.0.0 || ^10.0.0`, and every named major is exercised by the rule suite in CI.
|
|
14
|
+
- The plugin now runs its rule suite against each supported ESLint major via `npm run test:eslint-matrix`, which also fails if the declared peer range, the tested set, and the CI matrix disagree — or if the range is left open-ended.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
- **ESLint 8 is no longer supported by `eslint-plugin-kerfjs`.** The package is ESM-only and ESLint 8 resolves `.eslintrc` plugins with `require()`, so `extends: ["plugin:kerfjs/…"]` could never load it.
|
|
18
|
+
- **Legacy `.eslintrc` configuration is documented as unsupported.** Use flat config (`eslint.config.js`); the `legacy-recommended` export remains in the package but is unreachable through any config system and should be treated as deprecated.
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
- Generated Hot Sheet skill and rule files no longer hardcode a machine's local API port or shared secret. The curl fallbacks read `$HOTSHEET_PORT` / `$HOTSHEET_SECRET` from `.hotsheet/settings.local.json` and `.hotsheet/secret.json` instead, with `.hotsheet/settings.json` as the fallback for older projects.
|
|
22
|
+
- A new `npm run check:audit` gate runs `npm audit --omit=dev --audit-level=high` against the published dependency tree and is wired into the pre-push `check:full` gate.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
- Test tooling moved to vitest 4 and ESLint 10; coverage thresholds were recalibrated to 98.5% branches / 99.5% statements (lines and functions stay at 100%) after vitest 4's sharper AST-based coverage mapping resolved seventeen previously-miscredited defensive branches.
|
|
26
|
+
- Removed the `hs-m` marketing-ticket skill and Cursor rule.
|
|
27
|
+
|
|
9
28
|
## [4.0.0] - 2026-07-28
|
|
10
29
|
|
|
11
30
|
|
package/ai/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kerfjs",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0",
|
|
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": [
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"typecheck": "node node_modules/typescript7/bin/tsc --noEmit",
|
|
94
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",
|
|
95
95
|
"check:docs:examples": "node scripts/check-docs-examples.mjs",
|
|
96
|
-
"check:full": "npm run check && playwright test",
|
|
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",
|
|
@@ -116,20 +116,22 @@
|
|
|
116
116
|
"check:bundle-size": "npm run build && node scripts/check-bundle-size.mjs",
|
|
117
117
|
"check:skills": "node scripts/check-skill-freshness.mjs",
|
|
118
118
|
"check:design-rule-5": "node scripts/check-design-rule-5.mjs",
|
|
119
|
-
"check:docs:dev-warns": "node scripts/check-dev-warn-docs.mjs"
|
|
119
|
+
"check:docs:dev-warns": "node scripts/check-dev-warn-docs.mjs",
|
|
120
|
+
"check:audit": "npm audit --omit=dev --audit-level=high"
|
|
120
121
|
},
|
|
121
122
|
"dependencies": {
|
|
122
123
|
"@preact/signals-core": "^1.14.1"
|
|
123
124
|
},
|
|
124
125
|
"devDependencies": {
|
|
126
|
+
"@eslint/js": "^10.0.1",
|
|
125
127
|
"@playwright/test": "^1.59.1",
|
|
126
128
|
"@types/jsdom": "^28.0.1",
|
|
127
129
|
"@types/node": "^22.10.0",
|
|
128
130
|
"@typescript-eslint/eslint-plugin": "^8.65.0",
|
|
129
131
|
"@typescript-eslint/parser": "^8.65.0",
|
|
130
|
-
"@vitest/coverage-v8": "^
|
|
132
|
+
"@vitest/coverage-v8": "^4.1.10",
|
|
131
133
|
"domotion-svg": "^0.21.1",
|
|
132
|
-
"eslint": "^
|
|
134
|
+
"eslint": "^10.8.0",
|
|
133
135
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
134
136
|
"gitgist": "^1.1.0",
|
|
135
137
|
"happy-dom": "^20.9.0",
|
|
@@ -139,7 +141,7 @@
|
|
|
139
141
|
"tsup": "^8.3.0",
|
|
140
142
|
"typescript": "^6.0.3",
|
|
141
143
|
"typescript7": "npm:typescript@^7.0.2",
|
|
142
|
-
"vitest": "^
|
|
144
|
+
"vitest": "^4.1.10"
|
|
143
145
|
},
|
|
144
146
|
"gitgist": {
|
|
145
147
|
"exclude": [
|