Socket
Socket
Sign inDemoInstall

color-hash

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

color-hash - npm Package Compare versions

Comparing version 1.1.1 to 2.0.0

.github/workflows/codeql-analysis.yml

834

dist/color-hash.js

@@ -1,173 +0,679 @@

(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ColorHash = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
/**
* BKDR Hash (modified version)
*
* @param {String} str string to hash
* @returns {Number}
*/
var BKDRHash = function(str) {
var seed = 131;
var seed2 = 137;
var hash = 0;
// make hash more sensitive for short string like 'a', 'b', 'c'
str += 'x';
// Note: Number.MAX_SAFE_INTEGER equals 9007199254740991
var MAX_SAFE_INTEGER = parseInt(9007199254740991 / seed2);
for(var i = 0; i < str.length; i++) {
if(hash > MAX_SAFE_INTEGER) {
hash = parseInt(hash / seed2);
}
hash = hash * seed + str.charCodeAt(i);
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, privateMap, value) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to set private field on non-instance");
}
return hash;
privateMap.set(receiver, value);
return value;
};
module.exports = BKDRHash;
},{}],2:[function(require,module,exports){
var BKDRHash = require('./bkdr-hash');
/**
* Convert RGB Array to HEX
*
* @param {Array} RGBArray - [R, G, B]
* @returns {String} 6 digits hex starting with #
*/
var RGB2HEX = function(RGBArray) {
var hex = '#';
RGBArray.forEach(function(value) {
if (value < 16) {
hex += 0;
}
hex += value.toString(16);
});
return hex;
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, privateMap) {
if (!privateMap.has(receiver)) {
throw new TypeError("attempted to get private field on non-instance");
}
return privateMap.get(receiver);
};
/**
* Convert HSL to RGB
*
* @see {@link http://zh.wikipedia.org/wiki/HSL和HSV色彩空间} for further information.
* @param {Number} H Hue ∈ [0, 360)
* @param {Number} S Saturation ∈ [0, 1]
* @param {Number} L Lightness ∈ [0, 1]
* @returns {Array} R, G, B ∈ [0, 255]
*/
var HSL2RGB = function(H, S, L) {
H /= 360;
var q = L < 0.5 ? L * (1 + S) : L + S - L * S;
var p = 2 * L - q;
return [H + 1/3, H, H - 1/3].map(function(color) {
if(color < 0) {
color++;
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports"], factory);
}
})(function (require, exports) {
"use strict";
var _block, _blocks, _bytes, _finalized, _first, _h0, _h1, _h2, _h3, _h4, _h5, _h6, _h7, _hashed, _hBytes, _is224, _lastByteIndex, _start, _inner, _is224_1, _oKeyPad, _sharedMemory;
exports.__esModule = true;
exports["default"] = void 0;
var BKDRHash = function (str) {
var seed = 131;
var seed2 = 137;
var hash = 0;
str += 'x';
var MAX_SAFE_INTEGER = Math.floor(9007199254740991 / seed2);
for (var i = 0; i < str.length; i++) {
if (hash > MAX_SAFE_INTEGER) {
hash = Math.floor(hash / seed2);
}
hash = hash * seed + str.charCodeAt(i);
}
if(color > 1) {
color--;
return hash;
};
var HEX_CHARS = "0123456789abcdef".split("");
var EXTRA = [
-2147483648,
8388608,
32768,
128
];
var SHIFT = [
24,
16,
8,
0
];
var K = [
1116352408,
1899447441,
3049323471,
3921009573,
961987163,
1508970993,
2453635748,
2870763221,
3624381080,
310598401,
607225278,
1426881987,
1925078388,
2162078206,
2614888103,
3248222580,
3835390401,
4022224774,
264347078,
604807628,
770255983,
1249150122,
1555081692,
1996064986,
2554220882,
2821834349,
2952996808,
3210313671,
3336571891,
3584528711,
113926993,
338241895,
666307205,
773529912,
1294757372,
1396182291,
1695183700,
1986661051,
2177026350,
2456956037,
2730485921,
2820302411,
3259730800,
3345764771,
3516065817,
3600352804,
4094571909,
275423344,
430227734,
506948616,
659060556,
883997877,
958139571,
1322822218,
1537002063,
1747873779,
1955562222,
2024104815,
2227730452,
2361852424,
2428436474,
2756734187,
3204031479,
3329325298,
];
var blocks = [];
var Sha256 = /** @class */ (function () {
function Sha256(is2241, sharedMemory1) {
if (is2241 === void 0) { is2241 = false; }
if (sharedMemory1 === void 0) { sharedMemory1 = false; }
_block.set(this, void 0);
_blocks.set(this, void 0);
_bytes.set(this, void 0);
_finalized.set(this, void 0);
_first.set(this, void 0);
_h0.set(this, void 0);
_h1.set(this, void 0);
_h2.set(this, void 0);
_h3.set(this, void 0);
_h4.set(this, void 0);
_h5.set(this, void 0);
_h6.set(this, void 0);
_h7.set(this, void 0);
_hashed.set(this, void 0);
_hBytes.set(this, void 0);
_is224.set(this, void 0);
_lastByteIndex.set(this, 0);
_start.set(this, void 0);
this.init(is2241, sharedMemory1);
}
if(color < 1/6) {
color = p + (q - p) * 6 * color;
} else if(color < 0.5) {
color = q;
} else if(color < 2/3) {
color = p + (q - p) * 6 * (2/3 - color);
} else {
color = p;
Sha256.prototype.init = function (is224, sharedMemory) {
if (sharedMemory) {
blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
__classPrivateFieldSet(this, _blocks, blocks);
}
else {
__classPrivateFieldSet(this, _blocks, [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
]);
}
if (is224) {
__classPrivateFieldSet(this, _h0, 3238371032);
__classPrivateFieldSet(this, _h1, 914150663);
__classPrivateFieldSet(this, _h2, 812702999);
__classPrivateFieldSet(this, _h3, 4144912697);
__classPrivateFieldSet(this, _h4, 4290775857);
__classPrivateFieldSet(this, _h5, 1750603025);
__classPrivateFieldSet(this, _h6, 1694076839);
__classPrivateFieldSet(this, _h7, 3204075428);
}
else {
__classPrivateFieldSet(this, _h0, 1779033703);
__classPrivateFieldSet(this, _h1, 3144134277);
__classPrivateFieldSet(this, _h2, 1013904242);
__classPrivateFieldSet(this, _h3, 2773480762);
__classPrivateFieldSet(this, _h4, 1359893119);
__classPrivateFieldSet(this, _h5, 2600822924);
__classPrivateFieldSet(this, _h6, 528734635);
__classPrivateFieldSet(this, _h7, 1541459225);
}
__classPrivateFieldSet(this, _block, __classPrivateFieldSet(this, _start, __classPrivateFieldSet(this, _bytes, __classPrivateFieldSet(this, _hBytes, 0))));
__classPrivateFieldSet(this, _finalized, __classPrivateFieldSet(this, _hashed, false));
__classPrivateFieldSet(this, _first, true);
__classPrivateFieldSet(this, _is224, is224);
};
Sha256.prototype.update = function (message) {
if (__classPrivateFieldGet(this, _finalized)) {
return this;
}
var msg;
if (message instanceof ArrayBuffer) {
msg = new Uint8Array(message);
}
else {
msg = message;
}
var index = 0;
var length = msg.length;
var blocks1 = __classPrivateFieldGet(this, _blocks);
while (index < length) {
var i = void 0;
if (__classPrivateFieldGet(this, _hashed)) {
__classPrivateFieldSet(this, _hashed, false);
blocks1[0] = __classPrivateFieldGet(this, _block);
blocks1[16] = blocks1[1] = blocks1[2] = blocks1[3] = blocks1[4] = blocks1[5] = blocks1[6] = blocks1[7] = blocks1[8] = blocks1[9] = blocks1[10] = blocks1[11] = blocks1[12] = blocks1[13] = blocks1[14] = blocks1[15] = 0;
}
if (typeof msg !== "string") {
for (i = __classPrivateFieldGet(this, _start); index < length && i < 64; ++index) {
blocks1[i >> 2] |= msg[index] << SHIFT[(i++) & 3];
}
}
else {
for (i = __classPrivateFieldGet(this, _start); index < length && i < 64; ++index) {
var code = msg.charCodeAt(index);
if (code < 128) {
blocks1[i >> 2] |= code << SHIFT[(i++) & 3];
}
else if (code < 2048) {
blocks1[i >> 2] |= (192 | code >> 6) << SHIFT[(i++) & 3];
blocks1[i >> 2] |= (128 | code & 63) << SHIFT[(i++) & 3];
}
else if (code < 55296 || code >= 57344) {
blocks1[i >> 2] |= (224 | code >> 12) << SHIFT[(i++) & 3];
blocks1[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[(i++) & 3];
blocks1[i >> 2] |= (128 | code & 63) << SHIFT[(i++) & 3];
}
else {
code = 65536 + ((code & 1023) << 10 | msg.charCodeAt(++index) & 1023);
blocks1[i >> 2] |= (240 | code >> 18) << SHIFT[(i++) & 3];
blocks1[i >> 2] |= (128 | code >> 12 & 63) << SHIFT[(i++) & 3];
blocks1[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[(i++) & 3];
blocks1[i >> 2] |= (128 | code & 63) << SHIFT[(i++) & 3];
}
}
}
__classPrivateFieldSet(this, _lastByteIndex, i);
__classPrivateFieldSet(this, _bytes, __classPrivateFieldGet(this, _bytes) + (i - __classPrivateFieldGet(this, _start)));
if (i >= 64) {
__classPrivateFieldSet(this, _block, blocks1[16]);
__classPrivateFieldSet(this, _start, i - 64);
this.hash();
__classPrivateFieldSet(this, _hashed, true);
}
else {
__classPrivateFieldSet(this, _start, i);
}
}
if (__classPrivateFieldGet(this, _bytes) > 4294967295) {
__classPrivateFieldSet(this, _hBytes, __classPrivateFieldGet(this, _hBytes) + (__classPrivateFieldGet(this, _bytes) / 4294967296 << 0));
__classPrivateFieldSet(this, _bytes, __classPrivateFieldGet(this, _bytes) % 4294967296);
}
return this;
};
Sha256.prototype.finalize = function () {
if (__classPrivateFieldGet(this, _finalized)) {
return;
}
__classPrivateFieldSet(this, _finalized, true);
var blocks1 = __classPrivateFieldGet(this, _blocks);
var i = __classPrivateFieldGet(this, _lastByteIndex);
blocks1[16] = __classPrivateFieldGet(this, _block);
blocks1[i >> 2] |= EXTRA[i & 3];
__classPrivateFieldSet(this, _block, blocks1[16]);
if (i >= 56) {
if (!__classPrivateFieldGet(this, _hashed)) {
this.hash();
}
blocks1[0] = __classPrivateFieldGet(this, _block);
blocks1[16] = blocks1[1] = blocks1[2] = blocks1[3] = blocks1[4] = blocks1[5] = blocks1[6] = blocks1[7] = blocks1[8] = blocks1[9] = blocks1[10] = blocks1[11] = blocks1[12] = blocks1[13] = blocks1[14] = blocks1[15] = 0;
}
blocks1[14] = __classPrivateFieldGet(this, _hBytes) << 3 | __classPrivateFieldGet(this, _bytes) >>> 29;
blocks1[15] = __classPrivateFieldGet(this, _bytes) << 3;
this.hash();
};
Sha256.prototype.hash = function () {
var a = __classPrivateFieldGet(this, _h0);
var b = __classPrivateFieldGet(this, _h1);
var c = __classPrivateFieldGet(this, _h2);
var d = __classPrivateFieldGet(this, _h3);
var e = __classPrivateFieldGet(this, _h4);
var f = __classPrivateFieldGet(this, _h5);
var g = __classPrivateFieldGet(this, _h6);
var h = __classPrivateFieldGet(this, _h7);
var blocks1 = __classPrivateFieldGet(this, _blocks);
var s0;
var s1;
var maj;
var t1;
var t2;
var ch;
var ab;
var da;
var cd;
var bc;
for (var j = 16; j < 64; ++j) {
t1 = blocks1[j - 15];
s0 = (t1 >>> 7 | t1 << 25) ^ (t1 >>> 18 | t1 << 14) ^ t1 >>> 3;
t1 = blocks1[j - 2];
s1 = (t1 >>> 17 | t1 << 15) ^ (t1 >>> 19 | t1 << 13) ^ t1 >>> 10;
blocks1[j] = blocks1[j - 16] + s0 + blocks1[j - 7] + s1 << 0;
}
bc = b & c;
for (var j1 = 0; j1 < 64; j1 += 4) {
if (__classPrivateFieldGet(this, _first)) {
if (__classPrivateFieldGet(this, _is224)) {
ab = 300032;
t1 = blocks1[0] - 1413257819;
h = t1 - 150054599 << 0;
d = t1 + 24177077 << 0;
}
else {
ab = 704751109;
t1 = blocks1[0] - 210244248;
h = t1 - 1521486534 << 0;
d = t1 + 143694565 << 0;
}
__classPrivateFieldSet(this, _first, false);
}
else {
s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10);
s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7);
ab = a & b;
maj = ab ^ a & c ^ bc;
ch = e & f ^ ~e & g;
t1 = h + s1 + ch + K[j1] + blocks1[j1];
t2 = s0 + maj;
h = d + t1 << 0;
d = t1 + t2 << 0;
}
s0 = (d >>> 2 | d << 30) ^ (d >>> 13 | d << 19) ^ (d >>> 22 | d << 10);
s1 = (h >>> 6 | h << 26) ^ (h >>> 11 | h << 21) ^ (h >>> 25 | h << 7);
da = d & a;
maj = da ^ d & b ^ ab;
ch = h & e ^ ~h & f;
t1 = g + s1 + ch + K[j1 + 1] + blocks1[j1 + 1];
t2 = s0 + maj;
g = c + t1 << 0;
c = t1 + t2 << 0;
s0 = (c >>> 2 | c << 30) ^ (c >>> 13 | c << 19) ^ (c >>> 22 | c << 10);
s1 = (g >>> 6 | g << 26) ^ (g >>> 11 | g << 21) ^ (g >>> 25 | g << 7);
cd = c & d;
maj = cd ^ c & a ^ da;
ch = g & h ^ ~g & e;
t1 = f + s1 + ch + K[j1 + 2] + blocks1[j1 + 2];
t2 = s0 + maj;
f = b + t1 << 0;
b = t1 + t2 << 0;
s0 = (b >>> 2 | b << 30) ^ (b >>> 13 | b << 19) ^ (b >>> 22 | b << 10);
s1 = (f >>> 6 | f << 26) ^ (f >>> 11 | f << 21) ^ (f >>> 25 | f << 7);
bc = b & c;
maj = bc ^ b & d ^ cd;
ch = f & g ^ ~f & h;
t1 = e + s1 + ch + K[j1 + 3] + blocks1[j1 + 3];
t2 = s0 + maj;
e = a + t1 << 0;
a = t1 + t2 << 0;
}
__classPrivateFieldSet(this, _h0, __classPrivateFieldGet(this, _h0) + a << 0);
__classPrivateFieldSet(this, _h1, __classPrivateFieldGet(this, _h1) + b << 0);
__classPrivateFieldSet(this, _h2, __classPrivateFieldGet(this, _h2) + c << 0);
__classPrivateFieldSet(this, _h3, __classPrivateFieldGet(this, _h3) + d << 0);
__classPrivateFieldSet(this, _h4, __classPrivateFieldGet(this, _h4) + e << 0);
__classPrivateFieldSet(this, _h5, __classPrivateFieldGet(this, _h5) + f << 0);
__classPrivateFieldSet(this, _h6, __classPrivateFieldGet(this, _h6) + g << 0);
__classPrivateFieldSet(this, _h7, __classPrivateFieldGet(this, _h7) + h << 0);
};
Sha256.prototype.hex = function () {
this.finalize();
var h0 = __classPrivateFieldGet(this, _h0);
var h1 = __classPrivateFieldGet(this, _h1);
var h2 = __classPrivateFieldGet(this, _h2);
var h3 = __classPrivateFieldGet(this, _h3);
var h4 = __classPrivateFieldGet(this, _h4);
var h5 = __classPrivateFieldGet(this, _h5);
var h6 = __classPrivateFieldGet(this, _h6);
var h7 = __classPrivateFieldGet(this, _h7);
var hex = HEX_CHARS[h0 >> 28 & 15] + HEX_CHARS[h0 >> 24 & 15] + HEX_CHARS[h0 >> 20 & 15] + HEX_CHARS[h0 >> 16 & 15] + HEX_CHARS[h0 >> 12 & 15] + HEX_CHARS[h0 >> 8 & 15] + HEX_CHARS[h0 >> 4 & 15] + HEX_CHARS[h0 & 15] + HEX_CHARS[h1 >> 28 & 15] + HEX_CHARS[h1 >> 24 & 15] + HEX_CHARS[h1 >> 20 & 15] + HEX_CHARS[h1 >> 16 & 15] + HEX_CHARS[h1 >> 12 & 15] + HEX_CHARS[h1 >> 8 & 15] + HEX_CHARS[h1 >> 4 & 15] + HEX_CHARS[h1 & 15] + HEX_CHARS[h2 >> 28 & 15] + HEX_CHARS[h2 >> 24 & 15] + HEX_CHARS[h2 >> 20 & 15] + HEX_CHARS[h2 >> 16 & 15] + HEX_CHARS[h2 >> 12 & 15] + HEX_CHARS[h2 >> 8 & 15] + HEX_CHARS[h2 >> 4 & 15] + HEX_CHARS[h2 & 15] + HEX_CHARS[h3 >> 28 & 15] + HEX_CHARS[h3 >> 24 & 15] + HEX_CHARS[h3 >> 20 & 15] + HEX_CHARS[h3 >> 16 & 15] + HEX_CHARS[h3 >> 12 & 15] + HEX_CHARS[h3 >> 8 & 15] + HEX_CHARS[h3 >> 4 & 15] + HEX_CHARS[h3 & 15] + HEX_CHARS[h4 >> 28 & 15] + HEX_CHARS[h4 >> 24 & 15] + HEX_CHARS[h4 >> 20 & 15] + HEX_CHARS[h4 >> 16 & 15] + HEX_CHARS[h4 >> 12 & 15] + HEX_CHARS[h4 >> 8 & 15] + HEX_CHARS[h4 >> 4 & 15] + HEX_CHARS[h4 & 15] + HEX_CHARS[h5 >> 28 & 15] + HEX_CHARS[h5 >> 24 & 15] + HEX_CHARS[h5 >> 20 & 15] + HEX_CHARS[h5 >> 16 & 15] + HEX_CHARS[h5 >> 12 & 15] + HEX_CHARS[h5 >> 8 & 15] + HEX_CHARS[h5 >> 4 & 15] + HEX_CHARS[h5 & 15] + HEX_CHARS[h6 >> 28 & 15] + HEX_CHARS[h6 >> 24 & 15] + HEX_CHARS[h6 >> 20 & 15] + HEX_CHARS[h6 >> 16 & 15] + HEX_CHARS[h6 >> 12 & 15] + HEX_CHARS[h6 >> 8 & 15] + HEX_CHARS[h6 >> 4 & 15] + HEX_CHARS[h6 & 15];
if (!__classPrivateFieldGet(this, _is224)) {
hex += HEX_CHARS[h7 >> 28 & 15] + HEX_CHARS[h7 >> 24 & 15] + HEX_CHARS[h7 >> 20 & 15] + HEX_CHARS[h7 >> 16 & 15] + HEX_CHARS[h7 >> 12 & 15] + HEX_CHARS[h7 >> 8 & 15] + HEX_CHARS[h7 >> 4 & 15] + HEX_CHARS[h7 & 15];
}
return hex;
};
Sha256.prototype.toString = function () {
return this.hex();
};
Sha256.prototype.digest = function () {
this.finalize();
var h0 = __classPrivateFieldGet(this, _h0);
var h1 = __classPrivateFieldGet(this, _h1);
var h2 = __classPrivateFieldGet(this, _h2);
var h3 = __classPrivateFieldGet(this, _h3);
var h4 = __classPrivateFieldGet(this, _h4);
var h5 = __classPrivateFieldGet(this, _h5);
var h6 = __classPrivateFieldGet(this, _h6);
var h7 = __classPrivateFieldGet(this, _h7);
var arr = [
h0 >> 24 & 255,
h0 >> 16 & 255,
h0 >> 8 & 255,
h0 & 255,
h1 >> 24 & 255,
h1 >> 16 & 255,
h1 >> 8 & 255,
h1 & 255,
h2 >> 24 & 255,
h2 >> 16 & 255,
h2 >> 8 & 255,
h2 & 255,
h3 >> 24 & 255,
h3 >> 16 & 255,
h3 >> 8 & 255,
h3 & 255,
h4 >> 24 & 255,
h4 >> 16 & 255,
h4 >> 8 & 255,
h4 & 255,
h5 >> 24 & 255,
h5 >> 16 & 255,
h5 >> 8 & 255,
h5 & 255,
h6 >> 24 & 255,
h6 >> 16 & 255,
h6 >> 8 & 255,
h6 & 255,
];
if (!__classPrivateFieldGet(this, _is224)) {
arr.push(h7 >> 24 & 255, h7 >> 16 & 255, h7 >> 8 & 255, h7 & 255);
}
return arr;
};
Sha256.prototype.array = function () {
return this.digest();
};
Sha256.prototype.arrayBuffer = function () {
this.finalize();
var buffer = new ArrayBuffer(__classPrivateFieldGet(this, _is224) ? 28 : 32);
var dataView = new DataView(buffer);
dataView.setUint32(0, __classPrivateFieldGet(this, _h0));
dataView.setUint32(4, __classPrivateFieldGet(this, _h1));
dataView.setUint32(8, __classPrivateFieldGet(this, _h2));
dataView.setUint32(12, __classPrivateFieldGet(this, _h3));
dataView.setUint32(16, __classPrivateFieldGet(this, _h4));
dataView.setUint32(20, __classPrivateFieldGet(this, _h5));
dataView.setUint32(24, __classPrivateFieldGet(this, _h6));
if (!__classPrivateFieldGet(this, _is224)) {
dataView.setUint32(28, __classPrivateFieldGet(this, _h7));
}
return buffer;
};
return Sha256;
}());
_block = new WeakMap(), _blocks = new WeakMap(), _bytes = new WeakMap(), _finalized = new WeakMap(), _first = new WeakMap(), _h0 = new WeakMap(), _h1 = new WeakMap(), _h2 = new WeakMap(), _h3 = new WeakMap(), _h4 = new WeakMap(), _h5 = new WeakMap(), _h6 = new WeakMap(), _h7 = new WeakMap(), _hashed = new WeakMap(), _hBytes = new WeakMap(), _is224 = new WeakMap(), _lastByteIndex = new WeakMap(), _start = new WeakMap();
var HmacSha256 = /** @class */ (function (_super) {
__extends(HmacSha256, _super);
function HmacSha256(secretKey, is2242, sharedMemory2) {
if (is2242 === void 0) { is2242 = false; }
if (sharedMemory2 === void 0) { sharedMemory2 = false; }
var _this = _super.call(this, is2242, sharedMemory2) || this;
_inner.set(_this, void 0);
_is224_1.set(_this, void 0);
_oKeyPad.set(_this, void 0);
_sharedMemory.set(_this, void 0);
var key;
if (typeof secretKey === "string") {
var bytes = [];
var length_1 = secretKey.length;
var index = 0;
for (var i = 0; i < length_1; ++i) {
var code = secretKey.charCodeAt(i);
if (code < 128) {
bytes[index++] = code;
}
else if (code < 2048) {
bytes[index++] = 192 | code >> 6;
bytes[index++] = 128 | code & 63;
}
else if (code < 55296 || code >= 57344) {
bytes[index++] = 224 | code >> 12;
bytes[index++] = 128 | code >> 6 & 63;
bytes[index++] = 128 | code & 63;
}
else {
code = 65536 + ((code & 1023) << 10 | secretKey.charCodeAt(++i) & 1023);
bytes[index++] = 240 | code >> 18;
bytes[index++] = 128 | code >> 12 & 63;
bytes[index++] = 128 | code >> 6 & 63;
bytes[index++] = 128 | code & 63;
}
}
key = bytes;
}
else {
if (secretKey instanceof ArrayBuffer) {
key = new Uint8Array(secretKey);
}
else {
key = secretKey;
}
}
if (key.length > 64) {
key = new Sha256(is2242, true).update(key).array();
}
var oKeyPad = [];
var iKeyPad = [];
for (var i = 0; i < 64; ++i) {
var b = key[i] || 0;
oKeyPad[i] = 92 ^ b;
iKeyPad[i] = 54 ^ b;
}
_this.update(iKeyPad);
__classPrivateFieldSet(_this, _oKeyPad, oKeyPad);
__classPrivateFieldSet(_this, _inner, true);
__classPrivateFieldSet(_this, _is224_1, is2242);
__classPrivateFieldSet(_this, _sharedMemory, sharedMemory2);
return _this;
}
return Math.round(color * 255);
});
};
function isArray(o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
/**
* Color Hash Class
*
* @class
*/
var ColorHash = function(options) {
options = options || {};
var LS = [options.lightness, options.saturation].map(function(param) {
param = param !== undefined ? param : [0.35, 0.5, 0.65]; // note that 3 is a prime
return isArray(param) ? param.concat() : [param];
});
this.L = LS[0];
this.S = LS[1];
if (typeof options.hue === 'number') {
options.hue = {min: options.hue, max: options.hue};
HmacSha256.prototype.finalize = function () {
_super.prototype.finalize.call(this);
if (__classPrivateFieldGet(this, _inner)) {
__classPrivateFieldSet(this, _inner, false);
var innerHash = this.array();
_super.prototype.init.call(this, __classPrivateFieldGet(this, _is224_1), __classPrivateFieldGet(this, _sharedMemory));
this.update(__classPrivateFieldGet(this, _oKeyPad));
this.update(innerHash);
_super.prototype.finalize.call(this);
}
};
return HmacSha256;
}(Sha256));
_inner = new WeakMap(), _is224_1 = new WeakMap(), _oKeyPad = new WeakMap(), _sharedMemory = new WeakMap();
function Sha256ToInt(s) {
var sha256 = new Sha256();
sha256.update(s);
return parseInt(sha256.hex().substring(0, 8), 16);
}
if (typeof options.hue === 'object' && !isArray(options.hue)) {
options.hue = [options.hue];
}
if (typeof options.hue === 'undefined') {
options.hue = [];
}
this.hueRanges = options.hue.map(function (range) {
return {
min: typeof range.min === 'undefined' ? 0 : range.min,
max: typeof range.max === 'undefined' ? 360: range.max
var RGB2HEX = function (RGBArray) {
var hex = '#';
RGBArray.forEach(function (value) {
if (value < 16) {
hex += 0;
}
hex += value.toString(16);
});
return hex;
};
var HSL2RGB = function (H, S, L) {
H /= 360;
var q = L < 0.5 ? L * (1 + S) : L + S - L * S;
var p = 2 * L - q;
return [
H + 1 / 3,
H,
H - 1 / 3
].map(function (color) {
if (color < 0) {
color++;
}
if (color > 1) {
color--;
}
if (color < 1 / 6) {
color = p + (q - p) * 6 * color;
}
else if (color < 0.5) {
color = q;
}
else if (color < 2 / 3) {
color = p + (q - p) * 6 * (2 / 3 - color);
}
else {
color = p;
}
return Math.round(color * 255);
});
};
var ColorHash = /** @class */ (function () {
function ColorHash(options) {
if (options === void 0) { options = {}; }
var _a = [
options.lightness,
options.saturation
].map(function (param) {
param = param !== undefined ? param : [
0.35,
0.5,
0.65
];
return Array.isArray(param) ? param.concat() : [
param
];
}), L = _a[0], S = _a[1];
this.L = L;
this.S = S;
if (typeof options.hue === 'number') {
options.hue = {
min: options.hue,
max: options.hue
};
}
if (typeof options.hue === 'object' && !Array.isArray(options.hue)) {
options.hue = [
options.hue
];
}
if (typeof options.hue === 'undefined') {
options.hue = [];
}
this.hueRanges = options.hue.map(function (range) {
return {
min: typeof range.min === 'undefined' ? 0 : range.min,
max: typeof range.max === 'undefined' ? 360 : range.max
};
});
this.hash = Sha256ToInt;
if (typeof options.hash === 'function') {
this.hash = options.hash;
}
if (options.hash === 'bkdr') {
this.hash = BKDRHash;
}
}
ColorHash.prototype.hsl = function (str) {
var H, S1, L1;
var hash = this.hash(str);
var hueResolution = 727;
if (this.hueRanges.length) {
var range = this.hueRanges[hash % this.hueRanges.length];
H = hash / this.hueRanges.length % hueResolution * (range.max - range.min) / hueResolution + range.min;
}
else {
H = hash % 359;
}
hash = Math.ceil(hash / 360);
S1 = this.S[hash % this.S.length];
hash = Math.ceil(hash / this.S.length);
L1 = this.L[hash % this.L.length];
return [
H,
S1,
L1
];
};
});
this.hash = options.hash || BKDRHash;
};
/**
* Returns the hash in [h, s, l].
* Note that H ∈ [0, 360); S ∈ [0, 1]; L ∈ [0, 1];
*
* @param {String} str string to hash
* @returns {Array} [h, s, l]
*/
ColorHash.prototype.hsl = function(str) {
var H, S, L;
var hash = this.hash(str);
if (this.hueRanges.length) {
var range = this.hueRanges[hash % this.hueRanges.length];
var hueResolution = 727; // note that 727 is a prime
H = ((hash / this.hueRanges.length) % hueResolution) * (range.max - range.min) / hueResolution + range.min;
} else {
H = hash % 359; // note that 359 is a prime
}
hash = parseInt(hash / 360);
S = this.S[hash % this.S.length];
hash = parseInt(hash / this.S.length);
L = this.L[hash % this.L.length];
return [H, S, L];
};
/**
* Returns the hash in [r, g, b].
* Note that R, G, B ∈ [0, 255]
*
* @param {String} str string to hash
* @returns {Array} [r, g, b]
*/
ColorHash.prototype.rgb = function(str) {
var hsl = this.hsl(str);
return HSL2RGB.apply(this, hsl);
};
/**
* Returns the hash in hex
*
* @param {String} str string to hash
* @returns {String} hex with #
*/
ColorHash.prototype.hex = function(str) {
var rgb = this.rgb(str);
return RGB2HEX(rgb);
};
module.exports = ColorHash;
},{"./bkdr-hash":1}]},{},[2])(2)
ColorHash.prototype.rgb = function (str) {
var hsl = this.hsl(str);
return HSL2RGB.apply(this, hsl);
};
ColorHash.prototype.hex = function (str) {
var rgb = this.rgb(str);
return RGB2HEX(rgb);
};
return ColorHash;
}());
exports["default"] = ColorHash;
});

2

LICENSE.md
The MIT License (MIT)
Copyright (c) 2015 Zeno Zeng
Copyright (c) 2015-2021 Zeno Zeng

@@ -5,0 +5,0 @@ Permission is hereby granted, free of charge, to any person obtaining a copy

{
"name": "color-hash",
"version": "1.1.1",
"description": "Generate color based on the given string (using HSL color space and BKDRHash).",
"main": "lib/color-hash.js",
"version": "2.0.0",
"description": "Generate color based on the given string (using HSL color space and SHA256).",
"main": "dist/color-hash.js",
"scripts": {
"prepublishOnly": "npm run test && npm run build",
"build": "browserify lib/color-hash.js -s ColorHash -o dist/color-hash.js",
"test": "istanbul cover _mocha"
"prepublishOnly": "make build",
"test": "node -e \"const ColorHash = require('.').default; new ColorHash();\""
},

@@ -20,10 +19,6 @@ "repository": {

},
"dependencies": {},
"devDependencies": {
"browserify": "^14.4.0",
"istanbul": "^0.4.5",
"mocha": "^8.3.2",
"rewire": "^2.1.5",
"string-hash": "^1.1.3"
},
"dependencies": {}
"typescript": "^4.2.4"
}
}

@@ -11,4 +11,10 @@ # Color Hash

### Browser
### Deno
```typescript
import ColorHash from "https://deno.land/x/color_hash@v2.0.0/mod.ts"
```
### Node.js
```bash

@@ -18,7 +24,20 @@ npm install color-hash

A UMD version of ColorHash is located in `dist/`.
```typescript
import ColorHash from 'color-hash'
```
Note that `Array.prototype.map` is used in `color-hash`,
a polyfill must be provided if you want to use it in IE8.
or
```javascript
const ColorHash = require('color-hash').default;
```
### <script type="module">
```html
<script type="module">
import ColorHash from '../dist/esm.js';
</script>
```
#### Basic

@@ -89,12 +108,2 @@

### Node.js
```bash
npm install color-hash --save
```
```javascript
var ColorHash = require('color-hash');
```
## License

@@ -129,4 +138,3 @@

```bash
npm install
npm test
deno test
```

@@ -138,11 +146,5 @@

### Build browser js
```bash
npm install
npm run build
```
### Follow Semantic Versioning
http://semver.org/lang/zh-CN/

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc