@dicebear/converter 9.0.1 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/core.d.ts CHANGED
@@ -1,3 +1,5 @@
1
- import type { ToJpeg, ToPng } from './types.js';
1
+ import type { ToJpeg, ToPng, ToWebp, ToAvif } from './types.js';
2
2
  export declare const toPng: ToPng;
3
3
  export declare const toJpeg: ToJpeg;
4
+ export declare const toWebp: ToWebp;
5
+ export declare const toAvif: ToAvif;
package/lib/core.js CHANGED
@@ -6,6 +6,12 @@ export const toPng = (avatar) => {
6
6
  export const toJpeg = (avatar) => {
7
7
  return toFormat(avatar, 'jpeg');
8
8
  };
9
+ export const toWebp = (avatar) => {
10
+ return toFormat(avatar, 'webp');
11
+ };
12
+ export const toAvif = (avatar) => {
13
+ return toFormat(avatar, 'avif');
14
+ };
9
15
  function toFormat(avatar, format) {
10
16
  const svg = typeof avatar === 'string' ? avatar : avatar.toString();
11
17
  return {
package/lib/index.d.ts CHANGED
@@ -4,5 +4,5 @@
4
4
  * Code licensed under MIT (https://github.com/dicebear/dicebear/blob/9.x/LICENSE)
5
5
  * Copyright (c) 2024 Florian Körner
6
6
  */
7
- export { toPng, toJpeg } from './core.js';
7
+ export { toPng, toJpeg, toWebp, toAvif } from './core.js';
8
8
  export type * from './types.js';
package/lib/index.js CHANGED
@@ -4,4 +4,4 @@
4
4
  * Code licensed under MIT (https://github.com/dicebear/dicebear/blob/9.x/LICENSE)
5
5
  * Copyright (c) 2024 Florian Körner
6
6
  */
7
- export { toPng, toJpeg } from './core.js';
7
+ export { toPng, toJpeg, toWebp, toAvif } from './core.js';
@@ -1,3 +1,5 @@
1
- import type { ToPng, ToJpeg } from '../types.js';
1
+ import type { ToPng, ToJpeg, ToWebp, ToAvif } from '../types.js';
2
2
  export declare const toPng: ToPng;
3
3
  export declare const toJpeg: ToJpeg;
4
+ export declare const toWebp: ToWebp;
5
+ export declare const toAvif: ToAvif;
package/lib/node/core.js CHANGED
@@ -11,6 +11,12 @@ export const toPng = (avatar, options = {}) => {
11
11
  export const toJpeg = (avatar, options = {}) => {
12
12
  return toFormat(avatar, 'jpeg', options);
13
13
  };
14
+ export const toWebp = (avatar, options = {}) => {
15
+ return toFormat(avatar, 'webp', options);
16
+ };
17
+ export const toAvif = (avatar, options = {}) => {
18
+ return toFormat(avatar, 'avif', options);
19
+ };
14
20
  function toFormat(avatar, format, options) {
15
21
  var _a;
16
22
  const svg = typeof avatar === 'string' ? avatar : avatar.toString();
@@ -40,11 +46,12 @@ async function toBuffer(rawSvg, format, exif, options) {
40
46
  fontFiles: hasFonts ? options.fonts : undefined,
41
47
  },
42
48
  })).asPng();
43
- if ('jpeg' === format) {
44
- buffer = await sharp(buffer)
45
- .flatten({ background: '#ffffff' })
46
- .toFormat(format)
47
- .toBuffer();
49
+ if (format !== 'png') {
50
+ const sharpInstance = sharp(buffer);
51
+ if (format === 'jpeg') {
52
+ sharpInstance.flatten({ background: '#ffffff' });
53
+ }
54
+ buffer = await sharpInstance.toFormat(format).toBuffer();
48
55
  }
49
56
  if (Object.keys(exif).length > 0) {
50
57
  buffer = await tmp.withFile(async ({ path }) => {
@@ -4,5 +4,5 @@
4
4
  * Code licensed under MIT (https://github.com/dicebear/dicebear/blob/9.x/LICENSE)
5
5
  * Copyright (c) 2024 Florian Körner
6
6
  */
7
- export { toPng, toJpeg } from './core.js';
7
+ export { toPng, toJpeg, toWebp, toAvif } from './core.js';
8
8
  export type * from '../types.js';
package/lib/node/index.js CHANGED
@@ -4,4 +4,4 @@
4
4
  * Code licensed under MIT (https://github.com/dicebear/dicebear/blob/9.x/LICENSE)
5
5
  * Copyright (c) 2024 Florian Körner
6
6
  */
7
- export { toPng, toJpeg } from './core.js';
7
+ export { toPng, toJpeg, toWebp, toAvif } from './core.js';
package/lib/types.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export type ToJpeg = (avatar: Avatar, options?: Options) => Result;
2
2
  export type ToPng = (avatar: Avatar, options?: Options) => Result;
3
+ export type ToWebp = (avatar: Avatar, options?: Options) => Result;
4
+ export type ToAvif = (avatar: Avatar, options?: Options) => Result;
3
5
  export type Avatar = {
4
6
  toString(): string;
5
7
  } | string;
@@ -1 +1 @@
1
- export declare function getMimeType(format: 'svg' | 'png' | 'jpeg'): string;
1
+ export declare function getMimeType(format: 'svg' | 'png' | 'jpeg' | 'webp' | 'avif'): string;
@@ -4,6 +4,8 @@ export function getMimeType(format) {
4
4
  return 'image/svg+xml';
5
5
  case 'png':
6
6
  case 'jpeg':
7
+ case 'webp':
8
+ case 'avif':
7
9
  return `image/${format}`;
8
10
  default:
9
11
  throw new Error(`Unsupported format: ${format}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dicebear/converter",
3
- "version": "9.0.1",
3
+ "version": "9.1.0",
4
4
  "description": "SVG Converter for DiceBear",
5
5
  "keywords": [
6
6
  "dicebear"
@@ -54,5 +54,5 @@
54
54
  "publishConfig": {
55
55
  "access": "public"
56
56
  },
57
- "gitHead": "96e800ad4a1f2175f225fe1639fb91624013e01c"
57
+ "gitHead": "aa2b97f1679549e4f61dc2e4656794b1be0aee1e"
58
58
  }