Skip to content

Releases: Automattic/node-canvas

v3.0.0

23 Dec 18:05
Compare
Choose a tag to compare

3.0.0

This release notably changes to using N-API. 🎉

Breaking

  • Dropped support for Node.js 16.x and below.

Changed

  • Migrated to N-API (by way of node-addon-api) and removed libuv and v8 dependencies
  • Change from node-pre-gyp to prebuild-install
  • Defer the initialization of the op variable to the default switch case to avoid a compiler warning. (#2229)
  • Use a default switch case with a null statement if some enum values aren't suppsed to be handled, this avoids a compiler warning. (#2229)
  • Migrate from librsvg's deprecated rsvg_handle_get_dimensions() and rsvg_handle_render_cairo() functions to the new rsvg_handle_get_intrinsic_size_in_pixels() and rsvg_handle_render_document() respectively. (#2229)
  • Avoid calling virtual methods in constructors/destructors to avoid bypassing virtual dispatch. (#2229)
  • Remove unused private field backend in the Backend class. (#2229)
  • Add Node.js v20 to CI. (#2237)
  • Replaced dtslint with tsd (#2313)
  • Changed PNG consts to static properties of Canvas class
  • Reverted improved font matching on Linux (#1572) because it doesn't work if fonts are installed. If you experience degraded font selection, please file an issue and use v3.0.0-rc3 in the meantime.

Added

  • Added string tags to support class detection
  • Throw Cairo errors in canvas.toBuffer()

Fixed

  • Fix a case of use-after-free. (#2229)
  • Fix usage of garbage value by filling the allocated memory entirely with zeros if it's not modified. (#2229)
  • Fix a potential memory leak. (#2229)
  • Fix the wrong type of setTransform
  • Fix the improper parsing of rgb functions issue. (#2300)
  • Fix issue related to improper parsing of leading and trailing whitespaces in CSS color. (#2301)
  • RGB functions should support real numbers now instead of just integers. (#2339)
  • Allow alternate or properly escaped quotes within font-family names
  • Fix TextMetrics type to include alphabeticBaseline, emHeightAscent, and emHeightDescent properties
  • Fix class properties should have defaults as standard js classes (#2390)
  • Fixed Exif orientation in JPEG files being ignored (#1670)
  • Align DOMMatrix/DOMPoint to spec by adding missing methods

v3.0.0-rc3

07 Dec 16:31
Compare
Choose a tag to compare
v3.0.0-rc3 Pre-release
Pre-release

This release notably changes to using N-API. 🎉

Breaking

  • Dropped support for Node.js 16.x and below.

Changed

  • Migrated to N-API (by way of node-addon-api) and removed libuv and v8 dependencies
  • Change from node-pre-gyp to prebuild-install
  • Defer the initialization of the op variable to the default switch case to avoid a compiler warning. (#2229)
  • Use a default switch case with a null statement if some enum values aren't suppsed to be handled, this avoids a compiler warning. (#2229)
  • Migrate from librsvg's deprecated rsvg_handle_get_dimensions() and rsvg_handle_render_cairo() functions to the new rsvg_handle_get_intrinsic_size_in_pixels() and rsvg_handle_render_document() respectively. (#2229)
  • Avoid calling virtual methods in constructors/destructors to avoid bypassing virtual dispatch. (#2229)
  • Remove unused private field backend in the Backend class. (#2229)
  • Add Node.js v20 to CI. (#2237)
  • Replaced dtslint with tsd (#2313)
  • Changed PNG consts to static properties of Canvas class

Added

  • Added string tags to support class detection
  • Throw Cairo errors in canvas.toBuffer()

Fixed

  • Fix a case of use-after-free. (#2229)
  • Fix usage of garbage value by filling the allocated memory entirely with zeros if it's not modified. (#2229)
  • Fix a potential memory leak. (#2229)
  • Fix the wrong type of setTransform
  • Fix the improper parsing of rgb functions issue. (#2300)
  • Fix issue related to improper parsing of leading and trailing whitespaces in CSS color. (#2301)
  • RGB functions should support real numbers now instead of just integers. (#2339)
  • Allow alternate or properly escaped quotes within font-family names
  • Fix TextMetrics type to include alphabeticBaseline, emHeightAscent, and emHeightDescent properties
  • Fix class properties should have defaults as standard js classes (#2390)
  • Fixed Exif orientation in JPEG files being ignored (#1670)

v3.0.0-rc2

20 Jun 00:30
Compare
Choose a tag to compare
v3.0.0-rc2 Pre-release
Pre-release

Note

Prebuilds are currently only available for Linux (x64, glibc), macOS (x64) and Windows (x64). Please give this version a try and let us know if you run into issues!

npm install canvas@next

This release notably changes to using N-API. 🎉

Breaking

  • Dropped support for Node.js 16.x and below.

Changed

  • Migrated to N-API (by way of node-addon-api) and removed libuv and v8 dependencies
  • Change from node-pre-gyp to prebuild-install
  • Defer the initialization of the op variable to the default switch case to avoid a compiler warning. (#2229)
  • Use a default switch case with a null statement if some enum values aren't suppsed to be handled, this avoids a compiler warning. (#2229)
  • Migrate from librsvg's deprecated rsvg_handle_get_dimensions() and rsvg_handle_render_cairo() functions to the new rsvg_handle_get_intrinsic_size_in_pixels() and rsvg_handle_render_document() respectively. (#2229)
  • Avoid calling virtual methods in constructors/destructors to avoid bypassing virtual dispatch. (#2229)
  • Remove unused private field backend in the Backend class. (#2229)
  • Add Node.js v20 to CI. (#2237)
  • Replaced dtslint with tsd (#2313)

Added

  • Added string tags to support class detection

Fixed

  • Fix a case of use-after-free. (#2229)
  • Fix usage of garbage value by filling the allocated memory entirely with zeros if it's not modified. (#2229)
  • Fix a potential memory leak. (#2229)
  • Fix the wrong type of setTransform

v2.11.2

02 Apr 21:33
Compare
Choose a tag to compare

Note: this is the first version with prebuilds for Node.js v20.

Fixed

  • Building on Windows in CI (and maybe other Windows configurations?) (#2216)

v2.11.1

02 Apr 21:32
Compare
Choose a tag to compare

Fixed

  • Add missing property canvas to the CanvasRenderingContext2D type
  • Fixed glyph positions getting rounded, resulting text having a slight letter-spacing effect
  • Fixed ctx.font not being restored correctly after ctx.restore() (#1946)

v2.11.0

22 Dec 21:30
Compare
Choose a tag to compare

Fixed

  • Replace triple-slash directive in types with own types to avoid polluting TS modules with globals (#1656)

v2.10.2

30 Oct 03:37
Compare
Choose a tag to compare

Fixed

  • Fix Assertion failed: (object->InternalFieldCount() > 0), function Unwrap, file nan_object_wrap.h, line 32. (#2025)
  • textBaseline and textAlign were not saved/restored by save()/restore(). (#1936)
  • Update nan to v2.17.0 to ensure Node.js v18+ support.

Changed

  • Improve performance and memory usage of save()/restore().
  • save()/restore() no longer have a maximum depth (previously 64 states).

v2.10.1

07 Sep 18:01
Compare
Choose a tag to compare

Fixed

  • Fix actualBoundingBoxLeft and actualBoundingBoxRight when textAlign='center' or 'right' (#1909)
  • Fix rgba(r,g,b,0) with alpha to 0 should parse as transparent, not opaque. (#2110)

v2.10.0

04 Sep 03:37
Compare
Choose a tag to compare

Added

Fixed

  • rgba(r,g,b) with no alpha should parse as opaque, not transparent. (#2029)
  • Typo in PngConfig.filters types. (#2072)
  • createPattern() always used "repeat" mode; now supports "repeat-x" and "repeat-y". (#2066)
  • Crashes and hangs when using non-finite values in context.arc(). (#2055)
  • Incorrect context.arc() geometry logic for full ellipses. (#1808, (#1736))
  • Added missing deregisterAllFonts to the Typescript declaration file (#2096)
  • Add User-Agent header when requesting remote images (#2099)

v2.9.3

24 Jun 19:50
Compare
Choose a tag to compare

Fixed

  • Wrong fonts used when calling registerFont multiple times with the same family name (#2041)