Three end-to-end scenarios against a static+SSR test server: the zero-build page (import map + native ESM, no bundler), the SSR page (rendered content in the raw response, live after hydration, no mismatch warnings), and adoption (an expando on the server-rendered node survives a real render). Renders are raf-batched so assertions poll. Real Chromium flushed out three fixes happy-dom couldn't see: - nanoraf called an extracted requestAnimationFrame bare — Illegal invocation under strict-mode ESM (sloppy CJS had masked it); wrapped. - the counter example only routed '/', so serving it from any subpath threw; it now has a wildcard fallback. - hydration mismatch detection is now whitespace-insensitive (the parser reparents whitespace, e.g. text after </body>), and page scripts belong in <head> when a view owns <body> — same convention bankai v9 used. CI gets an e2e job with chromium-headless-shell. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014NgfSjHE11oFpoSnLVKLXd
25 lines
605 B
JSON
25 lines
605 B
JSON
{
|
|
"name": "@choojs/monorepo",
|
|
"private": true,
|
|
"version": "8.0.0-dev",
|
|
"description": "Monorepo for choo v8 — a 4kb framework for creating sturdy frontend applications",
|
|
"type": "module",
|
|
"workspaces": [
|
|
"packages/*"
|
|
],
|
|
"engines": {
|
|
"node": ">=24"
|
|
},
|
|
"scripts": {
|
|
"test": "node --test packages/core/test/ packages/html/test/ packages/component/test/",
|
|
"test:e2e": "node --test test/e2e/",
|
|
"bench": "node bench/render.js"
|
|
},
|
|
"repository": "choojs/choo",
|
|
"license": "MIT",
|
|
"devDependencies": {
|
|
"happy-dom": "^20.14.0",
|
|
"playwright": "^1.63.0"
|
|
}
|
|
}
|