@browser-mc/browser-image-resizer-ex 0.3.0 → 0.5.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/README.md CHANGED
@@ -47,6 +47,11 @@ const result = await resizeAndConvertImage({
47
47
  fit: 'contain',
48
48
  exif: 'keep',
49
49
  colorMetadata: 'preserve',
50
+ rawBitDepth: 8,
51
+ rawChromaSubsampling: '420',
52
+ avif: {
53
+ chromaSubsampling: '420',
54
+ },
50
55
  });
51
56
 
52
57
  if (result.kind === 'animated') {
@@ -60,6 +65,25 @@ if (result.kind === 'animated') {
60
65
 
61
66
  `resizeAndConvertImage` detects animated input with `ImageDecoder`. Animated input is preserved as animated WebP by default because animated WebP is currently the only animated output muxer. Use `animation: 'first-frame'` to force still-image conversion.
62
67
 
68
+ ## Feature checks
69
+
70
+ ```ts
71
+ import { checkImageDecodeSupport, getBrowserImageResizerSupportWithAvif } from '@browser-mc/browser-image-resizer-ex';
72
+
73
+ const support = await getBrowserImageResizerSupportWithAvif();
74
+ console.log(support.imageDecoder, support.imageEncoder.avif.variants.yuv444.bit8);
75
+
76
+ const decode = await checkImageDecodeSupport(file, file.type, {
77
+ animation: 'first-frame',
78
+ });
79
+
80
+ if (!decode.supported) {
81
+ console.log(decode.error);
82
+ }
83
+ ```
84
+
85
+ `checkImageDecodeSupport` runs the same input track check used by conversion and returns errors instead of throwing. Passing `animation: 'first-frame'` checks still-frame decoding with `preferAnimation: false`.
86
+
63
87
  ## Animated WebP
64
88
 
65
89
  ```ts
@@ -79,6 +103,9 @@ console.log(result.blob);
79
103
 
80
104
  - Resizing automatically uses raw planar resize for HDR-like formats when `VideoFrame.copyTo()` exposes a supported planar format, and otherwise uses Canvas.
81
105
  - `colorMetadata: 'preserve'` is the default. Use `colorMetadata: 'canvas-sdr'` to draw through an sRGB Canvas path and mark the output frame as BT.709 SDR.
106
+ - With `colorMetadata: 'preserve'`, `resizeAndConvertImage` reads source container color metadata through `@browser-mc/media-container` and preserves it when the resize and encode path does not require Canvas color conversion. AVIF `colr/nclx` CICP metadata and AVIF/JPEG/WebP ICC profiles are carried through to compatible AVIF outputs. Explicit `avif.colorMetadata`, `avif.color`, and `avif.colorSpace` options still take precedence for AVIF output. JPEG/WebP output is encoded through Canvas, so source ICC profiles are not reattached after Canvas conversion.
107
+ - `rawBitDepth` and `rawChromaSubsampling` are optional raw planar conversion controls. Use `8`, `10`, or `12` for bit depth, and `444`, `422`, or `420` for chroma. `preserve` is the default for both. These options affect supported raw planar `VideoFrame`s before encoding. For AVIF output, `rawChromaSubsampling: '420'` or `'444'` is also used as the encoder chroma default unless `avif.chromaSubsampling` is set explicitly.
108
+ - Chromium may support 8-bit AVIF encoding while rejecting the matching 10-bit AV1 codec for high-bit-depth frames. When AVIF output is requested and `avif.codec` is not set, `resizeAndConvertImage` checks the 10-bit and 8-bit encoder configs for high-bit-depth planar frames. If 10-bit is unavailable but 8-bit is available, supported planar frames are converted to 8-bit before encoding and an 8-bit AV1 codec is passed explicitly. A warning is added when this implicit 8-bit fallback changes the frame bit depth.
82
109
  - JPEG/WebP encoding currently goes through `OffscreenCanvas.convertToBlob()`, so strict HDR preservation is not expected there.
83
110
  - Animated WebP currently writes full-canvas frames and does not yet optimize changed rectangles.
84
111
  - AVIF EXIF writing remuxes to a minimal AVIF structure through `@browser-mc/media-container`. Nonessential original AVIF boxes are not preserved.
@@ -1,6 +1,6 @@
1
1
  import { muxAnimatedWebp, type AnimatedWebpFrame, type AnimatedWebpMuxOptions } from '@browser-mc/media-container';
2
- import { type FrameColorInspection, type ResizeRawOptions } from '@browser-mc/webcodecs-color';
3
- import { type BrowserImageColorMetadataPolicy } from './frame-utils.js';
2
+ import { type FrameColorInspection, type PlanarResizeAlgorithm } from '@browser-mc/webcodecs-color';
3
+ import { type BrowserImageRawBitDepth, type BrowserImageRawChromaSubsampling, type BrowserImageColorMetadataPolicy } from './frame-utils.js';
4
4
  export type { AnimatedWebpFrame, AnimatedWebpMuxOptions, };
5
5
  export { muxAnimatedWebp };
6
6
  export type BrowserAnimatedImageResizerOptions = {
@@ -9,7 +9,9 @@ export type BrowserAnimatedImageResizerOptions = {
9
9
  width?: number;
10
10
  height?: number;
11
11
  fit?: 'contain' | 'cover' | 'fill';
12
- rawResizeAlgorithm?: ResizeRawOptions['algorithm'];
12
+ rawResizeAlgorithm?: PlanarResizeAlgorithm;
13
+ rawBitDepth?: BrowserImageRawBitDepth;
14
+ rawChromaSubsampling?: BrowserImageRawChromaSubsampling;
13
15
  colorMetadata?: BrowserImageColorMetadataPolicy;
14
16
  quality?: number;
15
17
  loopCount?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"animated-webp.d.ts","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAML,KAAK,+BAA+B,EACrC,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,sBAAsB,GACvB,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,MAAM,kCAAkC,GAAG;IAC/C,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,oBAAoB,CAAC;QACjC,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;KACvC,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAQF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAmCvI"}
1
+ {"version":3,"file":"animated-webp.d.ts","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAML,KAAK,uBAAuB,EAC5B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACrC,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,iBAAiB,EACjB,sBAAsB,GACvB,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,MAAM,kCAAkC,GAAG;IAC/C,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,qBAAqB,CAAC;IAC3C,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;IACxD,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;IAC5D,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,oBAAoB,CAAC;QACjC,UAAU,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;KACvC,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAQF,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAmCvI"}
@@ -1 +1 @@
1
- {"version":3,"file":"animated-webp.js","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"animated-webp.js","sourceRoot":"","sources":["../src/animated-webp.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,18 @@
1
- import { type ResizeRawOptions } from '@browser-mc/webcodecs-color';
1
+ import { type PlanarResizeAlgorithm, type PlanarBitDepth, type PlanarChromaSubsampling } from '@browser-mc/webcodecs-color';
2
2
  import { copyArrayBuffer } from '@browser-mc/binary';
3
3
  export { copyArrayBuffer };
4
4
  export type BrowserImageResizeFit = 'contain' | 'cover' | 'fill';
5
5
  export type BrowserImageResizePath = 'none' | 'raw' | 'canvas';
6
6
  export type BrowserImageColorMetadataPolicy = 'preserve' | 'canvas-sdr';
7
+ export type BrowserImageRawBitDepth = 'preserve' | PlanarBitDepth;
8
+ export type BrowserImageRawChromaSubsampling = 'preserve' | PlanarChromaSubsampling;
7
9
  export type FrameResizeOptions = {
8
10
  width?: number;
9
11
  height?: number;
10
12
  fit?: BrowserImageResizeFit;
11
- rawResizeAlgorithm?: ResizeRawOptions['algorithm'];
13
+ rawResizeAlgorithm?: PlanarResizeAlgorithm;
14
+ rawBitDepth?: BrowserImageRawBitDepth;
15
+ rawChromaSubsampling?: BrowserImageRawChromaSubsampling;
12
16
  colorMetadata?: BrowserImageColorMetadataPolicy;
13
17
  };
14
18
  export type DecodeImageFrameOptions = {
@@ -17,6 +21,7 @@ export type DecodeImageFrameOptions = {
17
21
  desiredHeight?: number;
18
22
  preferAnimation?: boolean;
19
23
  };
24
+ export type InspectImageTrackOptions = Pick<DecodeImageFrameOptions, 'colorSpaceConversion' | 'preferAnimation'>;
20
25
  export type ImageInputInspection = {
21
26
  animated: boolean;
22
27
  frameCount: number;
@@ -24,7 +29,7 @@ export type ImageInputInspection = {
24
29
  decoder: 'image-decoder' | 'fallback';
25
30
  };
26
31
  export declare function createImageDecoder(input: Blob | ArrayBuffer | Uint8Array, type: string, options?: DecodeImageFrameOptions): Promise<ImageDecoder>;
27
- export declare function inspectImageTrack(input: Blob | ArrayBuffer | Uint8Array, type: string, options?: Pick<DecodeImageFrameOptions, 'colorSpaceConversion'>): Promise<ImageInputInspection>;
32
+ export declare function inspectImageTrack(input: Blob | ArrayBuffer | Uint8Array, type: string, options?: InspectImageTrackOptions): Promise<ImageInputInspection>;
28
33
  export declare function decodeFirstImageFrame(input: Blob | ArrayBuffer | Uint8Array, type: string, options?: DecodeImageFrameOptions): Promise<VideoFrame>;
29
34
  export declare function resolveTargetSize(sourceWidth: number, sourceHeight: number, options: Pick<FrameResizeOptions, 'width' | 'height' | 'fit'>): {
30
35
  width: number;
@@ -33,7 +38,7 @@ export declare function resolveTargetSize(sourceWidth: number, sourceHeight: num
33
38
  export declare function resizeFrameForColor(frame: VideoFrame, size: {
34
39
  width: number;
35
40
  height: number;
36
- }, options: Pick<FrameResizeOptions, 'rawResizeAlgorithm' | 'colorMetadata'>): Promise<{
41
+ }, options: Pick<FrameResizeOptions, 'rawResizeAlgorithm' | 'rawBitDepth' | 'rawChromaSubsampling' | 'colorMetadata'>): Promise<{
37
42
  frame: VideoFrame;
38
43
  path: BrowserImageResizePath;
39
44
  warnings: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"frame-utils.d.ts","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjE,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE/D,MAAM,MAAM,+BAA+B,GAAG,UAAU,GAAG,YAAY,CAAC;AAExE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,qBAAqB,CAAC;IAC5B,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,aAAa,CAAC,EAAE,+BAA+B,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,eAAe,GAAG,UAAU,CAAC;CACvC,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,EACtC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,uBAA4B,yBActC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,EACtC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,IAAI,CAAC,uBAAuB,EAAE,sBAAsB,CAAM,GAClE,OAAO,CAAC,oBAAoB,CAAC,CAsB/B;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,EACtC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,uBAA4B,uBAgBtC;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;;;EAsBzI;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACvC,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,GAAG,eAAe,CAAC,GACxE,OAAO,CAAC;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAyClF;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,GAAG,YAAY,EAAE,OAAO,SAAO,wCAO/G;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAI9F"}
1
+ {"version":3,"file":"frame-utils.d.ts","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { classifyFrameColor, convertFrameToCanvasSdr, resizeFrameRaw, resizeFrameWithCanvas, } from '@browser-mc/webcodecs-color';
1
+ import { classifyFrameColor, convertFrameToCanvasSdr, resizeFramePlanar, resizeFrameWithCanvas, } from '@browser-mc/webcodecs-color';
2
2
  import { copyArrayBuffer } from '@browser-mc/binary';
3
3
  export { copyArrayBuffer };
4
4
  export async function createImageDecoder(input, type, options = {}) {
@@ -21,7 +21,7 @@ export async function inspectImageTrack(input, type, options = {}) {
21
21
  }
22
22
  const decoder = await createImageDecoder(input, type, {
23
23
  colorSpaceConversion: options.colorSpaceConversion,
24
- preferAnimation: true,
24
+ preferAnimation: options.preferAnimation ?? true,
25
25
  });
26
26
  try {
27
27
  const track = decoder.tracks.selectedTrack;
@@ -81,10 +81,16 @@ export function resolveTargetSize(sourceWidth, sourceHeight, options) {
81
81
  }
82
82
  export async function resizeFrameForColor(frame, size, options) {
83
83
  const colorMetadata = options.colorMetadata ?? 'preserve';
84
+ const rawBitDepth = options.rawBitDepth ?? 'preserve';
85
+ const rawChromaSubsampling = options.rawChromaSubsampling ?? 'preserve';
86
+ const wantsRawPlanarConversion = rawBitDepth !== 'preserve' || rawChromaSubsampling !== 'preserve';
84
87
  if (size.width === frame.displayWidth && size.height === frame.displayHeight) {
85
88
  if (colorMetadata === 'canvas-sdr') {
86
89
  return { frame: convertFrameToCanvasSdr(frame).frame, path: 'canvas', warnings: [] };
87
90
  }
91
+ if (wantsRawPlanarConversion) {
92
+ return processRawPlanarFrame(frame, { ...size, ...options }, [], 'none');
93
+ }
88
94
  return { frame, path: 'none', warnings: [] };
89
95
  }
90
96
  const warnings = [];
@@ -104,8 +110,10 @@ export async function resizeFrameForColor(frame, size, options) {
104
110
  }
105
111
  if (color.recommendedPath === 'raw-hdr') {
106
112
  try {
107
- const resized = await resizeFrameRaw(frame, {
113
+ const resized = await resizeFramePlanar(frame, {
108
114
  ...size,
115
+ bitDepth: rawBitDepth === 'preserve' ? undefined : rawBitDepth,
116
+ chromaSubsampling: rawChromaSubsampling === 'preserve' ? undefined : rawChromaSubsampling,
109
117
  algorithm: options.rawResizeAlgorithm ?? 'bilinear',
110
118
  });
111
119
  return { frame: resized.frame, path: 'raw', warnings };
@@ -118,8 +126,27 @@ export async function resizeFrameForColor(frame, size, options) {
118
126
  if (color.recommendedPath === 'raw-hdr') {
119
127
  warnings.push('Canvas fallback may collapse HDR/BT.2020 content to sRGB or Display P3.');
120
128
  }
129
+ if (wantsRawPlanarConversion) {
130
+ warnings.push('raw planar conversion was requested but Canvas resize output is not a supported planar YUV frame.');
131
+ }
121
132
  return { frame: resized.frame, path: 'canvas', warnings };
122
133
  }
134
+ async function processRawPlanarFrame(frame, options, warnings, fallbackPath) {
135
+ try {
136
+ const converted = await resizeFramePlanar(frame, {
137
+ width: options.width,
138
+ height: options.height,
139
+ bitDepth: options.rawBitDepth === 'preserve' ? undefined : options.rawBitDepth,
140
+ chromaSubsampling: options.rawChromaSubsampling === 'preserve' ? undefined : options.rawChromaSubsampling,
141
+ algorithm: options.rawResizeAlgorithm ?? 'bilinear',
142
+ });
143
+ return { frame: converted.frame, path: 'raw', warnings };
144
+ }
145
+ catch (error) {
146
+ warnings.push(`raw planar conversion was not available: ${error instanceof Error ? error.message : String(error)}`);
147
+ return { frame, path: fallbackPath, warnings };
148
+ }
149
+ }
123
150
  export async function encodeFrameWithCanvas(frame, mime, quality = 0.85) {
124
151
  const canvas = new OffscreenCanvas(frame.displayWidth, frame.displayHeight);
125
152
  const context = canvas.getContext('2d', { colorSpace: classifyFrameColor(frame).canvasColorSpace });
@@ -1 +1 @@
1
- {"version":3,"file":"frame-utils.js","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-utils.js","sourceRoot":"","sources":["../src/frame-utils.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import { type ExifPayload } from '@browser-mc/exif-transplant';
2
- import { type EncodeAvifOptions } from '@browser-mc/webcodecs-avif';
3
- import { type BrowserImageColorMetadataPolicy, type BrowserImageResizeFit, type BrowserImageResizePath, type ImageInputInspection } from './frame-utils.js';
2
+ import { readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace, type AvifEncodeSupport, type EncodeAvifOptions } from '@browser-mc/webcodecs-avif';
3
+ import { type BrowserImageColorMetadataPolicy, type BrowserImageRawBitDepth, type BrowserImageRawChromaSubsampling, type BrowserImageResizeFit, type BrowserImageResizePath, type ImageInputInspection } from './frame-utils.js';
4
4
  import { muxAnimatedWebp, type BrowserAnimatedImageResizerOptions, type BrowserAnimatedImageResizerResult, type AnimatedWebpFrame, type AnimatedWebpMuxOptions } from './animated-webp.js';
5
- import { type FrameColorClassification, type FrameColorInspection, type ResizeRawOptions } from '@browser-mc/webcodecs-color';
5
+ import { type FrameColorClassification, type FrameColorInspection, type PlanarResizeAlgorithm } from '@browser-mc/webcodecs-color';
6
6
  export type BrowserImageOutputMime = 'image/avif' | 'image/jpeg' | 'image/webp';
7
7
  export type BrowserImageExifPolicy = 'keep' | 'drop' | 'drop-gps';
8
8
  export type BrowserImageAnimationPolicy = 'preserve' | 'first-frame' | 'error';
9
- export type { AnimatedWebpFrame, AnimatedWebpMuxOptions, BrowserAnimatedImageResizerOptions, BrowserAnimatedImageResizerResult, BrowserImageColorMetadataPolicy, BrowserImageResizeFit, BrowserImageResizePath, ImageInputInspection, };
9
+ export type { AnimatedWebpFrame, AnimatedWebpMuxOptions, BrowserAnimatedImageResizerOptions, BrowserAnimatedImageResizerResult, BrowserImageColorMetadataPolicy, BrowserImageRawBitDepth, BrowserImageRawChromaSubsampling, BrowserImageResizeFit, BrowserImageResizePath, ImageInputInspection, };
10
10
  export type BrowserImageResizerOptions = {
11
11
  input: Blob | ArrayBuffer | Uint8Array;
12
12
  inputMime?: string;
@@ -17,7 +17,9 @@ export type BrowserImageResizerOptions = {
17
17
  exif?: BrowserImageExifPolicy;
18
18
  animation?: BrowserImageAnimationPolicy;
19
19
  colorSpaceConversion?: ColorSpaceConversion;
20
- rawResizeAlgorithm?: ResizeRawOptions['algorithm'];
20
+ rawResizeAlgorithm?: PlanarResizeAlgorithm;
21
+ rawBitDepth?: BrowserImageRawBitDepth;
22
+ rawChromaSubsampling?: BrowserImageRawChromaSubsampling;
21
23
  colorMetadata?: BrowserImageColorMetadataPolicy;
22
24
  quality?: number;
23
25
  avif?: Omit<EncodeAvifOptions, 'width' | 'height' | 'quality'>;
@@ -41,10 +43,45 @@ export type BrowserImageResizerResult = {
41
43
  warnings: string[];
42
44
  };
43
45
  export type BrowserImageConversionResult = BrowserImageResizerResult | BrowserAnimatedImageResizerResult;
46
+ export type BrowserImageResizerSupport = {
47
+ imageDecoder: boolean;
48
+ imageEncoder: {
49
+ jpeg: boolean;
50
+ webp: boolean;
51
+ };
52
+ webCodecs: {
53
+ videoFrame: boolean;
54
+ videoEncoder: boolean;
55
+ videoDecoder: boolean;
56
+ };
57
+ canvas: {
58
+ offscreenCanvas: boolean;
59
+ convertToBlob: boolean;
60
+ colorSpace2d: boolean;
61
+ };
62
+ };
63
+ export type BrowserImageResizerSupportResult = BrowserImageResizerSupport & {
64
+ imageEncoder: BrowserImageResizerSupport['imageEncoder'] & {
65
+ avif: AvifEncodeSupport;
66
+ };
67
+ };
68
+ export type BrowserImageDecodeSupportResult = {
69
+ supported: boolean;
70
+ mime: string;
71
+ animated: boolean | null;
72
+ frameCount: number | null;
73
+ error: {
74
+ name: string;
75
+ message: string;
76
+ } | null;
77
+ };
78
+ export declare function getBrowserImageResizerSupport(): BrowserImageResizerSupport;
79
+ export declare function getBrowserImageResizerSupportWithAvif(): Promise<BrowserImageResizerSupportResult>;
80
+ export declare function checkImageDecodeSupport(input: Blob | ArrayBuffer | Uint8Array, inputMime?: string, options?: Pick<BrowserImageResizerOptions, 'colorSpaceConversion' | 'animation'>): Promise<BrowserImageDecodeSupportResult>;
44
81
  export declare function inspectImageInput(input: Blob | ArrayBuffer | Uint8Array, inputMime?: string, options?: Pick<BrowserImageResizerOptions, 'colorSpaceConversion'>): Promise<ImageInputInspection & {
45
82
  mime: string;
46
83
  }>;
47
84
  export declare function resizeAndConvertImage(options: BrowserImageResizerOptions): Promise<BrowserImageConversionResult>;
48
85
  export declare function resizeAnimatedImageToWebp(input: Blob | ArrayBuffer | Uint8Array, options?: Omit<BrowserAnimatedImageResizerOptions, 'input'>): Promise<BrowserAnimatedImageResizerResult>;
49
- export { muxAnimatedWebp };
86
+ export { muxAnimatedWebp, readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace };
50
87
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,WAAW,EAEjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAQL,KAAK,+BAA+B,EACpC,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,eAAe,EACf,KAAK,kCAAkC,EACvC,KAAK,iCAAiC,EACtC,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,6BAA6B,CAAC;AAErC,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEhF,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAElE,MAAM,MAAM,2BAA2B,GAAG,UAAU,GAAG,aAAa,GAAG,OAAO,CAAC;AAE/E,YAAY,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kCAAkC,EAClC,iCAAiC,EACjC,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,GACrB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,qBAAqB,CAAC;IAC5B,IAAI,CAAC,EAAE,sBAAsB,CAAC;IAC9B,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACnD,aAAa,CAAC,EAAE,+BAA+B,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,sBAAsB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,wBAAwB,CAAC;IAChC,IAAI,EAAE;QACJ,MAAM,EAAE,sBAAsB,CAAC;QAC/B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,GAAG,iCAAiC,CAAC;AAEzG,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,EACtC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,IAAI,CAAC,0BAA0B,EAAE,sBAAsB,CAAM,GACrE,OAAO,CAAC,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CASlD;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAqEtH;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,IAAI,GAAG,WAAW,GAAG,UAAU,EACtC,OAAO,GAAE,IAAI,CAAC,kCAAkC,EAAE,OAAO,CAAM,GAC9D,OAAO,CAAC,iCAAiC,CAAC,CAE5C;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,8 +1,68 @@
1
1
  import { detectImageMime, readExif, stripGpsFromExif, writeExif, } from '@browser-mc/exif-transplant';
2
- import { encodeImageToAvif } from '@browser-mc/webcodecs-avif';
2
+ import { checkAvifEncodeSupport, encodeImageToAvif, readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace, } from '@browser-mc/webcodecs-avif';
3
+ import { readImageColorMetadata, } from '@browser-mc/media-container';
3
4
  import { copyArrayBuffer, decodeFirstImageFrame, encodeFrameWithCanvas, inspectImageTrack, resizeFrameForColor, resolveTargetSize, toUint8Array, } from './frame-utils.js';
4
5
  import { resizeAnimatedImageToWebp as resizeAnimatedImageToWebpInternal, muxAnimatedWebp, } from './animated-webp.js';
5
- import { classifyFrameColor, inspectFrame, } from '@browser-mc/webcodecs-color';
6
+ import { classifyFrameColor, describePlanarFormat, inspectFrame, resizeFramePlanar, } from '@browser-mc/webcodecs-color';
7
+ export function getBrowserImageResizerSupport() {
8
+ const canvas = typeof OffscreenCanvas !== 'undefined' ? new OffscreenCanvas(1, 1) : null;
9
+ const context = canvas?.getContext('2d', { colorSpace: 'srgb' });
10
+ return {
11
+ imageDecoder: typeof ImageDecoder !== 'undefined',
12
+ imageEncoder: {
13
+ jpeg: canCanvasEncode('image/jpeg'),
14
+ webp: canCanvasEncode('image/webp'),
15
+ },
16
+ webCodecs: {
17
+ videoFrame: typeof VideoFrame !== 'undefined',
18
+ videoEncoder: typeof VideoEncoder !== 'undefined',
19
+ videoDecoder: typeof VideoDecoder !== 'undefined',
20
+ },
21
+ canvas: {
22
+ offscreenCanvas: typeof OffscreenCanvas !== 'undefined',
23
+ convertToBlob: typeof OffscreenCanvas !== 'undefined' && typeof OffscreenCanvas.prototype.convertToBlob === 'function',
24
+ colorSpace2d: context !== null,
25
+ },
26
+ };
27
+ }
28
+ export async function getBrowserImageResizerSupportWithAvif() {
29
+ const support = getBrowserImageResizerSupport();
30
+ return {
31
+ ...support,
32
+ imageEncoder: {
33
+ ...support.imageEncoder,
34
+ avif: await checkAvifEncodeSupport(),
35
+ },
36
+ };
37
+ }
38
+ export async function checkImageDecodeSupport(input, inputMime, options = {}) {
39
+ const inputBytes = await toUint8Array(input);
40
+ const mime = inputMime ?? detectInputMime(inputBytes, input);
41
+ try {
42
+ const inspection = await inspectImageTrack(inputBytes, mime, {
43
+ colorSpaceConversion: options.colorSpaceConversion ?? 'none',
44
+ preferAnimation: (options.animation ?? 'preserve') !== 'first-frame',
45
+ });
46
+ return {
47
+ supported: true,
48
+ mime,
49
+ animated: inspection.animated,
50
+ frameCount: inspection.frameCount,
51
+ error: null,
52
+ };
53
+ }
54
+ catch (error) {
55
+ return {
56
+ supported: false,
57
+ mime,
58
+ animated: null,
59
+ frameCount: null,
60
+ error: error instanceof Error
61
+ ? { name: error.name, message: error.message }
62
+ : { name: 'Error', message: String(error) },
63
+ };
64
+ }
65
+ }
6
66
  export async function inspectImageInput(input, inputMime, options = {}) {
7
67
  const inputBytes = await toUint8Array(input);
8
68
  const mime = inputMime ?? detectInputMime(inputBytes, input);
@@ -16,8 +76,10 @@ export async function inspectImageInput(input, inputMime, options = {}) {
16
76
  export async function resizeAndConvertImage(options) {
17
77
  const inputBytes = await toUint8Array(options.input);
18
78
  const inputMime = options.inputMime ?? detectInputMime(inputBytes, options.input);
79
+ const inputColorMetadata = readSourceColorMetadata(inputBytes, inputMime);
19
80
  const inputInfo = await inspectImageTrack(inputBytes, inputMime, {
20
81
  colorSpaceConversion: options.colorSpaceConversion ?? 'none',
82
+ preferAnimation: (options.animation ?? 'preserve') !== 'first-frame',
21
83
  });
22
84
  const outputMime = options.outputMime ?? defaultOutputMime(inputMime, inputInfo);
23
85
  if (inputInfo.animated && (options.animation ?? 'preserve') !== 'first-frame') {
@@ -33,6 +95,8 @@ export async function resizeAndConvertImage(options) {
33
95
  height: options.height,
34
96
  fit: options.fit,
35
97
  rawResizeAlgorithm: options.rawResizeAlgorithm,
98
+ rawBitDepth: options.rawBitDepth,
99
+ rawChromaSubsampling: options.rawChromaSubsampling,
36
100
  quality: options.quality,
37
101
  colorSpaceConversion: options.colorSpaceConversion,
38
102
  colorMetadata: options.colorMetadata,
@@ -48,11 +112,17 @@ export async function resizeAndConvertImage(options) {
48
112
  const color = classifyFrameColor(inputInspection);
49
113
  const size = resolveTargetSize(frame.displayWidth, frame.displayHeight, options);
50
114
  const resized = await resizeFrameForColor(frame, size, options);
115
+ const preservedColorMetadata = options.colorMetadata === 'canvas-sdr' || resized.path === 'canvas'
116
+ ? null
117
+ : inputColorMetadata;
51
118
  try {
52
119
  const encoded = await encodeFrame(resized.frame, outputMime, {
53
120
  quality: options.quality,
54
121
  avif: options.avif,
122
+ inputColorMetadata: preservedColorMetadata,
55
123
  preserveAlpha: inputMime !== 'image/jpeg',
124
+ rawChromaSubsampling: options.rawChromaSubsampling,
125
+ warnings: resized.warnings,
56
126
  });
57
127
  const withExif = applyExifPolicy(encoded, outputMime, sourceExif, exifPolicy);
58
128
  const blob = new Blob([copyArrayBuffer(withExif)], { type: outputMime });
@@ -87,7 +157,17 @@ export async function resizeAndConvertImage(options) {
87
157
  export async function resizeAnimatedImageToWebp(input, options = {}) {
88
158
  return resizeAnimatedImageToWebpInternal({ ...options, input });
89
159
  }
90
- export { muxAnimatedWebp };
160
+ export { muxAnimatedWebp, readAvifCicpColor, readAvifColorMetadata, readAvifColorSpace };
161
+ function readSourceColorMetadata(data, mime) {
162
+ if (mime !== 'image/avif' && mime !== 'image/jpeg' && mime !== 'image/webp')
163
+ return null;
164
+ try {
165
+ return readImageColorMetadata(data, mime);
166
+ }
167
+ catch {
168
+ return null;
169
+ }
170
+ }
91
171
  function readSourceExif(data) {
92
172
  try {
93
173
  return readExif(data);
@@ -116,15 +196,97 @@ function defaultOutputMime(inputMime, inputInfo) {
116
196
  async function encodeFrame(frame, mime, options) {
117
197
  if (mime === 'image/avif') {
118
198
  const alpha = options.avif?.alpha ?? (options.preserveAlpha ? 'keep' : 'discard');
119
- return encodeImageToAvif(frame, {
120
- ...options.avif,
121
- alpha,
199
+ const chromaSubsampling = options.avif?.chromaSubsampling
200
+ ?? avifChromaSubsamplingForRaw(options.rawChromaSubsampling);
201
+ const prepared = await prepareFrameForAvifEncode(frame, {
202
+ codec: options.avif?.codec,
203
+ chromaSubsampling,
204
+ warnings: options.warnings,
205
+ });
206
+ try {
207
+ const inputColorMetadata = options.avif?.colorMetadata === undefined
208
+ && options.avif?.color === undefined
209
+ && options.avif?.colorSpace === undefined
210
+ ? options.inputColorMetadata ?? undefined
211
+ : undefined;
212
+ return await encodeImageToAvif(prepared.frame, {
213
+ ...options.avif,
214
+ alpha,
215
+ chromaSubsampling,
216
+ codec: prepared.codec,
217
+ colorMetadata: options.avif?.colorMetadata ?? inputColorMetadata,
218
+ width: frame.displayWidth,
219
+ height: frame.displayHeight,
220
+ quality: options.quality,
221
+ });
222
+ }
223
+ finally {
224
+ if (prepared.frame !== frame)
225
+ prepared.frame.close();
226
+ }
227
+ }
228
+ return encodeFrameWithCanvas(frame, mime, options.quality);
229
+ }
230
+ async function prepareFrameForAvifEncode(frame, options) {
231
+ if (options.codec !== undefined || !isHighBitdepthPlanarFrame(frame))
232
+ return { frame, codec: options.codec };
233
+ const chromaSubsampling = options.chromaSubsampling ?? '444';
234
+ const tenBitCodec = avifCodecForSubsampling(chromaSubsampling, 10);
235
+ const eightBitCodec = avifCodecForSubsampling(chromaSubsampling, 8);
236
+ const [tenBitSupport, eightBitSupport] = await Promise.all([
237
+ isVideoEncoderConfigSupported(tenBitCodec, frame),
238
+ isVideoEncoderConfigSupported(eightBitCodec, frame),
239
+ ]);
240
+ if (tenBitSupport || !eightBitSupport)
241
+ return { frame, codec: options.codec };
242
+ try {
243
+ const converted = await resizeFramePlanar(frame, {
122
244
  width: frame.displayWidth,
123
245
  height: frame.displayHeight,
124
- quality: options.quality,
246
+ chromaSubsampling,
247
+ bitDepth: 8,
125
248
  });
249
+ options.warnings?.push('AVIF 10-bit encode was not supported, so the frame was converted to 8-bit before encoding.');
250
+ return { frame: converted.frame, codec: eightBitCodec };
251
+ }
252
+ catch (error) {
253
+ options.warnings?.push(`AVIF 10-bit encode was not supported, but 8-bit raw conversion was not available: ${error instanceof Error ? error.message : String(error)}`);
254
+ return { frame, codec: options.codec };
126
255
  }
127
- return encodeFrameWithCanvas(frame, mime, options.quality);
256
+ }
257
+ async function isVideoEncoderConfigSupported(codec, frame) {
258
+ if (typeof VideoEncoder === 'undefined')
259
+ return false;
260
+ try {
261
+ const support = await VideoEncoder.isConfigSupported({
262
+ codec,
263
+ width: frame.displayWidth,
264
+ height: frame.displayHeight,
265
+ bitrate: Math.max(80_000, Math.round(frame.displayWidth * frame.displayHeight * 0.8 * 0.7)),
266
+ framerate: 1,
267
+ alpha: 'discard',
268
+ latencyMode: 'quality',
269
+ });
270
+ return support.supported === true;
271
+ }
272
+ catch {
273
+ return false;
274
+ }
275
+ }
276
+ function isHighBitdepthPlanarFrame(frame) {
277
+ if (!frame.format)
278
+ return false;
279
+ const descriptor = describePlanarFormat(frame.format);
280
+ return descriptor !== null && descriptor.bitDepth > 8;
281
+ }
282
+ function avifCodecForSubsampling(chromaSubsampling, bitDepth) {
283
+ const profile = chromaSubsampling === '444' ? 1 : 0;
284
+ return `av01.${profile}.08M.${String(bitDepth).padStart(2, '0')}`;
285
+ }
286
+ function avifChromaSubsamplingForRaw(rawChromaSubsampling) {
287
+ if (rawChromaSubsampling === '420' || rawChromaSubsampling === '444')
288
+ return rawChromaSubsampling;
289
+ return undefined;
128
290
  }
129
291
  function applyExifPolicy(data, mime, sourceExif, policy) {
130
292
  if (policy === 'drop' || !sourceExif)
@@ -132,4 +294,9 @@ function applyExifPolicy(data, mime, sourceExif, policy) {
132
294
  const exifBytes = policy === 'drop-gps' ? stripGpsFromExif(sourceExif.bytes) : sourceExif.bytes;
133
295
  return writeExif(data, exifBytes, mime);
134
296
  }
297
+ function canCanvasEncode(type) {
298
+ return typeof OffscreenCanvas !== 'undefined'
299
+ && typeof OffscreenCanvas.prototype.convertToBlob === 'function'
300
+ && type.startsWith('image/');
301
+ }
135
302
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,SAAS,GAGV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GAGnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,sBAAsB,GAEvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,GAOb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,IAAI,iCAAiC,EAC9D,eAAe,GAKhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,GAIlB,MAAM,6BAA6B,CAAC;AA4FrC,MAAM,UAAU,6BAA6B;IAC3C,MAAM,MAAM,GAAG,OAAO,eAAe,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,MAAM,OAAO,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;IACjE,OAAO;QACL,YAAY,EAAE,OAAO,YAAY,KAAK,WAAW;QACjD,YAAY,EAAE;YACZ,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC;YACnC,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC;SACpC;QACD,SAAS,EAAE;YACT,UAAU,EAAE,OAAO,UAAU,KAAK,WAAW;YAC7C,YAAY,EAAE,OAAO,YAAY,KAAK,WAAW;YACjD,YAAY,EAAE,OAAO,YAAY,KAAK,WAAW;SAClD;QACD,MAAM,EAAE;YACN,eAAe,EAAE,OAAO,eAAe,KAAK,WAAW;YACvD,aAAa,EAAE,OAAO,eAAe,KAAK,WAAW,IAAI,OAAO,eAAe,CAAC,SAAS,CAAC,aAAa,KAAK,UAAU;YACtH,YAAY,EAAE,OAAO,KAAK,IAAI;SAC/B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qCAAqC;IACzD,MAAM,OAAO,GAAG,6BAA6B,EAAE,CAAC;IAChD,OAAO;QACL,GAAG,OAAO;QACV,YAAY,EAAE;YACZ,GAAG,OAAO,CAAC,YAAY;YACvB,IAAI,EAAE,MAAM,sBAAsB,EAAE;SACrC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAsC,EACtC,SAAkB,EAClB,UAAkF,EAAE;IAEpF,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,SAAS,IAAI,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE;YAC3D,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,MAAM;YAC5D,eAAe,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,aAAa;SACrE,CAAC,CAAC;QACH,OAAO;YACL,SAAS,EAAE,IAAI;YACf,IAAI;YACJ,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;YACjC,KAAK,EAAE,IAAI;SACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,KAAK,YAAY,KAAK;gBAC3B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;gBAC9C,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;SAC9C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAsC,EACtC,SAAkB,EAClB,UAAoE,EAAE;IAEtE,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,SAAS,IAAI,eAAe,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7D,OAAO;QACL,IAAI;QACJ,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE;YAC3C,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,MAAM;SAC7D,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAmC;IAC7E,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,uBAAuB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE;QAC/D,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,MAAM;QAC5D,eAAe,EAAE,CAAC,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,aAAa;KACrE,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjF,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,aAAa,EAAE,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC9H,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QACD,OAAO,iCAAiC,CAAC;YACvC,KAAK,EAAE,UAAU;YACjB,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;YAClD,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IAC1C,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE;QAC/D,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,IAAI,MAAM;KAC7D,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,sBAAsB,GAAG,OAAO,CAAC,aAAa,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YAChG,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,kBAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE;gBAC3D,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,kBAAkB,EAAE,sBAAsB;gBAC1C,aAAa,EAAE,SAAS,KAAK,YAAY;gBACzC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;gBAClD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAC9E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACzE,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,IAAI;gBACJ,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,OAAO,CAAC,IAAI;gBACxB,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC/E,KAAK;gBACL,IAAI,EAAE;oBACJ,MAAM,EAAE,UAAU;oBAClB,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,MAAM;iBACtD;gBACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAAsC,EACtC,UAA6D,EAAE;IAE/D,OAAO,iCAAiC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,CAAC;AAEzF,SAAS,uBAAuB,CAAC,IAAgB,EAAE,IAAY;IAC7D,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IACzF,IAAI,CAAC;QACH,OAAO,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAgB;IACtC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAgB,EAAE,KAAsC;IAC/E,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC3D,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,SAAiB,EAAE,SAAkD;IAC9F,IAAI,SAAS,EAAE,QAAQ;QAAE,OAAO,YAAY,CAAC;IAC7C,OAAO,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,YAAY;QAC3F,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,YAAY,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,KAAiB,EACjB,IAA4B,EAC5B,OAOC;IAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAClF,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,EAAE,iBAAiB;eACpD,2BAA2B,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE;YACtD,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK;YAC1B,iBAAiB;YACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS;mBAC/D,OAAO,CAAC,IAAI,EAAE,KAAK,KAAK,SAAS;mBACjC,OAAO,CAAC,IAAI,EAAE,UAAU,KAAK,SAAS;gBACzC,CAAC,CAAC,OAAO,CAAC,kBAAkB,IAAI,SAAS;gBACzC,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,MAAM,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE;gBAC7C,GAAG,OAAO,CAAC,IAAI;gBACf,KAAK;gBACL,iBAAiB;gBACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,IAAI,kBAAkB;gBAChE,KAAK,EAAE,KAAK,CAAC,YAAY;gBACzB,MAAM,EAAE,KAAK,CAAC,aAAa;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK;gBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,qBAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,KAAiB,EACjB,OAIC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAC7G,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;IAC7D,MAAM,WAAW,GAAG,uBAAuB,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,uBAAuB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACzD,6BAA6B,CAAC,WAAW,EAAE,KAAK,CAAC;QACjD,6BAA6B,CAAC,aAAa,EAAE,KAAK,CAAC;KACpD,CAAC,CAAC;IACH,IAAI,aAAa,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;YAC/C,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,MAAM,EAAE,KAAK,CAAC,aAAa;YAC3B,iBAAiB;YACjB,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,4FAA4F,CAAC,CAAC;QACrH,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,qFAAqF,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACtK,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,KAAa,EAAE,KAAiB;IAC3E,IAAI,OAAO,YAAY,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC;YACnD,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,YAAY;YACzB,MAAM,EAAE,KAAK,CAAC,aAAa;YAC3B,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;YAC3F,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAiB;IAClD,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,uBAAuB,CAAC,iBAAsE,EAAE,QAAgB;IACvH,MAAM,OAAO,GAAG,iBAAiB,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,QAAQ,OAAO,QAAQ,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,2BAA2B,CAClC,oBAAkE;IAElE,IAAI,oBAAoB,KAAK,KAAK,IAAI,oBAAoB,KAAK,KAAK;QAAE,OAAO,oBAAoB,CAAC;IAClG,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,IAAgB,EAAE,IAAe,EAAE,UAA8B,EAAE,MAA8B;IACxH,IAAI,MAAM,KAAK,MAAM,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,SAAS,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC;IAChG,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,OAAO,eAAe,KAAK,WAAW;WACxC,OAAO,eAAe,CAAC,SAAS,CAAC,aAAa,KAAK,UAAU;WAC7D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@browser-mc/browser-image-resizer-ex",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -16,11 +16,11 @@
16
16
  }
17
17
  },
18
18
  "dependencies": {
19
+ "@browser-mc/media-container": "^0.3.0",
19
20
  "@browser-mc/binary": "^0.0.1",
20
- "@browser-mc/media-container": "^0.2.0",
21
- "@browser-mc/webcodecs-avif": "^0.2.0",
22
- "@browser-mc/webcodecs-color": "^0.0.1",
23
- "@browser-mc/exif-transplant": "^0.0.2"
21
+ "@browser-mc/webcodecs-color": "^0.1.0",
22
+ "@browser-mc/exif-transplant": "^0.0.3",
23
+ "@browser-mc/webcodecs-avif": "^0.4.0"
24
24
  },
25
25
  "files": [
26
26
  "dist",