@browser-mc/webcodecs-color 0.1.0 → 0.2.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
@@ -32,14 +32,14 @@ const resized4208 = await resizeFramePlanar(frame, {
32
32
  height: 682,
33
33
  chromaSubsampling: '420',
34
34
  bitDepth: 8,
35
- algorithm: 'bilinear',
35
+ algorithm: 'lanczos3',
36
36
  });
37
37
 
38
38
  console.log(resized4208.inspection);
39
39
  resized4208.frame.close();
40
40
  ```
41
41
 
42
- `resizeFramePlanar` uses `VideoFrame.copyTo()` and creates a new `VideoFrame` from processed planar data. It copies only the source `visibleRect`, so coded padding rows/columns are not fed into processing. For supported planar YUV frames, it does resize, chroma downsampling, and bit-depth conversion in one pass over the copied data. It does not use `HTMLCanvasElement`, `OffscreenCanvas`, WebGL, or WebGPU.
42
+ `resizeFramePlanar` uses `VideoFrame.copyTo()` and creates a new `VideoFrame` from processed planar data. It copies only the source `visibleRect`, so coded padding rows/columns are not fed into processing. For supported planar YUV frames, plus 8-bit `NV12`, it does resize, chroma downsampling, and bit-depth conversion in one pass over the copied data. `NV12` resize preserves `NV12` when bit depth and chroma are preserved; explicit planar conversion can unpack `NV12` to `I420`. The default resize algorithm is `lanczos3`; `bilinear` and `nearest` are also available when speed or exact pixel replication matters. It does not use `HTMLCanvasElement`, `OffscreenCanvas`, WebGL, or WebGPU.
43
43
 
44
44
  Packed formats such as `RGBA` and `BGRA` are intentionally out of scope for this helper; use the Canvas helpers for those paths.
45
45
 
@@ -83,7 +83,7 @@ import {
83
83
  } from '@browser-mc/webcodecs-color';
84
84
  ```
85
85
 
86
- `describePlanarFormat(format)` returns planar bit depth, chroma layout, alpha presence, bytes per sample, and plane layout metadata for the supported planar YUV/YUVA formats. `frameFormatCanHaveAlpha(frame)` returns `true` for alpha-capable `VideoFrame` formats such as `RGBA`, `BGRA`, and planar `*A` variants. Unknown `VideoFrame.format` values are treated conservatively as alpha-capable.
86
+ `describePlanarFormat(format)` returns planar bit depth, chroma layout, alpha presence, bytes per sample, and plane layout metadata for the supported planar YUV/YUVA formats and `NV12`. `frameFormatCanHaveAlpha(frame)` returns `true` for alpha-capable `VideoFrame` formats such as `RGBA`, `BGRA`, and planar `*A` variants. Unknown `VideoFrame.format` values are treated conservatively as alpha-capable.
87
87
 
88
88
  ## Commands
89
89
 
@@ -1 +1 @@
1
- {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,WAMxD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAyClF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,GAAG,uBAAuB,CAMhG;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,sBAAsB,GAAG,cAAc,CAE9E;AAED,wBAAgB,eAAe,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,UAKtH"}
1
+ {"version":3,"file":"formats.d.ts","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEzC,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC;IACtB,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;CACpF,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,WAMxD;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI,CAmDlF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,sBAAsB,GAAG,uBAAuB,CAMhG;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,sBAAsB,GAAG,cAAc,CAE9E;AAED,wBAAgB,eAAe,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,UAKtH"}
package/dist/formats.js CHANGED
@@ -8,6 +8,16 @@ export function frameFormatCanHaveAlpha(frame) {
8
8
  }
9
9
  export function describePlanarFormat(format) {
10
10
  switch (format) {
11
+ case 'NV12':
12
+ return {
13
+ bytesPerSample: 1,
14
+ bitDepth: 8,
15
+ hasAlpha: false,
16
+ planes: [
17
+ { subsampleX: 1, subsampleY: 1 },
18
+ { subsampleX: 2, subsampleY: 2, samplesPerPixel: 2 },
19
+ ],
20
+ };
11
21
  case 'I420':
12
22
  return planarDescriptor(8, false, 2, 2);
13
23
  case 'I420P10':
@@ -1 +1 @@
1
- {"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -53,7 +53,7 @@ export type CanvasSdrResult = {
53
53
  inspection: FrameColorInspection;
54
54
  colorSpace: PredefinedColorSpace;
55
55
  };
56
- export type PlanarResizeAlgorithm = 'nearest' | 'bilinear';
56
+ export type PlanarResizeAlgorithm = 'nearest' | 'bilinear' | 'lanczos3';
57
57
  export type ResizeFramePlanarOptions = {
58
58
  width: number;
59
59
  height: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -138,12 +138,14 @@ export async function resizeFramePlanar(frame, options) {
138
138
  const sourceDescriptor = describePlanarFormat(sourceFormat);
139
139
  if (!sourceDescriptor)
140
140
  throw new Error(`Planar processing does not support VideoFrame format ${sourceFormat}`);
141
- if (sourceDescriptor.planes.length !== 3 && sourceDescriptor.planes.length !== 4) {
142
- throw new Error(`Planar processing currently supports 3-plane YUV and 4-plane YUVA formats, got ${sourceFormat}`);
141
+ if (sourceDescriptor.planes.length !== 2 && sourceDescriptor.planes.length !== 3 && sourceDescriptor.planes.length !== 4) {
142
+ throw new Error(`Planar processing currently supports 2-plane NV12, 3-plane YUV, and 4-plane YUVA formats, got ${sourceFormat}`);
143
143
  }
144
144
  const chromaSubsampling = options.chromaSubsampling ?? chromaSubsamplingFor(sourceDescriptor);
145
145
  const bitDepth = options.bitDepth ?? bitDepthFor(sourceDescriptor);
146
- const destinationFormat = planarFormatFor(chromaSubsampling, bitDepth, sourceDescriptor.hasAlpha);
146
+ const destinationFormat = options.chromaSubsampling === undefined && options.bitDepth === undefined
147
+ ? sourceFormat
148
+ : planarFormatFor(chromaSubsampling, bitDepth, sourceDescriptor.hasAlpha);
147
149
  if (!destinationFormat)
148
150
  throw new Error(`No WebCodecs planar format is known for ${chromaSubsampling}/${bitDepth}`);
149
151
  const destinationDescriptor = describePlanarFormat(destinationFormat);
@@ -155,14 +157,15 @@ export async function resizeFramePlanar(frame, options) {
155
157
  const sourceLayout = await frame.copyTo(source, { rect: sourceRect });
156
158
  const destinationLayout = makeDestinationLayout(destinationDescriptor, options.width, options.height);
157
159
  const destination = new Uint8Array(allocationFromLayout(destinationLayout, destinationDescriptor, options.width, options.height));
158
- const algorithm = options.algorithm ?? 'bilinear';
159
- for (let planeIndex = 0; planeIndex < sourceDescriptor.planes.length; planeIndex++) {
160
- const sourcePlane = sourceDescriptor.planes[planeIndex];
160
+ const algorithm = options.algorithm ?? 'lanczos3';
161
+ for (let planeIndex = 0; planeIndex < destinationDescriptor.planes.length; planeIndex++) {
162
+ const sourcePlaneIndex = sourcePlaneIndexForDestinationPlane(sourceDescriptor, destinationDescriptor, planeIndex);
163
+ const sourcePlane = sourceDescriptor.planes[sourcePlaneIndex];
161
164
  const destinationPlane = destinationDescriptor.planes[planeIndex];
162
165
  convertPlane({
163
166
  source,
164
167
  destination,
165
- sourceLayout: sourceLayout[planeIndex],
168
+ sourceLayout: sourceLayout[sourcePlaneIndex],
166
169
  destinationLayout: destinationLayout[planeIndex],
167
170
  sourceWidth: planeDimension(sourceRect.width, sourcePlane.subsampleX),
168
171
  sourceHeight: planeDimension(sourceRect.height, sourcePlane.subsampleY),
@@ -174,6 +177,7 @@ export async function resizeFramePlanar(frame, options) {
174
177
  destinationBitDepth: destinationDescriptor.bitDepth,
175
178
  sourceSamplesPerPixel: sourcePlane.samplesPerPixel ?? 1,
176
179
  destinationSamplesPerPixel: destinationPlane.samplesPerPixel ?? 1,
180
+ sourceComponent: sourceComponentForDestinationPlane(sourceDescriptor, destinationDescriptor, planeIndex),
177
181
  algorithm,
178
182
  });
179
183
  }
@@ -252,6 +256,18 @@ function sampleBilinear(options, x, y, component) {
252
256
  + c * (1 - tx) * ty
253
257
  + d * tx * ty);
254
258
  }
259
+ function lanczosWeight(distance, radius) {
260
+ const absoluteDistance = Math.abs(distance);
261
+ if (absoluteDistance === 0)
262
+ return 1;
263
+ if (absoluteDistance >= radius)
264
+ return 0;
265
+ return sinc(absoluteDistance) * sinc(absoluteDistance / radius);
266
+ }
267
+ function sinc(value) {
268
+ const angle = Math.PI * value;
269
+ return Math.sin(angle) / angle;
270
+ }
255
271
  function readSample(data, layout, x, y, bytesPerSample, samplesPerPixel, component) {
256
272
  const offset = layout.offset + y * layout.stride + (x * samplesPerPixel + component) * bytesPerSample;
257
273
  return bytesPerSample === 1 ? data[offset] : data[offset] | (data[offset + 1] << 8);
@@ -263,44 +279,119 @@ function writeSample(data, layout, x, y, bytesPerSample, samplesPerPixel, compon
263
279
  data[offset + 1] = value >> 8;
264
280
  }
265
281
  function convertPlane(options) {
266
- if (options.sourceSamplesPerPixel !== options.destinationSamplesPerPixel) {
267
- throw new Error('Planar conversion does not support packed-to-planar or planar-to-packed conversion');
282
+ if (options.sourceSamplesPerPixel !== options.destinationSamplesPerPixel && options.destinationSamplesPerPixel !== 1) {
283
+ throw new Error('Planar conversion does not support planar-to-packed conversion');
284
+ }
285
+ if (options.algorithm === 'lanczos3') {
286
+ convertPlaneLanczos3(options);
287
+ return;
268
288
  }
269
289
  for (let y = 0; y < options.destinationHeight; y++) {
270
290
  const sourceY = mapPixelCenter(y, options.destinationHeight, options.sourceHeight);
271
291
  for (let x = 0; x < options.destinationWidth; x++) {
272
292
  const sourceX = mapPixelCenter(x, options.destinationWidth, options.sourceWidth);
293
+ const samplingOptions = {
294
+ source: options.source,
295
+ sourceLayout: options.sourceLayout,
296
+ sourceWidth: options.sourceWidth,
297
+ sourceHeight: options.sourceHeight,
298
+ destinationLayout: options.destinationLayout,
299
+ destinationWidth: options.destinationWidth,
300
+ destinationHeight: options.destinationHeight,
301
+ bytesPerSample: options.sourceBytesPerSample,
302
+ samplesPerPixel: options.sourceSamplesPerPixel,
303
+ algorithm: options.algorithm,
304
+ };
273
305
  for (let component = 0; component < options.destinationSamplesPerPixel; component++) {
274
- const value = options.algorithm === 'nearest'
275
- ? sampleNearest({
276
- source: options.source,
277
- sourceLayout: options.sourceLayout,
278
- sourceWidth: options.sourceWidth,
279
- sourceHeight: options.sourceHeight,
280
- destinationLayout: options.destinationLayout,
281
- destinationWidth: options.destinationWidth,
282
- destinationHeight: options.destinationHeight,
283
- bytesPerSample: options.sourceBytesPerSample,
284
- samplesPerPixel: options.sourceSamplesPerPixel,
285
- algorithm: options.algorithm,
286
- }, sourceX, sourceY, component)
287
- : sampleBilinear({
288
- source: options.source,
289
- sourceLayout: options.sourceLayout,
290
- sourceWidth: options.sourceWidth,
291
- sourceHeight: options.sourceHeight,
292
- destinationLayout: options.destinationLayout,
293
- destinationWidth: options.destinationWidth,
294
- destinationHeight: options.destinationHeight,
295
- bytesPerSample: options.sourceBytesPerSample,
296
- samplesPerPixel: options.sourceSamplesPerPixel,
297
- algorithm: options.algorithm,
298
- }, sourceX, sourceY, component);
306
+ const sourceComponent = options.sourceSamplesPerPixel === options.destinationSamplesPerPixel
307
+ ? component
308
+ : options.sourceComponent;
309
+ const value = samplePlane(samplingOptions, sourceX, sourceY, sourceComponent);
299
310
  writeSample(options.destination, options.destinationLayout, x, y, options.destinationBytesPerSample, options.destinationSamplesPerPixel, component, convertSampleBitDepth(value, options.sourceBitDepth, options.destinationBitDepth));
300
311
  }
301
312
  }
302
313
  }
303
314
  }
315
+ function samplePlane(options, x, y, component) {
316
+ if (options.algorithm === 'nearest')
317
+ return sampleNearest(options, x, y, component);
318
+ return sampleBilinear(options, x, y, component);
319
+ }
320
+ function convertPlaneLanczos3(options) {
321
+ const horizontal = buildLanczosKernelTable(options.sourceWidth, options.destinationWidth, 3);
322
+ const vertical = buildLanczosKernelTable(options.sourceHeight, options.destinationHeight, 3);
323
+ const intermediate = new Float32Array(options.destinationWidth * options.sourceHeight);
324
+ for (let component = 0; component < options.destinationSamplesPerPixel; component++) {
325
+ const sourceComponent = options.sourceSamplesPerPixel === options.destinationSamplesPerPixel
326
+ ? component
327
+ : options.sourceComponent;
328
+ for (let y = 0; y < options.sourceHeight; y++) {
329
+ const rowOffset = y * options.destinationWidth;
330
+ for (let x = 0; x < options.destinationWidth; x++) {
331
+ const start = horizontal.offsets[x];
332
+ const count = horizontal.counts[x];
333
+ let value = 0;
334
+ for (let kernelIndex = 0; kernelIndex < count; kernelIndex++) {
335
+ value += readSample(options.source, options.sourceLayout, horizontal.indices[start + kernelIndex], y, options.sourceBytesPerSample, options.sourceSamplesPerPixel, sourceComponent) * horizontal.weights[start + kernelIndex];
336
+ }
337
+ intermediate[rowOffset + x] = value;
338
+ }
339
+ }
340
+ for (let y = 0; y < options.destinationHeight; y++) {
341
+ const start = vertical.offsets[y];
342
+ const count = vertical.counts[y];
343
+ for (let x = 0; x < options.destinationWidth; x++) {
344
+ let value = 0;
345
+ for (let kernelIndex = 0; kernelIndex < count; kernelIndex++) {
346
+ value += intermediate[vertical.indices[start + kernelIndex] * options.destinationWidth + x]
347
+ * vertical.weights[start + kernelIndex];
348
+ }
349
+ writeSample(options.destination, options.destinationLayout, x, y, options.destinationBytesPerSample, options.destinationSamplesPerPixel, component, convertSampleBitDepth(Math.round(value), options.sourceBitDepth, options.destinationBitDepth));
350
+ }
351
+ }
352
+ }
353
+ }
354
+ function buildLanczosKernelTable(sourceSize, destinationSize, radius) {
355
+ const scale = destinationSize / sourceSize;
356
+ const filterScale = Math.min(1, scale);
357
+ const sourceRadius = Math.ceil(radius / filterScale);
358
+ const offsets = new Int32Array(destinationSize);
359
+ const counts = new Int32Array(destinationSize);
360
+ const indices = [];
361
+ const weights = [];
362
+ for (let destination = 0; destination < destinationSize; destination++) {
363
+ const sourceCenter = mapPixelCenter(destination, destinationSize, sourceSize);
364
+ const left = Math.ceil(sourceCenter - sourceRadius);
365
+ const right = Math.floor(sourceCenter + sourceRadius);
366
+ offsets[destination] = indices.length;
367
+ let weightTotal = 0;
368
+ for (let source = left; source <= right; source++) {
369
+ const weight = lanczosWeight((sourceCenter - source) * filterScale, radius);
370
+ if (weight === 0)
371
+ continue;
372
+ indices.push(clamp(source, 0, sourceSize - 1));
373
+ weights.push(weight);
374
+ weightTotal += weight;
375
+ }
376
+ const start = offsets[destination];
377
+ counts[destination] = indices.length - start;
378
+ if (weightTotal === 0) {
379
+ indices.push(clamp(Math.round(sourceCenter), 0, sourceSize - 1));
380
+ weights.push(1);
381
+ counts[destination] = 1;
382
+ continue;
383
+ }
384
+ for (let index = start; index < indices.length; index++) {
385
+ weights[index] /= weightTotal;
386
+ }
387
+ }
388
+ return {
389
+ offsets,
390
+ counts,
391
+ indices: Int32Array.from(indices),
392
+ weights: Float32Array.from(weights),
393
+ };
394
+ }
304
395
  function convertSampleBitDepth(value, sourceBitDepth, destinationBitDepth) {
305
396
  const sourceMax = maxSampleValue(sourceBitDepth);
306
397
  const destinationMax = maxSampleValue(destinationBitDepth);
@@ -310,16 +401,16 @@ function maxSampleValue(bitDepth) {
310
401
  return 2 ** bitDepth - 1;
311
402
  }
312
403
  function assertCanConvertChroma(source, destination, sourceFormat, destinationFormat) {
313
- if (source.planes.length !== destination.planes.length) {
404
+ if (!canMapPlanes(source, destination)) {
314
405
  throw new Error(`Cannot convert ${sourceFormat} to incompatible planar format ${destinationFormat}`);
315
406
  }
316
407
  if (source.hasAlpha !== destination.hasAlpha) {
317
408
  throw new Error(`Cannot add or remove alpha while converting ${sourceFormat} to ${destinationFormat}`);
318
409
  }
319
- for (let index = 0; index < source.planes.length; index++) {
320
- const sourcePlane = source.planes[index];
410
+ for (let index = 0; index < destination.planes.length; index++) {
411
+ const sourcePlane = source.planes[sourcePlaneIndexForDestinationPlane(source, destination, index)];
321
412
  const destinationPlane = destination.planes[index];
322
- if ((sourcePlane.samplesPerPixel ?? 1) !== (destinationPlane.samplesPerPixel ?? 1)) {
413
+ if ((sourcePlane.samplesPerPixel ?? 1) !== (destinationPlane.samplesPerPixel ?? 1) && (destinationPlane.samplesPerPixel ?? 1) !== 1) {
323
414
  throw new Error(`Cannot convert ${sourceFormat} to incompatible planar format ${destinationFormat}`);
324
415
  }
325
416
  if (destinationPlane.subsampleX < sourcePlane.subsampleX || destinationPlane.subsampleY < sourcePlane.subsampleY) {
@@ -327,6 +418,31 @@ function assertCanConvertChroma(source, destination, sourceFormat, destinationFo
327
418
  }
328
419
  }
329
420
  }
421
+ function canMapPlanes(source, destination) {
422
+ if (source.planes.length === destination.planes.length)
423
+ return true;
424
+ return source.planes.length === 2
425
+ && destination.planes.length === 3
426
+ && (source.planes[1].samplesPerPixel ?? 1) === 2
427
+ && (destination.planes[1].samplesPerPixel ?? 1) === 1
428
+ && (destination.planes[2].samplesPerPixel ?? 1) === 1;
429
+ }
430
+ function sourcePlaneIndexForDestinationPlane(source, destination, destinationPlaneIndex) {
431
+ if (source.planes.length === destination.planes.length)
432
+ return destinationPlaneIndex;
433
+ if (source.planes.length === 2 && destination.planes.length === 3) {
434
+ return destinationPlaneIndex === 0 ? 0 : 1;
435
+ }
436
+ throw new Error('Cannot map incompatible planar planes');
437
+ }
438
+ function sourceComponentForDestinationPlane(source, destination, destinationPlaneIndex) {
439
+ if (source.planes.length === destination.planes.length)
440
+ return 0;
441
+ if (source.planes.length === 2 && destination.planes.length === 3) {
442
+ return destinationPlaneIndex === 2 ? 1 : 0;
443
+ }
444
+ throw new Error('Cannot map incompatible planar plane components');
445
+ }
330
446
  function clamp(value, min, max) {
331
447
  return Math.min(max, Math.max(min, value));
332
448
  }
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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@browser-mc/webcodecs-color",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",