@livechart/sharp-vibrant 0.1.0 → 0.2.1

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.
Files changed (102) hide show
  1. package/.eslintcache +1 -1
  2. package/.vscode/settings.json +1 -1
  3. package/README.md +22 -9
  4. package/fixtures/sample/images/palettes.json +16 -0
  5. package/fixtures/sample/types.ts +8 -4
  6. package/lib/builder.d.ts +2 -4
  7. package/lib/builder.js +31 -41
  8. package/lib/builder.js.map +1 -1
  9. package/lib/color.d.ts +1 -1
  10. package/lib/color.js +46 -51
  11. package/lib/color.js.map +1 -1
  12. package/lib/filter/default.js +1 -4
  13. package/lib/filter/default.js.map +1 -1
  14. package/lib/filter/index.js +2 -6
  15. package/lib/filter/index.js.map +1 -1
  16. package/lib/generator/default.js +12 -14
  17. package/lib/generator/default.js.map +1 -1
  18. package/lib/generator/index.js +2 -7
  19. package/lib/generator/index.js.map +1 -1
  20. package/lib/image/base.d.ts +2 -0
  21. package/lib/image/base.js +1 -3
  22. package/lib/image/base.js.map +1 -1
  23. package/lib/image/sharp.d.ts +2 -0
  24. package/lib/image/sharp.js +35 -28
  25. package/lib/image/sharp.js.map +1 -1
  26. package/lib/index.d.ts +1 -1
  27. package/lib/index.js +4 -8
  28. package/lib/index.js.map +1 -1
  29. package/lib/quantizer/index.js +2 -7
  30. package/lib/quantizer/index.js.map +1 -1
  31. package/lib/quantizer/mmcq.js +8 -13
  32. package/lib/quantizer/mmcq.js.map +1 -1
  33. package/lib/quantizer/pqueue.js +23 -27
  34. package/lib/quantizer/pqueue.js.map +1 -1
  35. package/lib/quantizer/vbox.js +51 -55
  36. package/lib/quantizer/vbox.js.map +1 -1
  37. package/lib/src/builder.d.ts +17 -0
  38. package/lib/src/builder.js +80 -0
  39. package/lib/src/builder.js.map +1 -0
  40. package/lib/src/color.d.ts +30 -0
  41. package/lib/src/color.js +81 -0
  42. package/lib/src/color.js.map +1 -0
  43. package/lib/src/filter/default.d.ts +1 -0
  44. package/lib/src/filter/default.js +7 -0
  45. package/lib/src/filter/default.js.map +1 -0
  46. package/lib/src/filter/index.d.ts +3 -0
  47. package/lib/src/filter/index.js +24 -0
  48. package/lib/src/filter/index.js.map +1 -0
  49. package/lib/src/generator/default.d.ts +20 -0
  50. package/lib/src/generator/default.js +143 -0
  51. package/lib/src/generator/default.js.map +1 -0
  52. package/lib/src/generator/index.d.ts +3 -0
  53. package/lib/src/generator/index.js +9 -0
  54. package/lib/src/generator/index.js.map +1 -0
  55. package/lib/src/image/base.d.ts +11 -0
  56. package/lib/src/image/base.js +29 -0
  57. package/lib/src/image/base.js.map +1 -0
  58. package/lib/src/image/sharp.d.ts +11 -0
  59. package/lib/src/image/sharp.js +81 -0
  60. package/lib/src/image/sharp.js.map +1 -0
  61. package/lib/src/index.d.ts +2 -0
  62. package/lib/src/index.js +9 -0
  63. package/lib/src/index.js.map +1 -0
  64. package/lib/src/quantizer/index.d.ts +2 -0
  65. package/lib/src/quantizer/index.js +8 -0
  66. package/lib/src/quantizer/index.js.map +1 -0
  67. package/lib/src/quantizer/mmcq.d.ts +3 -0
  68. package/lib/src/quantizer/mmcq.js +57 -0
  69. package/lib/src/quantizer/mmcq.js.map +1 -0
  70. package/lib/src/quantizer/pqueue.d.ts +14 -0
  71. package/lib/src/quantizer/pqueue.js +51 -0
  72. package/lib/src/quantizer/pqueue.js.map +1 -0
  73. package/lib/src/quantizer/vbox.d.ts +26 -0
  74. package/lib/src/quantizer/vbox.js +253 -0
  75. package/lib/src/quantizer/vbox.js.map +1 -0
  76. package/lib/src/typing.d.ts +57 -0
  77. package/lib/src/typing.js +3 -0
  78. package/lib/src/typing.js.map +1 -0
  79. package/lib/src/util.d.ts +31 -0
  80. package/lib/src/util.js +201 -0
  81. package/lib/src/util.js.map +1 -0
  82. package/lib/src/vibrant.d.ts +21 -0
  83. package/lib/src/vibrant.js +117 -0
  84. package/lib/src/vibrant.js.map +1 -0
  85. package/lib/typing.d.ts +18 -10
  86. package/lib/typing.js +1 -2
  87. package/lib/util.js +22 -37
  88. package/lib/util.js.map +1 -1
  89. package/lib/vibrant.d.ts +3 -4
  90. package/lib/vibrant.js +42 -52
  91. package/lib/vibrant.js.map +1 -1
  92. package/package.json +8 -8
  93. package/src/builder.ts +2 -6
  94. package/src/image/base.ts +4 -0
  95. package/src/image/sharp.ts +18 -3
  96. package/src/index.ts +1 -1
  97. package/src/test/common/data.ts +3 -1
  98. package/src/test/common/helper.ts +41 -21
  99. package/src/test/vibrant.spec.ts +4 -2
  100. package/src/typing.ts +19 -7
  101. package/src/vibrant.ts +16 -10
  102. package/tsconfig.json +4 -14
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
36
+ if (kind === "m") throw new TypeError("Private method is not writable");
37
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
38
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
39
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
40
+ };
41
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
42
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
43
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
44
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
45
+ };
46
+ var __importDefault = (this && this.__importDefault) || function (mod) {
47
+ return (mod && mod.__esModule) ? mod : { "default": mod };
48
+ };
49
+ var _Vibrant_src;
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ const color_1 = require("./color");
52
+ // eslint-disable-next-line import/no-cycle
53
+ const builder_1 = __importDefault(require("./builder"));
54
+ const Util = __importStar(require("./util"));
55
+ const quantizer_1 = __importDefault(require("./quantizer"));
56
+ const generator_1 = require("./generator");
57
+ // eslint-disable-next-line import/no-cycle
58
+ const Filters = __importStar(require("./filter"));
59
+ class Vibrant {
60
+ static from(src) {
61
+ return new builder_1.default(src);
62
+ }
63
+ constructor(src, opts) {
64
+ _Vibrant_src.set(this, void 0);
65
+ __classPrivateFieldSet(this, _Vibrant_src, src, "f");
66
+ this.opts = (Object.assign(Object.assign({}, Vibrant.DefaultOpts), opts));
67
+ this.opts.combinedFilter = Filters.combineFilters(this.opts.filters);
68
+ }
69
+ process(image) {
70
+ const { quantizer, generator } = this.opts;
71
+ return image.applyFilter(this.opts.combinedFilter)
72
+ .then((imageData) => quantizer(imageData.data, this.opts))
73
+ .then((colors) => color_1.Swatch.applyFilter(colors, this.opts.combinedFilter))
74
+ .then((colors) => Promise.resolve(generator(colors)));
75
+ }
76
+ getPalette(cb) {
77
+ const image = new this.opts.ImageClass();
78
+ const result = image.load(__classPrivateFieldGet(this, _Vibrant_src, "f"), this.opts)
79
+ .then((loadedImage) => this.process(loadedImage))
80
+ .then((palette) => {
81
+ const paletteResult = {
82
+ pixelCount: image.pixelCount,
83
+ imageDimensions: {
84
+ width: image.width,
85
+ height: image.height,
86
+ },
87
+ palette,
88
+ };
89
+ image.cleanup();
90
+ return paletteResult;
91
+ }, (err) => {
92
+ image.cleanup();
93
+ throw err;
94
+ });
95
+ if (cb) {
96
+ result.then((palette) => cb(null, palette), (err) => cb(err));
97
+ }
98
+ return result;
99
+ }
100
+ }
101
+ _Vibrant_src = new WeakMap();
102
+ Vibrant.Builder = builder_1.default;
103
+ Vibrant.Quantizer = quantizer_1.default;
104
+ Vibrant.Generator = generator_1.Default;
105
+ Vibrant.Filter = Filters;
106
+ Vibrant.Util = Util;
107
+ Vibrant.Swatch = color_1.Swatch;
108
+ Vibrant.DefaultOpts = {
109
+ colorCount: 64,
110
+ quality: 5,
111
+ generator: generator_1.Default,
112
+ ImageClass: null,
113
+ quantizer: quantizer_1.default,
114
+ filters: [Filters.Default],
115
+ };
116
+ exports.default = Vibrant;
117
+ //# sourceMappingURL=vibrant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibrant.js","sourceRoot":"","sources":["../../src/vibrant.ts"],"names":[],"mappings":"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"}
package/lib/typing.d.ts CHANGED
@@ -1,28 +1,36 @@
1
- /// <reference types="node" />
2
1
  import type { Palette, Swatch } from './color';
3
2
  import type Builder from './builder';
3
+ import { type Sharp } from 'sharp';
4
4
  export interface VibrantStatic {
5
5
  from(src: ImageSource): Builder;
6
6
  }
7
7
  export interface Callback<T> {
8
8
  (err?: Error, result?: T): void;
9
9
  }
10
- export declare type ImageCallback = Callback<Image>;
11
- export declare type ImageSource = string | Buffer;
12
- export declare type Pixels = Uint8ClampedArray | Buffer;
13
- export interface ImageData {
14
- data: Pixels;
15
- width: number;
16
- height: number;
10
+ export type ImageCallback = Callback<Image>;
11
+ export type ImageSource = string | Buffer | Sharp;
12
+ export interface ImageDimensions {
13
+ readonly width: number;
14
+ readonly height: number;
17
15
  }
18
- export interface Image {
16
+ export interface ImagePixelInfo {
19
17
  readonly pixelCount: number;
18
+ }
19
+ export type Pixels = Uint8ClampedArray | Buffer;
20
+ export interface ImageData extends ImageDimensions {
21
+ data: Pixels;
22
+ }
23
+ export interface PaletteResult extends ImagePixelInfo {
24
+ readonly imageDimensions: ImageDimensions;
25
+ readonly palette: Palette;
26
+ }
27
+ export interface Image extends ImageDimensions, ImagePixelInfo {
20
28
  readonly imageData: ImageData;
21
29
  load(image: ImageSource, opts: ComputedOptions): Promise<Image>;
22
30
  applyFilter(filter: Filter): Promise<ImageData>;
23
31
  cleanup(): void;
24
32
  }
25
- export declare type Resolvable<T> = T | Promise<T>;
33
+ export type Resolvable<T> = T | Promise<T>;
26
34
  export interface ImageClass {
27
35
  new (): Image;
28
36
  }
package/lib/typing.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=typing.js.map
package/lib/util.js CHANGED
@@ -1,15 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DELTAE94_DIFF_STATUS = {
1
+ export const DELTAE94_DIFF_STATUS = {
4
2
  NA: 0,
5
3
  PERFECT: 1,
6
4
  CLOSE: 2,
7
5
  GOOD: 10,
8
6
  SIMILAR: 50,
9
7
  };
10
- exports.SIGBITS = 5;
11
- exports.RSHIFT = 8 - exports.SIGBITS;
12
- function defer() {
8
+ export const SIGBITS = 5;
9
+ export const RSHIFT = 8 - SIGBITS;
10
+ export function defer() {
13
11
  let resolve;
14
12
  let reject;
15
13
  const promise = new Promise((_resolve, _reject) => {
@@ -19,18 +17,15 @@ function defer() {
19
17
  // @ts-ignore
20
18
  return { resolve, reject, promise };
21
19
  }
22
- exports.defer = defer;
23
- function hexToRgb(hex) {
20
+ export function hexToRgb(hex) {
24
21
  const m = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
25
22
  return m === null ? null : [m[1], m[2], m[3]].map((s) => parseInt(s, 16));
26
23
  }
27
- exports.hexToRgb = hexToRgb;
28
- function rgbToHex(r, g, b) {
24
+ export function rgbToHex(r, g, b) {
29
25
  return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1, 7)}`;
30
26
  }
31
- exports.rgbToHex = rgbToHex;
32
27
  // ir/ig/ib = (input)r/g/b - done for the purpose of linting.
33
- function rgbToHsl(ir, ig, ib) {
28
+ export function rgbToHsl(ir, ig, ib) {
34
29
  const r = ir / 255;
35
30
  const g = ig / 255;
36
31
  const b = ib / 255;
@@ -59,7 +54,6 @@ function rgbToHsl(ir, ig, ib) {
59
54
  }
60
55
  return [h, s, l];
61
56
  }
62
- exports.rgbToHsl = rgbToHsl;
63
57
  // it = (input)t
64
58
  function hue2rgb(p, q, it) {
65
59
  let t = it;
@@ -75,7 +69,7 @@ function hue2rgb(p, q, it) {
75
69
  return p + (q - p) * (2 / 3 - t) * 6;
76
70
  return p;
77
71
  }
78
- function hslToRgb(h, s, l) {
72
+ export function hslToRgb(h, s, l) {
79
73
  let r = l;
80
74
  let g = l;
81
75
  let b = l;
@@ -93,9 +87,8 @@ function hslToRgb(h, s, l) {
93
87
  b * 255 | 0,
94
88
  ];
95
89
  }
96
- exports.hslToRgb = hslToRgb;
97
90
  // ir/ig/ib = (input)r/g/b - done for the purpose of linting.
98
- function rgbToXyz(ir, ig, ib) {
91
+ export function rgbToXyz(ir, ig, ib) {
99
92
  let r = ir / 255;
100
93
  let g = ig / 255;
101
94
  let b = ib / 255;
@@ -110,9 +103,8 @@ function rgbToXyz(ir, ig, ib) {
110
103
  const z = r * 0.0193 + g * 0.1192 + b * 0.9505;
111
104
  return [x, y, z];
112
105
  }
113
- exports.rgbToXyz = rgbToXyz;
114
106
  // ix/iy/iz = (input)x/y/z
115
- function xyzToCIELab(ix, iy, iz) {
107
+ export function xyzToCIELab(ix, iy, iz) {
116
108
  const REF_X = 95.047;
117
109
  const REF_Y = 100;
118
110
  const REF_Z = 108.883;
@@ -127,13 +119,11 @@ function xyzToCIELab(ix, iy, iz) {
127
119
  const b = 200 * (y - z);
128
120
  return [L, a, b];
129
121
  }
130
- exports.xyzToCIELab = xyzToCIELab;
131
- function rgbToCIELab(r, g, b) {
122
+ export function rgbToCIELab(r, g, b) {
132
123
  const [x, y, z] = rgbToXyz(r, g, b);
133
124
  return xyzToCIELab(x, y, z);
134
125
  }
135
- exports.rgbToCIELab = rgbToCIELab;
136
- function deltaE94(lab1, lab2) {
126
+ export function deltaE94(lab1, lab2) {
137
127
  const WEIGHT_L = 1;
138
128
  const WEIGHT_C = 1;
139
129
  const WEIGHT_H = 1;
@@ -157,44 +147,39 @@ function deltaE94(lab1, lab2) {
157
147
  xDH /= WEIGHT_H * xSH;
158
148
  return Math.sqrt(xDL * xDL + xDC * xDC + xDH * xDH);
159
149
  }
160
- exports.deltaE94 = deltaE94;
161
- function rgbDiff(rgb1, rgb2) {
150
+ export function rgbDiff(rgb1, rgb2) {
162
151
  const lab1 = rgbToCIELab(...rgb1);
163
152
  const lab2 = rgbToCIELab(...rgb2);
164
153
  return deltaE94(lab1, lab2);
165
154
  }
166
- exports.rgbDiff = rgbDiff;
167
- function hexDiff(hex1, hex2) {
155
+ export function hexDiff(hex1, hex2) {
168
156
  const rgb1 = hexToRgb(hex1);
169
157
  const rgb2 = hexToRgb(hex2);
170
158
  return rgbDiff(rgb1, rgb2);
171
159
  }
172
- exports.hexDiff = hexDiff;
173
- function getColorDiffStatus(d) {
174
- if (d < exports.DELTAE94_DIFF_STATUS.NA) {
160
+ export function getColorDiffStatus(d) {
161
+ if (d < DELTAE94_DIFF_STATUS.NA) {
175
162
  return 'N/A';
176
163
  }
177
164
  // Not perceptible by human eyes
178
- if (d <= exports.DELTAE94_DIFF_STATUS.PERFECT) {
165
+ if (d <= DELTAE94_DIFF_STATUS.PERFECT) {
179
166
  return 'Perfect';
180
167
  }
181
168
  // Perceptible through close observation
182
- if (d <= exports.DELTAE94_DIFF_STATUS.CLOSE) {
169
+ if (d <= DELTAE94_DIFF_STATUS.CLOSE) {
183
170
  return 'Close';
184
171
  }
185
172
  // Perceptible at a glance
186
- if (d <= exports.DELTAE94_DIFF_STATUS.GOOD) {
173
+ if (d <= DELTAE94_DIFF_STATUS.GOOD) {
187
174
  return 'Good';
188
175
  }
189
176
  // Colors are more similar than opposite
190
- if (d < exports.DELTAE94_DIFF_STATUS.SIMILAR) {
177
+ if (d < DELTAE94_DIFF_STATUS.SIMILAR) {
191
178
  return 'Similar';
192
179
  }
193
180
  return 'Wrong';
194
181
  }
195
- exports.getColorDiffStatus = getColorDiffStatus;
196
- function getColorIndex(r, g, b) {
197
- return (r << (2 * exports.SIGBITS)) + (g << exports.SIGBITS) + b;
182
+ export function getColorIndex(r, g, b) {
183
+ return (r << (2 * SIGBITS)) + (g << SIGBITS) + b;
198
184
  }
199
- exports.getColorIndex = getColorIndex;
200
185
  //# sourceMappingURL=util.js.map
package/lib/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAEa,QAAA,oBAAoB,GAAG;IAClC,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;CACZ,CAAC;AAEW,QAAA,OAAO,GAAG,CAAC,CAAC;AACZ,QAAA,MAAM,GAAG,CAAC,GAAG,eAAO,CAAC;AAYlC,SAAgB,KAAK;IACnB,IAAI,OAAuD,CAAC;IAC5D,IAAI,MAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACnD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAXD,sBAWC;AAED,SAAgB,QAAQ,CAAC,GAAW;IAClC,MAAM,CAAC,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAJD,4BAIC;AAED,SAAgB,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACtD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC;AAFD,4BAEC;AAED,6DAA6D;AAC7D,SAAgB,QAAQ,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IACzD,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAE1B,IAAI,GAAG,KAAK,GAAG,EAAE;QACf,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAEpB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAEpD,QAAQ,GAAG,EAAE;YACX,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM;YAER,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YAER,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YAER,QAAQ;YACN,aAAa;SAChB;QAED,CAAC,IAAI,CAAC,CAAC;KACR;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC;AArCD,4BAqCC;AAED,gBAAgB;AAChB,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU;IAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,IAAI,CAAC,GAAG,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACtD,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,IAAI,CAAC,GAAW,CAAC,CAAC;IAElB,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,iBAAiB;QACjB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpB,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAChC;IAED,OAAO;QACL,CAAC,GAAG,GAAG,GAAG,CAAC;QACX,CAAC,GAAG,GAAG,GAAG,CAAC;QACX,CAAC,GAAG,GAAG,GAAG,CAAC;KACZ,CAAC;AACJ,CAAC;AApBD,4BAoBC;AAED,6DAA6D;AAC7D,SAAgB,QAAQ,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IACzD,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAEjB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAI,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7D,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAI,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7D,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAI,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAE7D,CAAC,IAAI,GAAG,CAAC;IACT,CAAC,IAAI,GAAG,CAAC;IACT,CAAC,IAAI,GAAG,CAAC;IAET,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAE/C,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC;AAlBD,4BAkBC;AAED,0BAA0B;AAC1B,SAAgB,WAAW,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,KAAK,GAAG,OAAO,CAAC;IAEtB,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAEnB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,EAAI,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACvD,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,EAAI,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACvD,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,EAAI,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAEvD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC;AAlBD,kCAkBC;AAED,SAAgB,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACzD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAHD,kCAGC;AAED,SAAgB,QAAQ,CAAC,IAAU,EAAE,IAAU;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;IAEnB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEzC,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;IAClB,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEnD,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAC9C,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;IAC5B,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;IAE5B,GAAG,IAAI,QAAQ,CAAC;IAChB,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC;IACtB,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC;IAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACtD,CAAC;AA9BD,4BA8BC;AAED,SAAgB,OAAO,CAAC,IAAU,EAAE,IAAU;IAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAJD,0BAIC;AAED,SAAgB,OAAO,CAAC,IAAY,EAAE,IAAY;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,OAAO,CAAC,IAAK,EAAE,IAAK,CAAC,CAAC;AAC/B,CAAC;AALD,0BAKC;AAED,SAAgB,kBAAkB,CAAC,CAAS;IAC1C,IAAI,CAAC,GAAG,4BAAoB,CAAC,EAAE,EAAE;QAAE,OAAO,KAAK,CAAC;KAAE;IAElD,gCAAgC;IAChC,IAAI,CAAC,IAAI,4BAAoB,CAAC,OAAO,EAAE;QAAE,OAAO,SAAS,CAAC;KAAE;IAE5D,wCAAwC;IACxC,IAAI,CAAC,IAAI,4BAAoB,CAAC,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;KAAE;IAExD,0BAA0B;IAC1B,IAAI,CAAC,IAAI,4BAAoB,CAAC,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;KAAE;IAEtD,wCAAwC;IACxC,IAAI,CAAC,GAAG,4BAAoB,CAAC,OAAO,EAAE;QAAE,OAAO,SAAS,CAAC;KAAE;IAE3D,OAAO,OAAO,CAAC;AACjB,CAAC;AAhBD,gDAgBC;AAED,SAAgB,aAAa,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,eAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,eAAO,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC;AACzB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC;AAYlC,MAAM,UAAU,KAAK;IACnB,IAAI,OAAuD,CAAC;IAC5D,IAAI,MAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACnD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,aAAa;IACb,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,CAAC,GAAG,2CAA2C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEhE,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACtD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IACzD,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9B,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAE1B,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;QAChB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAEpB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAEpD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM;YAER,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YAER,KAAK,CAAC;gBACJ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,MAAM;YAER,QAAQ;YACN,aAAa;QACjB,CAAC;QAED,CAAC,IAAI,CAAC,CAAC;IACT,CAAC;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,gBAAgB;AAChB,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU;IAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;IAEX,IAAI,CAAC,GAAG,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC;QAAE,CAAC,IAAI,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAEpD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACtD,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,IAAI,CAAC,GAAW,CAAC,CAAC;IAClB,IAAI,CAAC,GAAW,CAAC,CAAC;IAElB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,iBAAiB;QACjB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEpB,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,OAAO;QACL,CAAC,GAAG,GAAG,GAAG,CAAC;QACX,CAAC,GAAG,GAAG,GAAG,CAAC;QACX,CAAC,GAAG,GAAG,GAAG,CAAC;KACZ,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,QAAQ,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IACzD,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACjB,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAEjB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAI,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7D,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAI,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC7D,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,EAAI,GAAG,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAE7D,CAAC,IAAI,GAAG,CAAC;IACT,CAAC,IAAI,GAAG,CAAC;IACT,CAAC,IAAI,GAAG,CAAC;IAET,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;IAE/C,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,WAAW,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,KAAK,GAAG,OAAO,CAAC;IAEtB,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;IAEnB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,EAAI,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACvD,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,EAAI,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IACvD,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAA,CAAC,EAAI,CAAC,CAAA,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;IAEvD,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAExB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACzD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAU,EAAE,IAAU;IAC7C,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,CAAC,CAAC;IAEnB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAEnB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEzC,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;IAClB,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEnD,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAC9C,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;IAC5B,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;IAE5B,GAAG,IAAI,QAAQ,CAAC;IAChB,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC;IACtB,GAAG,IAAI,QAAQ,GAAG,GAAG,CAAC;IAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAU,EAAE,IAAU;IAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,IAAY;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE5B,OAAO,OAAO,CAAC,IAAK,EAAE,IAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,CAAS;IAC1C,IAAI,CAAC,GAAG,oBAAoB,CAAC,EAAE,EAAE,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;IAElD,gCAAgC;IAChC,IAAI,CAAC,IAAI,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAE5D,wCAAwC;IACxC,IAAI,CAAC,IAAI,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAAC,OAAO,OAAO,CAAC;IAAC,CAAC;IAExD,0BAA0B;IAC1B,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC;IAAC,CAAC;IAEtD,wCAAwC;IACxC,IAAI,CAAC,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,SAAS,CAAC;IAAC,CAAC;IAE3D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC3D,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACnD,CAAC"}
package/lib/vibrant.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { ImageSource, Options, ComputedOptions, Callback } from './typing';
2
- import { Palette, Swatch } from './color';
1
+ import type { ImageSource, Options, ComputedOptions, Callback, PaletteResult } from './typing';
2
+ import { Swatch } from './color';
3
3
  import Builder from './builder';
4
4
  import * as Util from './util';
5
5
  import * as Filters from './filter';
@@ -16,7 +16,6 @@ declare class Vibrant {
16
16
  opts: ComputedOptions;
17
17
  constructor(src: ImageSource, opts?: Partial<Options>);
18
18
  private process;
19
- palette(): Palette | null;
20
- getPalette(cb?: Callback<Palette>): Promise<Palette>;
19
+ getPalette(cb?: Callback<PaletteResult>): Promise<PaletteResult>;
21
20
  }
22
21
  export default Vibrant;
package/lib/vibrant.js CHANGED
@@ -1,89 +1,79 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {
3
- if (!privateMap.has(receiver)) {
4
- throw new TypeError("attempted to set private field on non-instance");
5
- }
6
- privateMap.set(receiver, value);
7
- return value;
8
- };
9
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {
10
- if (!privateMap.has(receiver)) {
11
- throw new TypeError("attempted to get private field on non-instance");
12
- }
13
- return privateMap.get(receiver);
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
14
6
  };
15
- var __importDefault = (this && this.__importDefault) || function (mod) {
16
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
11
  };
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
22
- result["default"] = mod;
23
- return result;
24
- };
25
- var _palette, _src;
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- const color_1 = require("./color");
12
+ var _Vibrant_src;
13
+ import { Swatch } from './color';
28
14
  // eslint-disable-next-line import/no-cycle
29
- const builder_1 = __importDefault(require("./builder"));
30
- const Util = __importStar(require("./util"));
31
- const quantizer_1 = __importDefault(require("./quantizer"));
32
- const generator_1 = require("./generator");
15
+ import Builder from './builder';
16
+ import * as Util from './util';
17
+ import QuantizerMMCQ from './quantizer';
18
+ import { Default as DefaultGenerator } from './generator';
33
19
  // eslint-disable-next-line import/no-cycle
34
- const Filters = __importStar(require("./filter"));
20
+ import * as Filters from './filter';
35
21
  class Vibrant {
22
+ static from(src) {
23
+ return new Builder(src);
24
+ }
36
25
  constructor(src, opts) {
37
- _palette.set(this, null);
38
- _src.set(this, void 0);
39
- __classPrivateFieldSet(this, _src, src);
26
+ _Vibrant_src.set(this, void 0);
27
+ __classPrivateFieldSet(this, _Vibrant_src, src, "f");
40
28
  this.opts = (Object.assign(Object.assign({}, Vibrant.DefaultOpts), opts));
41
29
  this.opts.combinedFilter = Filters.combineFilters(this.opts.filters);
42
30
  }
43
- static from(src) {
44
- return new builder_1.default(src);
45
- }
46
31
  process(image) {
47
32
  const { quantizer, generator } = this.opts;
48
33
  return image.applyFilter(this.opts.combinedFilter)
49
34
  .then((imageData) => quantizer(imageData.data, this.opts))
50
- .then((colors) => color_1.Swatch.applyFilter(colors, this.opts.combinedFilter))
35
+ .then((colors) => Swatch.applyFilter(colors, this.opts.combinedFilter))
51
36
  .then((colors) => Promise.resolve(generator(colors)));
52
37
  }
53
- palette() {
54
- return __classPrivateFieldGet(this, _palette);
55
- }
56
38
  getPalette(cb) {
57
39
  const image = new this.opts.ImageClass();
58
- const result = image.load(__classPrivateFieldGet(this, _src), this.opts)
40
+ const result = image.load(__classPrivateFieldGet(this, _Vibrant_src, "f"), this.opts)
59
41
  .then((loadedImage) => this.process(loadedImage))
60
42
  .then((palette) => {
61
- __classPrivateFieldSet(this, _palette, palette);
43
+ const paletteResult = {
44
+ pixelCount: image.pixelCount,
45
+ imageDimensions: {
46
+ width: image.width,
47
+ height: image.height,
48
+ },
49
+ palette,
50
+ };
62
51
  image.cleanup();
63
- return palette;
52
+ return paletteResult;
64
53
  }, (err) => {
65
54
  image.cleanup();
66
55
  throw err;
67
56
  });
68
- if (cb)
57
+ if (cb) {
69
58
  result.then((palette) => cb(null, palette), (err) => cb(err));
59
+ }
70
60
  return result;
71
61
  }
72
62
  }
73
- _palette = new WeakMap(), _src = new WeakMap();
74
- Vibrant.Builder = builder_1.default;
75
- Vibrant.Quantizer = quantizer_1.default;
76
- Vibrant.Generator = generator_1.Default;
63
+ _Vibrant_src = new WeakMap();
64
+ Vibrant.Builder = Builder;
65
+ Vibrant.Quantizer = QuantizerMMCQ;
66
+ Vibrant.Generator = DefaultGenerator;
77
67
  Vibrant.Filter = Filters;
78
68
  Vibrant.Util = Util;
79
- Vibrant.Swatch = color_1.Swatch;
69
+ Vibrant.Swatch = Swatch;
80
70
  Vibrant.DefaultOpts = {
81
71
  colorCount: 64,
82
72
  quality: 5,
83
- generator: generator_1.Default,
73
+ generator: DefaultGenerator,
84
74
  ImageClass: null,
85
- quantizer: quantizer_1.default,
75
+ quantizer: QuantizerMMCQ,
86
76
  filters: [Filters.Default],
87
77
  };
88
- exports.default = Vibrant;
78
+ export default Vibrant;
89
79
  //# sourceMappingURL=vibrant.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vibrant.js","sourceRoot":"","sources":["../src/vibrant.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,mCAA0C;AAE1C,2CAA2C;AAC3C,wDAAgC;AAEhC,6CAA+B;AAE/B,4DAAwC;AACxC,2CAA0D;AAC1D,2CAA2C;AAC3C,kDAAoC;AAEpC,MAAM,OAAO;IAgCX,YAAY,GAAgB,EAAE,IAAuB;QAJrD,mBAA2B,IAAI,EAAC;QAEhC,uBAAkB;QAGhB,uBAAA,IAAI,QAAQ,GAAG,EAAC;QAChB,IAAI,CAAC,IAAI,GAAoB,iCAAM,OAAO,CAAC,WAAW,GAAK,IAAI,EAAG,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC;IACxE,CAAC;IAdD,MAAM,CAAC,IAAI,CAAC,GAAgB;QAC1B,OAAO,IAAI,iBAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAcO,OAAO,CAAC,KAAY;QAC1B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAE3C,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;aAC/C,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aACzD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,cAAM,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACtE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO;QACL,8CAAqB;IACvB,CAAC;IAED,UAAU,CAAC,EAAsB;QAC/B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,qCAAY,IAAI,CAAC,IAAI,CAAC;aAC5C,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;aAChD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,uBAAA,IAAI,YAAY,OAAO,EAAC;YACxB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,OAAO,CAAC;QACjB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACL,IAAI,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAK,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAChB,CAAC;;;AAhEM,eAAO,GAAG,iBAAO,CAAC;AAElB,iBAAS,GAAG,mBAAa,CAAC;AAE1B,iBAAS,GAAG,mBAAgB,CAAC;AAE7B,cAAM,GAAG,OAAO,CAAC;AAEjB,YAAI,GAAG,IAAI,CAAC;AAEZ,cAAM,GAAG,cAAM,CAAC;AAEhB,mBAAW,GAAqB;IACrC,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,mBAAgB;IAC3B,UAAU,EAAE,IAAK;IACjB,SAAS,EAAE,mBAAa;IACxB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;CAC3B,CAAC;AAgDJ,kBAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"vibrant.js","sourceRoot":"","sources":["../src/vibrant.ts"],"names":[],"mappings":";;;;;;;;;;;;AASA,OAAO,EAAW,MAAM,EAAE,MAAM,SAAS,CAAC;AAE1C,2CAA2C;AAC3C,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAE/B,OAAO,aAAa,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1D,2CAA2C;AAC3C,OAAO,KAAK,OAAO,MAAM,UAAU,CAAC;AAEpC,MAAM,OAAO;IAsBX,MAAM,CAAC,IAAI,CAAC,GAAgB;QAC1B,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAMD,YAAY,GAAgB,EAAE,IAAuB;QAFrD,+BAAkB;QAGhB,uBAAA,IAAI,gBAAQ,GAAG,MAAA,CAAC;QAChB,IAAI,CAAC,IAAI,GAAoB,iCAAM,OAAO,CAAC,WAAW,GAAK,IAAI,EAAG,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC;IACxE,CAAC;IAEO,OAAO,CAAC,KAAY;QAC1B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QAE3C,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;aAC/C,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aACzD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACtE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU,CAAC,EAA4B;QACrC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAA,IAAI,oBAAK,EAAE,IAAI,CAAC,IAAI,CAAC;aAC5C,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;aAChD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,MAAM,aAAa,GAAkB;gBACnC,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,eAAe,EAAE;oBACf,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB;gBACD,OAAO;aACR,CAAC;YACF,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,aAAa,CAAC;QACvB,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE;YACT,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QAEL,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAK,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;;;AArEM,eAAO,GAAG,OAAO,AAAV,CAAW;AAElB,iBAAS,GAAG,aAAa,AAAhB,CAAiB;AAE1B,iBAAS,GAAG,gBAAgB,AAAnB,CAAoB;AAE7B,cAAM,GAAG,OAAO,AAAV,CAAW;AAEjB,YAAI,GAAG,IAAI,AAAP,CAAQ;AAEZ,cAAM,GAAG,MAAM,AAAT,CAAU;AAEhB,mBAAW,GAAqB;IACrC,UAAU,EAAE,EAAE;IACd,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,gBAAgB;IAC3B,UAAU,EAAE,IAAK;IACjB,SAAS,EAAE,aAAa;IACxB,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;CAC3B,AAPiB,CAOhB;AAqDJ,eAAe,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@livechart/sharp-vibrant",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "Extract prominent colors from an image in a node environment using sharp.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "dependencies": {
8
- "@types/node": "^10.11.7",
9
- "@types/sharp": "^0.25.0",
10
- "sharp": "^0.25.2"
8
+ "@types/node": "^25.5.0",
9
+ "@types/sharp": "^0.32.0",
10
+ "sharp": "^0.34.5"
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/chai": "^4.0.5",
@@ -26,9 +26,9 @@
26
26
  "mocha": "^5.2.0",
27
27
  "rimraf": "^2.6.1",
28
28
  "table": "^5.1.0",
29
- "ts-loader": "^5.2.1",
30
- "ts-node": "^7.0.1",
31
- "typescript": "^3.6.3"
29
+ "ts-loader": "^9.5.4",
30
+ "ts-node": "^10.9.2",
31
+ "typescript": "^6.0.2"
32
32
  },
33
33
  "scripts": {
34
34
  "clean": "yarn run clean:node",
@@ -40,7 +40,7 @@
40
40
  "test:node": "mocha --require ts-node/register src/test/**/*.spec.ts",
41
41
  "sample:inspect": "cd fixtures/sample; yarn run start",
42
42
  "sample:update": "cd fixtures/sample; yarn run update",
43
- "prepublishOnly": "yarn run lint && yarn run clean && yarn run build"
43
+ "prepublishOnly": "yarn run build"
44
44
  },
45
45
  "repository": {
46
46
  "type": "git",
package/src/builder.ts CHANGED
@@ -6,9 +6,9 @@ import type {
6
6
  Filter,
7
7
  Quantizer,
8
8
  Generator,
9
+ PaletteResult,
9
10
  } from './typing';
10
11
 
11
- import type { Palette } from './color';
12
12
  // eslint-disable-next-line import/no-cycle
13
13
  import Vibrant from './vibrant';
14
14
 
@@ -78,11 +78,7 @@ export default class Builder {
78
78
  return new Vibrant(this.#src, this.#opts);
79
79
  }
80
80
 
81
- getPalette(cb?: Callback<Palette>): Promise<Palette> {
82
- return this.build().getPalette(cb);
83
- }
84
-
85
- getSwatches(cb?: Callback<Palette>): Promise<Palette> {
81
+ getPalette(cb?: Callback<PaletteResult>): Promise<PaletteResult> {
86
82
  return this.build().getPalette(cb);
87
83
  }
88
84
  }
package/src/image/base.ts CHANGED
@@ -9,6 +9,10 @@ abstract class ImageBase implements Image {
9
9
 
10
10
  abstract readonly imageData: ImageData;
11
11
 
12
+ abstract readonly width: number;
13
+
14
+ abstract readonly height: number;
15
+
12
16
  abstract cleanup(): void;
13
17
 
14
18
  applyFilter(filter: Filter): Promise<ImageData> {
@@ -1,4 +1,5 @@
1
1
  import sharp from 'sharp';
2
+ import type { Sharp } from 'sharp';
2
3
  import type { ImageData, ImageSource, ComputedOptions } from '../typing';
3
4
  import ImageBase from './base';
4
5
 
@@ -6,12 +7,18 @@ export default class SharpImage extends ImageBase {
6
7
  #imageData?: ImageData;
7
8
 
8
9
  async load(image: ImageSource, opts: ComputedOptions): Promise<ImageBase> {
9
- if (typeof image !== 'string' && !(image instanceof Buffer)) {
10
+ let sharpInstance: Sharp;
11
+
12
+ // Check to see if image is a sharp instance.
13
+ // Because sharp doesn't return a class, there's not much else we can do to verify type.
14
+ if (typeof image === 'object' && 'resize' in image) {
15
+ sharpInstance = <Sharp><unknown>image;
16
+ } else if (typeof image === 'string' || image instanceof Buffer) {
17
+ sharpInstance = sharp(image);
18
+ } else {
10
19
  return Promise.reject(new Error(`Cannot load image of type ${typeof image}`));
11
20
  }
12
21
 
13
- let sharpInstance = sharp(image);
14
-
15
22
  if (opts.maxDimension > 0) {
16
23
  sharpInstance = sharpInstance.resize(opts.maxDimension, opts.maxDimension, {
17
24
  fit: 'inside',
@@ -38,6 +45,14 @@ export default class SharpImage extends ImageBase {
38
45
  return this.#imageData!;
39
46
  }
40
47
 
48
+ get width(): number {
49
+ return this.imageData.width;
50
+ }
51
+
52
+ get height(): number {
53
+ return this.imageData.height;
54
+ }
55
+
41
56
  // eslint-disable-next-line class-methods-use-this
42
57
  cleanup(): void {
43
58