chore(deps): update pnpm.catalog.default @takumi-rs/helpers-v1 to v2 - #666
Open
renovate[bot] wants to merge 1 commit into
Open
chore(deps): update pnpm.catalog.default @takumi-rs/helpers-v1 to v2#666renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
📦 Package Size✅ No notable size changes All tracked output (18)
Runtime dependencies (30)
Baseline: main_@_f8308f5a___2026-08-11 · gzip is the comparison metric · changes below 16 B gzip are ignored |
commit: |
renovate
Bot
force-pushed
the
renovate/takumi-rs-helpers-v1-2.x
branch
10 times, most recently
from
August 15, 2026 18:57
66dfb70 to
6da0770
Compare
renovate
Bot
force-pushed
the
renovate/takumi-rs-helpers-v1-2.x
branch
from
August 15, 2026 23:00
6da0770 to
943d95f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.8.7→2.9.2Release Notes
kane50613/takumi (@takumi-rs/helpers-v1)
v2.9.2Treat the synthetic HTML root as a block container
Markup written in a template literal carries whitespace either side, which parsed into text roots. The synthetic root that holds them was inline, so the leading one kept a line box and pushed the content down the page. It is a block container now, the way
<body>is, andfromHtmldrops the whitespace roots the way the Rust crate already did.v2.8.0Render fragment, memo and forwardRef children inside
<svg>Inline SVG silently dropped any child it could not map to a tag name. Fragments,
memoandforwardRefcomponents now serialize the same way React does.Draw list markers for
<ol>and<ul>List items rendered with no bullet or number. A
display: list-itembox now generates a marker:list-style-type,list-style-positionandlist-style-imagepick what it draws and where it sits, and<ol start>and<li value>set the count.v2.7.2Follow Unicode emoji presentation in
extractEmojisextractEmojisreplaced every pictograph with a CDN image, so‼and▶came back as color emoji. Pictographs that default to text presentation now stay text,U+FE0Fforces the emoji image, andU+FE0Eforces the text glyph.v2.7.1Collect
<head>styles and decode character references infromHtmlfromHtmlskipped the whole<head>subtree, so a full document lost every<style>rule while the same markup as a fragment kept them.<style>tags inside<head>now land instylesheetsfor bothfromHtmlandfromJsx. Text nodes also decode HTML character references, so ,°and&#​176;render as the characters instead of the raw source.v2.6.0Route shared codepoints to the subset that declares them
A Google Fonts subset encodes more than the
unicode-rangeit was cut for, and the Cyrillic and Greek ones also carry the ASCII space and the Latin capitals. Selection took the first subset whose glyphs covered a character, in family-name order, so those codepoints left the Latin subset and every word split into separate runs. Subsets now rank by the range they declare, lowest first.v2.5.8Raise the default fetch timeout to 30 seconds
AbortSignal.timeoutcounts wall-clock time, so a 5-second budget aborted otherwise-healthy font fetches whenever heavy synchronous work (SSG, wasm rendering) blocked the event loop past it.v2.4.2Hand font and image bytes to the bindings as Uint8Array views
Fetched fonts and images flowed to the bindings as bare ArrayBuffers, which the native binding copies. Wrapping them in a Uint8Array view costs nothing and takes the zero-copy path.
v2.4.0Enforce allowUrl on every redirect hop
fetchOkwith anallowUrlpolicy now follows redirects manually (capped at 5 hops) and re-checks the resolved target of each hop, so an allowed URL can no longer redirect to a blocked address. Callers without a policy keep default redirect handling.v2.3.3Honour per-element white-space when collapsing inline text
Inline whitespace collapsing read the block's white-space value for every span, so a
white-space: prechild inside a normal-collapsing parent lost its spaces and line breaks. Each span now collapses against its own value.<br>also carries awhite-space: prepreset, so its line break survives.v2.3.0Accept raw RGBA pixels as an image source
An image node's
srctakes{ width, height, data, premultiplied? }and renders the pixels without decoding; theBitmapJSX helper wraps it as an<img>.v2.2.0Support generic on googleFonts families
A family's
generic(e.g."monospace") propagates to every loaded coverage subset, so generic stacks likefont-monoresolve to it.Claim generic font families from the JS font API
Font descriptors accept
generic(e.g."monospace"), so stacks like Tailwind'sfont-monoresolve to registered fonts without naming the family.v2.1.1Bundle the WebContainer fallback instead of
@takumi-rs/wasm/autoThe node backend's fallback pulled in
auto, whose conditions resolve againstthe host bundler: Turbopack sets
moduleand got Vite's?urlimport of thebinary, failing the build. It now loads
@takumi-rs/wasm/node, which everybundler resolves, so only
@takumi-rs/coreneeds externalizing.Drop
preact-render-to-stringAn optional import no bundler can skip: webpack and Vite have no optional
import, so resolving it statically failed the build of every app that renders
React and never installed it. Preact trees now traverse natively. Components
calling a Preact hook no longer render — those hooks live on Preact's mangled
internals, which no dispatcher can stand in for.
Accept
preact/compatelements inReactElementLikepreact/compattypes$$typeofassymbol | string, so its elements — and apropless component's
FunctionComponentElement<never>— no longer need a castto reach
render.v2.1.0Resolve hooks without react-dom and render Preact trees
fromJsxinstalls a server-semantics hook dispatcher instead of falling backto
react-dom/server, handles context providers and consumers natively, andrenders Preact subtrees through
preact-render-to-string. Thereact-dompeer dependency is gone;
preactandpreact-render-to-stringare newoptional peers.
v2.0.2Accept a families array in
googleFontsPass the families directly instead of wrapping them in an options object:
googleFonts(["Inter", "Noto Sans JP"]). The object form stays fortext,display, and the other options.v2.0.1Default the Google Fonts CSS cache
googleFontsnow caches the CSS metadata process-wide when nocacheispassed, so callers who omit it still fetch each URL once. Pass your own
Mapto scope the cache, or a fresh one per call to opt out.
v2.0.0Cache the Google Fonts CSS promise
googleFonts'scachenow stores the in-flightPromise<string>instead ofthe resolved CSS, so concurrent calls for the same URL share one request
instead of each missing and fetching. A failed fetch evicts itself, so the
next call retries. The cache type is now
Pick<Map<string, Promise<string>>, "get" | "set" | "delete">.Share the renderer facade between the napi and wasm bindings
The napi and wasm
Rendererwrappers now build on a sharedprepareRenderInputhelper in
@takumi-rs/helpers/renderer, so their option types and render bodieslive in one place. Both backends check
signalbefore and after resolvingfonts and images: on native, an already-aborted signal now throws before any
resource fetch.
Match the Chromium UA stylesheet for default element styles
Parse the relative font keywords
bolder/lighter(font-weight) andlarger/smaller(font-size), resolving to the values Chromium uses. Expandthe default element presets to cover lists,
sub/sup,ins/del, forms,details/summary, andsearch.Bound remote fetches with byte caps and default timeouts
Remote image, font, and Google Fonts CSS fetches now reject bodies past a byte
cap (
maxBytes, default 32 MiB; 2 MiB for CSS) and apply the 5 s timeout toevery fetch, not just images. Set
timeout: 0to disable it. A newallowUrlhook on
FetchOptionsskips URLs it rejects.Add the
@takumi-rs/helpers/rendererentrypointThe shared renderer wrapper backing the napi and wasm bindings is now exported
as
@takumi-rs/helpers/renderer.Fix
googleFontslosing your declared family ordergoogleFontsreturned subsets in whatever order Google'scss2response happened to list@font-faceblocks in — not the order families were passed infamilies. A render with noexplicit
fontFamiliesfalls back to registration order, so a Han-unified codepoint shared bytwo requested families (e.g.
"Noto Sans TC"and"Noto Sans JP") could pick the wrong oneregardless of how
familieswas ordered.googleFontsnow sorts its result to match thecaller's declared order.
Replace
fetchResources/extractResourceUrlswithprepareImages@takumi-rs/helpersexportsprepareImages({ node, sources?, fetchCache?, fetch?, timeout? }),which collects a node tree's remote images and fetches the ones not already supplied. Pass a
fetchCache(aMap<string, Promise<ArrayBuffer>>, or anyMap-like store) to coalesceconcurrent fetches of the same URL and reuse the bytes across renders; a failed fetch is
evicted so a later call retries.
The
extractResourceUrlsandfetchResourceshelpers are removed. Theimagesrender optiontakes the same group form:
{ sources, fetchCache, fetch, timeout }.Keep elements as containers when children carry no text
An element whose children resolved to a textless iterable (e.g.
{[]}) became anempty text node instead of a container, so its
backgroundand other box stylesnever painted. Such elements now stay containers.
Shrink and sharpen the Google Fonts family type
Group the ~1940 families by their distinct weight/style/axis shape (152 of them) so
GoogleFontFamilybuilds a discriminated union over shapes, not families. The shipped.d.tsdrops from ~192 KB to ~58 KB and the checker does ~75% fewer instantiations. Theobject form now autocompletes each known family's weight, style, and axes, and still accepts
a name built at runtime. The generator refuses to write a catalog with under 1000 families.
Accept a bare URL string in
fontsfontsentries can now be a URL string, e.g.fonts: ["https://example.com/Inter.woff2"].The bytes are fetched on demand and keyed by the URL; family name, weight, and style come
from the font file. The object form stays for overriding those. Adds
fontFromUrlto@takumi-rs/helpers.Add
baseUrltogoogleFontsgoogleFontstakes an optionalbaseUrl, defaulting to Google Fonts, so an API-compatiblecss2 mirror can be used instead, e.g.
baseUrl: "https://fonts.bunny.net/css2"for Bunny Fonts.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.