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.

Files changed (194) hide show
  1. package/node_modules/ansi-styles/index.js +72 -6
  2. package/node_modules/ansi-styles/package.json +19 -12
  3. package/node_modules/ansi-styles/readme.md +36 -8
  4. package/node_modules/are-we-there-yet/CHANGES.md +19 -0
  5. package/node_modules/are-we-there-yet/README.md +12 -2
  6. package/node_modules/are-we-there-yet/index.js +4 -132
  7. package/node_modules/are-we-there-yet/package.json +18 -13
  8. package/node_modules/are-we-there-yet/test/lib/test-event.js +29 -0
  9. package/node_modules/are-we-there-yet/test/tracker.js +44 -43
  10. package/node_modules/are-we-there-yet/test/trackergroup.js +73 -64
  11. package/node_modules/are-we-there-yet/test/trackerstream.js +26 -40
  12. package/node_modules/are-we-there-yet/tracker-base.js +11 -0
  13. package/node_modules/are-we-there-yet/tracker-group.js +107 -0
  14. package/node_modules/are-we-there-yet/tracker-stream.js +35 -0
  15. package/node_modules/are-we-there-yet/tracker.js +30 -0
  16. package/node_modules/asn1/package.json +1 -2
  17. package/node_modules/assert-plus/package.json +1 -3
  18. package/node_modules/async/package.json +1 -1
  19. package/node_modules/aws4/.npmignore +2 -1
  20. package/node_modules/aws4/README.md +4 -0
  21. package/node_modules/aws4/aws4.js +8 -3
  22. package/node_modules/aws4/node_modules/lru-cache/.npmignore +3 -0
  23. package/node_modules/aws4/node_modules/lru-cache/.travis.yml +3 -4
  24. package/node_modules/aws4/node_modules/lru-cache/README.md +29 -24
  25. package/node_modules/aws4/node_modules/lru-cache/benchmarks/insertion-time.js +32 -0
  26. package/node_modules/aws4/node_modules/lru-cache/lib/lru-cache.js +333 -199
  27. package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/LICENSE +15 -0
  28. package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/README.md +60 -0
  29. package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/map.js +9 -0
  30. package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/package.json +59 -0
  31. package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js +113 -0
  32. package/node_modules/aws4/node_modules/lru-cache/node_modules/pseudomap/test/basic.js +86 -0
  33. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.npmignore +4 -0
  34. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/.travis.yml +7 -0
  35. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/CONTRIBUTING.md +4 -0
  36. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/LICENSE +15 -0
  37. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/README.md +204 -0
  38. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/package.json +59 -0
  39. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/test/basic.js +188 -0
  40. package/node_modules/aws4/node_modules/lru-cache/node_modules/yallist/yallist.js +360 -0
  41. package/node_modules/aws4/node_modules/lru-cache/package.json +16 -12
  42. package/node_modules/aws4/node_modules/lru-cache/test/basic.js +270 -146
  43. package/node_modules/aws4/node_modules/lru-cache/test/foreach.js +39 -25
  44. package/node_modules/aws4/node_modules/lru-cache/test/inspect.js +54 -0
  45. package/node_modules/aws4/node_modules/lru-cache/test/no-symbol.js +3 -0
  46. package/node_modules/aws4/node_modules/lru-cache/test/serialize.js +115 -104
  47. package/node_modules/aws4/package.json +17 -14
  48. package/node_modules/bl/bl.js +9 -3
  49. package/node_modules/bl/package.json +12 -12
  50. package/node_modules/bl/test/test.js +14 -0
  51. package/node_modules/color-convert/README.md +62 -0
  52. package/node_modules/color-convert/conversions.js +594 -0
  53. package/node_modules/color-convert/css-keywords.js +151 -0
  54. package/node_modules/color-convert/index.js +75 -0
  55. package/node_modules/color-convert/package.json +92 -0
  56. package/node_modules/color-convert/route.js +98 -0
  57. package/node_modules/dashdash/lib/dashdash.js +1 -1
  58. package/node_modules/dashdash/node_modules/assert-plus/AUTHORS +6 -0
  59. package/node_modules/dashdash/node_modules/assert-plus/CHANGES.md +14 -0
  60. package/node_modules/dashdash/node_modules/assert-plus/README.md +162 -0
  61. package/node_modules/dashdash/node_modules/assert-plus/assert.js +211 -0
  62. package/node_modules/dashdash/node_modules/assert-plus/package.json +89 -0
  63. package/node_modules/dashdash/package.json +19 -12
  64. package/node_modules/ecc-jsbn/package.json +1 -2
  65. package/node_modules/escape-string-regexp/package.json +15 -11
  66. package/node_modules/extsprintf/package.json +2 -3
  67. package/node_modules/form-data/.dockerignore +7 -0
  68. package/node_modules/form-data/.editorconfig +10 -0
  69. package/node_modules/form-data/.eslintignore +1 -0
  70. package/node_modules/form-data/.eslintrc +64 -0
  71. package/node_modules/form-data/{Readme.md → README.md} +9 -1
  72. package/node_modules/form-data/lib/browser.js +2 -1
  73. package/node_modules/form-data/lib/form_data.js +172 -135
  74. package/node_modules/form-data/lib/populate.js +9 -0
  75. package/node_modules/form-data/package.json +35 -16
  76. package/node_modules/form-data/wercker.yml +36 -0
  77. package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/index.js +1 -1
  78. package/node_modules/fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/package.json +14 -10
  79. package/node_modules/gauge/README.md +1 -1
  80. package/node_modules/gauge/package.json +18 -14
  81. package/node_modules/gauge/progress-bar.js +2 -2
  82. package/node_modules/http-signature/package.json +1 -2
  83. package/node_modules/is-my-json-valid/README.md +2 -2
  84. package/node_modules/is-my-json-valid/index.js +15 -6
  85. package/node_modules/is-my-json-valid/package.json +11 -7
  86. package/node_modules/is-my-json-valid/test/json-schema-draft4/multipleOf.json +36 -0
  87. package/node_modules/is-my-json-valid/test/misc.js +18 -0
  88. package/node_modules/is-typedarray/package.json +1 -2
  89. package/node_modules/isarray/.npmignore +1 -0
  90. package/node_modules/isarray/.travis.yml +4 -0
  91. package/node_modules/isarray/Makefile +6 -0
  92. package/node_modules/isarray/README.md +6 -0
  93. package/node_modules/isarray/index.js +3 -1
  94. package/node_modules/isarray/package.json +28 -10
  95. package/node_modules/isarray/test.js +20 -0
  96. package/node_modules/jodid25519/package.json +1 -2
  97. package/node_modules/jsbn/package.json +1 -2
  98. package/node_modules/json-schema/package.json +1 -1
  99. package/node_modules/jsprim/package.json +1 -2
  100. package/node_modules/lodash.pad/LICENSE +17 -16
  101. package/node_modules/lodash.pad/README.md +2 -2
  102. package/node_modules/lodash.pad/index.js +3 -94
  103. package/node_modules/lodash.pad/package.json +12 -12
  104. package/node_modules/lodash.padend/LICENSE +23 -0
  105. package/node_modules/lodash.padend/README.md +18 -0
  106. package/node_modules/lodash.padend/index.js +285 -0
  107. package/node_modules/lodash.padend/package.json +91 -0
  108. package/node_modules/lodash.padstart/LICENSE +23 -0
  109. package/node_modules/lodash.padstart/README.md +18 -0
  110. package/node_modules/lodash.padstart/index.js +285 -0
  111. package/node_modules/lodash.padstart/package.json +91 -0
  112. package/node_modules/lodash.repeat/LICENSE +17 -16
  113. package/node_modules/lodash.repeat/README.md +2 -2
  114. package/node_modules/lodash.repeat/index.js +3 -94
  115. package/node_modules/lodash.repeat/package.json +14 -13
  116. package/node_modules/lodash.tostring/LICENSE +23 -0
  117. package/node_modules/lodash.tostring/README.md +18 -0
  118. package/node_modules/lodash.tostring/index.js +164 -0
  119. package/node_modules/lodash.tostring/package.json +91 -0
  120. package/node_modules/mime-db/HISTORY.md +14 -0
  121. package/node_modules/mime-db/db.json +26 -3
  122. package/node_modules/mime-db/package.json +23 -18
  123. package/node_modules/mime-types/HISTORY.md +8 -0
  124. package/node_modules/mime-types/README.md +1 -1
  125. package/node_modules/mime-types/package.json +21 -16
  126. package/node_modules/node-pre-gyp/CHANGELOG.md +11 -0
  127. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +44 -4
  128. package/node_modules/node-pre-gyp/package.json +16 -16
  129. package/node_modules/npmlog/.nyc_output/64996.json +1 -0
  130. package/node_modules/npmlog/.nyc_output/64998.json +1 -0
  131. package/node_modules/npmlog/.nyc_output/65000.json +1 -0
  132. package/node_modules/npmlog/log.js +3 -2
  133. package/node_modules/npmlog/package.json +15 -11
  134. package/node_modules/npmlog/test/progress.js +25 -8
  135. package/node_modules/once/package.json +1 -1
  136. package/node_modules/qs/package.json +1 -2
  137. package/node_modules/readable-stream/.travis.yml +18 -16
  138. package/node_modules/readable-stream/README.md +1 -1
  139. package/node_modules/readable-stream/doc/stream.markdown +435 -405
  140. package/node_modules/readable-stream/lib/_stream_duplex.js +13 -20
  141. package/node_modules/readable-stream/lib/_stream_passthrough.js +3 -4
  142. package/node_modules/readable-stream/lib/_stream_readable.js +110 -205
  143. package/node_modules/readable-stream/lib/_stream_transform.js +21 -38
  144. package/node_modules/readable-stream/lib/_stream_writable.js +108 -121
  145. package/node_modules/readable-stream/package.json +19 -15
  146. package/node_modules/request/package.json +1 -2
  147. package/node_modules/rimraf/node_modules/glob/README.md +6 -0
  148. package/node_modules/rimraf/node_modules/glob/common.js +12 -3
  149. package/node_modules/rimraf/node_modules/glob/glob.js +20 -3
  150. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +1 -1
  151. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +14 -10
  152. package/node_modules/rimraf/node_modules/glob/package.json +15 -11
  153. package/node_modules/rimraf/node_modules/glob/sync.js +8 -1
  154. package/node_modules/rimraf/package.json +14 -10
  155. package/node_modules/semver/package.json +1 -2
  156. package/node_modules/sshpk/lib/formats/rfc4253.js +2 -1
  157. package/node_modules/sshpk/package.json +13 -10
  158. package/node_modules/strip-ansi/package.json +21 -16
  159. package/node_modules/strip-ansi/readme.md +5 -5
  160. package/node_modules/tough-cookie/lib/cookie.js +2 -2
  161. package/node_modules/tough-cookie/package.json +13 -9
  162. package/node_modules/tweetnacl/CHANGELOG.md +53 -0
  163. package/node_modules/tweetnacl/COPYING.txt +9 -0
  164. package/node_modules/tweetnacl/README.md +14 -40
  165. package/node_modules/tweetnacl/nacl-fast.js +21 -51
  166. package/node_modules/tweetnacl/nacl-fast.min.js +2 -2
  167. package/node_modules/tweetnacl/nacl.js +21 -51
  168. package/node_modules/tweetnacl/nacl.min.js +1 -1
  169. package/node_modules/tweetnacl/package.json +28 -38
  170. package/node_modules/verror/package.json +2 -3
  171. package/package.json +2 -2
  172. package/node_modules/aws4/example.js +0 -372
  173. package/node_modules/aws4/node_modules/lru-cache/test/memory-leak.js +0 -51
  174. package/node_modules/isarray/build/build.js +0 -209
  175. package/node_modules/lodash._basetostring/LICENSE +0 -22
  176. package/node_modules/lodash._basetostring/README.md +0 -20
  177. package/node_modules/lodash._basetostring/index.js +0 -22
  178. package/node_modules/lodash._basetostring/package.json +0 -99
  179. package/node_modules/lodash._createpadding/LICENSE +0 -22
  180. package/node_modules/lodash._createpadding/README.md +0 -20
  181. package/node_modules/lodash._createpadding/index.js +0 -37
  182. package/node_modules/lodash._createpadding/package.json +0 -101
  183. package/node_modules/lodash._root/LICENSE +0 -22
  184. package/node_modules/lodash._root/README.md +0 -18
  185. package/node_modules/lodash._root/index.js +0 -53
  186. package/node_modules/lodash._root/package.json +0 -77
  187. package/node_modules/lodash.padleft/LICENSE.txt +0 -22
  188. package/node_modules/lodash.padleft/README.md +0 -20
  189. package/node_modules/lodash.padleft/index.js +0 -50
  190. package/node_modules/lodash.padleft/package.json +0 -107
  191. package/node_modules/lodash.padright/LICENSE.txt +0 -22
  192. package/node_modules/lodash.padright/README.md +0 -20
  193. package/node_modules/lodash.padright/index.js +0 -50
  194. 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
+ };