This PR contains the following updates:
| Package | Type | Update | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|---|---|
| actions/checkout | action | minor | v6.0.1 → v6.1.0 | ||||
| better-dx | devDependencies | patch | ^0.2.15 → ^0.2.38 | ||||
| bun-plugin-dtsx (source) | devDependencies | patch | ^0.11.10 → ^0.11.24 | ||||
| bunfig | devDependencies | patch | ^0.15.17 → ^0.15.21 | ||||
| stacksjs/action-releaser | action | patch | v1.2.9 → v1.2.11 | ||||
| very-happy-dom | devDependencies | minor | ^0.0.9 → ^0.4.1 |
Release Notes
actions/checkout
v6.1.0
What's Changed
- [BREAKING] backport
allow-unsafe-pr-checkoutto v6 by @aiqiaoy in #2500 - backport fixes to releases-v6 by @aiqiaoy in #2527
https://github.blog/changelog/2026-06-18-safer-pull_request_target-defaults-for-github-actions-checkout/ for more details about this breaking change
Full Changelog: https://github.com/actions/checkout/compare/v6.0.3...v6.1.0
v6.0.3
- Fix checkout init for SHA-256 repositories by @yaananth in #2439
- fix: expand merge commit SHA regex and add SHA-256 test cases by @yaananth in #2414
v6.0.2
- Fix tag handling: preserve annotations and explicit fetch-tags by @ericsciple in #2356
stacksjs/better-dx (better-dx)
v0.2.38
v0.2.37
v0.2.36
v0.2.35
v0.2.34
v0.2.33
v0.2.32
v0.2.31
v0.2.30
v0.2.29
v0.2.28
v0.2.27
v0.2.26
v0.2.25
v0.2.24
v0.2.23
v0.2.22
v0.2.21
v0.2.20
v0.2.19
v0.2.18
v0.2.17
v0.2.16
stacksjs/dtsx (bun-plugin-dtsx)
v0.11.23
Changelog
🐛 Bug Fixes
- declarations: handle const assertions before satisfies constraints (35daea7) (by Chris Breuer chris@stacksjs.com)
🔧 Chores
- release v0.11.23 (0fcc75d) (by Chris Breuer chris@stacksjs.com)
Contributors
- Chris Breuer chris@stacksjs.com
v0.11.22
Changelog
🐛 Bug Fixes
- declarations: preserve embedded source text safely (316304e) (by Chris Breuer chris@stacksjs.com)
- workspace: parse project references as JSONC (4620570) (by Chris chris@stacksjs.com)
🔧 Chores
- release v0.11.22 (5595e5e) (by Chris Breuer chris@stacksjs.com)
Contributors
- Chris chris@stacksjs.com
- Chris Breuer chris@stacksjs.com
v0.11.21
Changelog
🐛 Bug Fixes
- dtsx: canonicalize directory re-export identities (55cac45) (by Chris chris@stacksjs.com)
- preserve exports after trailing comments (5c6fc6d) (by Chris Breuer chris@stacksjs.com)
- build: build private Vite integration as a library (8b1d2f6) (by Chris chris@stacksjs.com)
🔧 Chores
- release v0.11.21 (6ee09fb) (by Chris chris@stacksjs.com)
🎉 Miscellaneous
- Merge remote-tracking branch 'origin/main' into codex/settlers-windows-path-identity (4713f76) (by Chris chris@stacksjs.com)
Contributors
- Chris chris@stacksjs.com
- Chris Breuer chris@stacksjs.com
v0.11.20
Changelog
🐛 Bug Fixes
- dtsx: normalize source paths before output collision checks (8015ac1) (by Chris chris@stacksjs.com)
🔧 Chores
- release v0.11.20 (259a823) (by Chris chris@stacksjs.com)
Contributors
- Chris chris@stacksjs.com
v0.11.19
Changelog
🐛 Bug Fixes
- method signatures that do not parse, and unannotated methods typed void (dbd0a00) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.19 (08baf0b) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.18
Changelog
🐛 Bug Fixes
- stop declaring documented objects as {} and unannotated functions as void (a4429fd) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.18 (b2ebcfc) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.17
Changelog
🐛 Bug Fixes
- extractor: stop namespace members at the closing brace (3a33b69) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.17 (e31c175) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.16
Changelog
🐛 Bug Fixes
- bundle: link re-exports instead of dropping them (a3f5ef8) (by Chris <chrisbreuer93@>gmail.com>)
- extractor: remove the compiler-API modules TypeScript 7 cannot load (dccb82b) (by Chris <chrisbreuer93@>gmail.com>)
- emit: drop parameter initializers and keep object-type members separated (ba82f26) (by Chris <chrisbreuer93@>gmail.com>)
- zig: keep the space before extends in declare-module interfaces (cbc3b6a) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.16 (69163d3) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.15
Changelog
🐛 Bug Fixes
- zig: parameter properties with comments, defaults and arrow types (484fe17) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.15 (36ae1cd) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.14
Changelog
🐛 Bug Fixes
- extractor: emit commented and defaulted parameter properties correctly (c5cc8a6) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.14 (1519a82) (by Chris <chrisbreuer93@>gmail.com>)
- run @stacksjs/logsmith, not the unrelated npm 'logsmith' (0786971) (by Chris <chrisbreuer93@>gmail.com>)
- release through @stacksjs/bumpx, not the unrelated npm 'bumpx' (f531b01) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.13
Changelog
🐛 Bug Fixes
- extractor: stop an unbalanced
<swallowing the rest of the file (1ad3bfa) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.13 (6067773) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.12
Changelog
🐛 Bug Fixes
- emit: an import-attributes clause fell back to the object wrapper (5be9618) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.12 (869d52c) (by Chris <chrisbreuer93@>gmail.com>)
- generator: drop a call-site comment the function already carries (6e7e324) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.11.11
Changelog
🐛 Bug Fixes
- cli: several entrypoints could not be passed, and a miss exited 0 (f23e59f) (by Chris <chrisbreuer93@>gmail.com>)
- emit: a wrapped export clause separated specifiers with semicolons (0c19a9e) (by Chris <chrisbreuer93@>gmail.com>)
🔧 Chores
- release v0.11.11 (2a01119) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
stacksjs/action-releaser
v1.2.11
🐛 Bug Fixes
- release: publish GitHub action directly (0cf36bd) (by Chris <chrisbreuer93@>gmail.com>)
🧹 Chores
- release v1.2.11 (fe1e8d5) (by Chris <chrisbreuer93@>gmail.com>)
Contributors
- Chris <chrisbreuer93@>gmail.com>
v1.2.10
stacksjs/very-happy-dom (very-happy-dom)
v0.4.1
- scope options to select and datalist interfaces (805e374) (by Chris chris@stacksjs.com) (#1625)
- layout: take line-height and the baseline from the font (8555766) (by glennmichael123 gtorregosa@gmail.com)
v0.4.0
This release gives very-happy-dom a layout pass. Boxes have positions now,
where getBoundingClientRect() previously reported a size at (0, 0) for
everything — so overlap, ordering, hit testing and is-this-above-the-fold are
answerable, and text is measured with real font metrics rather than a flat
estimate.
Everything below was checked against Chrome by serving the same markup to a real browser and diffing the rects: 122 measurements over eight pages, with the structural ones exact.
- Normal flow. Block boxes stack and fill their containing block; inline and
inline-block boxes flow along a line, shrink to fit and wrap.
box-sizing, margins, padding, borders, min/max sizes and percentages are all modelled, as areposition: relativeandabsolute/fixedagainst the nearest positioned ancestor. - Flexbox. Both axes and both reverses, wrapping including
wrap-reverse,justify-content,align-items,align-content,align-self,flex-grow/shrink/basis,gap,order,automargins, andalign-items: baseline. - Grid. Track lists with
fr,auto,minmax()andrepeat(auto-fill, ...), named areas, implicit tracks,grid-auto-flowincludingdense, placement by line number orspan, and thejustify-*andalign-*family for both tracks and items. - Margin collapsing, including a first or last child's margin escaping its parent and an empty box collapsing through entirely.
- Real font metrics. Per-glyph advance widths and kerning pairs for
serif,sans-serifandmonospaceat both weights, which agree with Chrome to within a tenth of a percent. Text was measured at a flat half the font size per character before, which was out by up to 50% either way. - CSS plumbing the above needed. Shorthands expand into their longhands,
font-sizeandline-heightinherit, andem,rem, the viewport units,calc(),min(),max()andclamp()all resolve. toBeInViewport, which could not be written while every box sat at the origin.
These are the reads whose values change. Each was wrong before rather than merely absent, so a test asserting the old value was asserting a placeholder.
| before | now | |
|---|---|---|
getBoundingClientRect().x / .y | always 0 | the box's real position |
offsetWidth on an unsized block | 0 | its containing block's width |
offsetTop / offsetLeft | always 0 | measured from offsetParent |
offsetParent | parentElement | nearest positioned ancestor |
elementFromPoint() | always body | the element at the point |
scrollWidth / scrollHeight | always 0 | the content's extent |
getClientRects() | always empty | one box per rendered element |
IntersectionObserver entries | a fixed 100x100 rect | measured geometry |
an inline-block's y | top of its line | on the text baseline |
| a text-driven width | length x font-size x 0.5 | real advances and kerning |
A declared size is still reported for an element outside a document, so a test that measures something it never appended keeps working.
A font outside the three generic families is measured as the family it falls
back to, so a page in Inter is measured as Arial, and a character outside ASCII
takes the family's average advance. A line's baseline comes from an estimated
ascent, within about a third of a pixel. There is no user-agent stylesheet, so
body starts at (0, 0) rather than a browser's 8px inset. An item spanning
several grid tracks does not contribute to those tracks' sizes, and named grid
lines are not resolved. Floats, transform, z-index ordering and intrinsic
image sizes are absent.
The compatibility guide has the full table.
- layout: measure text with real font metrics (1d35980) (by glennmichael123 gtorregosa@gmail.com)
- layout: align on baselines, and give every line box its strut (54692ab) (by glennmichael123 gtorregosa@gmail.com)
- layout: give auto margins their space, and pack grids densely (2e42040) (by glennmichael123 gtorregosa@gmail.com)
- layout: resolve em against the inherited size, and evaluate calc() (a7bf62b) (by glennmichael123 gtorregosa@gmail.com) (#1600)
- layout: place grid containers on a grid (064e298) (by glennmichael123 gtorregosa@gmail.com)
- layout: collapse adjoining vertical margins (8ef8917) (by glennmichael123 gtorregosa@gmail.com)
- layout: lay flex containers out as flex (aaa4690) (by glennmichael123 gtorregosa@gmail.com)
- layout: compute normal flow, so boxes have positions (5389f8c) (by glennmichael123 gtorregosa@gmail.com)
v0.3.6
- dom: clone constructs custom elements; template content is inert (6475fcb) (by Chris <chrisbreuer93@>gmail.com>)
v0.3.5
Fixes a parser failure on framework markup. @click="tap()" was not a name the
attribute scanner accepted, so it stopped at the @, abandoned the whole tag, and
emitted @click="tap()">Go as text:
<button @click="tap()">Go</button>
textContent was '@click="tap()">Go' -- the <button> was goneA page of Alpine, Vue or stx markup came through as visible attribute soup with
its elements missing. Found by reading a real application's served HTML, where
innerText returned a wall of @click and x-class strings where the copy should
have been.
The spec allows almost any character in an attribute name, which is why these work
in a browser with no build step. @click, #slot, :aria-pressed, x-cloak and
v-on:click are all attributes now. A nameless position steps forward rather than
breaking out of the attribute loop, so a stray character cannot silently truncate a
tag's attributes either.
v0.3.4
Two more fixes found by pointing the library at a real application's served HTML.
Neither needs anything exotic — a social meta tag and a lang attribute are on
essentially every page on the web.
meta[property="og:title"] threw Unsupported pseudo-class: ":title". The
pseudo-class scan read the raw selector including the inside of [...], so a
colon in a quoted attribute value was taken as the start of a pseudo-class. Every
og: meta selector failed, as did any value holding a URL or a time. Quoted
content is masked before the scan now, which leaves :not([property="og:x"])
working.
setContent silently dropped every attribute on <html>. An innerHTML
assignment cannot set them and nothing carried them across, so lang was lost —
a test asserting the page declares a language failed against a page that declares
one. A fragment that says nothing about <html> leaves the existing attributes
alone.
v0.3.3
Fixes a crash on valid HTML. A < that cannot open a tag is now text, as it is in
a browser.
<p>a < b</p> threw `Invalid tag name` — a document containing a
comparison could not be parsed at all
<p>a <1 b</p> parsed, but reported "a " — the `<1` was read as a tag
and the rest of the line silently discardedFound by pointing the parser at a real application's served HTML and
delta-minimising the 634KB page that crashed it down to a fragment of a template
expression: rating() < 1 || submitting(). Markup like that is ordinary —
a comparison inside an attribute expression, a price, "<3" — and no fixture in the
test suite had ever contained one.
<! that is neither a comment nor a DOCTYPE, <?, and a nameless </> are also
text now, rather than the bogus comments a browser would make of them. That is a
deliberate narrowing: text can neither crash nor discard content, which are the
two failures that matter.
v0.3.2
A second type-only fix. 0.3.0 and 0.3.1 both ship a declaration graph that does
not resolve: dist/screenshot/webview.d.ts was never written, while
capture.d.ts imports three types from it and the entry point re-exports
capture. So every consumer who typechecks fails, not only those touching
dialogs:
dist/screenshot/capture.d.ts(3,111): error TS2307: Cannot find module './webview'Runtime behaviour was never affected — dist/*.js has been correct throughout.
Upgrade from 0.3.0 or 0.3.1 if you use TypeScript. There is nothing else here.
0.3.1 added a guard that typechecks a consumer file against the built package. It filtered to TS1xxx syntax errors, and a module that was never written is a resolution error, so it passed while this was broken.
It now fails on any error naming a file under the package's own dist/, whatever
the code, and is verified against three shapes: the missing declaration, 0.3.0's
malformed Dialog comment verbatim, and a dangling type reference.
Five earlier versions of that filter each passed while something was broken, which
is the thing worth knowing: a guard that matches nothing looks exactly like a
guard that found nothing. skipLibCheck: true skips the very files being checked;
a lone .d.ts reports unresolved imports for every file; a file argument beside a
tsconfig raises TS5112 and exits 0 without checking; an absolute path match fails
because tsc reports relative; an unanchored dist/ match catches every
node_modules/x/dist in the tree.
v0.3.1
🚀 Enhancements
- Add
bun-plugin-dts-auto(c0c487b)
❤️ Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.3.0
🏡 Chore
❤️ Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.2.0
🏡 Chore
❤️ Contributors
- Chris <chrisbreuer93@>gmail.com>
v0.1.12
v0.1.11
v0.1.10
v0.1.9
v0.1.8
v0.1.7
v0.1.6: very-happy-dom v0.1.6
Patch release with complete custom-element upgrade semantics, Shadow DOM slot assignment and slotchange behavior, plus deterministic WebSocket connection-failure handling. The attached package is the same npm-compatible artifact produced by the repository release build.
v0.1.4
Configuration
📅 Schedule: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
- If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.