Packages renamed to the @uhhm scope (@uhhm/buuh, @uhhm/buuh-html,
@uhhm/buuh-component, @uhhm/buuh-devtools, @uhhm/buuh-migrate,
@uhhm/bankai). Scoping is load-bearing twice over: npm routes registries
per scope so @uhhm/* resolves against project.uhhm.no while everything
else stays on npmjs, and it means this fork never squats upstream's
names anywhere. The codemod now migrates choo v7 apps to the @uhhm
names. README rewritten with the fork framing and full upstream credit;
the choojs RFC moves to docs/upstream-rfc-draft.md, in the drawer for if
this work ever goes home. API unchanged — choo() is still choo().
Also: Gitea Actions CI + release workflows (npm publish to the uhhm
registry on tag push, CDN bundle uploaded as a generic package),
npm run bundle producing dist-cdn/buuh.js (the whole framework as one
minified ES module for import-map use), docs/publishing.md explaining
what Gitea Packages is (a real npm registry) and is not (a CDN — serve
the bundle from a static host with module-safe MIME instead), and
onload.js constructing window.MutationObserver to match its own guard
(surfaced by smoke-testing the bundle outside a full browser).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014NgfSjHE11oFpoSnLVKLXd
README rewritten for the v8 branch: honest size claim (7.97 kB min+gzip
for the whole framework, with the v7 '4kb' context), the zero-build
story up front, bankai v10, package map, credits to yoshuawuyts, the
choojs contributors and the pirxpilot fork line.
docs/migrating-v7-to-v8.md: the codemod path, the specifier map, and
every deliberate behavior change spelled out. docs/deploy.md: plain
Node, Docker, proxy/CDN — including the HTTP/3 answer (h3 is
infrastructure's job; bankai's contract is the 103 + Link headers that
any hints-aware edge, h3 included, propagates; server push is dead
everywhere and never existed in h3) — and web-standard runtimes.
docs/rfc.md: the draft announcement for choojs/choo — continuation
framing, pings to yoshuawuyts and pirxpilot, the npm-rights ask, API
feedback questions, and a three-week comment window with a
silence-is-consent close.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014NgfSjHE11oFpoSnLVKLXd
Replaces #528. I was just going off the features listed in the readme. There are a handful more we should test but this is a start.
Note that this includes a readme change for `state.href` that I believe was incorrectly documented. Let me know if I got that wrong.
Also note that we should delete the original `v6-tests` branch once this is merged. Leaving it for now for reference.
* Store mount selector and return `this`
This allows `.mount('body')` to be used on the server like so:
```js
module.exports = app.mount('body')
```
Then, when server rendering you can do:
```js
var app = require('./app')
fillServerTemplate(html, app.selector, app.toString('/'))
```
Where `fillServerTemplate` is a function that replaces the HTML at a
CSS selector with some string.
This way you do not need to check for `typeof window` in your
application entry point to do server rendering, and it allows tools like
bankai to automatically inline server rendered html in the correct place.
* docs
* better words
* add support for HTMLElement on choo.mount
- removed explicit "string" test and for selector variable, replaced by
"is available and filled" test
- add "if" to separate by incoming "string" or "HTMLElement"
* remove semicolons and white spaces
* add "is in Browser" check for HTMLElement
* add window to HTMLElement
* optimizing "mount" commit
* remove window.HTMLElement check
* change .mount documentation
- add info that selector can be also a DOM element
- remove "nanomount" infos
* add missing line
* become prototype based
upgrade to new nanobus
remove nanohistory
add nanotiming
remove nanomount
move newTree to next tick
upgrade timing API
add more node warnings to .start/.mount
add morph timing
pass app instance to .use()
self-clearing async-timing
clean up timings
better mount error
fix mount bug
de-prototype helper functions
update to latest nanotiming
upgrade to nanotiming 5
update nanotiming
add toString asserts
more assertions
add event based tracing
expose createlocation
assert return types from render to always be the same
add navigate event
expose route on state
expose events
update uglify
use scroll-to-anchor
update nanobus
document events
update docs
more docs
changelog v6
upgrade nanomorph
fixup! neatify morph assertions
update bel dep
add popstate docs to changelog
* expose events on state
* upgrade deps