Upgrading @resvg/resvg-js 1 to 2
Breaking1.4.0 → 2.6.2Breaking3Security1New25Changed30Fixed12Other38
BreakingUpgrade verdict
3 breaking changes and a security fix.
In plain terms
- Code that checks for the old error code name must be updated.
- If your code used the result of render() as image data, it now gets a result object instead. Call .asPng() on it to get the PNG bytes.
- You now create a Resvg object first and call render() on it, instead of calling render() directly.
- Updates dependency sharp to v0.30.5 for security.
Must act 4 items need code or config changes
What you must change
Breaking3
Renames the error code UnrecognizedBuffer to UnsupportedImage.
UnrecognizedBufferUnsupportedImagerender() no longer returns a Buffer directly; callers must use render().asPng() to get the PNG buffer.
render()render().asPng()render().widthrender().heightReplaces the render() function with a Class API using new Resvg() as the constructor.
Resvgrender()new Resvg()Security1
Updates dependency sharp to v0.30.5 for security.
sharpAPI changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
function render(svg: string | Buffer, options?: ResvgRenderOptions | null): Buffer - changed:
function renderAsync(svg: string | Buffer, options?: ResvgRenderOptions | null, signal?: AbortSignal | null): Promise<Buffer> → function renderAsync(svg: string | Buffer, options?: ResvgRenderOptions | null, signal?: AbortSignal | null): Promise<RenderedImage> - changed:
type ResvgRenderOptions = { font?: { loadSystemFonts?: boolean; fontFiles?: string[]; fontDirs?: string[]; defaultFontFamily?: string; defaultFontSize?: number; serifFamily?: string; sa… → type ResvgRenderOptions = { font?: { loadSystemFonts?: boolean; fontFiles?: string[]; fontDirs?: string[]; defaultFontSize?: number; defaultFontFamily?: string; serifFamily?: string; sa… - added:
class BBox - added:
class RenderedImage - added:
class Resvg - added:
constructor Resvg(svg: Buffer | string, options?: ResvgRenderOptions | null) - added:
get RenderedImage.height(): number - added:
get RenderedImage.pixels(): Buffer - added:
get RenderedImage.width(): number - added:
get Resvg.height(): number - added:
get Resvg.width(): number - added:
method RenderedImage.asPng(): Buffer - added:
method Resvg.cropByBBox(bbox: BBox): void - added:
method Resvg.getBBox(): BBox | undefined - added:
method Resvg.imagesToResolve(): Array<string> - added:
method Resvg.innerBBox(): BBox | undefined - added:
method Resvg.render(): RenderedImage - added:
method Resvg.resolveImage(href: string, buffer: Buffer): void - added:
method Resvg.toString(): string - added:
property BBox.height: number - added:
property BBox.width: number - added:
property BBox.x: number - added:
property BBox.y: number
- removed:
class ExternalObject<T> - removed:
function render(svg: string | Buffer, options?: string | undefined | null): Buffer - removed:
readonly property ExternalObject.'': { readonly '': unique symbol; [K: symbol]: T } - changed:
function renderAsync(svg: string | Buffer, options?: string | undefined | null, signal?: AbortSignal | undefined | null): Promise<Buffer> → function renderAsync(svg: string | Buffer, options?: string | undefined | null, signal?: AbortSignal | undefined | null): Promise<RenderedImage> - added:
class BBox - added:
class RenderedImage - added:
class Resvg - added:
constructor Resvg(svg: string | Buffer, options?: string | undefined | null) - added:
get RenderedImage.height(): number - added:
get RenderedImage.pixels(): Buffer - added:
get RenderedImage.width(): number - added:
get Resvg.height(): number - added:
get Resvg.width(): number - added:
method RenderedImage.asPng(): Buffer - added:
method Resvg.cropByBBox(bbox: BBox): void - added:
method Resvg.getBBox(): BBox | undefined - added:
method Resvg.imagesToResolve(): Array<string> - added:
method Resvg.innerBBox(): BBox | undefined - added:
method Resvg.render(): RenderedImage - added:
method Resvg.resolveImage(href: string, buffer: Buffer): void - added:
method Resvg.toString(): string - added:
property BBox.height: number - added:
property BBox.width: number - added:
property BBox.x: number - added:
property BBox.y: number