Skip to content

Bump @takumi-rs/core from 2.3.2 to 2.4.0#16

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/takumi-rs/core-2.3.0
Open

Bump @takumi-rs/core from 2.3.2 to 2.4.0#16
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/takumi-rs/core-2.3.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 18, 2026

Copy link
Copy Markdown

Bumps @takumi-rs/core from 2.3.2 to 2.4.0.

Release notes

Sourced from @​takumi-rs/core's releases.

takumi@2.4.0

  • takumi-js@2.4.0
  • @​takumi-rs/helpers@​2.4.0
  • @​takumi-rs/image-response@​2.4.0
  • @​takumi-rs/wasm@​2.4.0
  • @​takumi-rs/core@​2.4.0
  • takumi@2.4.0

Enforce allowUrl on every redirect hop

fetchOk with an allowUrl policy 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.

Unify decoded resources behind one budgeted cache

Decoded images had a byte budget, but each SVG kept up to 32 rasterized pixmaps outside it, and every render re-parsed its stylesheets from scratch. ImageCache is now ResourceCache: SVG sources, their rasterized pixmaps, and parsed stylesheets all weigh against the same budget as decoded images. The default budget drops from 64 MiB to 16 MiB and becomes configurable — new Renderer({ cacheMaxBytes }) in the bindings, ResourceCache::new(max_bytes) in Rust, with 0 disabling caching. SVG rasters and parsed stylesheets now also survive across renders, so a server re-rendering the same template stops re-rasterizing and re-parsing per request. Rust callers: RenderOptions.stylesheet is now Arc<StyleSheet>; pass sheet.into().

Return an error for viewports too large to allocate

A viewport whose pixel buffer overflowed the backing allocation used to fall back to a 1x1 canvas, so the render produced a valid-looking but wrong tiny image with no error. The root canvas is now built through a fallible path that surfaces the allocation failure as an InvalidViewport error instead. Internal offscreen canvases keep their bounded sizes and are unaffected.

Blend animated WebP frames by default on the native binding

AnimatedWebpOptions::builder() left blend and dispose unset, so they fell back to false while the type's Default and the wasm backend use blend: true. Native animated WebP now alpha-blends frames over prior content like wasm does, so animations with partially transparent later frames render the same on both backends. The builder defaults are pinned to the Default values.

Convert native panics into catchable errors instead of aborting the process

The published napi artifacts are now built with unwind panics, so a Rust panic reached through malformed input surfaces as a JS error rather than killing the host process. Wasm keeps abort panics by design.

takumi@2.3.3

  • @​takumi-rs/image-response@​2.3.3
  • takumi-js@2.3.3
  • @​takumi-rs/wasm@​2.3.3
  • @​takumi-rs/core@​2.3.3
  • @​takumi-rs/helpers@​2.3.3
  • takumi@2.3.3

Honour 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: pre child inside a normal-collapsing parent lost its spaces and line breaks. Each span now collapses against its own value. <br> also carries a white-space: pre preset, so its line break survives.

Changelog

Sourced from @​takumi-rs/core's changelog.

@​takumi-rs/core@​2.4.0

Unify decoded resources behind one budgeted cache

Decoded images had a byte budget, but each SVG kept up to 32 rasterized pixmaps outside it, and every render re-parsed its stylesheets from scratch. ImageCache is now ResourceCache: SVG sources, their rasterized pixmaps, and parsed stylesheets all weigh against the same budget as decoded images. The default budget drops from 64 MiB to 16 MiB and becomes configurable — new Renderer({ cacheMaxBytes }) in the bindings, ResourceCache::new(max_bytes) in Rust, with 0 disabling caching. SVG rasters and parsed stylesheets now also survive across renders, so a server re-rendering the same template stops re-rasterizing and re-parsing per request. Rust callers: RenderOptions.stylesheet is now Arc<StyleSheet>; pass sheet.into().

Return an error for viewports too large to allocate

A viewport whose pixel buffer overflowed the backing allocation used to fall back to a 1x1 canvas, so the render produced a valid-looking but wrong tiny image with no error. The root canvas is now built through a fallible path that surfaces the allocation failure as an InvalidViewport error instead. Internal offscreen canvases keep their bounded sizes and are unaffected.

Blend animated WebP frames by default on the native binding

AnimatedWebpOptions::builder() left blend and dispose unset, so they fell back to false while the type's Default and the wasm backend use blend: true. Native animated WebP now alpha-blends frames over prior content like wasm does, so animations with partially transparent later frames render the same on both backends. The builder defaults are pinned to the Default values.

Convert native panics into catchable errors instead of aborting the process

The published napi artifacts are now built with unwind panics, so a Rust panic reached through malformed input surfaces as a JS error rather than killing the host process. Wasm keeps abort panics by design.

@​takumi-rs/core@​2.3.0

Accept raw RGBA pixels as an image source

An image node's src takes { width, height, data, premultiplied? } and renders the pixels without decoding; the Bitmap JSX helper wraps it as an <img>.

@​takumi-rs/core@​2.2.0

Extend the built-in Geist to weight 300

The embedded last-resort font covers wght 300..800 and trims unused stylistic sets, ending up slightly smaller than before.

Claim generic font families from the JS font API

Font descriptors accept generic (e.g. "monospace"), so stacks like Tailwind's font-mono resolve to registered fonts without naming the family.

@​takumi-rs/core@​2.0.2

Accept a promise in the fonts option

fonts now takes Promise<FontLoader[]> as well as the plain list, so googleFonts results pass straight through without await.

Extend the embedded font weight axis to 800

The embedded last-resort Geist subset now covers weights 400 to 800.

@​takumi-rs/core@​2.0.0

Make the embedded font a true last resort

Both bindings now embed one font: a Latin Geist subset with a 400 to 700

... (truncated)

Commits

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 18, 2026
Bumps [@takumi-rs/core](https://github.com/kane50613/takumi/tree/HEAD/takumi-napi) from 2.3.2 to 2.4.0.
- [Release notes](https://github.com/kane50613/takumi/releases)
- [Changelog](https://github.com/kane50613/takumi/blob/master/takumi-napi/CHANGELOG.md)
- [Commits](https://github.com/kane50613/takumi/commits/takumi@2.4.0/takumi-napi)

---
updated-dependencies:
- dependency-name: "@takumi-rs/core"
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot changed the title Bump @takumi-rs/core from 2.0.1 to 2.3.0 Bump @takumi-rs/core from 2.3.2 to 2.4.0 Jul 21, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/takumi-rs/core-2.3.0 branch from 149d5ed to bcec913 Compare July 21, 2026 04:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants