fsevents 1.0.8 → 1.0.9
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.
Potentially problematic release.
This version of fsevents might be problematic. Click here for more details.
- package/node_modules/ansi-styles/index.js +72 -6
- package/node_modules/ansi-styles/package.json +19 -12
- package/node_modules/ansi-styles/readme.md +36 -8
- package/node_modules/are-we-there-yet/CHANGES.md +19 -0
- package/node_modules/are-we-there-yet/README.md +12 -2
- package/node_modules/are-we-there-yet/index.js +4 -132
- package/node_modules/are-we-there-yet/package.json +18 -13
- package/node_modules/are-we-there-yet/test/lib/test-event.js +29 -0
- package/node_modules/are-we-there-yet/test/tracker.js +44 -43
- package/node_modules/are-we-there-yet/test/trackergroup.js +73 -64
- package/node_modules/are-we-there-yet/test/trackerstream.js +26 -40
- package/node_modules/are-we-there-yet/tracker-base.js +11 -0
- package/node_modules/are-we-there-yet/tracker-group.js +107 -0
- package/node_modules/are-we-there-yet/tracker-stream.js +35 -0
- package/node_modules/are-we-there-yet/tracker.js +30 -0
- package/node_modules/asn1/package.json +1 -2
- package/node_modules/assert-plus/package.json +1 -3
- package/node_modules/async/package.json +1 -1
- package/node_modules/aws4/.npmignore +2 -1
- package/node_modules/aws4/README.md +4 -0
- package/node_modules/aws4/aws4.js +8 -3
- package/node_modules/aws4/node_modules/lru-cache/.npmignore +3 -0
- package/node_modules/aws4/node_modules/lru-cache/.travis.yml +3 -4
- package/node_modules/aws4/node_modules/lru-cache/README.md +29 -24
- package/node_modules/aws4/node_modules/lru-cache/benchmarks/insertion-time.js +32 -0
- package/node_modules/aws4/node_modules/lru-cache/lib/lru-cache.js +333 -199
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/LICENSE +15 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/README.md +60 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/map.js +9 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/package.json +59 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js +113 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/test/basic.js +86 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.npmignore +4 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.travis.yml +7 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/CONTRIBUTING.md +4 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/LICENSE +15 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/README.md +204 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/package.json +59 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/test/basic.js +188 -0
- package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/yallist.js +360 -0
- package/node_modules/aws4/node_modules/lru-cache/package.json +16 -12
- package/node_modules/aws4/node_modules/lru-cache/test/basic.js +270 -146
- package/node_modules/aws4/node_modules/lru-cache/test/foreach.js +39 -25
- package/node_modules/aws4/node_modules/lru-cache/test/inspect.js +54 -0
- package/node_modules/aws4/node_modules/lru-cache/test/no-symbol.js +3 -0
- package/node_modules/aws4/node_modules/lru-cache/test/serialize.js +115 -104
- package/node_modules/aws4/package.json +17 -14
- package/node_modules/bl/bl.js +9 -3
- package/node_modules/bl/package.json +12 -12
- package/node_modules/bl/test/test.js +14 -0
- package/node_modules/color-convert/README.md +62 -0
- package/node_modules/color-convert/conversions.js +594 -0
- package/node_modules/color-convert/css-keywords.js +151 -0
- package/node_modules/color-convert/index.js +75 -0
- package/node_modules/color-convert/package.json +92 -0
- package/node_modules/color-convert/route.js +98 -0
- package/node_modules/dashdash/lib/dashdash.js +1 -1
- package/node_modules/dashdash/node_modules/assert-plus/AUTHORS +6 -0
- package/node_modules/dashdash/node_modules/assert-plus/CHANGES.md +14 -0
- package/node_modules/dashdash/node_modules/assert-plus/README.md +162 -0
- package/node_modules/dashdash/node_modules/assert-plus/assert.js +211 -0
- package/node_modules/dashdash/node_modules/assert-plus/package.json +89 -0
- package/node_modules/dashdash/package.json +19 -12
- package/node_modules/ecc-jsbn/package.json +1 -2
- package/node_modules/escape-string-regexp/package.json +15 -11
- package/node_modules/extsprintf/package.json +2 -3
- package/node_modules/form-data/.dockerignore +7 -0
- package/node_modules/form-data/.editorconfig +10 -0
- package/node_modules/form-data/.eslintignore +1 -0
- package/node_modules/form-data/.eslintrc +64 -0
- package/node_modules/form-data/{Readme.md → README.md} +9 -1
- package/node_modules/form-data/lib/browser.js +2 -1
- package/node_modules/form-data/lib/form_data.js +172 -135
- package/node_modules/form-data/lib/populate.js +9 -0
- package/node_modules/form-data/package.json +35 -16
- package/node_modules/form-data/wercker.yml +36 -0
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/index.js +1 -1
- package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/package.json +14 -10
- package/node_modules/gauge/README.md +1 -1
- package/node_modules/gauge/package.json +18 -14
- package/node_modules/gauge/progress-bar.js +2 -2
- package/node_modules/http-signature/package.json +1 -2
- package/node_modules/is-my-json-valid/README.md +2 -2
- package/node_modules/is-my-json-valid/index.js +15 -6
- package/node_modules/is-my-json-valid/package.json +11 -7
- package/node_modules/is-my-json-valid/test/json-schema-draft4/multipleOf.json +36 -0
- package/node_modules/is-my-json-valid/test/misc.js +18 -0
- package/node_modules/is-typedarray/package.json +1 -2
- package/node_modules/isarray/.npmignore +1 -0
- package/node_modules/isarray/.travis.yml +4 -0
- package/node_modules/isarray/Makefile +6 -0
- package/node_modules/isarray/README.md +6 -0
- package/node_modules/isarray/index.js +3 -1
- package/node_modules/isarray/package.json +28 -10
- package/node_modules/isarray/test.js +20 -0
- package/node_modules/jodid25519/package.json +1 -2
- package/node_modules/jsbn/package.json +1 -2
- package/node_modules/json-schema/package.json +1 -1
- package/node_modules/jsprim/package.json +1 -2
- package/node_modules/lodash.pad/LICENSE +17 -16
- package/node_modules/lodash.pad/README.md +2 -2
- package/node_modules/lodash.pad/index.js +3 -94
- package/node_modules/lodash.pad/package.json +12 -12
- package/node_modules/lodash.padend/LICENSE +23 -0
- package/node_modules/lodash.padend/README.md +18 -0
- package/node_modules/lodash.padend/index.js +285 -0
- package/node_modules/lodash.padend/package.json +91 -0
- package/node_modules/lodash.padstart/LICENSE +23 -0
- package/node_modules/lodash.padstart/README.md +18 -0
- package/node_modules/lodash.padstart/index.js +285 -0
- package/node_modules/lodash.padstart/package.json +91 -0
- package/node_modules/lodash.repeat/LICENSE +17 -16
- package/node_modules/lodash.repeat/README.md +2 -2
- package/node_modules/lodash.repeat/index.js +3 -94
- package/node_modules/lodash.repeat/package.json +14 -13
- package/node_modules/lodash.tostring/LICENSE +23 -0
- package/node_modules/lodash.tostring/README.md +18 -0
- package/node_modules/lodash.tostring/index.js +164 -0
- package/node_modules/lodash.tostring/package.json +91 -0
- package/node_modules/mime-db/HISTORY.md +14 -0
- package/node_modules/mime-db/db.json +26 -3
- package/node_modules/mime-db/package.json +23 -18
- package/node_modules/mime-types/HISTORY.md +8 -0
- package/node_modules/mime-types/README.md +1 -1
- package/node_modules/mime-types/package.json +21 -16
- package/node_modules/node-pre-gyp/CHANGELOG.md +11 -0
- package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +44 -4
- package/node_modules/node-pre-gyp/package.json +16 -16
- package/node_modules/npmlog/.nyc_output/64996.json +1 -0
- package/node_modules/npmlog/.nyc_output/64998.json +1 -0
- package/node_modules/npmlog/.nyc_output/65000.json +1 -0
- package/node_modules/npmlog/log.js +3 -2
- package/node_modules/npmlog/package.json +15 -11
- package/node_modules/npmlog/test/progress.js +25 -8
- package/node_modules/once/package.json +1 -1
- package/node_modules/qs/package.json +1 -2
- package/node_modules/readable-stream/.travis.yml +18 -16
- package/node_modules/readable-stream/README.md +1 -1
- package/node_modules/readable-stream/doc/stream.markdown +435 -405
- package/node_modules/readable-stream/lib/_stream_duplex.js +13 -20
- package/node_modules/readable-stream/lib/_stream_passthrough.js +3 -4
- package/node_modules/readable-stream/lib/_stream_readable.js +110 -205
- package/node_modules/readable-stream/lib/_stream_transform.js +21 -38
- package/node_modules/readable-stream/lib/_stream_writable.js +108 -121
- package/node_modules/readable-stream/package.json +19 -15
- package/node_modules/request/package.json +1 -2
- package/node_modules/rimraf/node_modules/glob/README.md +6 -0
- package/node_modules/rimraf/node_modules/glob/common.js +12 -3
- package/node_modules/rimraf/node_modules/glob/glob.js +20 -3
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +1 -1
- package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +14 -10
- package/node_modules/rimraf/node_modules/glob/package.json +15 -11
- package/node_modules/rimraf/node_modules/glob/sync.js +8 -1
- package/node_modules/rimraf/package.json +14 -10
- package/node_modules/semver/package.json +1 -2
- package/node_modules/sshpk/lib/formats/rfc4253.js +2 -1
- package/node_modules/sshpk/package.json +13 -10
- package/node_modules/strip-ansi/package.json +21 -16
- package/node_modules/strip-ansi/readme.md +5 -5
- package/node_modules/tough-cookie/lib/cookie.js +2 -2
- package/node_modules/tough-cookie/package.json +13 -9
- package/node_modules/tweetnacl/CHANGELOG.md +53 -0
- package/node_modules/tweetnacl/COPYING.txt +9 -0
- package/node_modules/tweetnacl/README.md +14 -40
- package/node_modules/tweetnacl/nacl-fast.js +21 -51
- package/node_modules/tweetnacl/nacl-fast.min.js +2 -2
- package/node_modules/tweetnacl/nacl.js +21 -51
- package/node_modules/tweetnacl/nacl.min.js +1 -1
- package/node_modules/tweetnacl/package.json +28 -38
- package/node_modules/verror/package.json +2 -3
- package/package.json +2 -2
- package/node_modules/aws4/example.js +0 -372
- package/node_modules/aws4/node_modules/lru-cache/test/memory-leak.js +0 -51
- package/node_modules/isarray/build/build.js +0 -209
- package/node_modules/lodash._basetostring/LICENSE +0 -22
- package/node_modules/lodash._basetostring/README.md +0 -20
- package/node_modules/lodash._basetostring/index.js +0 -22
- package/node_modules/lodash._basetostring/package.json +0 -99
- package/node_modules/lodash._createpadding/LICENSE +0 -22
- package/node_modules/lodash._createpadding/README.md +0 -20
- package/node_modules/lodash._createpadding/index.js +0 -37
- package/node_modules/lodash._createpadding/package.json +0 -101
- package/node_modules/lodash._root/LICENSE +0 -22
- package/node_modules/lodash._root/README.md +0 -18
- package/node_modules/lodash._root/index.js +0 -53
- package/node_modules/lodash._root/package.json +0 -77
- package/node_modules/lodash.padleft/LICENSE.txt +0 -22
- package/node_modules/lodash.padleft/README.md +0 -20
- package/node_modules/lodash.padleft/index.js +0 -50
- package/node_modules/lodash.padleft/package.json +0 -107
- package/node_modules/lodash.padright/LICENSE.txt +0 -22
- package/node_modules/lodash.padright/README.md +0 -20
- package/node_modules/lodash.padright/index.js +0 -50
- package/node_modules/lodash.padright/package.json +0 -107
@@ -0,0 +1,594 @@
|
|
1
|
+
/* MIT license */
|
2
|
+
var cssKeywords = require('./css-keywords');
|
3
|
+
|
4
|
+
// NOTE: conversions should only return primitive values (i.e. arrays, or
|
5
|
+
// values that give correct `typeof` results).
|
6
|
+
// do not use box values types (i.e. Number(), String(), etc.)
|
7
|
+
|
8
|
+
var reverseKeywords = {};
|
9
|
+
for (var key in cssKeywords) {
|
10
|
+
if (cssKeywords.hasOwnProperty(key)) {
|
11
|
+
reverseKeywords[cssKeywords[key].join()] = key;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
|
15
|
+
var convert = module.exports = {
|
16
|
+
rgb: {},
|
17
|
+
hsl: {},
|
18
|
+
hsv: {},
|
19
|
+
hwb: {},
|
20
|
+
cmyk: {},
|
21
|
+
xyz: {},
|
22
|
+
lab: {},
|
23
|
+
lch: {},
|
24
|
+
hex: {},
|
25
|
+
keyword: {},
|
26
|
+
ansi16: {},
|
27
|
+
ansi256: {}
|
28
|
+
};
|
29
|
+
|
30
|
+
convert.rgb.hsl = function (rgb) {
|
31
|
+
var r = rgb[0] / 255;
|
32
|
+
var g = rgb[1] / 255;
|
33
|
+
var b = rgb[2] / 255;
|
34
|
+
var min = Math.min(r, g, b);
|
35
|
+
var max = Math.max(r, g, b);
|
36
|
+
var delta = max - min;
|
37
|
+
var h;
|
38
|
+
var s;
|
39
|
+
var l;
|
40
|
+
|
41
|
+
if (max === min) {
|
42
|
+
h = 0;
|
43
|
+
} else if (r === max) {
|
44
|
+
h = (g - b) / delta;
|
45
|
+
} else if (g === max) {
|
46
|
+
h = 2 + (b - r) / delta;
|
47
|
+
} else if (b === max) {
|
48
|
+
h = 4 + (r - g) / delta;
|
49
|
+
}
|
50
|
+
|
51
|
+
h = Math.min(h * 60, 360);
|
52
|
+
|
53
|
+
if (h < 0) {
|
54
|
+
h += 360;
|
55
|
+
}
|
56
|
+
|
57
|
+
l = (min + max) / 2;
|
58
|
+
|
59
|
+
if (max === min) {
|
60
|
+
s = 0;
|
61
|
+
} else if (l <= 0.5) {
|
62
|
+
s = delta / (max + min);
|
63
|
+
} else {
|
64
|
+
s = delta / (2 - max - min);
|
65
|
+
}
|
66
|
+
|
67
|
+
return [h, s * 100, l * 100];
|
68
|
+
};
|
69
|
+
|
70
|
+
convert.rgb.hsv = function (rgb) {
|
71
|
+
var r = rgb[0];
|
72
|
+
var g = rgb[1];
|
73
|
+
var b = rgb[2];
|
74
|
+
var min = Math.min(r, g, b);
|
75
|
+
var max = Math.max(r, g, b);
|
76
|
+
var delta = max - min;
|
77
|
+
var h;
|
78
|
+
var s;
|
79
|
+
var v;
|
80
|
+
|
81
|
+
if (max === 0) {
|
82
|
+
s = 0;
|
83
|
+
} else {
|
84
|
+
s = (delta / max * 1000) / 10;
|
85
|
+
}
|
86
|
+
|
87
|
+
if (max === min) {
|
88
|
+
h = 0;
|
89
|
+
} else if (r === max) {
|
90
|
+
h = (g - b) / delta;
|
91
|
+
} else if (g === max) {
|
92
|
+
h = 2 + (b - r) / delta;
|
93
|
+
} else if (b === max) {
|
94
|
+
h = 4 + (r - g) / delta;
|
95
|
+
}
|
96
|
+
|
97
|
+
h = Math.min(h * 60, 360);
|
98
|
+
|
99
|
+
if (h < 0) {
|
100
|
+
h += 360;
|
101
|
+
}
|
102
|
+
|
103
|
+
v = ((max / 255) * 1000) / 10;
|
104
|
+
|
105
|
+
return [h, s, v];
|
106
|
+
};
|
107
|
+
|
108
|
+
convert.rgb.hwb = function (rgb) {
|
109
|
+
var r = rgb[0];
|
110
|
+
var g = rgb[1];
|
111
|
+
var b = rgb[2];
|
112
|
+
var h = convert.rgb.hsl(rgb)[0];
|
113
|
+
var w = 1 / 255 * Math.min(r, Math.min(g, b));
|
114
|
+
|
115
|
+
b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));
|
116
|
+
|
117
|
+
return [h, w * 100, b * 100];
|
118
|
+
};
|
119
|
+
|
120
|
+
convert.rgb.cmyk = function (rgb) {
|
121
|
+
var r = rgb[0] / 255;
|
122
|
+
var g = rgb[1] / 255;
|
123
|
+
var b = rgb[2] / 255;
|
124
|
+
var c;
|
125
|
+
var m;
|
126
|
+
var y;
|
127
|
+
var k;
|
128
|
+
|
129
|
+
k = Math.min(1 - r, 1 - g, 1 - b);
|
130
|
+
c = (1 - r - k) / (1 - k) || 0;
|
131
|
+
m = (1 - g - k) / (1 - k) || 0;
|
132
|
+
y = (1 - b - k) / (1 - k) || 0;
|
133
|
+
|
134
|
+
return [c * 100, m * 100, y * 100, k * 100];
|
135
|
+
};
|
136
|
+
|
137
|
+
convert.rgb.keyword = function (rgb) {
|
138
|
+
return reverseKeywords[rgb.join()];
|
139
|
+
};
|
140
|
+
|
141
|
+
convert.keyword.rgb = function (keyword) {
|
142
|
+
return cssKeywords[keyword];
|
143
|
+
};
|
144
|
+
|
145
|
+
convert.rgb.xyz = function (rgb) {
|
146
|
+
var r = rgb[0] / 255;
|
147
|
+
var g = rgb[1] / 255;
|
148
|
+
var b = rgb[2] / 255;
|
149
|
+
|
150
|
+
// assume sRGB
|
151
|
+
r = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);
|
152
|
+
g = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);
|
153
|
+
b = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);
|
154
|
+
|
155
|
+
var x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);
|
156
|
+
var y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);
|
157
|
+
var z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);
|
158
|
+
|
159
|
+
return [x * 100, y * 100, z * 100];
|
160
|
+
};
|
161
|
+
|
162
|
+
convert.rgb.lab = function (rgb) {
|
163
|
+
var xyz = convert.rgb.xyz(rgb);
|
164
|
+
var x = xyz[0];
|
165
|
+
var y = xyz[1];
|
166
|
+
var z = xyz[2];
|
167
|
+
var l;
|
168
|
+
var a;
|
169
|
+
var b;
|
170
|
+
|
171
|
+
x /= 95.047;
|
172
|
+
y /= 100;
|
173
|
+
z /= 108.883;
|
174
|
+
|
175
|
+
x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
|
176
|
+
y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
|
177
|
+
z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
|
178
|
+
|
179
|
+
l = (116 * y) - 16;
|
180
|
+
a = 500 * (x - y);
|
181
|
+
b = 200 * (y - z);
|
182
|
+
|
183
|
+
return [l, a, b];
|
184
|
+
};
|
185
|
+
|
186
|
+
convert.hsl.rgb = function (hsl) {
|
187
|
+
var h = hsl[0] / 360;
|
188
|
+
var s = hsl[1] / 100;
|
189
|
+
var l = hsl[2] / 100;
|
190
|
+
var t1;
|
191
|
+
var t2;
|
192
|
+
var t3;
|
193
|
+
var rgb;
|
194
|
+
var val;
|
195
|
+
|
196
|
+
if (s === 0) {
|
197
|
+
val = l * 255;
|
198
|
+
return [val, val, val];
|
199
|
+
}
|
200
|
+
|
201
|
+
if (l < 0.5) {
|
202
|
+
t2 = l * (1 + s);
|
203
|
+
} else {
|
204
|
+
t2 = l + s - l * s;
|
205
|
+
}
|
206
|
+
|
207
|
+
t1 = 2 * l - t2;
|
208
|
+
|
209
|
+
rgb = [0, 0, 0];
|
210
|
+
for (var i = 0; i < 3; i++) {
|
211
|
+
t3 = h + 1 / 3 * -(i - 1);
|
212
|
+
if (t3 < 0) {
|
213
|
+
t3++;
|
214
|
+
}
|
215
|
+
if (t3 > 1) {
|
216
|
+
t3--;
|
217
|
+
}
|
218
|
+
|
219
|
+
if (6 * t3 < 1) {
|
220
|
+
val = t1 + (t2 - t1) * 6 * t3;
|
221
|
+
} else if (2 * t3 < 1) {
|
222
|
+
val = t2;
|
223
|
+
} else if (3 * t3 < 2) {
|
224
|
+
val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;
|
225
|
+
} else {
|
226
|
+
val = t1;
|
227
|
+
}
|
228
|
+
|
229
|
+
rgb[i] = val * 255;
|
230
|
+
}
|
231
|
+
|
232
|
+
return rgb;
|
233
|
+
};
|
234
|
+
|
235
|
+
convert.hsl.hsv = function (hsl) {
|
236
|
+
var h = hsl[0];
|
237
|
+
var s = hsl[1] / 100;
|
238
|
+
var l = hsl[2] / 100;
|
239
|
+
var sv;
|
240
|
+
var v;
|
241
|
+
|
242
|
+
if (l === 0) {
|
243
|
+
// no need to do calc on black
|
244
|
+
// also avoids divide by 0 error
|
245
|
+
return [0, 0, 0];
|
246
|
+
}
|
247
|
+
|
248
|
+
l *= 2;
|
249
|
+
s *= (l <= 1) ? l : 2 - l;
|
250
|
+
v = (l + s) / 2;
|
251
|
+
sv = (2 * s) / (l + s);
|
252
|
+
|
253
|
+
return [h, sv * 100, v * 100];
|
254
|
+
};
|
255
|
+
|
256
|
+
convert.hsv.rgb = function (hsv) {
|
257
|
+
var h = hsv[0] / 60;
|
258
|
+
var s = hsv[1] / 100;
|
259
|
+
var v = hsv[2] / 100;
|
260
|
+
var hi = Math.floor(h) % 6;
|
261
|
+
|
262
|
+
var f = h - Math.floor(h);
|
263
|
+
var p = 255 * v * (1 - s);
|
264
|
+
var q = 255 * v * (1 - (s * f));
|
265
|
+
var t = 255 * v * (1 - (s * (1 - f)));
|
266
|
+
v *= 255;
|
267
|
+
|
268
|
+
switch (hi) {
|
269
|
+
case 0:
|
270
|
+
return [v, t, p];
|
271
|
+
case 1:
|
272
|
+
return [q, v, p];
|
273
|
+
case 2:
|
274
|
+
return [p, v, t];
|
275
|
+
case 3:
|
276
|
+
return [p, q, v];
|
277
|
+
case 4:
|
278
|
+
return [t, p, v];
|
279
|
+
case 5:
|
280
|
+
return [v, p, q];
|
281
|
+
}
|
282
|
+
};
|
283
|
+
|
284
|
+
convert.hsv.hsl = function (hsv) {
|
285
|
+
var h = hsv[0];
|
286
|
+
var s = hsv[1] / 100;
|
287
|
+
var v = hsv[2] / 100;
|
288
|
+
var sl;
|
289
|
+
var l;
|
290
|
+
|
291
|
+
l = (2 - s) * v;
|
292
|
+
sl = s * v;
|
293
|
+
sl /= (l <= 1) ? l : 2 - l;
|
294
|
+
sl = sl || 0;
|
295
|
+
l /= 2;
|
296
|
+
|
297
|
+
return [h, sl * 100, l * 100];
|
298
|
+
};
|
299
|
+
|
300
|
+
// http://dev.w3.org/csswg/css-color/#hwb-to-rgb
|
301
|
+
convert.hwb.rgb = function (hwb) {
|
302
|
+
var h = hwb[0] / 360;
|
303
|
+
var wh = hwb[1] / 100;
|
304
|
+
var bl = hwb[2] / 100;
|
305
|
+
var ratio = wh + bl;
|
306
|
+
var i;
|
307
|
+
var v;
|
308
|
+
var f;
|
309
|
+
var n;
|
310
|
+
|
311
|
+
// wh + bl cant be > 1
|
312
|
+
if (ratio > 1) {
|
313
|
+
wh /= ratio;
|
314
|
+
bl /= ratio;
|
315
|
+
}
|
316
|
+
|
317
|
+
i = Math.floor(6 * h);
|
318
|
+
v = 1 - bl;
|
319
|
+
f = 6 * h - i;
|
320
|
+
|
321
|
+
if ((i & 0x01) !== 0) {
|
322
|
+
f = 1 - f;
|
323
|
+
}
|
324
|
+
|
325
|
+
n = wh + f * (v - wh); // linear interpolation
|
326
|
+
|
327
|
+
var r;
|
328
|
+
var g;
|
329
|
+
var b;
|
330
|
+
switch (i) {
|
331
|
+
default:
|
332
|
+
case 6:
|
333
|
+
case 0: r = v; g = n; b = wh; break;
|
334
|
+
case 1: r = n; g = v; b = wh; break;
|
335
|
+
case 2: r = wh; g = v; b = n; break;
|
336
|
+
case 3: r = wh; g = n; b = v; break;
|
337
|
+
case 4: r = n; g = wh; b = v; break;
|
338
|
+
case 5: r = v; g = wh; b = n; break;
|
339
|
+
}
|
340
|
+
|
341
|
+
return [r * 255, g * 255, b * 255];
|
342
|
+
};
|
343
|
+
|
344
|
+
convert.cmyk.rgb = function (cmyk) {
|
345
|
+
var c = cmyk[0] / 100;
|
346
|
+
var m = cmyk[1] / 100;
|
347
|
+
var y = cmyk[2] / 100;
|
348
|
+
var k = cmyk[3] / 100;
|
349
|
+
var r;
|
350
|
+
var g;
|
351
|
+
var b;
|
352
|
+
|
353
|
+
r = 1 - Math.min(1, c * (1 - k) + k);
|
354
|
+
g = 1 - Math.min(1, m * (1 - k) + k);
|
355
|
+
b = 1 - Math.min(1, y * (1 - k) + k);
|
356
|
+
|
357
|
+
return [r * 255, g * 255, b * 255];
|
358
|
+
};
|
359
|
+
|
360
|
+
convert.xyz.rgb = function (xyz) {
|
361
|
+
var x = xyz[0] / 100;
|
362
|
+
var y = xyz[1] / 100;
|
363
|
+
var z = xyz[2] / 100;
|
364
|
+
var r;
|
365
|
+
var g;
|
366
|
+
var b;
|
367
|
+
|
368
|
+
r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);
|
369
|
+
g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);
|
370
|
+
b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);
|
371
|
+
|
372
|
+
// assume sRGB
|
373
|
+
r = r > 0.0031308
|
374
|
+
? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)
|
375
|
+
: r *= 12.92;
|
376
|
+
|
377
|
+
g = g > 0.0031308
|
378
|
+
? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)
|
379
|
+
: g *= 12.92;
|
380
|
+
|
381
|
+
b = b > 0.0031308
|
382
|
+
? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)
|
383
|
+
: b *= 12.92;
|
384
|
+
|
385
|
+
r = Math.min(Math.max(0, r), 1);
|
386
|
+
g = Math.min(Math.max(0, g), 1);
|
387
|
+
b = Math.min(Math.max(0, b), 1);
|
388
|
+
|
389
|
+
return [r * 255, g * 255, b * 255];
|
390
|
+
};
|
391
|
+
|
392
|
+
convert.xyz.lab = function (xyz) {
|
393
|
+
var x = xyz[0];
|
394
|
+
var y = xyz[1];
|
395
|
+
var z = xyz[2];
|
396
|
+
var l;
|
397
|
+
var a;
|
398
|
+
var b;
|
399
|
+
|
400
|
+
x /= 95.047;
|
401
|
+
y /= 100;
|
402
|
+
z /= 108.883;
|
403
|
+
|
404
|
+
x = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);
|
405
|
+
y = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);
|
406
|
+
z = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);
|
407
|
+
|
408
|
+
l = (116 * y) - 16;
|
409
|
+
a = 500 * (x - y);
|
410
|
+
b = 200 * (y - z);
|
411
|
+
|
412
|
+
return [l, a, b];
|
413
|
+
};
|
414
|
+
|
415
|
+
convert.lab.xyz = function (lab) {
|
416
|
+
var l = lab[0];
|
417
|
+
var a = lab[1];
|
418
|
+
var b = lab[2];
|
419
|
+
var x;
|
420
|
+
var y;
|
421
|
+
var z;
|
422
|
+
var y2;
|
423
|
+
|
424
|
+
if (l <= 8) {
|
425
|
+
y = (l * 100) / 903.3;
|
426
|
+
y2 = (7.787 * (y / 100)) + (16 / 116);
|
427
|
+
} else {
|
428
|
+
y = 100 * Math.pow((l + 16) / 116, 3);
|
429
|
+
y2 = Math.pow(y / 100, 1 / 3);
|
430
|
+
}
|
431
|
+
|
432
|
+
x = x / 95.047 <= 0.008856
|
433
|
+
? x = (95.047 * ((a / 500) + y2 - (16 / 116))) / 7.787
|
434
|
+
: 95.047 * Math.pow((a / 500) + y2, 3);
|
435
|
+
z = z / 108.883 <= 0.008859
|
436
|
+
? z = (108.883 * (y2 - (b / 200) - (16 / 116))) / 7.787
|
437
|
+
: 108.883 * Math.pow(y2 - (b / 200), 3);
|
438
|
+
|
439
|
+
return [x, y, z];
|
440
|
+
};
|
441
|
+
|
442
|
+
convert.lab.lch = function (lab) {
|
443
|
+
var l = lab[0];
|
444
|
+
var a = lab[1];
|
445
|
+
var b = lab[2];
|
446
|
+
var hr;
|
447
|
+
var h;
|
448
|
+
var c;
|
449
|
+
|
450
|
+
hr = Math.atan2(b, a);
|
451
|
+
h = hr * 360 / 2 / Math.PI;
|
452
|
+
|
453
|
+
if (h < 0) {
|
454
|
+
h += 360;
|
455
|
+
}
|
456
|
+
|
457
|
+
c = Math.sqrt(a * a + b * b);
|
458
|
+
|
459
|
+
return [l, c, h];
|
460
|
+
};
|
461
|
+
|
462
|
+
convert.lch.lab = function (lch) {
|
463
|
+
var l = lch[0];
|
464
|
+
var c = lch[1];
|
465
|
+
var h = lch[2];
|
466
|
+
var a;
|
467
|
+
var b;
|
468
|
+
var hr;
|
469
|
+
|
470
|
+
hr = h / 360 * 2 * Math.PI;
|
471
|
+
a = c * Math.cos(hr);
|
472
|
+
b = c * Math.sin(hr);
|
473
|
+
|
474
|
+
return [l, a, b];
|
475
|
+
};
|
476
|
+
|
477
|
+
convert.rgb.ansi16 = function (args) {
|
478
|
+
var r = args[0];
|
479
|
+
var g = args[1];
|
480
|
+
var b = args[2];
|
481
|
+
var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization
|
482
|
+
|
483
|
+
value = Math.round(value / 50);
|
484
|
+
|
485
|
+
if (value === 0) {
|
486
|
+
return 30;
|
487
|
+
}
|
488
|
+
|
489
|
+
var ansi = 30
|
490
|
+
+ ((Math.round(b / 255) << 2)
|
491
|
+
| (Math.round(g / 255) << 1)
|
492
|
+
| Math.round(r / 255));
|
493
|
+
|
494
|
+
if (value === 2) {
|
495
|
+
ansi += 60;
|
496
|
+
}
|
497
|
+
|
498
|
+
return ansi;
|
499
|
+
};
|
500
|
+
|
501
|
+
convert.hsv.ansi16 = function (args) {
|
502
|
+
// optimization here; we already know the value and don't need to get
|
503
|
+
// it converted for us.
|
504
|
+
return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);
|
505
|
+
};
|
506
|
+
|
507
|
+
convert.rgb.ansi256 = function (args) {
|
508
|
+
var r = args[0];
|
509
|
+
var g = args[1];
|
510
|
+
var b = args[2];
|
511
|
+
|
512
|
+
// we use the extended greyscale palette here, with the exception of
|
513
|
+
// black and white. normal palette only has 4 greyscale shades.
|
514
|
+
if (r === g && g === b) {
|
515
|
+
if (r < 8) {
|
516
|
+
return 16;
|
517
|
+
}
|
518
|
+
|
519
|
+
if (r > 248) {
|
520
|
+
return 231;
|
521
|
+
}
|
522
|
+
|
523
|
+
return Math.round(((r - 8) / 247) * 24) + 232;
|
524
|
+
}
|
525
|
+
|
526
|
+
var ansi = 16
|
527
|
+
+ (36 * Math.round(r / 255 * 5))
|
528
|
+
+ (6 * Math.round(g / 255 * 5))
|
529
|
+
+ Math.round(b / 255 * 5);
|
530
|
+
|
531
|
+
return ansi;
|
532
|
+
};
|
533
|
+
|
534
|
+
convert.ansi16.rgb = function (args) {
|
535
|
+
var color = args % 10;
|
536
|
+
|
537
|
+
// handle greyscale
|
538
|
+
if (color === 0 || color === 7) {
|
539
|
+
if (args > 50) {
|
540
|
+
color += 3.5;
|
541
|
+
}
|
542
|
+
|
543
|
+
color = color / 10.5 * 255;
|
544
|
+
|
545
|
+
return [color, color, color];
|
546
|
+
}
|
547
|
+
|
548
|
+
var mult = (~~(args > 50) + 1) * 0.5;
|
549
|
+
var r = ((color & 1) * mult) * 255;
|
550
|
+
var g = (((color >> 1) & 1) * mult) * 255;
|
551
|
+
var b = (((color >> 2) & 1) * mult) * 255;
|
552
|
+
|
553
|
+
return [r, g, b];
|
554
|
+
};
|
555
|
+
|
556
|
+
convert.ansi256.rgb = function (args) {
|
557
|
+
// handle greyscale
|
558
|
+
if (args >= 232) {
|
559
|
+
var c = (args - 232) * 10 + 8;
|
560
|
+
return [c, c, c];
|
561
|
+
}
|
562
|
+
|
563
|
+
args -= 16;
|
564
|
+
|
565
|
+
var rem;
|
566
|
+
var r = Math.floor(args / 36) / 5 * 255;
|
567
|
+
var g = Math.floor((rem = args % 36) / 6) / 5 * 255;
|
568
|
+
var b = (rem % 6) / 5 * 255;
|
569
|
+
|
570
|
+
return [r, g, b];
|
571
|
+
};
|
572
|
+
|
573
|
+
convert.rgb.hex = function (args) {
|
574
|
+
var integer = ((Math.round(args[0]) & 0xFF) << 16)
|
575
|
+
+ ((Math.round(args[1]) & 0xFF) << 8)
|
576
|
+
+ (Math.round(args[2]) & 0xFF);
|
577
|
+
|
578
|
+
var string = integer.toString(16).toUpperCase();
|
579
|
+
return '000000'.substring(string.length) + string;
|
580
|
+
};
|
581
|
+
|
582
|
+
convert.hex.rgb = function (args) {
|
583
|
+
var match = args.toString(16).match(/[a-f0-9]{6}/i);
|
584
|
+
if (!match) {
|
585
|
+
return [0, 0, 0];
|
586
|
+
}
|
587
|
+
|
588
|
+
var integer = parseInt(match[0], 16);
|
589
|
+
var r = (integer >> 16) & 0xFF;
|
590
|
+
var g = (integer >> 8) & 0xFF;
|
591
|
+
var b = integer & 0xFF;
|
592
|
+
|
593
|
+
return [r, g, b];
|
594
|
+
};
|