diff --git a/.gitignore b/.gitignore index dcbffe2..a9eb8b2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ node_modules/ *.DS_Store .DS_Store doc/ -dist/ + release/ npm-debug.log* coverage/ diff --git a/dist/utils.cjs.js b/dist/utils.cjs.js new file mode 100644 index 0000000..7d21b26 --- /dev/null +++ b/dist/utils.cjs.js @@ -0,0 +1,1469 @@ +/* +Copyright (c) 2018 Daybrush +@name: @daybrush/utils +license: MIT +author: Daybrush +repository: https://github.com/daybrush/utils +@version 1.10.1 +*/ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +/** +* @namespace +* @name Consts +*/ +/** +* get string "rgb" +* @memberof Color +* @example +import {RGB} from "@daybrush/utils"; + +console.log(RGB); // "rgb" +*/ +var RGB = "rgb"; +/** +* get string "rgba" +* @memberof Color +* @example +import {RGBA} from "@daybrush/utils"; + +console.log(RGBA); // "rgba" +*/ +var RGBA = "rgba"; +/** +* get string "hsl" +* @memberof Color +* @example +import {HSL} from "@daybrush/utils"; + +console.log(HSL); // "hsl" +*/ +var HSL = "hsl"; +/** +* get string "hsla" +* @memberof Color +* @example +import {HSLA} from "@daybrush/utils"; + +console.log(HSLA); // "hsla" +*/ +var HSLA = "hsla"; +/** +* gets an array of color models. +* @memberof Color +* @example +import {COLOR_MODELS} from "@daybrush/utils"; + +console.log(COLOR_MODELS); // ["rgb", "rgba", "hsl", "hsla"]; +*/ +var COLOR_MODELS = [RGB, RGBA, HSL, HSLA]; +/** +* get string "function" +* @memberof Consts +* @example +import {FUNCTION} from "@daybrush/utils"; + +console.log(FUNCTION); // "function" +*/ +var FUNCTION = "function"; +/** +* get string "property" +* @memberof Consts +* @example +import {PROPERTY} from "@daybrush/utils"; + +console.log(PROPERTY); // "property" +*/ +var PROPERTY = "property"; +/** +* get string "array" +* @memberof Consts +* @example +import {ARRAY} from "@daybrush/utils"; + +console.log(ARRAY); // "array" +*/ +var ARRAY = "array"; +/** +* get string "object" +* @memberof Consts +* @example +import {OBJECT} from "@daybrush/utils"; + +console.log(OBJECT); // "object" +*/ +var OBJECT = "object"; +/** +* get string "string" +* @memberof Consts +* @example +import {STRING} from "@daybrush/utils"; + +console.log(STRING); // "string" +*/ +var STRING = "string"; +/** +* get string "number" +* @memberof Consts +* @example +import {NUMBER} from "@daybrush/utils"; + +console.log(NUMBER); // "number" +*/ +var NUMBER = "number"; +/** +* get string "undefined" +* @memberof Consts +* @example +import {UNDEFINED} from "@daybrush/utils"; + +console.log(UNDEFINED); // "undefined" +*/ +var UNDEFINED = "undefined"; +/** +* Check whether the environment is window or node.js. +* @memberof Consts +* @example +import {IS_WINDOW} from "@daybrush/utils"; + +console.log(IS_WINDOW); // false in node.js +console.log(IS_WINDOW); // true in browser +*/ +var IS_WINDOW = typeof window !== UNDEFINED; +/** +* Check whether the environment is window or node.js. +* @memberof Consts +* @name document +* @example +import {IS_WINDOW} from "@daybrush/utils"; + +console.log(IS_WINDOW); // false in node.js +console.log(IS_WINDOW); // true in browser +*/ +var doc = typeof document !== UNDEFINED && document; // FIXME: this type maybe false +var prefixes = ["webkit", "ms", "moz", "o"]; +/** + * @namespace CrossBrowser + */ +/** +* Get a CSS property with a vendor prefix that supports cross browser. +* @function +* @param {string} property - A CSS property +* @return {string} CSS property with cross-browser vendor prefix +* @memberof CrossBrowser +* @example +import {getCrossBrowserProperty} from "@daybrush/utils"; + +console.log(getCrossBrowserProperty("transform")); // "transform", "-ms-transform", "-webkit-transform" +console.log(getCrossBrowserProperty("filter")); // "filter", "-webkit-filter" +*/ +var getCrossBrowserProperty = /*#__PURE__*/function (property) { + if (!doc) { + return ""; + } + var styles = (doc.body || doc.documentElement).style; + var length = prefixes.length; + if (typeof styles[property] !== UNDEFINED) { + return property; + } + for (var i = 0; i < length; ++i) { + var name = "-" + prefixes[i] + "-" + property; + if (typeof styles[name] !== UNDEFINED) { + return name; + } + } + return ""; +}; +/** +* get string "transfrom" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {TRANSFORM} from "@daybrush/utils"; + +console.log(TRANSFORM); // "transform", "-ms-transform", "-webkit-transform" +*/ +var TRANSFORM = /*#__PURE__*/getCrossBrowserProperty("transform"); +/** +* get string "filter" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {FILTER} from "@daybrush/utils"; + +console.log(FILTER); // "filter", "-ms-filter", "-webkit-filter" +*/ +var FILTER = /*#__PURE__*/getCrossBrowserProperty("filter"); +/** +* get string "animation" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {ANIMATION} from "@daybrush/utils"; + +console.log(ANIMATION); // "animation", "-ms-animation", "-webkit-animation" +*/ +var ANIMATION = /*#__PURE__*/getCrossBrowserProperty("animation"); +/** +* get string "keyframes" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {KEYFRAMES} from "@daybrush/utils"; + +console.log(KEYFRAMES); // "keyframes", "-ms-keyframes", "-webkit-keyframes" +*/ +var KEYFRAMES = /*#__PURE__*/ANIMATION.replace("animation", "keyframes"); +var OPEN_CLOSED_CHARACTERS = [{ + open: "(", + close: ")" +}, { + open: "\"", + close: "\"" +}, { + open: "'", + close: "'" +}, { + open: "\\\"", + close: "\\\"" +}, { + open: "\\'", + close: "\\'" +}]; +var TINY_NUM = 0.0000001; +var REVERSE_TINY_NUM = 1 / TINY_NUM; +var DEFAULT_UNIT_PRESETS = { + "cm": function (pos) { + return pos * 96 / 2.54; + }, + "mm": function (pos) { + return pos * 96 / 254; + }, + "in": function (pos) { + return pos * 96; + }, + "pt": function (pos) { + return pos * 96 / 72; + }, + "pc": function (pos) { + return pos * 96 / 6; + }, + "%": function (pos, size) { + return pos * size / 100; + }, + "vw": function (pos, size) { + if (size === void 0) { + size = window.innerWidth; + } + return pos / 100 * size; + }, + "vh": function (pos, size) { + if (size === void 0) { + size = window.innerHeight; + } + return pos / 100 * size; + }, + "vmax": function (pos, size) { + if (size === void 0) { + size = Math.max(window.innerWidth, window.innerHeight); + } + return pos / 100 * size; + }, + "vmin": function (pos, size) { + if (size === void 0) { + size = Math.min(window.innerWidth, window.innerHeight); + } + return pos / 100 * size; + } +}; + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; + return r; +} + +/** +* @namespace +* @name Utils +*/ +/** + * Returns the inner product of two numbers(`a1`, `a2`) by two criteria(`b1`, `b2`). + * @memberof Utils + * @param - The first number + * @param - The second number + * @param - The first number to base on the inner product + * @param - The second number to base on the inner product + * @return - Returns the inner product +import { dot } from "@daybrush/utils"; + +console.log(dot(0, 15, 2, 3)); // 6 +console.log(dot(5, 15, 2, 3)); // 9 +console.log(dot(5, 15, 1, 1)); // 10 + */ +function dot(a1, a2, b1, b2) { + return (a1 * b2 + a2 * b1) / (b1 + b2); +} +/** +* Check the type that the value is undefined. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {boolean} true if the type is correct, false otherwise +* @example +import {isUndefined} from "@daybrush/utils"; + +console.log(isUndefined(undefined)); // true +console.log(isUndefined("")); // false +console.log(isUndefined(1)); // false +console.log(isUndefined(null)); // false +*/ +function isUndefined(value) { + return typeof value === UNDEFINED; +} +/** +* Check the type that the value is object. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isObject} from "@daybrush/utils"; + +console.log(isObject({})); // true +console.log(isObject(undefined)); // false +console.log(isObject("")); // false +console.log(isObject(null)); // false +*/ +function isObject(value) { + return value && typeof value === OBJECT; +} +/** +* Check the type that the value is isArray. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isArray} from "@daybrush/utils"; + +console.log(isArray([])); // true +console.log(isArray({})); // false +console.log(isArray(undefined)); // false +console.log(isArray(null)); // false +*/ +function isArray(value) { + return Array.isArray(value); +} +/** +* Check the type that the value is string. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isString} from "@daybrush/utils"; + +console.log(isString("1234")); // true +console.log(isString(undefined)); // false +console.log(isString(1)); // false +console.log(isString(null)); // false +*/ +function isString(value) { + return typeof value === STRING; +} +function isNumber(value) { + return typeof value === NUMBER; +} +/** +* Check the type that the value is function. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isFunction} from "@daybrush/utils"; + +console.log(isFunction(function a() {})); // true +console.log(isFunction(() => {})); // true +console.log(isFunction("1234")); // false +console.log(isFunction(1)); // false +console.log(isFunction(null)); // false +*/ +function isFunction(value) { + return typeof value === FUNCTION; +} +function isEqualSeparator(character, separator) { + var isCharacterSpace = character === "" || character == " "; + var isSeparatorSpace = separator === "" || separator == " "; + return isSeparatorSpace && isCharacterSpace || character === separator; +} +function findOpen(openCharacter, texts, index, length, openCloseCharacters) { + var isIgnore = findIgnore(openCharacter, texts, index); + if (!isIgnore) { + return findClose(openCharacter, texts, index + 1, length, openCloseCharacters); + } + return index; +} +function findIgnore(character, texts, index) { + if (!character.ignore) { + return null; + } + var otherText = texts.slice(Math.max(index - 3, 0), index + 3).join(""); + return new RegExp(character.ignore).exec(otherText); +} +function findClose(closeCharacter, texts, index, length, openCloseCharacters) { + var _loop_1 = function (i) { + var character = texts[i].trim(); + if (character === closeCharacter.close && !findIgnore(closeCharacter, texts, i)) { + return { + value: i + }; + } + var nextIndex = i; + // re open + var openCharacter = find(openCloseCharacters, function (_a) { + var open = _a.open; + return open === character; + }); + if (openCharacter) { + nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters); + } + if (nextIndex === -1) { + return out_i_1 = i, "break"; + } + i = nextIndex; + out_i_1 = i; + }; + var out_i_1; + for (var i = index; i < length; ++i) { + var state_1 = _loop_1(i); + i = out_i_1; + if (typeof state_1 === "object") return state_1.value; + if (state_1 === "break") break; + } + return -1; +} +function splitText(text, splitOptions) { + var _a = isString(splitOptions) ? { + separator: splitOptions + } : splitOptions, + _b = _a.separator, + separator = _b === void 0 ? "," : _b, + isSeparateFirst = _a.isSeparateFirst, + isSeparateOnlyOpenClose = _a.isSeparateOnlyOpenClose, + _c = _a.isSeparateOpenClose, + isSeparateOpenClose = _c === void 0 ? isSeparateOnlyOpenClose : _c, + _d = _a.openCloseCharacters, + openCloseCharacters = _d === void 0 ? OPEN_CLOSED_CHARACTERS : _d; + var openClosedText = openCloseCharacters.map(function (_a) { + var open = _a.open, + close = _a.close; + if (open === close) { + return open; + } + return open + "|" + close; + }).join("|"); + var regexText = "(\\s*" + separator + "\\s*|" + openClosedText + "|\\s+)"; + var regex = new RegExp(regexText, "g"); + var texts = text.split(regex).filter(Boolean); + var length = texts.length; + var values = []; + var tempValues = []; + function resetTemp() { + if (tempValues.length) { + values.push(tempValues.join("")); + tempValues = []; + return true; + } + return false; + } + var _loop_2 = function (i) { + var character = texts[i].trim(); + var nextIndex = i; + var openCharacter = find(openCloseCharacters, function (_a) { + var open = _a.open; + return open === character; + }); + var closeCharacter = find(openCloseCharacters, function (_a) { + var close = _a.close; + return close === character; + }); + if (openCharacter) { + nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters); + if (nextIndex !== -1 && isSeparateOpenClose) { + if (resetTemp() && isSeparateFirst) { + return out_i_2 = i, "break"; + } + values.push(texts.slice(i, nextIndex + 1).join("")); + i = nextIndex; + if (isSeparateFirst) { + return out_i_2 = i, "break"; + } + return out_i_2 = i, "continue"; + } + } else if (closeCharacter && !findIgnore(closeCharacter, texts, i)) { + var nextOpenCloseCharacters = __spreadArrays(openCloseCharacters); + nextOpenCloseCharacters.splice(openCloseCharacters.indexOf(closeCharacter), 1); + return { + value: splitText(text, { + separator: separator, + isSeparateFirst: isSeparateFirst, + isSeparateOnlyOpenClose: isSeparateOnlyOpenClose, + isSeparateOpenClose: isSeparateOpenClose, + openCloseCharacters: nextOpenCloseCharacters + }) + }; + } else if (isEqualSeparator(character, separator) && !isSeparateOnlyOpenClose) { + resetTemp(); + if (isSeparateFirst) { + return out_i_2 = i, "break"; + } + return out_i_2 = i, "continue"; + } + if (nextIndex === -1) { + nextIndex = length - 1; + } + tempValues.push(texts.slice(i, nextIndex + 1).join("")); + i = nextIndex; + out_i_2 = i; + }; + var out_i_2; + for (var i = 0; i < length; ++i) { + var state_2 = _loop_2(i); + i = out_i_2; + if (typeof state_2 === "object") return state_2.value; + if (state_2 === "break") break; + } + if (tempValues.length) { + values.push(tempValues.join("")); + } + return values; +} +/** +* divide text by space. +* @memberof Utils +* @param {string} text - text to divide +* @return {Array} divided texts +* @example +import {spliceSpace} from "@daybrush/utils"; + +console.log(splitSpace("a b c d e f g")); +// ["a", "b", "c", "d", "e", "f", "g"] +console.log(splitSpace("'a,b' c 'd,e' f g")); +// ["'a,b'", "c", "'d,e'", "f", "g"] +*/ +function splitSpace(text) { + // divide comma(space) + return splitText(text, ""); +} +/** +* divide text by comma. +* @memberof Utils +* @param {string} text - text to divide +* @return {Array} divided texts +* @example +import {splitComma} from "@daybrush/utils"; + +console.log(splitComma("a,b,c,d,e,f,g")); +// ["a", "b", "c", "d", "e", "f", "g"] +console.log(splitComma("'a,b',c,'d,e',f,g")); +// ["'a,b'", "c", "'d,e'", "f", "g"] +*/ +function splitComma(text) { + // divide comma(,) + // "[^"]*"|'[^']*' + return splitText(text, ","); +} +/** +* divide text by bracket "(", ")". +* @memberof Utils +* @param {string} text - text to divide +* @return {object} divided texts +* @example +import {splitBracket} from "@daybrush/utils"; + +console.log(splitBracket("a(1, 2)")); +// {prefix: "a", value: "1, 2", suffix: ""} +console.log(splitBracket("a(1, 2)b")); +// {prefix: "a", value: "1, 2", suffix: "b"} +*/ +function splitBracket(text) { + var matches = /([^(]*)\(([\s\S]*)\)([\s\S]*)/g.exec(text); + if (!matches || matches.length < 4) { + return {}; + } else { + return { + prefix: matches[1], + value: matches[2], + suffix: matches[3] + }; + } +} +/** +* divide text by number and unit. +* @memberof Utils +* @param {string} text - text to divide +* @return {} divided texts +* @example +import {splitUnit} from "@daybrush/utils"; + +console.log(splitUnit("10px")); +// {prefix: "", value: 10, unit: "px"} +console.log(splitUnit("-10px")); +// {prefix: "", value: -10, unit: "px"} +console.log(splitUnit("a10%")); +// {prefix: "a", value: 10, unit: "%"} +*/ +function splitUnit(text) { + var matches = /^([^\d|e|\-|\+]*)((?:\d|\.|-|e-|e\+)+)(\S*)$/g.exec(text); + if (!matches) { + return { + prefix: "", + unit: "", + value: NaN + }; + } + var prefix = matches[1]; + var value = matches[2]; + var unit = matches[3]; + return { + prefix: prefix, + unit: unit, + value: parseFloat(value) + }; +} +/** +* transform strings to camel-case +* @memberof Utils +* @param {String} text - string +* @return {String} camel-case string +* @example +import {camelize} from "@daybrush/utils"; + +console.log(camelize("transform-origin")); // transformOrigin +console.log(camelize("abcd_efg")); // abcdEfg +console.log(camelize("abcd efg")); // abcdEfg +*/ +function camelize(str) { + return str.replace(/[\s-_]([a-z])/g, function (all, letter) { + return letter.toUpperCase(); + }); +} +/** +* transform a camelized string into a lowercased string. +* @memberof Utils +* @param {string} text - a camel-cased string +* @param {string} [separator="-"] - a separator +* @return {string} a lowercased string +* @example +import {decamelize} from "@daybrush/utils"; + +console.log(decamelize("transformOrigin")); // transform-origin +console.log(decamelize("abcdEfg", "_")); // abcd_efg +*/ +function decamelize(str, separator) { + if (separator === void 0) { + separator = "-"; + } + return str.replace(/([a-z])([A-Z])/g, function (all, letter, letter2) { + return "" + letter + separator + letter2.toLowerCase(); + }); +} +/** +* transforms something in an array into an array. +* @memberof Utils +* @param - Array form +* @return an array +* @example +import {toArray} from "@daybrush/utils"; + +const arr1 = toArray(document.querySelectorAll(".a")); // Element[] +const arr2 = toArray(document.querySelectorAll(".a")); // HTMLElement[] +*/ +function toArray(value) { + return [].slice.call(value); +} +/** +* Date.now() method +* @memberof CrossBrowser +* @return {number} milliseconds +* @example +import {now} from "@daybrush/utils"; + +console.log(now()); // 12121324241(milliseconds) +*/ +function now() { + return Date.now ? Date.now() : new Date().getTime(); +} +/** +* Returns the index of the first element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `findIndex` was called upon. +* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found. +* @param - Returns defaultIndex if not found by the function. +* @example +import { findIndex } from "@daybrush/utils"; + +findIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1 +*/ +function findIndex(arr, callback, defaultIndex) { + if (defaultIndex === void 0) { + defaultIndex = -1; + } + var length = arr.length; + for (var i = 0; i < length; ++i) { + if (callback(arr[i], i, arr)) { + return i; + } + } + return defaultIndex; +} +/** +* Returns the reverse direction index of the first element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `findLastIndex` was called upon. +* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found. +* @param - Returns defaultIndex if not found by the function. +* @example +import { findLastIndex } from "@daybrush/utils"; + +findLastIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1 +*/ +function findLastIndex(arr, callback, defaultIndex) { + if (defaultIndex === void 0) { + defaultIndex = -1; + } + var length = arr.length; + for (var i = length - 1; i >= 0; --i) { + if (callback(arr[i], i, arr)) { + return i; + } + } + return defaultIndex; +} +/** +* Returns the value of the reverse direction element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `findLast` was called upon. +* @param - A function to execute on each value in the array, +* @param - Returns defalutValue if not found by the function. +* @example +import { find } from "@daybrush/utils"; + +find([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2} +*/ +function findLast(arr, callback, defalutValue) { + var index = findLastIndex(arr, callback); + return index > -1 ? arr[index] : defalutValue; +} +/** +* Returns the value of the first element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `find` was called upon. +* @param - A function to execute on each value in the array, +* @param - Returns defalutValue if not found by the function. +* @example +import { find } from "@daybrush/utils"; + +find([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2} +*/ +function find(arr, callback, defalutValue) { + var index = findIndex(arr, callback); + return index > -1 ? arr[index] : defalutValue; +} +/** +* window.requestAnimationFrame() method with cross browser. +* @function +* @memberof CrossBrowser +* @param {FrameRequestCallback} callback - The function to call when it's time to update your animation for the next repaint. +* @return {number} id +* @example +import {requestAnimationFrame} from "@daybrush/utils"; + +requestAnimationFrame((timestamp) => { + console.log(timestamp); +}); +*/ +var requestAnimationFrame = /*#__PURE__*/function () { + var firstTime = now(); + var raf = IS_WINDOW && (window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame); + return raf ? raf.bind(window) : function (callback) { + var currTime = now(); + var id = setTimeout(function () { + callback(currTime - firstTime); + }, 1000 / 60); + return id; + }; +}(); +/** +* window.cancelAnimationFrame() method with cross browser. +* @function +* @memberof CrossBrowser +* @param {number} handle - the id obtained through requestAnimationFrame method +* @return {void} +* @example +import { requestAnimationFrame, cancelAnimationFrame } from "@daybrush/utils"; + +const id = requestAnimationFrame((timestamp) => { + console.log(timestamp); +}); + +cancelAnimationFrame(id); +*/ +var cancelAnimationFrame = /*#__PURE__*/function () { + var caf = IS_WINDOW && (window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.msCancelAnimationFrame); + return caf ? caf.bind(window) : function (handle) { + clearTimeout(handle); + }; +}(); +/** +* @function +* @memberof Utils +*/ +function getKeys(obj) { + return Object.keys(obj); +} +/** +* @function +* @memberof Utils +*/ +function getValues(obj) { + var keys = getKeys(obj); + return keys.map(function (key) { + return obj[key]; + }); +} +/** +* @function +* @memberof Utils +*/ +function getEntries(obj) { + var keys = getKeys(obj); + return keys.map(function (key) { + return [key, obj[key]]; + }); +} +/** +* @function +* @memberof Utils +*/ +function sortOrders(keys, orders) { + if (orders === void 0) { + orders = []; + } + keys.sort(function (a, b) { + var index1 = orders.indexOf(a); + var index2 = orders.indexOf(b); + if (index2 === -1 && index1 === -1) { + return 0; + } + if (index1 === -1) { + return 1; + } + if (index2 === -1) { + return -1; + } + return index1 - index2; + }); +} +/** +* convert unit size to px size +* @function +* @memberof Utils +*/ +function convertUnitSize(pos, size) { + var _a = splitUnit(pos), + value = _a.value, + unit = _a.unit; + if (isObject(size)) { + var sizeFunction = size[unit]; + if (sizeFunction) { + if (isFunction(sizeFunction)) { + return sizeFunction(value); + } else if (DEFAULT_UNIT_PRESETS[unit]) { + return DEFAULT_UNIT_PRESETS[unit](value, sizeFunction); + } + } + } else if (unit === "%") { + return value * size / 100; + } + if (DEFAULT_UNIT_PRESETS[unit]) { + return DEFAULT_UNIT_PRESETS[unit](value); + } + return value; +} +/** +* calculate between min, max +* @function +* @memberof Utils +*/ +function between(value, min, max) { + return Math.max(min, Math.min(value, max)); +} +function checkBoundSize(targetSize, compareSize, isMax, ratio) { + if (ratio === void 0) { + ratio = targetSize[0] / targetSize[1]; + } + return [[throttle(compareSize[0], TINY_NUM), throttle(compareSize[0] / ratio, TINY_NUM)], [throttle(compareSize[1] * ratio, TINY_NUM), throttle(compareSize[1], TINY_NUM)]].filter(function (size) { + return size.every(function (value, i) { + var defaultSize = compareSize[i]; + var throttledSize = throttle(defaultSize, TINY_NUM); + return isMax ? value <= defaultSize || value <= throttledSize : value >= defaultSize || value >= throttledSize; + }); + })[0] || targetSize; +} +/** +* calculate bound size +* @function +* @memberof Utils +*/ +function calculateBoundSize(size, minSize, maxSize, keepRatio) { + if (!keepRatio) { + return size.map(function (value, i) { + return between(value, minSize[i], maxSize[i]); + }); + } + var width = size[0], + height = size[1]; + var ratio = keepRatio === true ? width / height : keepRatio; + // width : height = minWidth : minHeight; + var _a = checkBoundSize(size, minSize, false, ratio), + minWidth = _a[0], + minHeight = _a[1]; + var _b = checkBoundSize(size, maxSize, true, ratio), + maxWidth = _b[0], + maxHeight = _b[1]; + if (width < minWidth || height < minHeight) { + width = minWidth; + height = minHeight; + } else if (width > maxWidth || height > maxHeight) { + width = maxWidth; + height = maxHeight; + } + return [width, height]; +} +/** +* Add all the numbers. +* @function +* @memberof Utils +*/ +function sum(nums) { + var length = nums.length; + var total = 0; + for (var i = length - 1; i >= 0; --i) { + total += nums[i]; + } + return total; +} +/** +* Average all numbers. +* @function +* @memberof Utils +*/ +function average(nums) { + var length = nums.length; + var total = 0; + for (var i = length - 1; i >= 0; --i) { + total += nums[i]; + } + return length ? total / length : 0; +} +/** +* Get the angle of two points. (0 <= rad < 359) +* @function +* @memberof Utils +*/ +function getRad(pos1, pos2) { + var distX = pos2[0] - pos1[0]; + var distY = pos2[1] - pos1[1]; + var rad = Math.atan2(distY, distX); + return rad >= 0 ? rad : rad + Math.PI * 2; +} +/** +* Get the average point of all points. +* @function +* @memberof Utils +*/ +function getCenterPoint(points) { + return [0, 1].map(function (i) { + return average(points.map(function (pos) { + return pos[i]; + })); + }); +} +/** +* Gets the direction of the shape. +* @function +* @memberof Utils +*/ +function getShapeDirection(points) { + var center = getCenterPoint(points); + var pos1Rad = getRad(center, points[0]); + var pos2Rad = getRad(center, points[1]); + return pos1Rad < pos2Rad && pos2Rad - pos1Rad < Math.PI || pos1Rad > pos2Rad && pos2Rad - pos1Rad < -Math.PI ? 1 : -1; +} +/** +* Get the distance between two points. +* @function +* @memberof Utils +*/ +function getDist(a, b) { + return Math.sqrt(Math.pow((b ? b[0] : 0) - a[0], 2) + Math.pow((b ? b[1] : 0) - a[1], 2)); +} +/** +* throttle number depending on the unit. +* @function +* @memberof Utils +*/ +function throttle(num, unit) { + if (!unit) { + return num; + } + var reverseUnit = 1 / unit; + return Math.round(num / unit) / reverseUnit; +} +/** +* throttle number array depending on the unit. +* @function +* @memberof Utils +*/ +function throttleArray(nums, unit) { + nums.forEach(function (_, i) { + nums[i] = throttle(nums[i], unit); + }); + return nums; +} +/** +* @function +* @memberof Utils +*/ +function counter(num) { + var nums = []; + for (var i = 0; i < num; ++i) { + nums.push(i); + } + return nums; +} +/** +* @function +* @memberof Utils +*/ +function replaceOnce(text, fromText, toText) { + var isOnce = false; + return text.replace(fromText, function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (isOnce) { + return args[0]; + } + isOnce = true; + return isString(toText) ? toText : toText.apply(void 0, args); + }); +} +/** +* @function +* @memberof Utils +*/ +function flat(arr) { + return arr.reduce(function (prev, cur) { + return prev.concat(cur); + }, []); +} +/** +* @function +* @memberof Utils +*/ +function deepFlat(arr) { + return arr.reduce(function (prev, cur) { + if (isArray(cur)) { + prev.push.apply(prev, deepFlat(cur)); + } else { + prev.push(cur); + } + return prev; + }, []); +} + +/** +* @namespace +* @name Color +*/ +/** +* Remove the # from the hex color. +* @memberof Color +* @param {} hex - hex color +* @return {} hex color +* @example +import {cutHex} from "@daybrush/utils"; + +console.log(cutHex("#000000")) // "000000" +*/ +function cutHex(hex) { + return hex.replace("#", ""); +} +/** +* convert hex color to rgb color. +* @memberof Color +* @param {} hex - hex color +* @return {} rgb color +* @example +import {hexToRGBA} from "@daybrush/utils"; + +console.log(hexToRGBA("#00000005")); +// [0, 0, 0, 1] +console.log(hexToRGBA("#201045")); +// [32, 16, 69, 1] +*/ +function hexToRGBA(hex) { + var h = cutHex(hex); + var r = parseInt(h.substring(0, 2), 16); + var g = parseInt(h.substring(2, 4), 16); + var b = parseInt(h.substring(4, 6), 16); + var a = parseInt(h.substring(6, 8), 16) / 255; + if (isNaN(a)) { + a = 1; + } + return [r, g, b, a]; +} +/** +* convert 3(or 4)-digit hex color to 6(or 8)-digit hex color. +* @memberof Color +* @param {} hex - 3(or 4)-digit hex color +* @return {} 6(or 8)-digit hex color +* @example +import {toFullHex} from "@daybrush/utils"; + +console.log(toFullHex("#123")); // "#112233" +console.log(toFullHex("#123a")); // "#112233aa" +*/ +function toFullHex(h) { + var r = h.charAt(1); + var g = h.charAt(2); + var b = h.charAt(3); + var a = h.charAt(4); + var arr = ["#", r, r, g, g, b, b, a, a]; + return arr.join(""); +} +/** +* convert hsl color to rgba color. +* @memberof Color +* @param {} hsl - hsl color(hue: 0 ~ 360, saturation: 0 ~ 1, lightness: 0 ~ 1, alpha: 0 ~ 1) +* @return {} rgba color +* @example +import {hslToRGBA} from "@daybrush/utils"; + +console.log(hslToRGBA([150, 0.5, 0.4])); +// [51, 153, 102, 1] +*/ +function hslToRGBA(hsl) { + var _a; + var h = hsl[0]; + var s = hsl[1]; + var l = hsl[2]; + if (h < 0) { + h += Math.floor((Math.abs(h) + 360) / 360) * 360; + } + h %= 360; + var c = (1 - Math.abs(2 * l - 1)) * s; + var x = c * (1 - Math.abs(h / 60 % 2 - 1)); + var m = l - c / 2; + var rgb; + if (h < 60) { + rgb = [c, x, 0]; + } else if (h < 120) { + rgb = [x, c, 0]; + } else if (h < 180) { + rgb = [0, c, x]; + } else if (h < 240) { + rgb = [0, x, c]; + } else if (h < 300) { + rgb = [x, 0, c]; + } else if (h < 360) { + rgb = [c, 0, x]; + } else { + rgb = [0, 0, 0]; + } + return [Math.round((rgb[0] + m) * 255), Math.round((rgb[1] + m) * 255), Math.round((rgb[2] + m) * 255), (_a = hsl[3]) !== null && _a !== void 0 ? _a : 1]; +} +/** +* convert string to rgba color. +* @memberof Color +* @param {} - 3-hex(#000), 4-hex(#0000) 6-hex(#000000), 8-hex(#00000000) or RGB(A), or HSL(A) +* @return {} rgba color +* @example +import {stringToRGBA} from "@daybrush/utils"; + +console.log(stringToRGBA("#000000")); // [0, 0, 0, 1] +console.log(stringToRGBA("rgb(100, 100, 100)")); // [100, 100, 100, 1] +console.log(stringToRGBA("hsl(150, 0.5, 0.4)")); // [51, 153, 102, 1] +*/ +function stringToRGBA(color) { + if (color.charAt(0) === "#") { + if (color.length === 4 || color.length === 5) { + return hexToRGBA(toFullHex(color)); + } else { + return hexToRGBA(color); + } + } else if (color.indexOf("(") !== -1) { + // in bracket. + var _a = splitBracket(color), + prefix = _a.prefix, + value = _a.value; + if (!prefix || !value) { + return undefined; + } + var arr = splitComma(value); + var colorArr = [0, 0, 0, 1]; + var length = arr.length; + switch (prefix) { + case RGB: + case RGBA: + for (var i = 0; i < length; ++i) { + colorArr[i] = parseFloat(arr[i]); + } + return colorArr; + case HSL: + case HSLA: + for (var i = 0; i < length; ++i) { + if (arr[i].indexOf("%") !== -1) { + colorArr[i] = parseFloat(arr[i]) / 100; + } else { + colorArr[i] = parseFloat(arr[i]); + } + } + // hsl, hsla to rgba + return hslToRGBA(colorArr); + } + } + return undefined; +} + +/** + * Returns all element descendants of node that + * match selectors. + */ +/** + * Checks if the specified class value exists in the element's class attribute. + * @memberof DOM + * @param - A DOMString containing one or more selectors to match + * @param - If multi is true, a DOMString containing one or more selectors to match against. + * @example +import {$} from "@daybrush/utils"; + +console.log($("div")); // div element +console.log($("div", true)); // [div, div] elements +*/ +function $(selectors, multi) { + return multi ? doc.querySelectorAll(selectors) : doc.querySelector(selectors); +} +/** +* Checks if the specified class value exists in the element's class attribute. +* @memberof DOM +* @param element - target +* @param className - the class name to search +* @return {boolean} return false if the class is not found. +* @example +import {hasClass} from "@daybrush/utils"; + +console.log(hasClass(element, "start")); // true or false +*/ +function hasClass(element, className) { + if (element.classList) { + return element.classList.contains(className); + } + return !!element.className.match(new RegExp("(\\s|^)" + className + "(\\s|$)")); +} +/** +* Add the specified class value. If these classe already exist in the element's class attribute they are ignored. +* @memberof DOM +* @param element - target +* @param className - the class name to add +* @example +import {addClass} from "@daybrush/utils"; + +addClass(element, "start"); +*/ +function addClass(element, className) { + if (element.classList) { + element.classList.add(className); + } else { + element.className += " " + className; + } +} +/** +* Removes the specified class value. +* @memberof DOM +* @param element - target +* @param className - the class name to remove +* @example +import {removeClass} from "@daybrush/utils"; + +removeClass(element, "start"); +*/ +function removeClass(element, className) { + if (element.classList) { + element.classList.remove(className); + } else { + var reg = new RegExp("(\\s|^)" + className + "(\\s|$)"); + element.className = element.className.replace(reg, " "); + } +} +/** +* Gets the CSS properties from the element. +* @memberof DOM +* @param elements - elements +* @param properites - the CSS properties +* @return returns CSS properties and values. +* @example +import {fromCSS} from "@daybrush/utils"; + +console.log(fromCSS(element, ["left", "opacity", "top"])); // {"left": "10px", "opacity": 1, "top": "10px"} +*/ +function fromCSS(elements, properties) { + if (!elements || !properties || !properties.length) { + return {}; + } + var element; + if (elements instanceof Element) { + element = elements; + } else if (elements.length) { + element = elements[0]; + } else { + return {}; + } + var cssObject = {}; + var styles = window.getComputedStyle(element); + var length = properties.length; + for (var i = 0; i < length; ++i) { + cssObject[properties[i]] = styles[properties[i]]; + } + return cssObject; +} +/** +* Sets up a function that will be called whenever the specified event is delivered to the target +* @memberof DOM +* @param - event target +* @param - A case-sensitive string representing the event type to listen for. +* @param - The object which receives a notification (an object that implements the Event interface) when an event of the specified type occurs +* @param - An options object that specifies characteristics about the event listener. +* @example +import {addEvent} from "@daybrush/utils"; + +addEvent(el, "click", e => { + console.log(e); +}); +*/ +function addEvent(el, type, listener, options) { + el.addEventListener(type, listener, options); +} +/** +* removes from the EventTarget an event listener previously registered with EventTarget.addEventListener() +* @memberof DOM +* @param - event target +* @param - A case-sensitive string representing the event type to listen for. +* @param - The EventListener function of the event handler to remove from the event target. +* @param - An options object that specifies characteristics about the event listener. +* @example +import {addEvent, removeEvent} from "@daybrush/utils"; +const listener = e => { + console.log(e); +}; +addEvent(el, "click", listener); +removeEvent(el, "click", listener); +*/ +function removeEvent(el, type, listener, options) { + el.removeEventListener(type, listener, options); +} + +exports.RGB = RGB; +exports.RGBA = RGBA; +exports.HSL = HSL; +exports.HSLA = HSLA; +exports.COLOR_MODELS = COLOR_MODELS; +exports.FUNCTION = FUNCTION; +exports.PROPERTY = PROPERTY; +exports.ARRAY = ARRAY; +exports.OBJECT = OBJECT; +exports.STRING = STRING; +exports.NUMBER = NUMBER; +exports.UNDEFINED = UNDEFINED; +exports.IS_WINDOW = IS_WINDOW; +exports.document = doc; +exports.getCrossBrowserProperty = getCrossBrowserProperty; +exports.TRANSFORM = TRANSFORM; +exports.FILTER = FILTER; +exports.ANIMATION = ANIMATION; +exports.KEYFRAMES = KEYFRAMES; +exports.OPEN_CLOSED_CHARACTERS = OPEN_CLOSED_CHARACTERS; +exports.TINY_NUM = TINY_NUM; +exports.REVERSE_TINY_NUM = REVERSE_TINY_NUM; +exports.DEFAULT_UNIT_PRESETS = DEFAULT_UNIT_PRESETS; +exports.cutHex = cutHex; +exports.hexToRGBA = hexToRGBA; +exports.toFullHex = toFullHex; +exports.hslToRGBA = hslToRGBA; +exports.stringToRGBA = stringToRGBA; +exports.dot = dot; +exports.isUndefined = isUndefined; +exports.isObject = isObject; +exports.isArray = isArray; +exports.isString = isString; +exports.isNumber = isNumber; +exports.isFunction = isFunction; +exports.splitText = splitText; +exports.splitSpace = splitSpace; +exports.splitComma = splitComma; +exports.splitBracket = splitBracket; +exports.splitUnit = splitUnit; +exports.camelize = camelize; +exports.decamelize = decamelize; +exports.toArray = toArray; +exports.now = now; +exports.findIndex = findIndex; +exports.findLastIndex = findLastIndex; +exports.findLast = findLast; +exports.find = find; +exports.requestAnimationFrame = requestAnimationFrame; +exports.cancelAnimationFrame = cancelAnimationFrame; +exports.getKeys = getKeys; +exports.getValues = getValues; +exports.getEntries = getEntries; +exports.sortOrders = sortOrders; +exports.convertUnitSize = convertUnitSize; +exports.between = between; +exports.checkBoundSize = checkBoundSize; +exports.calculateBoundSize = calculateBoundSize; +exports.sum = sum; +exports.average = average; +exports.getRad = getRad; +exports.getCenterPoint = getCenterPoint; +exports.getShapeDirection = getShapeDirection; +exports.getDist = getDist; +exports.throttle = throttle; +exports.throttleArray = throttleArray; +exports.counter = counter; +exports.replaceOnce = replaceOnce; +exports.flat = flat; +exports.deepFlat = deepFlat; +exports.$ = $; +exports.hasClass = hasClass; +exports.addClass = addClass; +exports.removeClass = removeClass; +exports.fromCSS = fromCSS; +exports.addEvent = addEvent; +exports.removeEvent = removeEvent; +//# sourceMappingURL=utils.cjs.js.map diff --git a/dist/utils.cjs.js.map b/dist/utils.cjs.js.map new file mode 100644 index 0000000..56e57d2 --- /dev/null +++ b/dist/utils.cjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.cjs.js","sources":["../src/consts.ts","../src/utils.ts","../src/color.ts","../src/dom.ts"],"sourcesContent":["/**\n* @namespace\n* @name Consts\n*/\n\nimport { IObject, OpenCloseCharacter } from \"./types\";\n\n/**\n* get string \"rgb\"\n* @memberof Color\n* @example\nimport {RGB} from \"@daybrush/utils\";\n\nconsole.log(RGB); // \"rgb\"\n*/\nexport const RGB = \"rgb\";\n/**\n* get string \"rgba\"\n* @memberof Color\n* @example\nimport {RGBA} from \"@daybrush/utils\";\n\nconsole.log(RGBA); // \"rgba\"\n*/\nexport const RGBA = \"rgba\";\n/**\n* get string \"hsl\"\n* @memberof Color\n* @example\nimport {HSL} from \"@daybrush/utils\";\n\nconsole.log(HSL); // \"hsl\"\n*/\nexport const HSL = \"hsl\";\n/**\n* get string \"hsla\"\n* @memberof Color\n* @example\nimport {HSLA} from \"@daybrush/utils\";\n\nconsole.log(HSLA); // \"hsla\"\n*/\nexport const HSLA = \"hsla\";\n/**\n* gets an array of color models.\n* @memberof Color\n* @example\nimport {COLOR_MODELS} from \"@daybrush/utils\";\n\nconsole.log(COLOR_MODELS); // [\"rgb\", \"rgba\", \"hsl\", \"hsla\"];\n*/\nexport const COLOR_MODELS = [RGB, RGBA, HSL, HSLA];\n\n/**\n* get string \"function\"\n* @memberof Consts\n* @example\nimport {FUNCTION} from \"@daybrush/utils\";\n\nconsole.log(FUNCTION); // \"function\"\n*/\nexport const FUNCTION = \"function\";\n/**\n* get string \"property\"\n* @memberof Consts\n* @example\nimport {PROPERTY} from \"@daybrush/utils\";\n\nconsole.log(PROPERTY); // \"property\"\n*/\nexport const PROPERTY = \"property\";\n/**\n* get string \"array\"\n* @memberof Consts\n* @example\nimport {ARRAY} from \"@daybrush/utils\";\n\nconsole.log(ARRAY); // \"array\"\n*/\nexport const ARRAY = \"array\";\n/**\n* get string \"object\"\n* @memberof Consts\n* @example\nimport {OBJECT} from \"@daybrush/utils\";\n\nconsole.log(OBJECT); // \"object\"\n*/\nexport const OBJECT = \"object\";\n/**\n* get string \"string\"\n* @memberof Consts\n* @example\nimport {STRING} from \"@daybrush/utils\";\n\nconsole.log(STRING); // \"string\"\n*/\nexport const STRING = \"string\";\n/**\n* get string \"number\"\n* @memberof Consts\n* @example\nimport {NUMBER} from \"@daybrush/utils\";\n\nconsole.log(NUMBER); // \"number\"\n*/\nexport const NUMBER = \"number\";\n/**\n* get string \"undefined\"\n* @memberof Consts\n* @example\nimport {UNDEFINED} from \"@daybrush/utils\";\n\nconsole.log(UNDEFINED); // \"undefined\"\n*/\nexport const UNDEFINED = \"undefined\";\n\n/**\n* Check whether the environment is window or node.js.\n* @memberof Consts\n* @example\nimport {IS_WINDOW} from \"@daybrush/utils\";\n\nconsole.log(IS_WINDOW); // false in node.js\nconsole.log(IS_WINDOW); // true in browser\n*/\nexport const IS_WINDOW = typeof window !== UNDEFINED;\n\n/**\n* Check whether the environment is window or node.js.\n* @memberof Consts\n* @name document\n* @example\nimport {IS_WINDOW} from \"@daybrush/utils\";\n\nconsole.log(IS_WINDOW); // false in node.js\nconsole.log(IS_WINDOW); // true in browser\n*/\nconst doc = (typeof document !== UNDEFINED && document) as Document; // FIXME: this type maybe false\n\nexport {doc as document};\n\nconst prefixes: string[] = [\"webkit\", \"ms\", \"moz\", \"o\"];\n\n/**\n * @namespace CrossBrowser\n */\n\n/**\n* Get a CSS property with a vendor prefix that supports cross browser.\n* @function\n* @param {string} property - A CSS property\n* @return {string} CSS property with cross-browser vendor prefix\n* @memberof CrossBrowser\n* @example\nimport {getCrossBrowserProperty} from \"@daybrush/utils\";\n\nconsole.log(getCrossBrowserProperty(\"transform\")); // \"transform\", \"-ms-transform\", \"-webkit-transform\"\nconsole.log(getCrossBrowserProperty(\"filter\")); // \"filter\", \"-webkit-filter\"\n*/\nexport const getCrossBrowserProperty = /*#__PURE__*/(property: string) => {\n if (!doc) {\n return \"\";\n }\n const styles = (doc.body || doc.documentElement).style as any;\n const length = prefixes.length;\n\n if (typeof styles[property] !== UNDEFINED) {\n return property;\n }\n for (let i = 0; i < length; ++i) {\n const name = `-${prefixes[i]}-${property}`;\n\n if (typeof styles[name] !== UNDEFINED) {\n return name;\n }\n }\n return \"\";\n};\n\n/**\n* get string \"transfrom\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {TRANSFORM} from \"@daybrush/utils\";\n\nconsole.log(TRANSFORM); // \"transform\", \"-ms-transform\", \"-webkit-transform\"\n*/\nexport const TRANSFORM = /*#__PURE__*/getCrossBrowserProperty(\"transform\");\n/**\n* get string \"filter\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {FILTER} from \"@daybrush/utils\";\n\nconsole.log(FILTER); // \"filter\", \"-ms-filter\", \"-webkit-filter\"\n*/\nexport const FILTER = /*#__PURE__*/getCrossBrowserProperty(\"filter\");\n/**\n* get string \"animation\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {ANIMATION} from \"@daybrush/utils\";\n\nconsole.log(ANIMATION); // \"animation\", \"-ms-animation\", \"-webkit-animation\"\n*/\nexport const ANIMATION = /*#__PURE__*/getCrossBrowserProperty(\"animation\");\n/**\n* get string \"keyframes\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {KEYFRAMES} from \"@daybrush/utils\";\n\nconsole.log(KEYFRAMES); // \"keyframes\", \"-ms-keyframes\", \"-webkit-keyframes\"\n*/\nexport const KEYFRAMES = /*#__PURE__*/ANIMATION.replace(\"animation\", \"keyframes\");\n\nexport const OPEN_CLOSED_CHARACTERS: OpenCloseCharacter[] = [\n { open: \"(\", close: \")\" },\n { open: `\"`, close: `\"`},\n { open: `'`, close: `'`},\n { open: `\\\\\"`, close: `\\\\\"`},\n { open: `\\\\'`, close: `\\\\'`},\n];\nexport const TINY_NUM = 0.0000001;\nexport const REVERSE_TINY_NUM = 1 / TINY_NUM;\nexport const DEFAULT_UNIT_PRESETS: IObject<(pos: number, size?: number) => number> = {\n \"cm\": pos => pos * 96 / 2.54,\n \"mm\": pos => pos * 96 / 254,\n \"in\": pos => pos * 96,\n \"pt\": pos => pos * 96 / 72,\n \"pc\": pos => pos * 96 / 6,\n \"%\": (pos, size) => pos * size! / 100,\n \"vw\": (pos, size = window.innerWidth) => pos / 100 * size,\n \"vh\": (pos, size = window.innerHeight) => pos / 100 * size,\n \"vmax\": (pos, size = Math.max(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n \"vmin\": (pos, size = Math.min(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n};\n","import {\n UNDEFINED, STRING,\n OBJECT, FUNCTION,\n IS_WINDOW, OPEN_CLOSED_CHARACTERS, NUMBER,\n DEFAULT_UNIT_PRESETS,\n TINY_NUM\n} from \"./consts\";\nimport {\n FlattedElement,\n IArrayFormat, IObject, OpenCloseCharacter,\n SplitOptions,\n} from \"./types\";\n/**\n* @namespace\n* @name Utils\n*/\n\n/**\n * Returns the inner product of two numbers(`a1`, `a2`) by two criteria(`b1`, `b2`).\n * @memberof Utils\n * @param - The first number\n * @param - The second number\n * @param - The first number to base on the inner product\n * @param - The second number to base on the inner product\n * @return - Returns the inner product\nimport { dot } from \"@daybrush/utils\";\n\nconsole.log(dot(0, 15, 2, 3)); // 6\nconsole.log(dot(5, 15, 2, 3)); // 9\nconsole.log(dot(5, 15, 1, 1)); // 10\n */\nexport function dot(a1: number, a2: number, b1: number, b2: number) {\n return (a1 * b2 + a2 * b1) / (b1 + b2);\n}\n/**\n* Check the type that the value is undefined.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {boolean} true if the type is correct, false otherwise\n* @example\nimport {isUndefined} from \"@daybrush/utils\";\n\nconsole.log(isUndefined(undefined)); // true\nconsole.log(isUndefined(\"\")); // false\nconsole.log(isUndefined(1)); // false\nconsole.log(isUndefined(null)); // false\n*/\nexport function isUndefined(value: any): value is undefined {\n return (typeof value === UNDEFINED);\n}\n/**\n* Check the type that the value is object.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isObject} from \"@daybrush/utils\";\n\nconsole.log(isObject({})); // true\nconsole.log(isObject(undefined)); // false\nconsole.log(isObject(\"\")); // false\nconsole.log(isObject(null)); // false\n*/\nexport function isObject(value: any): value is IObject {\n return value && (typeof value === OBJECT);\n}\n/**\n* Check the type that the value is isArray.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isArray} from \"@daybrush/utils\";\n\nconsole.log(isArray([])); // true\nconsole.log(isArray({})); // false\nconsole.log(isArray(undefined)); // false\nconsole.log(isArray(null)); // false\n*/\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value);\n}\n/**\n* Check the type that the value is string.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isString} from \"@daybrush/utils\";\n\nconsole.log(isString(\"1234\")); // true\nconsole.log(isString(undefined)); // false\nconsole.log(isString(1)); // false\nconsole.log(isString(null)); // false\n*/\nexport function isString(value: any): value is string {\n return typeof value === STRING;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === NUMBER;\n}\n\n/**\n* Check the type that the value is function.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isFunction} from \"@daybrush/utils\";\n\nconsole.log(isFunction(function a() {})); // true\nconsole.log(isFunction(() => {})); // true\nconsole.log(isFunction(\"1234\")); // false\nconsole.log(isFunction(1)); // false\nconsole.log(isFunction(null)); // false\n*/\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === FUNCTION;\n}\nfunction isEqualSeparator(\n character: string,\n separator: string,\n) {\n const isCharacterSpace = character === \"\" || character == \" \";\n const isSeparatorSpace = separator === \"\" || separator == \" \";\n\n return (isSeparatorSpace && isCharacterSpace) || character === separator;\n}\nfunction findOpen(\n openCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n const isIgnore = findIgnore(openCharacter, texts, index);\n\n if (!isIgnore) {\n return findClose(openCharacter, texts, index + 1, length, openCloseCharacters);\n }\n return index;\n}\nfunction findIgnore(\n character: OpenCloseCharacter,\n texts: string[],\n index: number,\n) {\n if (!character.ignore) {\n return null;\n }\n const otherText = texts.slice(Math.max(index - 3, 0), index + 3).join(\"\");\n\n return new RegExp(character.ignore).exec(otherText);\n\n}\nfunction findClose(\n closeCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n for (let i = index; i < length; ++i) {\n const character = texts[i].trim();\n\n if (character === closeCharacter.close && !findIgnore(closeCharacter, texts, i)) {\n return i;\n }\n let nextIndex = i;\n // re open\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n }\n if (nextIndex === -1) {\n break;\n }\n i = nextIndex;\n }\n return -1;\n}\n\nexport function splitText(\n text: string,\n splitOptions: string | SplitOptions,\n): string[] {\n const {\n separator = \",\",\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose = isSeparateOnlyOpenClose,\n openCloseCharacters = OPEN_CLOSED_CHARACTERS,\n } = isString(splitOptions) ? {\n separator: splitOptions,\n } as SplitOptions : splitOptions;\n const openClosedText = openCloseCharacters.map(({ open, close }) => {\n if (open === close) {\n return open;\n }\n return `${open}|${close}`;\n }).join(\"|\");\n const regexText = `(\\\\s*${separator}\\\\s*|${openClosedText}|\\\\s+)`;\n const regex = new RegExp(regexText, \"g\");\n const texts = text.split(regex).filter(Boolean);\n const length = texts.length;\n const values: string[] = [];\n let tempValues: string[] = [];\n\n function resetTemp() {\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n tempValues = [];\n\n return true;\n }\n return false;\n }\n for (let i = 0; i < length; ++i) {\n const character = texts[i].trim();\n let nextIndex = i;\n\n\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n const closeCharacter = find(openCloseCharacters, ({ close }) => close === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n\n if (nextIndex !== -1 && isSeparateOpenClose) {\n if (resetTemp() && isSeparateFirst) {\n break;\n }\n values.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n } else if (closeCharacter && !findIgnore(closeCharacter, texts, i)) {\n const nextOpenCloseCharacters = [...openCloseCharacters];\n\n nextOpenCloseCharacters.splice(openCloseCharacters.indexOf(closeCharacter), 1);\n\n return splitText(\n text,\n {\n separator,\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose,\n openCloseCharacters: nextOpenCloseCharacters,\n });\n } else if (isEqualSeparator(character, separator) && !isSeparateOnlyOpenClose) {\n resetTemp();\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n\n if (nextIndex === -1) {\n nextIndex = length - 1;\n }\n tempValues.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n }\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n }\n return values;\n}\n\n/**\n* divide text by space.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {spliceSpace} from \"@daybrush/utils\";\n\nconsole.log(splitSpace(\"a b c d e f g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitSpace(\"'a,b' c 'd,e' f g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitSpace(text: string) {\n // divide comma(space)\n return splitText(text, \"\");\n}\n\n/**\n* divide text by comma.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {splitComma} from \"@daybrush/utils\";\n\nconsole.log(splitComma(\"a,b,c,d,e,f,g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitComma(\"'a,b',c,'d,e',f,g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitComma(text: string): string[] {\n // divide comma(,)\n // \"[^\"]*\"|'[^']*'\n return splitText(text, \",\");\n}\n/**\n* divide text by bracket \"(\", \")\".\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {object} divided texts\n* @example\nimport {splitBracket} from \"@daybrush/utils\";\n\nconsole.log(splitBracket(\"a(1, 2)\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"\"}\nconsole.log(splitBracket(\"a(1, 2)b\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"b\"}\n*/\nexport function splitBracket(text: string) {\n const matches = (/([^(]*)\\(([\\s\\S]*)\\)([\\s\\S]*)/g).exec(text);\n\n if (!matches || matches.length < 4) {\n return {};\n } else {\n return { prefix: matches[1], value: matches[2], suffix: matches[3] };\n }\n}\n/**\n* divide text by number and unit.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {} divided texts\n* @example\nimport {splitUnit} from \"@daybrush/utils\";\n\nconsole.log(splitUnit(\"10px\"));\n// {prefix: \"\", value: 10, unit: \"px\"}\nconsole.log(splitUnit(\"-10px\"));\n// {prefix: \"\", value: -10, unit: \"px\"}\nconsole.log(splitUnit(\"a10%\"));\n// {prefix: \"a\", value: 10, unit: \"%\"}\n*/\nexport function splitUnit(text: string): { prefix: string, unit: string, value: number } {\n const matches = /^([^\\d|e|\\-|\\+]*)((?:\\d|\\.|-|e-|e\\+)+)(\\S*)$/g.exec(text);\n\n if (!matches) {\n return { prefix: \"\", unit: \"\", value: NaN };\n }\n const prefix = matches[1];\n const value = matches[2];\n const unit = matches[3];\n\n return { prefix, unit, value: parseFloat(value) };\n}\n\n/**\n* transform strings to camel-case\n* @memberof Utils\n* @param {String} text - string\n* @return {String} camel-case string\n* @example\nimport {camelize} from \"@daybrush/utils\";\n\nconsole.log(camelize(\"transform-origin\")); // transformOrigin\nconsole.log(camelize(\"abcd_efg\")); // abcdEfg\nconsole.log(camelize(\"abcd efg\")); // abcdEfg\n*/\nexport function camelize(str: string) {\n return str.replace(/[\\s-_]([a-z])/g, (all, letter) => letter.toUpperCase());\n}\n/**\n* transform a camelized string into a lowercased string.\n* @memberof Utils\n* @param {string} text - a camel-cased string\n* @param {string} [separator=\"-\"] - a separator\n* @return {string} a lowercased string\n* @example\nimport {decamelize} from \"@daybrush/utils\";\n\nconsole.log(decamelize(\"transformOrigin\")); // transform-origin\nconsole.log(decamelize(\"abcdEfg\", \"_\")); // abcd_efg\n*/\nexport function decamelize(str: string, separator: string = \"-\") {\n return str.replace(/([a-z])([A-Z])/g, (all, letter, letter2) => `${letter}${separator}${letter2.toLowerCase()}`);\n}\n\n/**\n* transforms something in an array into an array.\n* @memberof Utils\n* @param - Array form\n* @return an array\n* @example\nimport {toArray} from \"@daybrush/utils\";\n\nconst arr1 = toArray(document.querySelectorAll(\".a\")); // Element[]\nconst arr2 = toArray(document.querySelectorAll(\".a\")); // HTMLElement[]\n*/\nexport function toArray(value: IArrayFormat): T[] {\n return [].slice.call(value);\n}\n\n/**\n* Date.now() method\n* @memberof CrossBrowser\n* @return {number} milliseconds\n* @example\nimport {now} from \"@daybrush/utils\";\n\nconsole.log(now()); // 12121324241(milliseconds)\n*/\nexport function now() {\n return Date.now ? Date.now() : new Date().getTime();\n}\n\n/**\n* Returns the index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findIndex } from \"@daybrush/utils\";\n\nfindIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = 0; i < length; ++i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the reverse direction index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLastIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findLastIndex } from \"@daybrush/utils\";\n\nfindLastIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findLastIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = length - 1; i >= 0; --i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the value of the reverse direction element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLast` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function findLast(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findLastIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n/**\n* Returns the value of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `find` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function find(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n\n/**\n* window.requestAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {FrameRequestCallback} callback - The function to call when it's time to update your animation for the next repaint.\n* @return {number} id\n* @example\nimport {requestAnimationFrame} from \"@daybrush/utils\";\n\nrequestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n*/\nexport const requestAnimationFrame = /*#__PURE__*/(() => {\n const firstTime = now();\n\n const raf = IS_WINDOW\n && (window.requestAnimationFrame || (window as any).webkitRequestAnimationFrame\n || (window as any).mozRequestAnimationFrame || (window as any).msRequestAnimationFrame);\n\n return raf ? (raf.bind(window) as (callback: FrameRequestCallback) => number) : ((callback: FrameRequestCallback) => {\n const currTime = now();\n const id = setTimeout(() => {\n callback(currTime - firstTime);\n }, 1000 / 60);\n\n return id as any as number;\n });\n})();\n\n/**\n* window.cancelAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {number} handle - the id obtained through requestAnimationFrame method\n* @return {void}\n* @example\nimport { requestAnimationFrame, cancelAnimationFrame } from \"@daybrush/utils\";\n\nconst id = requestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n\ncancelAnimationFrame(id);\n*/\nexport const cancelAnimationFrame = /*#__PURE__*/(() => {\n const caf = IS_WINDOW\n && (window.cancelAnimationFrame || (window as any).webkitCancelAnimationFrame\n || (window as any).mozCancelAnimationFrame || (window as any).msCancelAnimationFrame);\n\n return caf\n ? caf.bind(window) as (handle: number) => void\n : ((handle: number) => { clearTimeout(handle); });\n})();\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getKeys(obj: IObject): string[] {\n return Object.keys(obj);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getValues(obj: IObject): any[] {\n const keys = getKeys(obj);\n\n return keys.map(key => obj[key]);\n}\n/**\n* @function\n* @memberof Utils\n*/\nexport function getEntries(obj: IObject): [string, any][] {\n const keys = getKeys(obj);\n\n return keys.map(key => [key, obj[key]]);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function sortOrders(keys: Array, orders: Array = []) {\n keys.sort((a, b) => {\n const index1 = orders.indexOf(a);\n const index2 = orders.indexOf(b);\n\n if (index2 === -1 && index1 === -1) {\n return 0;\n }\n if (index1 === -1) {\n return 1;\n }\n if (index2 === -1) {\n return -1;\n }\n return index1 - index2;\n });\n}\n\n/**\n* convert unit size to px size\n* @function\n* @memberof Utils\n*/\nexport function convertUnitSize(pos: string, size: number | IObject<((pos: number) => number) | number>) {\n const { value, unit } = splitUnit(pos);\n\n if (isObject(size)) {\n const sizeFunction = size[unit];\n if (sizeFunction) {\n if (isFunction(sizeFunction)) {\n return sizeFunction(value);\n } else if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value, sizeFunction);\n }\n }\n } else if (unit === \"%\") {\n return value * size / 100;\n }\n if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value);\n }\n return value;\n}\n\n/**\n* calculate between min, max\n* @function\n* @memberof Utils\n*/\nexport function between(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(value, max));\n}\n\nexport function checkBoundSize(targetSize: number[], compareSize: number[], isMax: boolean, ratio = targetSize[0] / targetSize[1]) {\n return [\n [throttle(compareSize[0], TINY_NUM), throttle(compareSize[0] / ratio, TINY_NUM)],\n [throttle(compareSize[1] * ratio, TINY_NUM), throttle(compareSize[1], TINY_NUM)],\n ].filter(size => size.every((value, i) => {\n const defaultSize = compareSize[i];\n const throttledSize = throttle(defaultSize, TINY_NUM);\n\n return isMax ? value <= defaultSize || value <= throttledSize : value >= defaultSize || value >= throttledSize;\n }))[0] || targetSize;\n}\n\n/**\n* calculate bound size\n* @function\n* @memberof Utils\n*/\nexport function calculateBoundSize(\n size: number[],\n minSize: number[],\n maxSize: number[],\n keepRatio?: number | boolean,\n): number[] {\n if (!keepRatio) {\n return size.map((value, i) => between(value, minSize[i], maxSize[i]));\n }\n let [width, height] = size;\n\n const ratio = keepRatio === true ? width / height : keepRatio;\n // width : height = minWidth : minHeight;\n const [minWidth, minHeight] = checkBoundSize(size, minSize, false, ratio);\n const [maxWidth, maxHeight] = checkBoundSize(size, maxSize, true, ratio);\n\n if (width < minWidth || height < minHeight) {\n width = minWidth;\n height = minHeight;\n } else if (width > maxWidth || height > maxHeight) {\n width = maxWidth;\n height = maxHeight;\n }\n return [width, height];\n}\n\n\n/**\n* Add all the numbers.\n* @function\n* @memberof Utils\n*/\nexport function sum(nums: number[]): number {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return total;\n}\n\n/**\n* Average all numbers.\n* @function\n* @memberof Utils\n*/\nexport function average(nums: number[]) {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return length ? total / length : 0;\n}\n/**\n* Get the angle of two points. (0 <= rad < 359)\n* @function\n* @memberof Utils\n*/\nexport function getRad(pos1: number[], pos2: number[]): number {\n const distX = pos2[0] - pos1[0];\n const distY = pos2[1] - pos1[1];\n const rad = Math.atan2(distY, distX);\n\n return rad >= 0 ? rad : rad + Math.PI * 2;\n}\n/**\n* Get the average point of all points.\n* @function\n* @memberof Utils\n*/\nexport function getCenterPoint(points: number[][]): number[] {\n return [0, 1].map(i => average(points.map(pos => pos[i])));\n}\n/**\n* Gets the direction of the shape.\n* @function\n* @memberof Utils\n*/\nexport function getShapeDirection(points: number[][]): 1 | -1 {\n const center = getCenterPoint(points);\n const pos1Rad = getRad(center, points[0]);\n const pos2Rad = getRad(center, points[1]);\n\n return (pos1Rad < pos2Rad && pos2Rad - pos1Rad < Math.PI) || (pos1Rad > pos2Rad && pos2Rad - pos1Rad < -Math.PI)\n ? 1 : -1;\n}\n\n/**\n* Get the distance between two points.\n* @function\n* @memberof Utils\n*/\nexport function getDist(a: number[], b?: number[]) {\n return Math.sqrt(Math.pow((b ? b[0] : 0) - a[0], 2) + Math.pow((b ? b[1] : 0) - a[1], 2));\n}\n\n/**\n* throttle number depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttle(num: number, unit?: number) {\n if (!unit) {\n return num;\n }\n const reverseUnit = 1 / unit;\n return Math.round(num / unit) / reverseUnit;\n}\n\n/**\n* throttle number array depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttleArray(nums: number[], unit?: number) {\n nums.forEach((_, i) => {\n nums[i] = throttle(nums[i], unit);\n });\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function counter(num: number): number[] {\n const nums: number[] = [];\n\n for (let i = 0; i < num; ++i) {\n nums.push(i);\n }\n\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function replaceOnce(text: string, fromText: RegExp | string, toText: string | ((...args: any[]) => string)): string {\n let isOnce = false;\n return text.replace(fromText, (...args: any[]) => {\n if (isOnce) {\n return args[0];\n }\n isOnce = true;\n return isString(toText) ? toText : toText(...args);\n });\n}\n\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function flat(arr: Type[][]): Type[] {\n return arr.reduce((prev, cur) => {\n return prev.concat(cur);\n }, []);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function deepFlat(arr: T): Array> {\n return arr.reduce((prev, cur) => {\n if (isArray(cur)) {\n prev.push(...deepFlat(cur));\n } else {\n prev.push(cur);\n }\n return prev;\n }, [] as any[]);\n}\n","import { RGB, RGBA, HSL, HSLA } from \"./consts\";\nimport { splitBracket, splitComma } from \"./utils\";\n\n/**\n* @namespace\n* @name Color\n*/\n\n/**\n* Remove the # from the hex color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} hex color\n* @example\nimport {cutHex} from \"@daybrush/utils\";\n\nconsole.log(cutHex(\"#000000\")) // \"000000\"\n*/\nexport function cutHex(hex: string) {\n return hex.replace(\"#\", \"\");\n}\n/**\n* convert hex color to rgb color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} rgb color\n* @example\nimport {hexToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hexToRGBA(\"#00000005\"));\n// [0, 0, 0, 1]\nconsole.log(hexToRGBA(\"#201045\"));\n// [32, 16, 69, 1]\n*/\nexport function hexToRGBA(hex: string): [number, number, number, number] {\n const h = cutHex(hex);\n const r = parseInt(h.substring(0, 2), 16);\n const g = parseInt(h.substring(2, 4), 16);\n const b = parseInt(h.substring(4, 6), 16);\n let a = parseInt(h.substring(6, 8), 16) / 255;\n\n if (isNaN(a)) {\n a = 1;\n }\n return [r, g, b, a];\n}\n\n/**\n* convert 3(or 4)-digit hex color to 6(or 8)-digit hex color.\n* @memberof Color\n* @param {} hex - 3(or 4)-digit hex color\n* @return {} 6(or 8)-digit hex color\n* @example\nimport {toFullHex} from \"@daybrush/utils\";\n\nconsole.log(toFullHex(\"#123\")); // \"#112233\"\nconsole.log(toFullHex(\"#123a\")); // \"#112233aa\"\n*/\nexport function toFullHex(h: string): string {\n const r = h.charAt(1);\n const g = h.charAt(2);\n const b = h.charAt(3);\n const a = h.charAt(4);\n const arr = [\"#\", r, r, g, g, b, b, a, a];\n\n return arr.join(\"\");\n}\n/**\n* convert hsl color to rgba color.\n* @memberof Color\n* @param {} hsl - hsl color(hue: 0 ~ 360, saturation: 0 ~ 1, lightness: 0 ~ 1, alpha: 0 ~ 1)\n* @return {} rgba color\n* @example\nimport {hslToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hslToRGBA([150, 0.5, 0.4]));\n// [51, 153, 102, 1]\n*/\nexport function hslToRGBA(hsl: readonly [number, number, number, number?]): [number, number, number, number] {\n let h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n\n if (h < 0) {\n h += Math.floor((Math.abs(h) + 360) / 360) * 360;\n }\n h %= 360;\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let rgb: [number, number, number];\n\n if (h < 60) {\n rgb = [c, x, 0];\n } else if (h < 120) {\n rgb = [x, c, 0];\n } else if (h < 180) {\n rgb = [0, c, x];\n } else if (h < 240) {\n rgb = [0, x, c];\n } else if (h < 300) {\n rgb = [x, 0, c];\n } else if (h < 360) {\n rgb = [c, 0, x];\n } else {\n rgb = [0, 0, 0];\n }\n\n return [\n Math.round((rgb[0] + m) * 255),\n Math.round((rgb[1] + m) * 255),\n Math.round((rgb[2] + m) * 255),\n hsl[3] ?? 1,\n ];\n}\n/**\n* convert string to rgba color.\n* @memberof Color\n* @param {} - 3-hex(#000), 4-hex(#0000) 6-hex(#000000), 8-hex(#00000000) or RGB(A), or HSL(A)\n* @return {} rgba color\n* @example\nimport {stringToRGBA} from \"@daybrush/utils\";\n\nconsole.log(stringToRGBA(\"#000000\")); // [0, 0, 0, 1]\nconsole.log(stringToRGBA(\"rgb(100, 100, 100)\")); // [100, 100, 100, 1]\nconsole.log(stringToRGBA(\"hsl(150, 0.5, 0.4)\")); // [51, 153, 102, 1]\n*/\nexport function stringToRGBA(color: string): [number, number, number, number] {\n if (color.charAt(0) === \"#\") {\n if (color.length === 4 || color.length === 5) {\n return hexToRGBA(toFullHex(color));\n } else {\n return hexToRGBA(color);\n }\n } else if (color.indexOf(\"(\") !== -1) {\n // in bracket.\n const {prefix, value} = splitBracket(color);\n\n if (!prefix || !value) {\n return undefined as never;\n }\n const arr = splitComma(value);\n const colorArr: [number, number, number, number] = [0, 0, 0, 1];\n const length = arr.length;\n\n switch (prefix) {\n case RGB:\n case RGBA:\n for (let i = 0; i < length; ++i) {\n colorArr[i] = parseFloat(arr[i]);\n }\n return colorArr;\n case HSL:\n case HSLA:\n for (let i = 0; i < length; ++i) {\n if (arr[i].indexOf(\"%\") !== -1) {\n colorArr[i] = parseFloat(arr[i]) / 100;\n } else {\n colorArr[i] = parseFloat(arr[i]);\n }\n }\n // hsl, hsla to rgba\n return hslToRGBA(colorArr);\n }\n }\n return undefined as never;\n}\n","import { document } from \"./consts\";\nimport { IObject, IEventMap } from \"./types\";\n\n/**\n * @namespace DOM\n */\n\nexport function $(selectors: K, multi: true):\n NodeListOf;\nexport function $(selectors: K, multi: true): NodeListOf;\nexport function $(selectors: string, multi: true): NodeListOf;\n\nexport function $(selectors: K, multi?: false): HTMLElementTagNameMap[K] | null;\nexport function $(selectors: K, multi?: false): SVGElementTagNameMap[K] | null;\nexport function $(selectors: string, multi?: false): E | null;\n/**\n * Returns all element descendants of node that\n * match selectors.\n */\n\n/**\n * Checks if the specified class value exists in the element's class attribute.\n * @memberof DOM\n * @param - A DOMString containing one or more selectors to match\n * @param - If multi is true, a DOMString containing one or more selectors to match against.\n * @example\nimport {$} from \"@daybrush/utils\";\n\nconsole.log($(\"div\")); // div element\nconsole.log($(\"div\", true)); // [div, div] elements\n*/\nexport function $(selectors: string, multi?: boolean): E | NodeListOf | null {\n return multi ? document.querySelectorAll(selectors) : document.querySelector(selectors);\n}\n\n/**\n* Checks if the specified class value exists in the element's class attribute.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to search\n* @return {boolean} return false if the class is not found.\n* @example\nimport {hasClass} from \"@daybrush/utils\";\n\nconsole.log(hasClass(element, \"start\")); // true or false\n*/\nexport function hasClass(element: Element, className: string) {\n if (element.classList) {\n return element.classList.contains(className);\n }\n return !!element.className.match(new RegExp(`(\\\\s|^)${className}(\\\\s|$)`));\n}\n\n/**\n* Add the specified class value. If these classe already exist in the element's class attribute they are ignored.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to add\n* @example\nimport {addClass} from \"@daybrush/utils\";\n\naddClass(element, \"start\");\n*/\nexport function addClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.add(className);\n } else {\n element.className += ` ${className}`;\n }\n}\n\n/**\n* Removes the specified class value.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to remove\n* @example\nimport {removeClass} from \"@daybrush/utils\";\n\nremoveClass(element, \"start\");\n*/\nexport function removeClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.remove(className);\n } else {\n const reg = new RegExp(`(\\\\s|^)${className}(\\\\s|$)`);\n\n element.className = element.className.replace(reg, \" \");\n }\n}\n\n/**\n* Gets the CSS properties from the element.\n* @memberof DOM\n* @param elements - elements\n* @param properites - the CSS properties\n* @return returns CSS properties and values.\n* @example\nimport {fromCSS} from \"@daybrush/utils\";\n\nconsole.log(fromCSS(element, [\"left\", \"opacity\", \"top\"])); // {\"left\": \"10px\", \"opacity\": 1, \"top\": \"10px\"}\n*/\nexport function fromCSS(\n elements: Element | Element[] | NodeListOf, properties: string[]): IObject {\n if (!elements || !properties || !properties.length) {\n return {};\n }\n let element;\n\n if (elements instanceof Element) {\n element = elements;\n } else if (elements.length) {\n element = elements[0];\n } else {\n return {};\n }\n const cssObject: IObject = {};\n const styles = window.getComputedStyle(element) as any;\n const length = properties.length;\n\n for (let i = 0; i < length; ++i) {\n cssObject[properties[i]] = styles[properties[i]];\n }\n return cssObject;\n}\n\nexport function addEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;\n/**\n* Sets up a function that will be called whenever the specified event is delivered to the target\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The object which receives a notification (an object that implements the Event interface) when an event of the specified type occurs\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent} from \"@daybrush/utils\";\n\naddEvent(el, \"click\", e => {\n console.log(e);\n});\n*/\nexport function addEvent(\n el: EventTarget,\n type: string, listener: (e: Event) => void,\n options?: boolean | AddEventListenerOptions) {\n el.addEventListener(type, listener, options);\n}\n\nexport function removeEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | EventListenerOptions): void;\n/**\n* removes from the EventTarget an event listener previously registered with EventTarget.addEventListener()\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The EventListener function of the event handler to remove from the event target.\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent, removeEvent} from \"@daybrush/utils\";\nconst listener = e => {\n console.log(e);\n};\naddEvent(el, \"click\", listener);\nremoveEvent(el, \"click\", listener);\n*/\nexport function removeEvent(\n el: EventTarget, type: string,\n listener: (e: Event) => void,\n options?: boolean | EventListenerOptions,\n) {\n el.removeEventListener(type, listener, options);\n}\n"],"names":["RGB","RGBA","HSL","HSLA","COLOR_MODELS","FUNCTION","PROPERTY","ARRAY","OBJECT","STRING","NUMBER","UNDEFINED","IS_WINDOW","window","doc","document","prefixes","getCrossBrowserProperty","property","styles","body","documentElement","style","length","i","name","TRANSFORM","FILTER","ANIMATION","KEYFRAMES","replace","OPEN_CLOSED_CHARACTERS","open","close","TINY_NUM","REVERSE_TINY_NUM","DEFAULT_UNIT_PRESETS","pos","size","innerWidth","innerHeight","Math","max","min","dot","a1","a2","b1","b2","isUndefined","value","isObject","isArray","Array","isString","isNumber","isFunction","isEqualSeparator","character","separator","isCharacterSpace","isSeparatorSpace","findOpen","openCharacter","texts","index","openCloseCharacters","isIgnore","findIgnore","findClose","ignore","otherText","slice","join","RegExp","exec","closeCharacter","trim","nextIndex","find","_a","splitText","text","splitOptions","_b","isSeparateFirst","isSeparateOnlyOpenClose","_c","isSeparateOpenClose","_d","openClosedText","map","regexText","regex","split","filter","Boolean","values","tempValues","resetTemp","push","nextOpenCloseCharacters","splice","indexOf","splitSpace","splitComma","splitBracket","matches","prefix","suffix","splitUnit","unit","NaN","parseFloat","camelize","str","all","letter","toUpperCase","decamelize","letter2","toLowerCase","toArray","call","now","Date","getTime","findIndex","arr","callback","defaultIndex","findLastIndex","findLast","defalutValue","requestAnimationFrame","firstTime","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","bind","currTime","id","setTimeout","cancelAnimationFrame","caf","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","handle","clearTimeout","getKeys","obj","Object","keys","getValues","key","getEntries","sortOrders","orders","sort","a","b","index1","index2","convertUnitSize","sizeFunction","between","checkBoundSize","targetSize","compareSize","isMax","ratio","throttle","every","defaultSize","throttledSize","calculateBoundSize","minSize","maxSize","keepRatio","width","height","minWidth","minHeight","maxWidth","maxHeight","sum","nums","total","average","getRad","pos1","pos2","distX","distY","rad","atan2","PI","getCenterPoint","points","getShapeDirection","center","pos1Rad","pos2Rad","getDist","sqrt","pow","num","reverseUnit","round","throttleArray","forEach","_","counter","replaceOnce","fromText","toText","isOnce","_i","args","flat","reduce","prev","cur","concat","deepFlat","cutHex","hex","hexToRGBA","h","r","parseInt","substring","g","isNaN","toFullHex","charAt","hslToRGBA","hsl","s","l","floor","abs","c","x","m","rgb","stringToRGBA","color","undefined","colorArr","$","selectors","multi","querySelectorAll","querySelector","hasClass","element","className","classList","contains","match","addClass","add","removeClass","remove","reg","fromCSS","elements","properties","Element","cssObject","getComputedStyle","addEvent","el","type","listener","options","addEventListener","removeEvent","removeEventListener"],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils.esm.js b/dist/utils.esm.js new file mode 100644 index 0000000..7acbeb6 --- /dev/null +++ b/dist/utils.esm.js @@ -0,0 +1,1389 @@ +/* +Copyright (c) 2018 Daybrush +@name: @daybrush/utils +license: MIT +author: Daybrush +repository: https://github.com/daybrush/utils +@version 1.10.1 +*/ +/** +* @namespace +* @name Consts +*/ +/** +* get string "rgb" +* @memberof Color +* @example +import {RGB} from "@daybrush/utils"; + +console.log(RGB); // "rgb" +*/ +var RGB = "rgb"; +/** +* get string "rgba" +* @memberof Color +* @example +import {RGBA} from "@daybrush/utils"; + +console.log(RGBA); // "rgba" +*/ +var RGBA = "rgba"; +/** +* get string "hsl" +* @memberof Color +* @example +import {HSL} from "@daybrush/utils"; + +console.log(HSL); // "hsl" +*/ +var HSL = "hsl"; +/** +* get string "hsla" +* @memberof Color +* @example +import {HSLA} from "@daybrush/utils"; + +console.log(HSLA); // "hsla" +*/ +var HSLA = "hsla"; +/** +* gets an array of color models. +* @memberof Color +* @example +import {COLOR_MODELS} from "@daybrush/utils"; + +console.log(COLOR_MODELS); // ["rgb", "rgba", "hsl", "hsla"]; +*/ +var COLOR_MODELS = [RGB, RGBA, HSL, HSLA]; +/** +* get string "function" +* @memberof Consts +* @example +import {FUNCTION} from "@daybrush/utils"; + +console.log(FUNCTION); // "function" +*/ +var FUNCTION = "function"; +/** +* get string "property" +* @memberof Consts +* @example +import {PROPERTY} from "@daybrush/utils"; + +console.log(PROPERTY); // "property" +*/ +var PROPERTY = "property"; +/** +* get string "array" +* @memberof Consts +* @example +import {ARRAY} from "@daybrush/utils"; + +console.log(ARRAY); // "array" +*/ +var ARRAY = "array"; +/** +* get string "object" +* @memberof Consts +* @example +import {OBJECT} from "@daybrush/utils"; + +console.log(OBJECT); // "object" +*/ +var OBJECT = "object"; +/** +* get string "string" +* @memberof Consts +* @example +import {STRING} from "@daybrush/utils"; + +console.log(STRING); // "string" +*/ +var STRING = "string"; +/** +* get string "number" +* @memberof Consts +* @example +import {NUMBER} from "@daybrush/utils"; + +console.log(NUMBER); // "number" +*/ +var NUMBER = "number"; +/** +* get string "undefined" +* @memberof Consts +* @example +import {UNDEFINED} from "@daybrush/utils"; + +console.log(UNDEFINED); // "undefined" +*/ +var UNDEFINED = "undefined"; +/** +* Check whether the environment is window or node.js. +* @memberof Consts +* @example +import {IS_WINDOW} from "@daybrush/utils"; + +console.log(IS_WINDOW); // false in node.js +console.log(IS_WINDOW); // true in browser +*/ +var IS_WINDOW = typeof window !== UNDEFINED; +/** +* Check whether the environment is window or node.js. +* @memberof Consts +* @name document +* @example +import {IS_WINDOW} from "@daybrush/utils"; + +console.log(IS_WINDOW); // false in node.js +console.log(IS_WINDOW); // true in browser +*/ +var doc = typeof document !== UNDEFINED && document; // FIXME: this type maybe false +var prefixes = ["webkit", "ms", "moz", "o"]; +/** + * @namespace CrossBrowser + */ +/** +* Get a CSS property with a vendor prefix that supports cross browser. +* @function +* @param {string} property - A CSS property +* @return {string} CSS property with cross-browser vendor prefix +* @memberof CrossBrowser +* @example +import {getCrossBrowserProperty} from "@daybrush/utils"; + +console.log(getCrossBrowserProperty("transform")); // "transform", "-ms-transform", "-webkit-transform" +console.log(getCrossBrowserProperty("filter")); // "filter", "-webkit-filter" +*/ +var getCrossBrowserProperty = /*#__PURE__*/function (property) { + if (!doc) { + return ""; + } + var styles = (doc.body || doc.documentElement).style; + var length = prefixes.length; + if (typeof styles[property] !== UNDEFINED) { + return property; + } + for (var i = 0; i < length; ++i) { + var name = "-" + prefixes[i] + "-" + property; + if (typeof styles[name] !== UNDEFINED) { + return name; + } + } + return ""; +}; +/** +* get string "transfrom" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {TRANSFORM} from "@daybrush/utils"; + +console.log(TRANSFORM); // "transform", "-ms-transform", "-webkit-transform" +*/ +var TRANSFORM = /*#__PURE__*/getCrossBrowserProperty("transform"); +/** +* get string "filter" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {FILTER} from "@daybrush/utils"; + +console.log(FILTER); // "filter", "-ms-filter", "-webkit-filter" +*/ +var FILTER = /*#__PURE__*/getCrossBrowserProperty("filter"); +/** +* get string "animation" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {ANIMATION} from "@daybrush/utils"; + +console.log(ANIMATION); // "animation", "-ms-animation", "-webkit-animation" +*/ +var ANIMATION = /*#__PURE__*/getCrossBrowserProperty("animation"); +/** +* get string "keyframes" with the vendor prefix. +* @memberof CrossBrowser +* @example +import {KEYFRAMES} from "@daybrush/utils"; + +console.log(KEYFRAMES); // "keyframes", "-ms-keyframes", "-webkit-keyframes" +*/ +var KEYFRAMES = /*#__PURE__*/ANIMATION.replace("animation", "keyframes"); +var OPEN_CLOSED_CHARACTERS = [{ + open: "(", + close: ")" +}, { + open: "\"", + close: "\"" +}, { + open: "'", + close: "'" +}, { + open: "\\\"", + close: "\\\"" +}, { + open: "\\'", + close: "\\'" +}]; +var TINY_NUM = 0.0000001; +var REVERSE_TINY_NUM = 1 / TINY_NUM; +var DEFAULT_UNIT_PRESETS = { + "cm": function (pos) { + return pos * 96 / 2.54; + }, + "mm": function (pos) { + return pos * 96 / 254; + }, + "in": function (pos) { + return pos * 96; + }, + "pt": function (pos) { + return pos * 96 / 72; + }, + "pc": function (pos) { + return pos * 96 / 6; + }, + "%": function (pos, size) { + return pos * size / 100; + }, + "vw": function (pos, size) { + if (size === void 0) { + size = window.innerWidth; + } + return pos / 100 * size; + }, + "vh": function (pos, size) { + if (size === void 0) { + size = window.innerHeight; + } + return pos / 100 * size; + }, + "vmax": function (pos, size) { + if (size === void 0) { + size = Math.max(window.innerWidth, window.innerHeight); + } + return pos / 100 * size; + }, + "vmin": function (pos, size) { + if (size === void 0) { + size = Math.min(window.innerWidth, window.innerHeight); + } + return pos / 100 * size; + } +}; + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; + return r; +} + +/** +* @namespace +* @name Utils +*/ +/** + * Returns the inner product of two numbers(`a1`, `a2`) by two criteria(`b1`, `b2`). + * @memberof Utils + * @param - The first number + * @param - The second number + * @param - The first number to base on the inner product + * @param - The second number to base on the inner product + * @return - Returns the inner product +import { dot } from "@daybrush/utils"; + +console.log(dot(0, 15, 2, 3)); // 6 +console.log(dot(5, 15, 2, 3)); // 9 +console.log(dot(5, 15, 1, 1)); // 10 + */ +function dot(a1, a2, b1, b2) { + return (a1 * b2 + a2 * b1) / (b1 + b2); +} +/** +* Check the type that the value is undefined. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {boolean} true if the type is correct, false otherwise +* @example +import {isUndefined} from "@daybrush/utils"; + +console.log(isUndefined(undefined)); // true +console.log(isUndefined("")); // false +console.log(isUndefined(1)); // false +console.log(isUndefined(null)); // false +*/ +function isUndefined(value) { + return typeof value === UNDEFINED; +} +/** +* Check the type that the value is object. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isObject} from "@daybrush/utils"; + +console.log(isObject({})); // true +console.log(isObject(undefined)); // false +console.log(isObject("")); // false +console.log(isObject(null)); // false +*/ +function isObject(value) { + return value && typeof value === OBJECT; +} +/** +* Check the type that the value is isArray. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isArray} from "@daybrush/utils"; + +console.log(isArray([])); // true +console.log(isArray({})); // false +console.log(isArray(undefined)); // false +console.log(isArray(null)); // false +*/ +function isArray(value) { + return Array.isArray(value); +} +/** +* Check the type that the value is string. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isString} from "@daybrush/utils"; + +console.log(isString("1234")); // true +console.log(isString(undefined)); // false +console.log(isString(1)); // false +console.log(isString(null)); // false +*/ +function isString(value) { + return typeof value === STRING; +} +function isNumber(value) { + return typeof value === NUMBER; +} +/** +* Check the type that the value is function. +* @memberof Utils +* @param {string} value - Value to check the type +* @return {} true if the type is correct, false otherwise +* @example +import {isFunction} from "@daybrush/utils"; + +console.log(isFunction(function a() {})); // true +console.log(isFunction(() => {})); // true +console.log(isFunction("1234")); // false +console.log(isFunction(1)); // false +console.log(isFunction(null)); // false +*/ +function isFunction(value) { + return typeof value === FUNCTION; +} +function isEqualSeparator(character, separator) { + var isCharacterSpace = character === "" || character == " "; + var isSeparatorSpace = separator === "" || separator == " "; + return isSeparatorSpace && isCharacterSpace || character === separator; +} +function findOpen(openCharacter, texts, index, length, openCloseCharacters) { + var isIgnore = findIgnore(openCharacter, texts, index); + if (!isIgnore) { + return findClose(openCharacter, texts, index + 1, length, openCloseCharacters); + } + return index; +} +function findIgnore(character, texts, index) { + if (!character.ignore) { + return null; + } + var otherText = texts.slice(Math.max(index - 3, 0), index + 3).join(""); + return new RegExp(character.ignore).exec(otherText); +} +function findClose(closeCharacter, texts, index, length, openCloseCharacters) { + var _loop_1 = function (i) { + var character = texts[i].trim(); + if (character === closeCharacter.close && !findIgnore(closeCharacter, texts, i)) { + return { + value: i + }; + } + var nextIndex = i; + // re open + var openCharacter = find(openCloseCharacters, function (_a) { + var open = _a.open; + return open === character; + }); + if (openCharacter) { + nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters); + } + if (nextIndex === -1) { + return out_i_1 = i, "break"; + } + i = nextIndex; + out_i_1 = i; + }; + var out_i_1; + for (var i = index; i < length; ++i) { + var state_1 = _loop_1(i); + i = out_i_1; + if (typeof state_1 === "object") return state_1.value; + if (state_1 === "break") break; + } + return -1; +} +function splitText(text, splitOptions) { + var _a = isString(splitOptions) ? { + separator: splitOptions + } : splitOptions, + _b = _a.separator, + separator = _b === void 0 ? "," : _b, + isSeparateFirst = _a.isSeparateFirst, + isSeparateOnlyOpenClose = _a.isSeparateOnlyOpenClose, + _c = _a.isSeparateOpenClose, + isSeparateOpenClose = _c === void 0 ? isSeparateOnlyOpenClose : _c, + _d = _a.openCloseCharacters, + openCloseCharacters = _d === void 0 ? OPEN_CLOSED_CHARACTERS : _d; + var openClosedText = openCloseCharacters.map(function (_a) { + var open = _a.open, + close = _a.close; + if (open === close) { + return open; + } + return open + "|" + close; + }).join("|"); + var regexText = "(\\s*" + separator + "\\s*|" + openClosedText + "|\\s+)"; + var regex = new RegExp(regexText, "g"); + var texts = text.split(regex).filter(Boolean); + var length = texts.length; + var values = []; + var tempValues = []; + function resetTemp() { + if (tempValues.length) { + values.push(tempValues.join("")); + tempValues = []; + return true; + } + return false; + } + var _loop_2 = function (i) { + var character = texts[i].trim(); + var nextIndex = i; + var openCharacter = find(openCloseCharacters, function (_a) { + var open = _a.open; + return open === character; + }); + var closeCharacter = find(openCloseCharacters, function (_a) { + var close = _a.close; + return close === character; + }); + if (openCharacter) { + nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters); + if (nextIndex !== -1 && isSeparateOpenClose) { + if (resetTemp() && isSeparateFirst) { + return out_i_2 = i, "break"; + } + values.push(texts.slice(i, nextIndex + 1).join("")); + i = nextIndex; + if (isSeparateFirst) { + return out_i_2 = i, "break"; + } + return out_i_2 = i, "continue"; + } + } else if (closeCharacter && !findIgnore(closeCharacter, texts, i)) { + var nextOpenCloseCharacters = __spreadArrays(openCloseCharacters); + nextOpenCloseCharacters.splice(openCloseCharacters.indexOf(closeCharacter), 1); + return { + value: splitText(text, { + separator: separator, + isSeparateFirst: isSeparateFirst, + isSeparateOnlyOpenClose: isSeparateOnlyOpenClose, + isSeparateOpenClose: isSeparateOpenClose, + openCloseCharacters: nextOpenCloseCharacters + }) + }; + } else if (isEqualSeparator(character, separator) && !isSeparateOnlyOpenClose) { + resetTemp(); + if (isSeparateFirst) { + return out_i_2 = i, "break"; + } + return out_i_2 = i, "continue"; + } + if (nextIndex === -1) { + nextIndex = length - 1; + } + tempValues.push(texts.slice(i, nextIndex + 1).join("")); + i = nextIndex; + out_i_2 = i; + }; + var out_i_2; + for (var i = 0; i < length; ++i) { + var state_2 = _loop_2(i); + i = out_i_2; + if (typeof state_2 === "object") return state_2.value; + if (state_2 === "break") break; + } + if (tempValues.length) { + values.push(tempValues.join("")); + } + return values; +} +/** +* divide text by space. +* @memberof Utils +* @param {string} text - text to divide +* @return {Array} divided texts +* @example +import {spliceSpace} from "@daybrush/utils"; + +console.log(splitSpace("a b c d e f g")); +// ["a", "b", "c", "d", "e", "f", "g"] +console.log(splitSpace("'a,b' c 'd,e' f g")); +// ["'a,b'", "c", "'d,e'", "f", "g"] +*/ +function splitSpace(text) { + // divide comma(space) + return splitText(text, ""); +} +/** +* divide text by comma. +* @memberof Utils +* @param {string} text - text to divide +* @return {Array} divided texts +* @example +import {splitComma} from "@daybrush/utils"; + +console.log(splitComma("a,b,c,d,e,f,g")); +// ["a", "b", "c", "d", "e", "f", "g"] +console.log(splitComma("'a,b',c,'d,e',f,g")); +// ["'a,b'", "c", "'d,e'", "f", "g"] +*/ +function splitComma(text) { + // divide comma(,) + // "[^"]*"|'[^']*' + return splitText(text, ","); +} +/** +* divide text by bracket "(", ")". +* @memberof Utils +* @param {string} text - text to divide +* @return {object} divided texts +* @example +import {splitBracket} from "@daybrush/utils"; + +console.log(splitBracket("a(1, 2)")); +// {prefix: "a", value: "1, 2", suffix: ""} +console.log(splitBracket("a(1, 2)b")); +// {prefix: "a", value: "1, 2", suffix: "b"} +*/ +function splitBracket(text) { + var matches = /([^(]*)\(([\s\S]*)\)([\s\S]*)/g.exec(text); + if (!matches || matches.length < 4) { + return {}; + } else { + return { + prefix: matches[1], + value: matches[2], + suffix: matches[3] + }; + } +} +/** +* divide text by number and unit. +* @memberof Utils +* @param {string} text - text to divide +* @return {} divided texts +* @example +import {splitUnit} from "@daybrush/utils"; + +console.log(splitUnit("10px")); +// {prefix: "", value: 10, unit: "px"} +console.log(splitUnit("-10px")); +// {prefix: "", value: -10, unit: "px"} +console.log(splitUnit("a10%")); +// {prefix: "a", value: 10, unit: "%"} +*/ +function splitUnit(text) { + var matches = /^([^\d|e|\-|\+]*)((?:\d|\.|-|e-|e\+)+)(\S*)$/g.exec(text); + if (!matches) { + return { + prefix: "", + unit: "", + value: NaN + }; + } + var prefix = matches[1]; + var value = matches[2]; + var unit = matches[3]; + return { + prefix: prefix, + unit: unit, + value: parseFloat(value) + }; +} +/** +* transform strings to camel-case +* @memberof Utils +* @param {String} text - string +* @return {String} camel-case string +* @example +import {camelize} from "@daybrush/utils"; + +console.log(camelize("transform-origin")); // transformOrigin +console.log(camelize("abcd_efg")); // abcdEfg +console.log(camelize("abcd efg")); // abcdEfg +*/ +function camelize(str) { + return str.replace(/[\s-_]([a-z])/g, function (all, letter) { + return letter.toUpperCase(); + }); +} +/** +* transform a camelized string into a lowercased string. +* @memberof Utils +* @param {string} text - a camel-cased string +* @param {string} [separator="-"] - a separator +* @return {string} a lowercased string +* @example +import {decamelize} from "@daybrush/utils"; + +console.log(decamelize("transformOrigin")); // transform-origin +console.log(decamelize("abcdEfg", "_")); // abcd_efg +*/ +function decamelize(str, separator) { + if (separator === void 0) { + separator = "-"; + } + return str.replace(/([a-z])([A-Z])/g, function (all, letter, letter2) { + return "" + letter + separator + letter2.toLowerCase(); + }); +} +/** +* transforms something in an array into an array. +* @memberof Utils +* @param - Array form +* @return an array +* @example +import {toArray} from "@daybrush/utils"; + +const arr1 = toArray(document.querySelectorAll(".a")); // Element[] +const arr2 = toArray(document.querySelectorAll(".a")); // HTMLElement[] +*/ +function toArray(value) { + return [].slice.call(value); +} +/** +* Date.now() method +* @memberof CrossBrowser +* @return {number} milliseconds +* @example +import {now} from "@daybrush/utils"; + +console.log(now()); // 12121324241(milliseconds) +*/ +function now() { + return Date.now ? Date.now() : new Date().getTime(); +} +/** +* Returns the index of the first element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `findIndex` was called upon. +* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found. +* @param - Returns defaultIndex if not found by the function. +* @example +import { findIndex } from "@daybrush/utils"; + +findIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1 +*/ +function findIndex(arr, callback, defaultIndex) { + if (defaultIndex === void 0) { + defaultIndex = -1; + } + var length = arr.length; + for (var i = 0; i < length; ++i) { + if (callback(arr[i], i, arr)) { + return i; + } + } + return defaultIndex; +} +/** +* Returns the reverse direction index of the first element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `findLastIndex` was called upon. +* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found. +* @param - Returns defaultIndex if not found by the function. +* @example +import { findLastIndex } from "@daybrush/utils"; + +findLastIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1 +*/ +function findLastIndex(arr, callback, defaultIndex) { + if (defaultIndex === void 0) { + defaultIndex = -1; + } + var length = arr.length; + for (var i = length - 1; i >= 0; --i) { + if (callback(arr[i], i, arr)) { + return i; + } + } + return defaultIndex; +} +/** +* Returns the value of the reverse direction element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `findLast` was called upon. +* @param - A function to execute on each value in the array, +* @param - Returns defalutValue if not found by the function. +* @example +import { find } from "@daybrush/utils"; + +find([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2} +*/ +function findLast(arr, callback, defalutValue) { + var index = findLastIndex(arr, callback); + return index > -1 ? arr[index] : defalutValue; +} +/** +* Returns the value of the first element in the array that satisfies the provided testing function. +* @function +* @memberof CrossBrowser +* @param - The array `find` was called upon. +* @param - A function to execute on each value in the array, +* @param - Returns defalutValue if not found by the function. +* @example +import { find } from "@daybrush/utils"; + +find([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2} +*/ +function find(arr, callback, defalutValue) { + var index = findIndex(arr, callback); + return index > -1 ? arr[index] : defalutValue; +} +/** +* window.requestAnimationFrame() method with cross browser. +* @function +* @memberof CrossBrowser +* @param {FrameRequestCallback} callback - The function to call when it's time to update your animation for the next repaint. +* @return {number} id +* @example +import {requestAnimationFrame} from "@daybrush/utils"; + +requestAnimationFrame((timestamp) => { + console.log(timestamp); +}); +*/ +var requestAnimationFrame = /*#__PURE__*/function () { + var firstTime = now(); + var raf = IS_WINDOW && (window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame); + return raf ? raf.bind(window) : function (callback) { + var currTime = now(); + var id = setTimeout(function () { + callback(currTime - firstTime); + }, 1000 / 60); + return id; + }; +}(); +/** +* window.cancelAnimationFrame() method with cross browser. +* @function +* @memberof CrossBrowser +* @param {number} handle - the id obtained through requestAnimationFrame method +* @return {void} +* @example +import { requestAnimationFrame, cancelAnimationFrame } from "@daybrush/utils"; + +const id = requestAnimationFrame((timestamp) => { + console.log(timestamp); +}); + +cancelAnimationFrame(id); +*/ +var cancelAnimationFrame = /*#__PURE__*/function () { + var caf = IS_WINDOW && (window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.msCancelAnimationFrame); + return caf ? caf.bind(window) : function (handle) { + clearTimeout(handle); + }; +}(); +/** +* @function +* @memberof Utils +*/ +function getKeys(obj) { + return Object.keys(obj); +} +/** +* @function +* @memberof Utils +*/ +function getValues(obj) { + var keys = getKeys(obj); + return keys.map(function (key) { + return obj[key]; + }); +} +/** +* @function +* @memberof Utils +*/ +function getEntries(obj) { + var keys = getKeys(obj); + return keys.map(function (key) { + return [key, obj[key]]; + }); +} +/** +* @function +* @memberof Utils +*/ +function sortOrders(keys, orders) { + if (orders === void 0) { + orders = []; + } + keys.sort(function (a, b) { + var index1 = orders.indexOf(a); + var index2 = orders.indexOf(b); + if (index2 === -1 && index1 === -1) { + return 0; + } + if (index1 === -1) { + return 1; + } + if (index2 === -1) { + return -1; + } + return index1 - index2; + }); +} +/** +* convert unit size to px size +* @function +* @memberof Utils +*/ +function convertUnitSize(pos, size) { + var _a = splitUnit(pos), + value = _a.value, + unit = _a.unit; + if (isObject(size)) { + var sizeFunction = size[unit]; + if (sizeFunction) { + if (isFunction(sizeFunction)) { + return sizeFunction(value); + } else if (DEFAULT_UNIT_PRESETS[unit]) { + return DEFAULT_UNIT_PRESETS[unit](value, sizeFunction); + } + } + } else if (unit === "%") { + return value * size / 100; + } + if (DEFAULT_UNIT_PRESETS[unit]) { + return DEFAULT_UNIT_PRESETS[unit](value); + } + return value; +} +/** +* calculate between min, max +* @function +* @memberof Utils +*/ +function between(value, min, max) { + return Math.max(min, Math.min(value, max)); +} +function checkBoundSize(targetSize, compareSize, isMax, ratio) { + if (ratio === void 0) { + ratio = targetSize[0] / targetSize[1]; + } + return [[throttle(compareSize[0], TINY_NUM), throttle(compareSize[0] / ratio, TINY_NUM)], [throttle(compareSize[1] * ratio, TINY_NUM), throttle(compareSize[1], TINY_NUM)]].filter(function (size) { + return size.every(function (value, i) { + var defaultSize = compareSize[i]; + var throttledSize = throttle(defaultSize, TINY_NUM); + return isMax ? value <= defaultSize || value <= throttledSize : value >= defaultSize || value >= throttledSize; + }); + })[0] || targetSize; +} +/** +* calculate bound size +* @function +* @memberof Utils +*/ +function calculateBoundSize(size, minSize, maxSize, keepRatio) { + if (!keepRatio) { + return size.map(function (value, i) { + return between(value, minSize[i], maxSize[i]); + }); + } + var width = size[0], + height = size[1]; + var ratio = keepRatio === true ? width / height : keepRatio; + // width : height = minWidth : minHeight; + var _a = checkBoundSize(size, minSize, false, ratio), + minWidth = _a[0], + minHeight = _a[1]; + var _b = checkBoundSize(size, maxSize, true, ratio), + maxWidth = _b[0], + maxHeight = _b[1]; + if (width < minWidth || height < minHeight) { + width = minWidth; + height = minHeight; + } else if (width > maxWidth || height > maxHeight) { + width = maxWidth; + height = maxHeight; + } + return [width, height]; +} +/** +* Add all the numbers. +* @function +* @memberof Utils +*/ +function sum(nums) { + var length = nums.length; + var total = 0; + for (var i = length - 1; i >= 0; --i) { + total += nums[i]; + } + return total; +} +/** +* Average all numbers. +* @function +* @memberof Utils +*/ +function average(nums) { + var length = nums.length; + var total = 0; + for (var i = length - 1; i >= 0; --i) { + total += nums[i]; + } + return length ? total / length : 0; +} +/** +* Get the angle of two points. (0 <= rad < 359) +* @function +* @memberof Utils +*/ +function getRad(pos1, pos2) { + var distX = pos2[0] - pos1[0]; + var distY = pos2[1] - pos1[1]; + var rad = Math.atan2(distY, distX); + return rad >= 0 ? rad : rad + Math.PI * 2; +} +/** +* Get the average point of all points. +* @function +* @memberof Utils +*/ +function getCenterPoint(points) { + return [0, 1].map(function (i) { + return average(points.map(function (pos) { + return pos[i]; + })); + }); +} +/** +* Gets the direction of the shape. +* @function +* @memberof Utils +*/ +function getShapeDirection(points) { + var center = getCenterPoint(points); + var pos1Rad = getRad(center, points[0]); + var pos2Rad = getRad(center, points[1]); + return pos1Rad < pos2Rad && pos2Rad - pos1Rad < Math.PI || pos1Rad > pos2Rad && pos2Rad - pos1Rad < -Math.PI ? 1 : -1; +} +/** +* Get the distance between two points. +* @function +* @memberof Utils +*/ +function getDist(a, b) { + return Math.sqrt(Math.pow((b ? b[0] : 0) - a[0], 2) + Math.pow((b ? b[1] : 0) - a[1], 2)); +} +/** +* throttle number depending on the unit. +* @function +* @memberof Utils +*/ +function throttle(num, unit) { + if (!unit) { + return num; + } + var reverseUnit = 1 / unit; + return Math.round(num / unit) / reverseUnit; +} +/** +* throttle number array depending on the unit. +* @function +* @memberof Utils +*/ +function throttleArray(nums, unit) { + nums.forEach(function (_, i) { + nums[i] = throttle(nums[i], unit); + }); + return nums; +} +/** +* @function +* @memberof Utils +*/ +function counter(num) { + var nums = []; + for (var i = 0; i < num; ++i) { + nums.push(i); + } + return nums; +} +/** +* @function +* @memberof Utils +*/ +function replaceOnce(text, fromText, toText) { + var isOnce = false; + return text.replace(fromText, function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (isOnce) { + return args[0]; + } + isOnce = true; + return isString(toText) ? toText : toText.apply(void 0, args); + }); +} +/** +* @function +* @memberof Utils +*/ +function flat(arr) { + return arr.reduce(function (prev, cur) { + return prev.concat(cur); + }, []); +} +/** +* @function +* @memberof Utils +*/ +function deepFlat(arr) { + return arr.reduce(function (prev, cur) { + if (isArray(cur)) { + prev.push.apply(prev, deepFlat(cur)); + } else { + prev.push(cur); + } + return prev; + }, []); +} + +/** +* @namespace +* @name Color +*/ +/** +* Remove the # from the hex color. +* @memberof Color +* @param {} hex - hex color +* @return {} hex color +* @example +import {cutHex} from "@daybrush/utils"; + +console.log(cutHex("#000000")) // "000000" +*/ +function cutHex(hex) { + return hex.replace("#", ""); +} +/** +* convert hex color to rgb color. +* @memberof Color +* @param {} hex - hex color +* @return {} rgb color +* @example +import {hexToRGBA} from "@daybrush/utils"; + +console.log(hexToRGBA("#00000005")); +// [0, 0, 0, 1] +console.log(hexToRGBA("#201045")); +// [32, 16, 69, 1] +*/ +function hexToRGBA(hex) { + var h = cutHex(hex); + var r = parseInt(h.substring(0, 2), 16); + var g = parseInt(h.substring(2, 4), 16); + var b = parseInt(h.substring(4, 6), 16); + var a = parseInt(h.substring(6, 8), 16) / 255; + if (isNaN(a)) { + a = 1; + } + return [r, g, b, a]; +} +/** +* convert 3(or 4)-digit hex color to 6(or 8)-digit hex color. +* @memberof Color +* @param {} hex - 3(or 4)-digit hex color +* @return {} 6(or 8)-digit hex color +* @example +import {toFullHex} from "@daybrush/utils"; + +console.log(toFullHex("#123")); // "#112233" +console.log(toFullHex("#123a")); // "#112233aa" +*/ +function toFullHex(h) { + var r = h.charAt(1); + var g = h.charAt(2); + var b = h.charAt(3); + var a = h.charAt(4); + var arr = ["#", r, r, g, g, b, b, a, a]; + return arr.join(""); +} +/** +* convert hsl color to rgba color. +* @memberof Color +* @param {} hsl - hsl color(hue: 0 ~ 360, saturation: 0 ~ 1, lightness: 0 ~ 1, alpha: 0 ~ 1) +* @return {} rgba color +* @example +import {hslToRGBA} from "@daybrush/utils"; + +console.log(hslToRGBA([150, 0.5, 0.4])); +// [51, 153, 102, 1] +*/ +function hslToRGBA(hsl) { + var _a; + var h = hsl[0]; + var s = hsl[1]; + var l = hsl[2]; + if (h < 0) { + h += Math.floor((Math.abs(h) + 360) / 360) * 360; + } + h %= 360; + var c = (1 - Math.abs(2 * l - 1)) * s; + var x = c * (1 - Math.abs(h / 60 % 2 - 1)); + var m = l - c / 2; + var rgb; + if (h < 60) { + rgb = [c, x, 0]; + } else if (h < 120) { + rgb = [x, c, 0]; + } else if (h < 180) { + rgb = [0, c, x]; + } else if (h < 240) { + rgb = [0, x, c]; + } else if (h < 300) { + rgb = [x, 0, c]; + } else if (h < 360) { + rgb = [c, 0, x]; + } else { + rgb = [0, 0, 0]; + } + return [Math.round((rgb[0] + m) * 255), Math.round((rgb[1] + m) * 255), Math.round((rgb[2] + m) * 255), (_a = hsl[3]) !== null && _a !== void 0 ? _a : 1]; +} +/** +* convert string to rgba color. +* @memberof Color +* @param {} - 3-hex(#000), 4-hex(#0000) 6-hex(#000000), 8-hex(#00000000) or RGB(A), or HSL(A) +* @return {} rgba color +* @example +import {stringToRGBA} from "@daybrush/utils"; + +console.log(stringToRGBA("#000000")); // [0, 0, 0, 1] +console.log(stringToRGBA("rgb(100, 100, 100)")); // [100, 100, 100, 1] +console.log(stringToRGBA("hsl(150, 0.5, 0.4)")); // [51, 153, 102, 1] +*/ +function stringToRGBA(color) { + if (color.charAt(0) === "#") { + if (color.length === 4 || color.length === 5) { + return hexToRGBA(toFullHex(color)); + } else { + return hexToRGBA(color); + } + } else if (color.indexOf("(") !== -1) { + // in bracket. + var _a = splitBracket(color), + prefix = _a.prefix, + value = _a.value; + if (!prefix || !value) { + return undefined; + } + var arr = splitComma(value); + var colorArr = [0, 0, 0, 1]; + var length = arr.length; + switch (prefix) { + case RGB: + case RGBA: + for (var i = 0; i < length; ++i) { + colorArr[i] = parseFloat(arr[i]); + } + return colorArr; + case HSL: + case HSLA: + for (var i = 0; i < length; ++i) { + if (arr[i].indexOf("%") !== -1) { + colorArr[i] = parseFloat(arr[i]) / 100; + } else { + colorArr[i] = parseFloat(arr[i]); + } + } + // hsl, hsla to rgba + return hslToRGBA(colorArr); + } + } + return undefined; +} + +/** + * Returns all element descendants of node that + * match selectors. + */ +/** + * Checks if the specified class value exists in the element's class attribute. + * @memberof DOM + * @param - A DOMString containing one or more selectors to match + * @param - If multi is true, a DOMString containing one or more selectors to match against. + * @example +import {$} from "@daybrush/utils"; + +console.log($("div")); // div element +console.log($("div", true)); // [div, div] elements +*/ +function $(selectors, multi) { + return multi ? doc.querySelectorAll(selectors) : doc.querySelector(selectors); +} +/** +* Checks if the specified class value exists in the element's class attribute. +* @memberof DOM +* @param element - target +* @param className - the class name to search +* @return {boolean} return false if the class is not found. +* @example +import {hasClass} from "@daybrush/utils"; + +console.log(hasClass(element, "start")); // true or false +*/ +function hasClass(element, className) { + if (element.classList) { + return element.classList.contains(className); + } + return !!element.className.match(new RegExp("(\\s|^)" + className + "(\\s|$)")); +} +/** +* Add the specified class value. If these classe already exist in the element's class attribute they are ignored. +* @memberof DOM +* @param element - target +* @param className - the class name to add +* @example +import {addClass} from "@daybrush/utils"; + +addClass(element, "start"); +*/ +function addClass(element, className) { + if (element.classList) { + element.classList.add(className); + } else { + element.className += " " + className; + } +} +/** +* Removes the specified class value. +* @memberof DOM +* @param element - target +* @param className - the class name to remove +* @example +import {removeClass} from "@daybrush/utils"; + +removeClass(element, "start"); +*/ +function removeClass(element, className) { + if (element.classList) { + element.classList.remove(className); + } else { + var reg = new RegExp("(\\s|^)" + className + "(\\s|$)"); + element.className = element.className.replace(reg, " "); + } +} +/** +* Gets the CSS properties from the element. +* @memberof DOM +* @param elements - elements +* @param properites - the CSS properties +* @return returns CSS properties and values. +* @example +import {fromCSS} from "@daybrush/utils"; + +console.log(fromCSS(element, ["left", "opacity", "top"])); // {"left": "10px", "opacity": 1, "top": "10px"} +*/ +function fromCSS(elements, properties) { + if (!elements || !properties || !properties.length) { + return {}; + } + var element; + if (elements instanceof Element) { + element = elements; + } else if (elements.length) { + element = elements[0]; + } else { + return {}; + } + var cssObject = {}; + var styles = window.getComputedStyle(element); + var length = properties.length; + for (var i = 0; i < length; ++i) { + cssObject[properties[i]] = styles[properties[i]]; + } + return cssObject; +} +/** +* Sets up a function that will be called whenever the specified event is delivered to the target +* @memberof DOM +* @param - event target +* @param - A case-sensitive string representing the event type to listen for. +* @param - The object which receives a notification (an object that implements the Event interface) when an event of the specified type occurs +* @param - An options object that specifies characteristics about the event listener. +* @example +import {addEvent} from "@daybrush/utils"; + +addEvent(el, "click", e => { + console.log(e); +}); +*/ +function addEvent(el, type, listener, options) { + el.addEventListener(type, listener, options); +} +/** +* removes from the EventTarget an event listener previously registered with EventTarget.addEventListener() +* @memberof DOM +* @param - event target +* @param - A case-sensitive string representing the event type to listen for. +* @param - The EventListener function of the event handler to remove from the event target. +* @param - An options object that specifies characteristics about the event listener. +* @example +import {addEvent, removeEvent} from "@daybrush/utils"; +const listener = e => { + console.log(e); +}; +addEvent(el, "click", listener); +removeEvent(el, "click", listener); +*/ +function removeEvent(el, type, listener, options) { + el.removeEventListener(type, listener, options); +} + +export { RGB, RGBA, HSL, HSLA, COLOR_MODELS, FUNCTION, PROPERTY, ARRAY, OBJECT, STRING, NUMBER, UNDEFINED, IS_WINDOW, doc as document, getCrossBrowserProperty, TRANSFORM, FILTER, ANIMATION, KEYFRAMES, OPEN_CLOSED_CHARACTERS, TINY_NUM, REVERSE_TINY_NUM, DEFAULT_UNIT_PRESETS, cutHex, hexToRGBA, toFullHex, hslToRGBA, stringToRGBA, dot, isUndefined, isObject, isArray, isString, isNumber, isFunction, splitText, splitSpace, splitComma, splitBracket, splitUnit, camelize, decamelize, toArray, now, findIndex, findLastIndex, findLast, find, requestAnimationFrame, cancelAnimationFrame, getKeys, getValues, getEntries, sortOrders, convertUnitSize, between, checkBoundSize, calculateBoundSize, sum, average, getRad, getCenterPoint, getShapeDirection, getDist, throttle, throttleArray, counter, replaceOnce, flat, deepFlat, $, hasClass, addClass, removeClass, fromCSS, addEvent, removeEvent }; +//# sourceMappingURL=utils.esm.js.map diff --git a/dist/utils.esm.js.map b/dist/utils.esm.js.map new file mode 100644 index 0000000..f33f779 --- /dev/null +++ b/dist/utils.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.esm.js","sources":["../src/consts.ts","../src/utils.ts","../src/color.ts","../src/dom.ts"],"sourcesContent":["/**\n* @namespace\n* @name Consts\n*/\n\nimport { IObject, OpenCloseCharacter } from \"./types\";\n\n/**\n* get string \"rgb\"\n* @memberof Color\n* @example\nimport {RGB} from \"@daybrush/utils\";\n\nconsole.log(RGB); // \"rgb\"\n*/\nexport const RGB = \"rgb\";\n/**\n* get string \"rgba\"\n* @memberof Color\n* @example\nimport {RGBA} from \"@daybrush/utils\";\n\nconsole.log(RGBA); // \"rgba\"\n*/\nexport const RGBA = \"rgba\";\n/**\n* get string \"hsl\"\n* @memberof Color\n* @example\nimport {HSL} from \"@daybrush/utils\";\n\nconsole.log(HSL); // \"hsl\"\n*/\nexport const HSL = \"hsl\";\n/**\n* get string \"hsla\"\n* @memberof Color\n* @example\nimport {HSLA} from \"@daybrush/utils\";\n\nconsole.log(HSLA); // \"hsla\"\n*/\nexport const HSLA = \"hsla\";\n/**\n* gets an array of color models.\n* @memberof Color\n* @example\nimport {COLOR_MODELS} from \"@daybrush/utils\";\n\nconsole.log(COLOR_MODELS); // [\"rgb\", \"rgba\", \"hsl\", \"hsla\"];\n*/\nexport const COLOR_MODELS = [RGB, RGBA, HSL, HSLA];\n\n/**\n* get string \"function\"\n* @memberof Consts\n* @example\nimport {FUNCTION} from \"@daybrush/utils\";\n\nconsole.log(FUNCTION); // \"function\"\n*/\nexport const FUNCTION = \"function\";\n/**\n* get string \"property\"\n* @memberof Consts\n* @example\nimport {PROPERTY} from \"@daybrush/utils\";\n\nconsole.log(PROPERTY); // \"property\"\n*/\nexport const PROPERTY = \"property\";\n/**\n* get string \"array\"\n* @memberof Consts\n* @example\nimport {ARRAY} from \"@daybrush/utils\";\n\nconsole.log(ARRAY); // \"array\"\n*/\nexport const ARRAY = \"array\";\n/**\n* get string \"object\"\n* @memberof Consts\n* @example\nimport {OBJECT} from \"@daybrush/utils\";\n\nconsole.log(OBJECT); // \"object\"\n*/\nexport const OBJECT = \"object\";\n/**\n* get string \"string\"\n* @memberof Consts\n* @example\nimport {STRING} from \"@daybrush/utils\";\n\nconsole.log(STRING); // \"string\"\n*/\nexport const STRING = \"string\";\n/**\n* get string \"number\"\n* @memberof Consts\n* @example\nimport {NUMBER} from \"@daybrush/utils\";\n\nconsole.log(NUMBER); // \"number\"\n*/\nexport const NUMBER = \"number\";\n/**\n* get string \"undefined\"\n* @memberof Consts\n* @example\nimport {UNDEFINED} from \"@daybrush/utils\";\n\nconsole.log(UNDEFINED); // \"undefined\"\n*/\nexport const UNDEFINED = \"undefined\";\n\n/**\n* Check whether the environment is window or node.js.\n* @memberof Consts\n* @example\nimport {IS_WINDOW} from \"@daybrush/utils\";\n\nconsole.log(IS_WINDOW); // false in node.js\nconsole.log(IS_WINDOW); // true in browser\n*/\nexport const IS_WINDOW = typeof window !== UNDEFINED;\n\n/**\n* Check whether the environment is window or node.js.\n* @memberof Consts\n* @name document\n* @example\nimport {IS_WINDOW} from \"@daybrush/utils\";\n\nconsole.log(IS_WINDOW); // false in node.js\nconsole.log(IS_WINDOW); // true in browser\n*/\nconst doc = (typeof document !== UNDEFINED && document) as Document; // FIXME: this type maybe false\n\nexport {doc as document};\n\nconst prefixes: string[] = [\"webkit\", \"ms\", \"moz\", \"o\"];\n\n/**\n * @namespace CrossBrowser\n */\n\n/**\n* Get a CSS property with a vendor prefix that supports cross browser.\n* @function\n* @param {string} property - A CSS property\n* @return {string} CSS property with cross-browser vendor prefix\n* @memberof CrossBrowser\n* @example\nimport {getCrossBrowserProperty} from \"@daybrush/utils\";\n\nconsole.log(getCrossBrowserProperty(\"transform\")); // \"transform\", \"-ms-transform\", \"-webkit-transform\"\nconsole.log(getCrossBrowserProperty(\"filter\")); // \"filter\", \"-webkit-filter\"\n*/\nexport const getCrossBrowserProperty = /*#__PURE__*/(property: string) => {\n if (!doc) {\n return \"\";\n }\n const styles = (doc.body || doc.documentElement).style as any;\n const length = prefixes.length;\n\n if (typeof styles[property] !== UNDEFINED) {\n return property;\n }\n for (let i = 0; i < length; ++i) {\n const name = `-${prefixes[i]}-${property}`;\n\n if (typeof styles[name] !== UNDEFINED) {\n return name;\n }\n }\n return \"\";\n};\n\n/**\n* get string \"transfrom\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {TRANSFORM} from \"@daybrush/utils\";\n\nconsole.log(TRANSFORM); // \"transform\", \"-ms-transform\", \"-webkit-transform\"\n*/\nexport const TRANSFORM = /*#__PURE__*/getCrossBrowserProperty(\"transform\");\n/**\n* get string \"filter\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {FILTER} from \"@daybrush/utils\";\n\nconsole.log(FILTER); // \"filter\", \"-ms-filter\", \"-webkit-filter\"\n*/\nexport const FILTER = /*#__PURE__*/getCrossBrowserProperty(\"filter\");\n/**\n* get string \"animation\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {ANIMATION} from \"@daybrush/utils\";\n\nconsole.log(ANIMATION); // \"animation\", \"-ms-animation\", \"-webkit-animation\"\n*/\nexport const ANIMATION = /*#__PURE__*/getCrossBrowserProperty(\"animation\");\n/**\n* get string \"keyframes\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {KEYFRAMES} from \"@daybrush/utils\";\n\nconsole.log(KEYFRAMES); // \"keyframes\", \"-ms-keyframes\", \"-webkit-keyframes\"\n*/\nexport const KEYFRAMES = /*#__PURE__*/ANIMATION.replace(\"animation\", \"keyframes\");\n\nexport const OPEN_CLOSED_CHARACTERS: OpenCloseCharacter[] = [\n { open: \"(\", close: \")\" },\n { open: `\"`, close: `\"`},\n { open: `'`, close: `'`},\n { open: `\\\\\"`, close: `\\\\\"`},\n { open: `\\\\'`, close: `\\\\'`},\n];\nexport const TINY_NUM = 0.0000001;\nexport const REVERSE_TINY_NUM = 1 / TINY_NUM;\nexport const DEFAULT_UNIT_PRESETS: IObject<(pos: number, size?: number) => number> = {\n \"cm\": pos => pos * 96 / 2.54,\n \"mm\": pos => pos * 96 / 254,\n \"in\": pos => pos * 96,\n \"pt\": pos => pos * 96 / 72,\n \"pc\": pos => pos * 96 / 6,\n \"%\": (pos, size) => pos * size! / 100,\n \"vw\": (pos, size = window.innerWidth) => pos / 100 * size,\n \"vh\": (pos, size = window.innerHeight) => pos / 100 * size,\n \"vmax\": (pos, size = Math.max(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n \"vmin\": (pos, size = Math.min(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n};\n","import {\n UNDEFINED, STRING,\n OBJECT, FUNCTION,\n IS_WINDOW, OPEN_CLOSED_CHARACTERS, NUMBER,\n DEFAULT_UNIT_PRESETS,\n TINY_NUM\n} from \"./consts\";\nimport {\n FlattedElement,\n IArrayFormat, IObject, OpenCloseCharacter,\n SplitOptions,\n} from \"./types\";\n/**\n* @namespace\n* @name Utils\n*/\n\n/**\n * Returns the inner product of two numbers(`a1`, `a2`) by two criteria(`b1`, `b2`).\n * @memberof Utils\n * @param - The first number\n * @param - The second number\n * @param - The first number to base on the inner product\n * @param - The second number to base on the inner product\n * @return - Returns the inner product\nimport { dot } from \"@daybrush/utils\";\n\nconsole.log(dot(0, 15, 2, 3)); // 6\nconsole.log(dot(5, 15, 2, 3)); // 9\nconsole.log(dot(5, 15, 1, 1)); // 10\n */\nexport function dot(a1: number, a2: number, b1: number, b2: number) {\n return (a1 * b2 + a2 * b1) / (b1 + b2);\n}\n/**\n* Check the type that the value is undefined.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {boolean} true if the type is correct, false otherwise\n* @example\nimport {isUndefined} from \"@daybrush/utils\";\n\nconsole.log(isUndefined(undefined)); // true\nconsole.log(isUndefined(\"\")); // false\nconsole.log(isUndefined(1)); // false\nconsole.log(isUndefined(null)); // false\n*/\nexport function isUndefined(value: any): value is undefined {\n return (typeof value === UNDEFINED);\n}\n/**\n* Check the type that the value is object.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isObject} from \"@daybrush/utils\";\n\nconsole.log(isObject({})); // true\nconsole.log(isObject(undefined)); // false\nconsole.log(isObject(\"\")); // false\nconsole.log(isObject(null)); // false\n*/\nexport function isObject(value: any): value is IObject {\n return value && (typeof value === OBJECT);\n}\n/**\n* Check the type that the value is isArray.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isArray} from \"@daybrush/utils\";\n\nconsole.log(isArray([])); // true\nconsole.log(isArray({})); // false\nconsole.log(isArray(undefined)); // false\nconsole.log(isArray(null)); // false\n*/\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value);\n}\n/**\n* Check the type that the value is string.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isString} from \"@daybrush/utils\";\n\nconsole.log(isString(\"1234\")); // true\nconsole.log(isString(undefined)); // false\nconsole.log(isString(1)); // false\nconsole.log(isString(null)); // false\n*/\nexport function isString(value: any): value is string {\n return typeof value === STRING;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === NUMBER;\n}\n\n/**\n* Check the type that the value is function.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isFunction} from \"@daybrush/utils\";\n\nconsole.log(isFunction(function a() {})); // true\nconsole.log(isFunction(() => {})); // true\nconsole.log(isFunction(\"1234\")); // false\nconsole.log(isFunction(1)); // false\nconsole.log(isFunction(null)); // false\n*/\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === FUNCTION;\n}\nfunction isEqualSeparator(\n character: string,\n separator: string,\n) {\n const isCharacterSpace = character === \"\" || character == \" \";\n const isSeparatorSpace = separator === \"\" || separator == \" \";\n\n return (isSeparatorSpace && isCharacterSpace) || character === separator;\n}\nfunction findOpen(\n openCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n const isIgnore = findIgnore(openCharacter, texts, index);\n\n if (!isIgnore) {\n return findClose(openCharacter, texts, index + 1, length, openCloseCharacters);\n }\n return index;\n}\nfunction findIgnore(\n character: OpenCloseCharacter,\n texts: string[],\n index: number,\n) {\n if (!character.ignore) {\n return null;\n }\n const otherText = texts.slice(Math.max(index - 3, 0), index + 3).join(\"\");\n\n return new RegExp(character.ignore).exec(otherText);\n\n}\nfunction findClose(\n closeCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n for (let i = index; i < length; ++i) {\n const character = texts[i].trim();\n\n if (character === closeCharacter.close && !findIgnore(closeCharacter, texts, i)) {\n return i;\n }\n let nextIndex = i;\n // re open\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n }\n if (nextIndex === -1) {\n break;\n }\n i = nextIndex;\n }\n return -1;\n}\n\nexport function splitText(\n text: string,\n splitOptions: string | SplitOptions,\n): string[] {\n const {\n separator = \",\",\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose = isSeparateOnlyOpenClose,\n openCloseCharacters = OPEN_CLOSED_CHARACTERS,\n } = isString(splitOptions) ? {\n separator: splitOptions,\n } as SplitOptions : splitOptions;\n const openClosedText = openCloseCharacters.map(({ open, close }) => {\n if (open === close) {\n return open;\n }\n return `${open}|${close}`;\n }).join(\"|\");\n const regexText = `(\\\\s*${separator}\\\\s*|${openClosedText}|\\\\s+)`;\n const regex = new RegExp(regexText, \"g\");\n const texts = text.split(regex).filter(Boolean);\n const length = texts.length;\n const values: string[] = [];\n let tempValues: string[] = [];\n\n function resetTemp() {\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n tempValues = [];\n\n return true;\n }\n return false;\n }\n for (let i = 0; i < length; ++i) {\n const character = texts[i].trim();\n let nextIndex = i;\n\n\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n const closeCharacter = find(openCloseCharacters, ({ close }) => close === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n\n if (nextIndex !== -1 && isSeparateOpenClose) {\n if (resetTemp() && isSeparateFirst) {\n break;\n }\n values.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n } else if (closeCharacter && !findIgnore(closeCharacter, texts, i)) {\n const nextOpenCloseCharacters = [...openCloseCharacters];\n\n nextOpenCloseCharacters.splice(openCloseCharacters.indexOf(closeCharacter), 1);\n\n return splitText(\n text,\n {\n separator,\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose,\n openCloseCharacters: nextOpenCloseCharacters,\n });\n } else if (isEqualSeparator(character, separator) && !isSeparateOnlyOpenClose) {\n resetTemp();\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n\n if (nextIndex === -1) {\n nextIndex = length - 1;\n }\n tempValues.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n }\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n }\n return values;\n}\n\n/**\n* divide text by space.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {spliceSpace} from \"@daybrush/utils\";\n\nconsole.log(splitSpace(\"a b c d e f g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitSpace(\"'a,b' c 'd,e' f g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitSpace(text: string) {\n // divide comma(space)\n return splitText(text, \"\");\n}\n\n/**\n* divide text by comma.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {splitComma} from \"@daybrush/utils\";\n\nconsole.log(splitComma(\"a,b,c,d,e,f,g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitComma(\"'a,b',c,'d,e',f,g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitComma(text: string): string[] {\n // divide comma(,)\n // \"[^\"]*\"|'[^']*'\n return splitText(text, \",\");\n}\n/**\n* divide text by bracket \"(\", \")\".\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {object} divided texts\n* @example\nimport {splitBracket} from \"@daybrush/utils\";\n\nconsole.log(splitBracket(\"a(1, 2)\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"\"}\nconsole.log(splitBracket(\"a(1, 2)b\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"b\"}\n*/\nexport function splitBracket(text: string) {\n const matches = (/([^(]*)\\(([\\s\\S]*)\\)([\\s\\S]*)/g).exec(text);\n\n if (!matches || matches.length < 4) {\n return {};\n } else {\n return { prefix: matches[1], value: matches[2], suffix: matches[3] };\n }\n}\n/**\n* divide text by number and unit.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {} divided texts\n* @example\nimport {splitUnit} from \"@daybrush/utils\";\n\nconsole.log(splitUnit(\"10px\"));\n// {prefix: \"\", value: 10, unit: \"px\"}\nconsole.log(splitUnit(\"-10px\"));\n// {prefix: \"\", value: -10, unit: \"px\"}\nconsole.log(splitUnit(\"a10%\"));\n// {prefix: \"a\", value: 10, unit: \"%\"}\n*/\nexport function splitUnit(text: string): { prefix: string, unit: string, value: number } {\n const matches = /^([^\\d|e|\\-|\\+]*)((?:\\d|\\.|-|e-|e\\+)+)(\\S*)$/g.exec(text);\n\n if (!matches) {\n return { prefix: \"\", unit: \"\", value: NaN };\n }\n const prefix = matches[1];\n const value = matches[2];\n const unit = matches[3];\n\n return { prefix, unit, value: parseFloat(value) };\n}\n\n/**\n* transform strings to camel-case\n* @memberof Utils\n* @param {String} text - string\n* @return {String} camel-case string\n* @example\nimport {camelize} from \"@daybrush/utils\";\n\nconsole.log(camelize(\"transform-origin\")); // transformOrigin\nconsole.log(camelize(\"abcd_efg\")); // abcdEfg\nconsole.log(camelize(\"abcd efg\")); // abcdEfg\n*/\nexport function camelize(str: string) {\n return str.replace(/[\\s-_]([a-z])/g, (all, letter) => letter.toUpperCase());\n}\n/**\n* transform a camelized string into a lowercased string.\n* @memberof Utils\n* @param {string} text - a camel-cased string\n* @param {string} [separator=\"-\"] - a separator\n* @return {string} a lowercased string\n* @example\nimport {decamelize} from \"@daybrush/utils\";\n\nconsole.log(decamelize(\"transformOrigin\")); // transform-origin\nconsole.log(decamelize(\"abcdEfg\", \"_\")); // abcd_efg\n*/\nexport function decamelize(str: string, separator: string = \"-\") {\n return str.replace(/([a-z])([A-Z])/g, (all, letter, letter2) => `${letter}${separator}${letter2.toLowerCase()}`);\n}\n\n/**\n* transforms something in an array into an array.\n* @memberof Utils\n* @param - Array form\n* @return an array\n* @example\nimport {toArray} from \"@daybrush/utils\";\n\nconst arr1 = toArray(document.querySelectorAll(\".a\")); // Element[]\nconst arr2 = toArray(document.querySelectorAll(\".a\")); // HTMLElement[]\n*/\nexport function toArray(value: IArrayFormat): T[] {\n return [].slice.call(value);\n}\n\n/**\n* Date.now() method\n* @memberof CrossBrowser\n* @return {number} milliseconds\n* @example\nimport {now} from \"@daybrush/utils\";\n\nconsole.log(now()); // 12121324241(milliseconds)\n*/\nexport function now() {\n return Date.now ? Date.now() : new Date().getTime();\n}\n\n/**\n* Returns the index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findIndex } from \"@daybrush/utils\";\n\nfindIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = 0; i < length; ++i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the reverse direction index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLastIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findLastIndex } from \"@daybrush/utils\";\n\nfindLastIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findLastIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = length - 1; i >= 0; --i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the value of the reverse direction element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLast` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function findLast(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findLastIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n/**\n* Returns the value of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `find` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function find(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n\n/**\n* window.requestAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {FrameRequestCallback} callback - The function to call when it's time to update your animation for the next repaint.\n* @return {number} id\n* @example\nimport {requestAnimationFrame} from \"@daybrush/utils\";\n\nrequestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n*/\nexport const requestAnimationFrame = /*#__PURE__*/(() => {\n const firstTime = now();\n\n const raf = IS_WINDOW\n && (window.requestAnimationFrame || (window as any).webkitRequestAnimationFrame\n || (window as any).mozRequestAnimationFrame || (window as any).msRequestAnimationFrame);\n\n return raf ? (raf.bind(window) as (callback: FrameRequestCallback) => number) : ((callback: FrameRequestCallback) => {\n const currTime = now();\n const id = setTimeout(() => {\n callback(currTime - firstTime);\n }, 1000 / 60);\n\n return id as any as number;\n });\n})();\n\n/**\n* window.cancelAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {number} handle - the id obtained through requestAnimationFrame method\n* @return {void}\n* @example\nimport { requestAnimationFrame, cancelAnimationFrame } from \"@daybrush/utils\";\n\nconst id = requestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n\ncancelAnimationFrame(id);\n*/\nexport const cancelAnimationFrame = /*#__PURE__*/(() => {\n const caf = IS_WINDOW\n && (window.cancelAnimationFrame || (window as any).webkitCancelAnimationFrame\n || (window as any).mozCancelAnimationFrame || (window as any).msCancelAnimationFrame);\n\n return caf\n ? caf.bind(window) as (handle: number) => void\n : ((handle: number) => { clearTimeout(handle); });\n})();\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getKeys(obj: IObject): string[] {\n return Object.keys(obj);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getValues(obj: IObject): any[] {\n const keys = getKeys(obj);\n\n return keys.map(key => obj[key]);\n}\n/**\n* @function\n* @memberof Utils\n*/\nexport function getEntries(obj: IObject): [string, any][] {\n const keys = getKeys(obj);\n\n return keys.map(key => [key, obj[key]]);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function sortOrders(keys: Array, orders: Array = []) {\n keys.sort((a, b) => {\n const index1 = orders.indexOf(a);\n const index2 = orders.indexOf(b);\n\n if (index2 === -1 && index1 === -1) {\n return 0;\n }\n if (index1 === -1) {\n return 1;\n }\n if (index2 === -1) {\n return -1;\n }\n return index1 - index2;\n });\n}\n\n/**\n* convert unit size to px size\n* @function\n* @memberof Utils\n*/\nexport function convertUnitSize(pos: string, size: number | IObject<((pos: number) => number) | number>) {\n const { value, unit } = splitUnit(pos);\n\n if (isObject(size)) {\n const sizeFunction = size[unit];\n if (sizeFunction) {\n if (isFunction(sizeFunction)) {\n return sizeFunction(value);\n } else if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value, sizeFunction);\n }\n }\n } else if (unit === \"%\") {\n return value * size / 100;\n }\n if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value);\n }\n return value;\n}\n\n/**\n* calculate between min, max\n* @function\n* @memberof Utils\n*/\nexport function between(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(value, max));\n}\n\nexport function checkBoundSize(targetSize: number[], compareSize: number[], isMax: boolean, ratio = targetSize[0] / targetSize[1]) {\n return [\n [throttle(compareSize[0], TINY_NUM), throttle(compareSize[0] / ratio, TINY_NUM)],\n [throttle(compareSize[1] * ratio, TINY_NUM), throttle(compareSize[1], TINY_NUM)],\n ].filter(size => size.every((value, i) => {\n const defaultSize = compareSize[i];\n const throttledSize = throttle(defaultSize, TINY_NUM);\n\n return isMax ? value <= defaultSize || value <= throttledSize : value >= defaultSize || value >= throttledSize;\n }))[0] || targetSize;\n}\n\n/**\n* calculate bound size\n* @function\n* @memberof Utils\n*/\nexport function calculateBoundSize(\n size: number[],\n minSize: number[],\n maxSize: number[],\n keepRatio?: number | boolean,\n): number[] {\n if (!keepRatio) {\n return size.map((value, i) => between(value, minSize[i], maxSize[i]));\n }\n let [width, height] = size;\n\n const ratio = keepRatio === true ? width / height : keepRatio;\n // width : height = minWidth : minHeight;\n const [minWidth, minHeight] = checkBoundSize(size, minSize, false, ratio);\n const [maxWidth, maxHeight] = checkBoundSize(size, maxSize, true, ratio);\n\n if (width < minWidth || height < minHeight) {\n width = minWidth;\n height = minHeight;\n } else if (width > maxWidth || height > maxHeight) {\n width = maxWidth;\n height = maxHeight;\n }\n return [width, height];\n}\n\n\n/**\n* Add all the numbers.\n* @function\n* @memberof Utils\n*/\nexport function sum(nums: number[]): number {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return total;\n}\n\n/**\n* Average all numbers.\n* @function\n* @memberof Utils\n*/\nexport function average(nums: number[]) {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return length ? total / length : 0;\n}\n/**\n* Get the angle of two points. (0 <= rad < 359)\n* @function\n* @memberof Utils\n*/\nexport function getRad(pos1: number[], pos2: number[]): number {\n const distX = pos2[0] - pos1[0];\n const distY = pos2[1] - pos1[1];\n const rad = Math.atan2(distY, distX);\n\n return rad >= 0 ? rad : rad + Math.PI * 2;\n}\n/**\n* Get the average point of all points.\n* @function\n* @memberof Utils\n*/\nexport function getCenterPoint(points: number[][]): number[] {\n return [0, 1].map(i => average(points.map(pos => pos[i])));\n}\n/**\n* Gets the direction of the shape.\n* @function\n* @memberof Utils\n*/\nexport function getShapeDirection(points: number[][]): 1 | -1 {\n const center = getCenterPoint(points);\n const pos1Rad = getRad(center, points[0]);\n const pos2Rad = getRad(center, points[1]);\n\n return (pos1Rad < pos2Rad && pos2Rad - pos1Rad < Math.PI) || (pos1Rad > pos2Rad && pos2Rad - pos1Rad < -Math.PI)\n ? 1 : -1;\n}\n\n/**\n* Get the distance between two points.\n* @function\n* @memberof Utils\n*/\nexport function getDist(a: number[], b?: number[]) {\n return Math.sqrt(Math.pow((b ? b[0] : 0) - a[0], 2) + Math.pow((b ? b[1] : 0) - a[1], 2));\n}\n\n/**\n* throttle number depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttle(num: number, unit?: number) {\n if (!unit) {\n return num;\n }\n const reverseUnit = 1 / unit;\n return Math.round(num / unit) / reverseUnit;\n}\n\n/**\n* throttle number array depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttleArray(nums: number[], unit?: number) {\n nums.forEach((_, i) => {\n nums[i] = throttle(nums[i], unit);\n });\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function counter(num: number): number[] {\n const nums: number[] = [];\n\n for (let i = 0; i < num; ++i) {\n nums.push(i);\n }\n\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function replaceOnce(text: string, fromText: RegExp | string, toText: string | ((...args: any[]) => string)): string {\n let isOnce = false;\n return text.replace(fromText, (...args: any[]) => {\n if (isOnce) {\n return args[0];\n }\n isOnce = true;\n return isString(toText) ? toText : toText(...args);\n });\n}\n\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function flat(arr: Type[][]): Type[] {\n return arr.reduce((prev, cur) => {\n return prev.concat(cur);\n }, []);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function deepFlat(arr: T): Array> {\n return arr.reduce((prev, cur) => {\n if (isArray(cur)) {\n prev.push(...deepFlat(cur));\n } else {\n prev.push(cur);\n }\n return prev;\n }, [] as any[]);\n}\n","import { RGB, RGBA, HSL, HSLA } from \"./consts\";\nimport { splitBracket, splitComma } from \"./utils\";\n\n/**\n* @namespace\n* @name Color\n*/\n\n/**\n* Remove the # from the hex color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} hex color\n* @example\nimport {cutHex} from \"@daybrush/utils\";\n\nconsole.log(cutHex(\"#000000\")) // \"000000\"\n*/\nexport function cutHex(hex: string) {\n return hex.replace(\"#\", \"\");\n}\n/**\n* convert hex color to rgb color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} rgb color\n* @example\nimport {hexToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hexToRGBA(\"#00000005\"));\n// [0, 0, 0, 1]\nconsole.log(hexToRGBA(\"#201045\"));\n// [32, 16, 69, 1]\n*/\nexport function hexToRGBA(hex: string): [number, number, number, number] {\n const h = cutHex(hex);\n const r = parseInt(h.substring(0, 2), 16);\n const g = parseInt(h.substring(2, 4), 16);\n const b = parseInt(h.substring(4, 6), 16);\n let a = parseInt(h.substring(6, 8), 16) / 255;\n\n if (isNaN(a)) {\n a = 1;\n }\n return [r, g, b, a];\n}\n\n/**\n* convert 3(or 4)-digit hex color to 6(or 8)-digit hex color.\n* @memberof Color\n* @param {} hex - 3(or 4)-digit hex color\n* @return {} 6(or 8)-digit hex color\n* @example\nimport {toFullHex} from \"@daybrush/utils\";\n\nconsole.log(toFullHex(\"#123\")); // \"#112233\"\nconsole.log(toFullHex(\"#123a\")); // \"#112233aa\"\n*/\nexport function toFullHex(h: string): string {\n const r = h.charAt(1);\n const g = h.charAt(2);\n const b = h.charAt(3);\n const a = h.charAt(4);\n const arr = [\"#\", r, r, g, g, b, b, a, a];\n\n return arr.join(\"\");\n}\n/**\n* convert hsl color to rgba color.\n* @memberof Color\n* @param {} hsl - hsl color(hue: 0 ~ 360, saturation: 0 ~ 1, lightness: 0 ~ 1, alpha: 0 ~ 1)\n* @return {} rgba color\n* @example\nimport {hslToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hslToRGBA([150, 0.5, 0.4]));\n// [51, 153, 102, 1]\n*/\nexport function hslToRGBA(hsl: readonly [number, number, number, number?]): [number, number, number, number] {\n let h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n\n if (h < 0) {\n h += Math.floor((Math.abs(h) + 360) / 360) * 360;\n }\n h %= 360;\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let rgb: [number, number, number];\n\n if (h < 60) {\n rgb = [c, x, 0];\n } else if (h < 120) {\n rgb = [x, c, 0];\n } else if (h < 180) {\n rgb = [0, c, x];\n } else if (h < 240) {\n rgb = [0, x, c];\n } else if (h < 300) {\n rgb = [x, 0, c];\n } else if (h < 360) {\n rgb = [c, 0, x];\n } else {\n rgb = [0, 0, 0];\n }\n\n return [\n Math.round((rgb[0] + m) * 255),\n Math.round((rgb[1] + m) * 255),\n Math.round((rgb[2] + m) * 255),\n hsl[3] ?? 1,\n ];\n}\n/**\n* convert string to rgba color.\n* @memberof Color\n* @param {} - 3-hex(#000), 4-hex(#0000) 6-hex(#000000), 8-hex(#00000000) or RGB(A), or HSL(A)\n* @return {} rgba color\n* @example\nimport {stringToRGBA} from \"@daybrush/utils\";\n\nconsole.log(stringToRGBA(\"#000000\")); // [0, 0, 0, 1]\nconsole.log(stringToRGBA(\"rgb(100, 100, 100)\")); // [100, 100, 100, 1]\nconsole.log(stringToRGBA(\"hsl(150, 0.5, 0.4)\")); // [51, 153, 102, 1]\n*/\nexport function stringToRGBA(color: string): [number, number, number, number] {\n if (color.charAt(0) === \"#\") {\n if (color.length === 4 || color.length === 5) {\n return hexToRGBA(toFullHex(color));\n } else {\n return hexToRGBA(color);\n }\n } else if (color.indexOf(\"(\") !== -1) {\n // in bracket.\n const {prefix, value} = splitBracket(color);\n\n if (!prefix || !value) {\n return undefined as never;\n }\n const arr = splitComma(value);\n const colorArr: [number, number, number, number] = [0, 0, 0, 1];\n const length = arr.length;\n\n switch (prefix) {\n case RGB:\n case RGBA:\n for (let i = 0; i < length; ++i) {\n colorArr[i] = parseFloat(arr[i]);\n }\n return colorArr;\n case HSL:\n case HSLA:\n for (let i = 0; i < length; ++i) {\n if (arr[i].indexOf(\"%\") !== -1) {\n colorArr[i] = parseFloat(arr[i]) / 100;\n } else {\n colorArr[i] = parseFloat(arr[i]);\n }\n }\n // hsl, hsla to rgba\n return hslToRGBA(colorArr);\n }\n }\n return undefined as never;\n}\n","import { document } from \"./consts\";\nimport { IObject, IEventMap } from \"./types\";\n\n/**\n * @namespace DOM\n */\n\nexport function $(selectors: K, multi: true):\n NodeListOf;\nexport function $(selectors: K, multi: true): NodeListOf;\nexport function $(selectors: string, multi: true): NodeListOf;\n\nexport function $(selectors: K, multi?: false): HTMLElementTagNameMap[K] | null;\nexport function $(selectors: K, multi?: false): SVGElementTagNameMap[K] | null;\nexport function $(selectors: string, multi?: false): E | null;\n/**\n * Returns all element descendants of node that\n * match selectors.\n */\n\n/**\n * Checks if the specified class value exists in the element's class attribute.\n * @memberof DOM\n * @param - A DOMString containing one or more selectors to match\n * @param - If multi is true, a DOMString containing one or more selectors to match against.\n * @example\nimport {$} from \"@daybrush/utils\";\n\nconsole.log($(\"div\")); // div element\nconsole.log($(\"div\", true)); // [div, div] elements\n*/\nexport function $(selectors: string, multi?: boolean): E | NodeListOf | null {\n return multi ? document.querySelectorAll(selectors) : document.querySelector(selectors);\n}\n\n/**\n* Checks if the specified class value exists in the element's class attribute.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to search\n* @return {boolean} return false if the class is not found.\n* @example\nimport {hasClass} from \"@daybrush/utils\";\n\nconsole.log(hasClass(element, \"start\")); // true or false\n*/\nexport function hasClass(element: Element, className: string) {\n if (element.classList) {\n return element.classList.contains(className);\n }\n return !!element.className.match(new RegExp(`(\\\\s|^)${className}(\\\\s|$)`));\n}\n\n/**\n* Add the specified class value. If these classe already exist in the element's class attribute they are ignored.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to add\n* @example\nimport {addClass} from \"@daybrush/utils\";\n\naddClass(element, \"start\");\n*/\nexport function addClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.add(className);\n } else {\n element.className += ` ${className}`;\n }\n}\n\n/**\n* Removes the specified class value.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to remove\n* @example\nimport {removeClass} from \"@daybrush/utils\";\n\nremoveClass(element, \"start\");\n*/\nexport function removeClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.remove(className);\n } else {\n const reg = new RegExp(`(\\\\s|^)${className}(\\\\s|$)`);\n\n element.className = element.className.replace(reg, \" \");\n }\n}\n\n/**\n* Gets the CSS properties from the element.\n* @memberof DOM\n* @param elements - elements\n* @param properites - the CSS properties\n* @return returns CSS properties and values.\n* @example\nimport {fromCSS} from \"@daybrush/utils\";\n\nconsole.log(fromCSS(element, [\"left\", \"opacity\", \"top\"])); // {\"left\": \"10px\", \"opacity\": 1, \"top\": \"10px\"}\n*/\nexport function fromCSS(\n elements: Element | Element[] | NodeListOf, properties: string[]): IObject {\n if (!elements || !properties || !properties.length) {\n return {};\n }\n let element;\n\n if (elements instanceof Element) {\n element = elements;\n } else if (elements.length) {\n element = elements[0];\n } else {\n return {};\n }\n const cssObject: IObject = {};\n const styles = window.getComputedStyle(element) as any;\n const length = properties.length;\n\n for (let i = 0; i < length; ++i) {\n cssObject[properties[i]] = styles[properties[i]];\n }\n return cssObject;\n}\n\nexport function addEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;\n/**\n* Sets up a function that will be called whenever the specified event is delivered to the target\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The object which receives a notification (an object that implements the Event interface) when an event of the specified type occurs\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent} from \"@daybrush/utils\";\n\naddEvent(el, \"click\", e => {\n console.log(e);\n});\n*/\nexport function addEvent(\n el: EventTarget,\n type: string, listener: (e: Event) => void,\n options?: boolean | AddEventListenerOptions) {\n el.addEventListener(type, listener, options);\n}\n\nexport function removeEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | EventListenerOptions): void;\n/**\n* removes from the EventTarget an event listener previously registered with EventTarget.addEventListener()\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The EventListener function of the event handler to remove from the event target.\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent, removeEvent} from \"@daybrush/utils\";\nconst listener = e => {\n console.log(e);\n};\naddEvent(el, \"click\", listener);\nremoveEvent(el, \"click\", listener);\n*/\nexport function removeEvent(\n el: EventTarget, type: string,\n listener: (e: Event) => void,\n options?: boolean | EventListenerOptions,\n) {\n el.removeEventListener(type, listener, options);\n}\n"],"names":["RGB","RGBA","HSL","HSLA","COLOR_MODELS","FUNCTION","PROPERTY","ARRAY","OBJECT","STRING","NUMBER","UNDEFINED","IS_WINDOW","window","doc","document","prefixes","getCrossBrowserProperty","property","styles","body","documentElement","style","length","i","name","TRANSFORM","FILTER","ANIMATION","KEYFRAMES","replace","OPEN_CLOSED_CHARACTERS","open","close","TINY_NUM","REVERSE_TINY_NUM","DEFAULT_UNIT_PRESETS","pos","size","innerWidth","innerHeight","Math","max","min","dot","a1","a2","b1","b2","isUndefined","value","isObject","isArray","Array","isString","isNumber","isFunction","isEqualSeparator","character","separator","isCharacterSpace","isSeparatorSpace","findOpen","openCharacter","texts","index","openCloseCharacters","isIgnore","findIgnore","findClose","ignore","otherText","slice","join","RegExp","exec","closeCharacter","trim","nextIndex","find","_a","splitText","text","splitOptions","_b","isSeparateFirst","isSeparateOnlyOpenClose","_c","isSeparateOpenClose","_d","openClosedText","map","regexText","regex","split","filter","Boolean","values","tempValues","resetTemp","push","nextOpenCloseCharacters","splice","indexOf","splitSpace","splitComma","splitBracket","matches","prefix","suffix","splitUnit","unit","NaN","parseFloat","camelize","str","all","letter","toUpperCase","decamelize","letter2","toLowerCase","toArray","call","now","Date","getTime","findIndex","arr","callback","defaultIndex","findLastIndex","findLast","defalutValue","requestAnimationFrame","firstTime","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","bind","currTime","id","setTimeout","cancelAnimationFrame","caf","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","handle","clearTimeout","getKeys","obj","Object","keys","getValues","key","getEntries","sortOrders","orders","sort","a","b","index1","index2","convertUnitSize","sizeFunction","between","checkBoundSize","targetSize","compareSize","isMax","ratio","throttle","every","defaultSize","throttledSize","calculateBoundSize","minSize","maxSize","keepRatio","width","height","minWidth","minHeight","maxWidth","maxHeight","sum","nums","total","average","getRad","pos1","pos2","distX","distY","rad","atan2","PI","getCenterPoint","points","getShapeDirection","center","pos1Rad","pos2Rad","getDist","sqrt","pow","num","reverseUnit","round","throttleArray","forEach","_","counter","replaceOnce","fromText","toText","isOnce","_i","args","flat","reduce","prev","cur","concat","deepFlat","cutHex","hex","hexToRGBA","h","r","parseInt","substring","g","isNaN","toFullHex","charAt","hslToRGBA","hsl","s","l","floor","abs","c","x","m","rgb","stringToRGBA","color","undefined","colorArr","$","selectors","multi","querySelectorAll","querySelector","hasClass","element","className","classList","contains","match","addClass","add","removeClass","remove","reg","fromCSS","elements","properties","Element","cssObject","getComputedStyle","addEvent","el","type","listener","options","addEventListener","removeEvent","removeEventListener"],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils.js b/dist/utils.js new file mode 100644 index 0000000..7934165 --- /dev/null +++ b/dist/utils.js @@ -0,0 +1,1479 @@ +/* +Copyright (c) 2018 Daybrush +@name: @daybrush/utils +license: MIT +author: Daybrush +repository: https://github.com/daybrush/utils +@version 1.10.1 +*/ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.utils = factory()); +}(this, (function () { 'use strict'; + + /** + * @namespace + * @name Consts + */ + /** + * get string "rgb" + * @memberof Color + * @example + import {RGB} from "@daybrush/utils"; + + console.log(RGB); // "rgb" + */ + var RGB = "rgb"; + /** + * get string "rgba" + * @memberof Color + * @example + import {RGBA} from "@daybrush/utils"; + + console.log(RGBA); // "rgba" + */ + var RGBA = "rgba"; + /** + * get string "hsl" + * @memberof Color + * @example + import {HSL} from "@daybrush/utils"; + + console.log(HSL); // "hsl" + */ + var HSL = "hsl"; + /** + * get string "hsla" + * @memberof Color + * @example + import {HSLA} from "@daybrush/utils"; + + console.log(HSLA); // "hsla" + */ + var HSLA = "hsla"; + /** + * gets an array of color models. + * @memberof Color + * @example + import {COLOR_MODELS} from "@daybrush/utils"; + + console.log(COLOR_MODELS); // ["rgb", "rgba", "hsl", "hsla"]; + */ + var COLOR_MODELS = [RGB, RGBA, HSL, HSLA]; + /** + * get string "function" + * @memberof Consts + * @example + import {FUNCTION} from "@daybrush/utils"; + + console.log(FUNCTION); // "function" + */ + var FUNCTION = "function"; + /** + * get string "property" + * @memberof Consts + * @example + import {PROPERTY} from "@daybrush/utils"; + + console.log(PROPERTY); // "property" + */ + var PROPERTY = "property"; + /** + * get string "array" + * @memberof Consts + * @example + import {ARRAY} from "@daybrush/utils"; + + console.log(ARRAY); // "array" + */ + var ARRAY = "array"; + /** + * get string "object" + * @memberof Consts + * @example + import {OBJECT} from "@daybrush/utils"; + + console.log(OBJECT); // "object" + */ + var OBJECT = "object"; + /** + * get string "string" + * @memberof Consts + * @example + import {STRING} from "@daybrush/utils"; + + console.log(STRING); // "string" + */ + var STRING = "string"; + /** + * get string "number" + * @memberof Consts + * @example + import {NUMBER} from "@daybrush/utils"; + + console.log(NUMBER); // "number" + */ + var NUMBER = "number"; + /** + * get string "undefined" + * @memberof Consts + * @example + import {UNDEFINED} from "@daybrush/utils"; + + console.log(UNDEFINED); // "undefined" + */ + var UNDEFINED = "undefined"; + /** + * Check whether the environment is window or node.js. + * @memberof Consts + * @example + import {IS_WINDOW} from "@daybrush/utils"; + + console.log(IS_WINDOW); // false in node.js + console.log(IS_WINDOW); // true in browser + */ + var IS_WINDOW = typeof window !== UNDEFINED; + /** + * Check whether the environment is window or node.js. + * @memberof Consts + * @name document + * @example + import {IS_WINDOW} from "@daybrush/utils"; + + console.log(IS_WINDOW); // false in node.js + console.log(IS_WINDOW); // true in browser + */ + var doc = typeof document !== UNDEFINED && document; // FIXME: this type maybe false + var prefixes = ["webkit", "ms", "moz", "o"]; + /** + * @namespace CrossBrowser + */ + /** + * Get a CSS property with a vendor prefix that supports cross browser. + * @function + * @param {string} property - A CSS property + * @return {string} CSS property with cross-browser vendor prefix + * @memberof CrossBrowser + * @example + import {getCrossBrowserProperty} from "@daybrush/utils"; + + console.log(getCrossBrowserProperty("transform")); // "transform", "-ms-transform", "-webkit-transform" + console.log(getCrossBrowserProperty("filter")); // "filter", "-webkit-filter" + */ + var getCrossBrowserProperty = /*#__PURE__*/function (property) { + if (!doc) { + return ""; + } + var styles = (doc.body || doc.documentElement).style; + var length = prefixes.length; + if (typeof styles[property] !== UNDEFINED) { + return property; + } + for (var i = 0; i < length; ++i) { + var name = "-" + prefixes[i] + "-" + property; + if (typeof styles[name] !== UNDEFINED) { + return name; + } + } + return ""; + }; + /** + * get string "transfrom" with the vendor prefix. + * @memberof CrossBrowser + * @example + import {TRANSFORM} from "@daybrush/utils"; + + console.log(TRANSFORM); // "transform", "-ms-transform", "-webkit-transform" + */ + var TRANSFORM = /*#__PURE__*/getCrossBrowserProperty("transform"); + /** + * get string "filter" with the vendor prefix. + * @memberof CrossBrowser + * @example + import {FILTER} from "@daybrush/utils"; + + console.log(FILTER); // "filter", "-ms-filter", "-webkit-filter" + */ + var FILTER = /*#__PURE__*/getCrossBrowserProperty("filter"); + /** + * get string "animation" with the vendor prefix. + * @memberof CrossBrowser + * @example + import {ANIMATION} from "@daybrush/utils"; + + console.log(ANIMATION); // "animation", "-ms-animation", "-webkit-animation" + */ + var ANIMATION = /*#__PURE__*/getCrossBrowserProperty("animation"); + /** + * get string "keyframes" with the vendor prefix. + * @memberof CrossBrowser + * @example + import {KEYFRAMES} from "@daybrush/utils"; + + console.log(KEYFRAMES); // "keyframes", "-ms-keyframes", "-webkit-keyframes" + */ + var KEYFRAMES = /*#__PURE__*/ANIMATION.replace("animation", "keyframes"); + var OPEN_CLOSED_CHARACTERS = [{ + open: "(", + close: ")" + }, { + open: "\"", + close: "\"" + }, { + open: "'", + close: "'" + }, { + open: "\\\"", + close: "\\\"" + }, { + open: "\\'", + close: "\\'" + }]; + var TINY_NUM = 0.0000001; + var REVERSE_TINY_NUM = 1 / TINY_NUM; + var DEFAULT_UNIT_PRESETS = { + "cm": function (pos) { + return pos * 96 / 2.54; + }, + "mm": function (pos) { + return pos * 96 / 254; + }, + "in": function (pos) { + return pos * 96; + }, + "pt": function (pos) { + return pos * 96 / 72; + }, + "pc": function (pos) { + return pos * 96 / 6; + }, + "%": function (pos, size) { + return pos * size / 100; + }, + "vw": function (pos, size) { + if (size === void 0) { + size = window.innerWidth; + } + return pos / 100 * size; + }, + "vh": function (pos, size) { + if (size === void 0) { + size = window.innerHeight; + } + return pos / 100 * size; + }, + "vmax": function (pos, size) { + if (size === void 0) { + size = Math.max(window.innerWidth, window.innerHeight); + } + return pos / 100 * size; + }, + "vmin": function (pos, size) { + if (size === void 0) { + size = Math.min(window.innerWidth, window.innerHeight); + } + return pos / 100 * size; + } + }; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** */ + function __spreadArrays() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; + return r; + } + + /** + * @namespace + * @name Utils + */ + /** + * Returns the inner product of two numbers(`a1`, `a2`) by two criteria(`b1`, `b2`). + * @memberof Utils + * @param - The first number + * @param - The second number + * @param - The first number to base on the inner product + * @param - The second number to base on the inner product + * @return - Returns the inner product + import { dot } from "@daybrush/utils"; + + console.log(dot(0, 15, 2, 3)); // 6 + console.log(dot(5, 15, 2, 3)); // 9 + console.log(dot(5, 15, 1, 1)); // 10 + */ + function dot(a1, a2, b1, b2) { + return (a1 * b2 + a2 * b1) / (b1 + b2); + } + /** + * Check the type that the value is undefined. + * @memberof Utils + * @param {string} value - Value to check the type + * @return {boolean} true if the type is correct, false otherwise + * @example + import {isUndefined} from "@daybrush/utils"; + + console.log(isUndefined(undefined)); // true + console.log(isUndefined("")); // false + console.log(isUndefined(1)); // false + console.log(isUndefined(null)); // false + */ + function isUndefined(value) { + return typeof value === UNDEFINED; + } + /** + * Check the type that the value is object. + * @memberof Utils + * @param {string} value - Value to check the type + * @return {} true if the type is correct, false otherwise + * @example + import {isObject} from "@daybrush/utils"; + + console.log(isObject({})); // true + console.log(isObject(undefined)); // false + console.log(isObject("")); // false + console.log(isObject(null)); // false + */ + function isObject(value) { + return value && typeof value === OBJECT; + } + /** + * Check the type that the value is isArray. + * @memberof Utils + * @param {string} value - Value to check the type + * @return {} true if the type is correct, false otherwise + * @example + import {isArray} from "@daybrush/utils"; + + console.log(isArray([])); // true + console.log(isArray({})); // false + console.log(isArray(undefined)); // false + console.log(isArray(null)); // false + */ + function isArray(value) { + return Array.isArray(value); + } + /** + * Check the type that the value is string. + * @memberof Utils + * @param {string} value - Value to check the type + * @return {} true if the type is correct, false otherwise + * @example + import {isString} from "@daybrush/utils"; + + console.log(isString("1234")); // true + console.log(isString(undefined)); // false + console.log(isString(1)); // false + console.log(isString(null)); // false + */ + function isString(value) { + return typeof value === STRING; + } + function isNumber(value) { + return typeof value === NUMBER; + } + /** + * Check the type that the value is function. + * @memberof Utils + * @param {string} value - Value to check the type + * @return {} true if the type is correct, false otherwise + * @example + import {isFunction} from "@daybrush/utils"; + + console.log(isFunction(function a() {})); // true + console.log(isFunction(() => {})); // true + console.log(isFunction("1234")); // false + console.log(isFunction(1)); // false + console.log(isFunction(null)); // false + */ + function isFunction(value) { + return typeof value === FUNCTION; + } + function isEqualSeparator(character, separator) { + var isCharacterSpace = character === "" || character == " "; + var isSeparatorSpace = separator === "" || separator == " "; + return isSeparatorSpace && isCharacterSpace || character === separator; + } + function findOpen(openCharacter, texts, index, length, openCloseCharacters) { + var isIgnore = findIgnore(openCharacter, texts, index); + if (!isIgnore) { + return findClose(openCharacter, texts, index + 1, length, openCloseCharacters); + } + return index; + } + function findIgnore(character, texts, index) { + if (!character.ignore) { + return null; + } + var otherText = texts.slice(Math.max(index - 3, 0), index + 3).join(""); + return new RegExp(character.ignore).exec(otherText); + } + function findClose(closeCharacter, texts, index, length, openCloseCharacters) { + var _loop_1 = function (i) { + var character = texts[i].trim(); + if (character === closeCharacter.close && !findIgnore(closeCharacter, texts, i)) { + return { + value: i + }; + } + var nextIndex = i; + // re open + var openCharacter = find(openCloseCharacters, function (_a) { + var open = _a.open; + return open === character; + }); + if (openCharacter) { + nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters); + } + if (nextIndex === -1) { + return out_i_1 = i, "break"; + } + i = nextIndex; + out_i_1 = i; + }; + var out_i_1; + for (var i = index; i < length; ++i) { + var state_1 = _loop_1(i); + i = out_i_1; + if (typeof state_1 === "object") return state_1.value; + if (state_1 === "break") break; + } + return -1; + } + function splitText(text, splitOptions) { + var _a = isString(splitOptions) ? { + separator: splitOptions + } : splitOptions, + _b = _a.separator, + separator = _b === void 0 ? "," : _b, + isSeparateFirst = _a.isSeparateFirst, + isSeparateOnlyOpenClose = _a.isSeparateOnlyOpenClose, + _c = _a.isSeparateOpenClose, + isSeparateOpenClose = _c === void 0 ? isSeparateOnlyOpenClose : _c, + _d = _a.openCloseCharacters, + openCloseCharacters = _d === void 0 ? OPEN_CLOSED_CHARACTERS : _d; + var openClosedText = openCloseCharacters.map(function (_a) { + var open = _a.open, + close = _a.close; + if (open === close) { + return open; + } + return open + "|" + close; + }).join("|"); + var regexText = "(\\s*" + separator + "\\s*|" + openClosedText + "|\\s+)"; + var regex = new RegExp(regexText, "g"); + var texts = text.split(regex).filter(Boolean); + var length = texts.length; + var values = []; + var tempValues = []; + function resetTemp() { + if (tempValues.length) { + values.push(tempValues.join("")); + tempValues = []; + return true; + } + return false; + } + var _loop_2 = function (i) { + var character = texts[i].trim(); + var nextIndex = i; + var openCharacter = find(openCloseCharacters, function (_a) { + var open = _a.open; + return open === character; + }); + var closeCharacter = find(openCloseCharacters, function (_a) { + var close = _a.close; + return close === character; + }); + if (openCharacter) { + nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters); + if (nextIndex !== -1 && isSeparateOpenClose) { + if (resetTemp() && isSeparateFirst) { + return out_i_2 = i, "break"; + } + values.push(texts.slice(i, nextIndex + 1).join("")); + i = nextIndex; + if (isSeparateFirst) { + return out_i_2 = i, "break"; + } + return out_i_2 = i, "continue"; + } + } else if (closeCharacter && !findIgnore(closeCharacter, texts, i)) { + var nextOpenCloseCharacters = __spreadArrays(openCloseCharacters); + nextOpenCloseCharacters.splice(openCloseCharacters.indexOf(closeCharacter), 1); + return { + value: splitText(text, { + separator: separator, + isSeparateFirst: isSeparateFirst, + isSeparateOnlyOpenClose: isSeparateOnlyOpenClose, + isSeparateOpenClose: isSeparateOpenClose, + openCloseCharacters: nextOpenCloseCharacters + }) + }; + } else if (isEqualSeparator(character, separator) && !isSeparateOnlyOpenClose) { + resetTemp(); + if (isSeparateFirst) { + return out_i_2 = i, "break"; + } + return out_i_2 = i, "continue"; + } + if (nextIndex === -1) { + nextIndex = length - 1; + } + tempValues.push(texts.slice(i, nextIndex + 1).join("")); + i = nextIndex; + out_i_2 = i; + }; + var out_i_2; + for (var i = 0; i < length; ++i) { + var state_2 = _loop_2(i); + i = out_i_2; + if (typeof state_2 === "object") return state_2.value; + if (state_2 === "break") break; + } + if (tempValues.length) { + values.push(tempValues.join("")); + } + return values; + } + /** + * divide text by space. + * @memberof Utils + * @param {string} text - text to divide + * @return {Array} divided texts + * @example + import {spliceSpace} from "@daybrush/utils"; + + console.log(splitSpace("a b c d e f g")); + // ["a", "b", "c", "d", "e", "f", "g"] + console.log(splitSpace("'a,b' c 'd,e' f g")); + // ["'a,b'", "c", "'d,e'", "f", "g"] + */ + function splitSpace(text) { + // divide comma(space) + return splitText(text, ""); + } + /** + * divide text by comma. + * @memberof Utils + * @param {string} text - text to divide + * @return {Array} divided texts + * @example + import {splitComma} from "@daybrush/utils"; + + console.log(splitComma("a,b,c,d,e,f,g")); + // ["a", "b", "c", "d", "e", "f", "g"] + console.log(splitComma("'a,b',c,'d,e',f,g")); + // ["'a,b'", "c", "'d,e'", "f", "g"] + */ + function splitComma(text) { + // divide comma(,) + // "[^"]*"|'[^']*' + return splitText(text, ","); + } + /** + * divide text by bracket "(", ")". + * @memberof Utils + * @param {string} text - text to divide + * @return {object} divided texts + * @example + import {splitBracket} from "@daybrush/utils"; + + console.log(splitBracket("a(1, 2)")); + // {prefix: "a", value: "1, 2", suffix: ""} + console.log(splitBracket("a(1, 2)b")); + // {prefix: "a", value: "1, 2", suffix: "b"} + */ + function splitBracket(text) { + var matches = /([^(]*)\(([\s\S]*)\)([\s\S]*)/g.exec(text); + if (!matches || matches.length < 4) { + return {}; + } else { + return { + prefix: matches[1], + value: matches[2], + suffix: matches[3] + }; + } + } + /** + * divide text by number and unit. + * @memberof Utils + * @param {string} text - text to divide + * @return {} divided texts + * @example + import {splitUnit} from "@daybrush/utils"; + + console.log(splitUnit("10px")); + // {prefix: "", value: 10, unit: "px"} + console.log(splitUnit("-10px")); + // {prefix: "", value: -10, unit: "px"} + console.log(splitUnit("a10%")); + // {prefix: "a", value: 10, unit: "%"} + */ + function splitUnit(text) { + var matches = /^([^\d|e|\-|\+]*)((?:\d|\.|-|e-|e\+)+)(\S*)$/g.exec(text); + if (!matches) { + return { + prefix: "", + unit: "", + value: NaN + }; + } + var prefix = matches[1]; + var value = matches[2]; + var unit = matches[3]; + return { + prefix: prefix, + unit: unit, + value: parseFloat(value) + }; + } + /** + * transform strings to camel-case + * @memberof Utils + * @param {String} text - string + * @return {String} camel-case string + * @example + import {camelize} from "@daybrush/utils"; + + console.log(camelize("transform-origin")); // transformOrigin + console.log(camelize("abcd_efg")); // abcdEfg + console.log(camelize("abcd efg")); // abcdEfg + */ + function camelize(str) { + return str.replace(/[\s-_]([a-z])/g, function (all, letter) { + return letter.toUpperCase(); + }); + } + /** + * transform a camelized string into a lowercased string. + * @memberof Utils + * @param {string} text - a camel-cased string + * @param {string} [separator="-"] - a separator + * @return {string} a lowercased string + * @example + import {decamelize} from "@daybrush/utils"; + + console.log(decamelize("transformOrigin")); // transform-origin + console.log(decamelize("abcdEfg", "_")); // abcd_efg + */ + function decamelize(str, separator) { + if (separator === void 0) { + separator = "-"; + } + return str.replace(/([a-z])([A-Z])/g, function (all, letter, letter2) { + return "" + letter + separator + letter2.toLowerCase(); + }); + } + /** + * transforms something in an array into an array. + * @memberof Utils + * @param - Array form + * @return an array + * @example + import {toArray} from "@daybrush/utils"; + + const arr1 = toArray(document.querySelectorAll(".a")); // Element[] + const arr2 = toArray(document.querySelectorAll(".a")); // HTMLElement[] + */ + function toArray(value) { + return [].slice.call(value); + } + /** + * Date.now() method + * @memberof CrossBrowser + * @return {number} milliseconds + * @example + import {now} from "@daybrush/utils"; + + console.log(now()); // 12121324241(milliseconds) + */ + function now() { + return Date.now ? Date.now() : new Date().getTime(); + } + /** + * Returns the index of the first element in the array that satisfies the provided testing function. + * @function + * @memberof CrossBrowser + * @param - The array `findIndex` was called upon. + * @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found. + * @param - Returns defaultIndex if not found by the function. + * @example + import { findIndex } from "@daybrush/utils"; + + findIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1 + */ + function findIndex(arr, callback, defaultIndex) { + if (defaultIndex === void 0) { + defaultIndex = -1; + } + var length = arr.length; + for (var i = 0; i < length; ++i) { + if (callback(arr[i], i, arr)) { + return i; + } + } + return defaultIndex; + } + /** + * Returns the reverse direction index of the first element in the array that satisfies the provided testing function. + * @function + * @memberof CrossBrowser + * @param - The array `findLastIndex` was called upon. + * @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found. + * @param - Returns defaultIndex if not found by the function. + * @example + import { findLastIndex } from "@daybrush/utils"; + + findLastIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1 + */ + function findLastIndex(arr, callback, defaultIndex) { + if (defaultIndex === void 0) { + defaultIndex = -1; + } + var length = arr.length; + for (var i = length - 1; i >= 0; --i) { + if (callback(arr[i], i, arr)) { + return i; + } + } + return defaultIndex; + } + /** + * Returns the value of the reverse direction element in the array that satisfies the provided testing function. + * @function + * @memberof CrossBrowser + * @param - The array `findLast` was called upon. + * @param - A function to execute on each value in the array, + * @param - Returns defalutValue if not found by the function. + * @example + import { find } from "@daybrush/utils"; + + find([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2} + */ + function findLast(arr, callback, defalutValue) { + var index = findLastIndex(arr, callback); + return index > -1 ? arr[index] : defalutValue; + } + /** + * Returns the value of the first element in the array that satisfies the provided testing function. + * @function + * @memberof CrossBrowser + * @param - The array `find` was called upon. + * @param - A function to execute on each value in the array, + * @param - Returns defalutValue if not found by the function. + * @example + import { find } from "@daybrush/utils"; + + find([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2} + */ + function find(arr, callback, defalutValue) { + var index = findIndex(arr, callback); + return index > -1 ? arr[index] : defalutValue; + } + /** + * window.requestAnimationFrame() method with cross browser. + * @function + * @memberof CrossBrowser + * @param {FrameRequestCallback} callback - The function to call when it's time to update your animation for the next repaint. + * @return {number} id + * @example + import {requestAnimationFrame} from "@daybrush/utils"; + + requestAnimationFrame((timestamp) => { + console.log(timestamp); + }); + */ + var requestAnimationFrame = /*#__PURE__*/function () { + var firstTime = now(); + var raf = IS_WINDOW && (window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.msRequestAnimationFrame); + return raf ? raf.bind(window) : function (callback) { + var currTime = now(); + var id = setTimeout(function () { + callback(currTime - firstTime); + }, 1000 / 60); + return id; + }; + }(); + /** + * window.cancelAnimationFrame() method with cross browser. + * @function + * @memberof CrossBrowser + * @param {number} handle - the id obtained through requestAnimationFrame method + * @return {void} + * @example + import { requestAnimationFrame, cancelAnimationFrame } from "@daybrush/utils"; + + const id = requestAnimationFrame((timestamp) => { + console.log(timestamp); + }); + + cancelAnimationFrame(id); + */ + var cancelAnimationFrame = /*#__PURE__*/function () { + var caf = IS_WINDOW && (window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.msCancelAnimationFrame); + return caf ? caf.bind(window) : function (handle) { + clearTimeout(handle); + }; + }(); + /** + * @function + * @memberof Utils + */ + function getKeys(obj) { + return Object.keys(obj); + } + /** + * @function + * @memberof Utils + */ + function getValues(obj) { + var keys = getKeys(obj); + return keys.map(function (key) { + return obj[key]; + }); + } + /** + * @function + * @memberof Utils + */ + function getEntries(obj) { + var keys = getKeys(obj); + return keys.map(function (key) { + return [key, obj[key]]; + }); + } + /** + * @function + * @memberof Utils + */ + function sortOrders(keys, orders) { + if (orders === void 0) { + orders = []; + } + keys.sort(function (a, b) { + var index1 = orders.indexOf(a); + var index2 = orders.indexOf(b); + if (index2 === -1 && index1 === -1) { + return 0; + } + if (index1 === -1) { + return 1; + } + if (index2 === -1) { + return -1; + } + return index1 - index2; + }); + } + /** + * convert unit size to px size + * @function + * @memberof Utils + */ + function convertUnitSize(pos, size) { + var _a = splitUnit(pos), + value = _a.value, + unit = _a.unit; + if (isObject(size)) { + var sizeFunction = size[unit]; + if (sizeFunction) { + if (isFunction(sizeFunction)) { + return sizeFunction(value); + } else if (DEFAULT_UNIT_PRESETS[unit]) { + return DEFAULT_UNIT_PRESETS[unit](value, sizeFunction); + } + } + } else if (unit === "%") { + return value * size / 100; + } + if (DEFAULT_UNIT_PRESETS[unit]) { + return DEFAULT_UNIT_PRESETS[unit](value); + } + return value; + } + /** + * calculate between min, max + * @function + * @memberof Utils + */ + function between(value, min, max) { + return Math.max(min, Math.min(value, max)); + } + function checkBoundSize(targetSize, compareSize, isMax, ratio) { + if (ratio === void 0) { + ratio = targetSize[0] / targetSize[1]; + } + return [[throttle(compareSize[0], TINY_NUM), throttle(compareSize[0] / ratio, TINY_NUM)], [throttle(compareSize[1] * ratio, TINY_NUM), throttle(compareSize[1], TINY_NUM)]].filter(function (size) { + return size.every(function (value, i) { + var defaultSize = compareSize[i]; + var throttledSize = throttle(defaultSize, TINY_NUM); + return isMax ? value <= defaultSize || value <= throttledSize : value >= defaultSize || value >= throttledSize; + }); + })[0] || targetSize; + } + /** + * calculate bound size + * @function + * @memberof Utils + */ + function calculateBoundSize(size, minSize, maxSize, keepRatio) { + if (!keepRatio) { + return size.map(function (value, i) { + return between(value, minSize[i], maxSize[i]); + }); + } + var width = size[0], + height = size[1]; + var ratio = keepRatio === true ? width / height : keepRatio; + // width : height = minWidth : minHeight; + var _a = checkBoundSize(size, minSize, false, ratio), + minWidth = _a[0], + minHeight = _a[1]; + var _b = checkBoundSize(size, maxSize, true, ratio), + maxWidth = _b[0], + maxHeight = _b[1]; + if (width < minWidth || height < minHeight) { + width = minWidth; + height = minHeight; + } else if (width > maxWidth || height > maxHeight) { + width = maxWidth; + height = maxHeight; + } + return [width, height]; + } + /** + * Add all the numbers. + * @function + * @memberof Utils + */ + function sum(nums) { + var length = nums.length; + var total = 0; + for (var i = length - 1; i >= 0; --i) { + total += nums[i]; + } + return total; + } + /** + * Average all numbers. + * @function + * @memberof Utils + */ + function average(nums) { + var length = nums.length; + var total = 0; + for (var i = length - 1; i >= 0; --i) { + total += nums[i]; + } + return length ? total / length : 0; + } + /** + * Get the angle of two points. (0 <= rad < 359) + * @function + * @memberof Utils + */ + function getRad(pos1, pos2) { + var distX = pos2[0] - pos1[0]; + var distY = pos2[1] - pos1[1]; + var rad = Math.atan2(distY, distX); + return rad >= 0 ? rad : rad + Math.PI * 2; + } + /** + * Get the average point of all points. + * @function + * @memberof Utils + */ + function getCenterPoint(points) { + return [0, 1].map(function (i) { + return average(points.map(function (pos) { + return pos[i]; + })); + }); + } + /** + * Gets the direction of the shape. + * @function + * @memberof Utils + */ + function getShapeDirection(points) { + var center = getCenterPoint(points); + var pos1Rad = getRad(center, points[0]); + var pos2Rad = getRad(center, points[1]); + return pos1Rad < pos2Rad && pos2Rad - pos1Rad < Math.PI || pos1Rad > pos2Rad && pos2Rad - pos1Rad < -Math.PI ? 1 : -1; + } + /** + * Get the distance between two points. + * @function + * @memberof Utils + */ + function getDist(a, b) { + return Math.sqrt(Math.pow((b ? b[0] : 0) - a[0], 2) + Math.pow((b ? b[1] : 0) - a[1], 2)); + } + /** + * throttle number depending on the unit. + * @function + * @memberof Utils + */ + function throttle(num, unit) { + if (!unit) { + return num; + } + var reverseUnit = 1 / unit; + return Math.round(num / unit) / reverseUnit; + } + /** + * throttle number array depending on the unit. + * @function + * @memberof Utils + */ + function throttleArray(nums, unit) { + nums.forEach(function (_, i) { + nums[i] = throttle(nums[i], unit); + }); + return nums; + } + /** + * @function + * @memberof Utils + */ + function counter(num) { + var nums = []; + for (var i = 0; i < num; ++i) { + nums.push(i); + } + return nums; + } + /** + * @function + * @memberof Utils + */ + function replaceOnce(text, fromText, toText) { + var isOnce = false; + return text.replace(fromText, function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (isOnce) { + return args[0]; + } + isOnce = true; + return isString(toText) ? toText : toText.apply(void 0, args); + }); + } + /** + * @function + * @memberof Utils + */ + function flat(arr) { + return arr.reduce(function (prev, cur) { + return prev.concat(cur); + }, []); + } + /** + * @function + * @memberof Utils + */ + function deepFlat(arr) { + return arr.reduce(function (prev, cur) { + if (isArray(cur)) { + prev.push.apply(prev, deepFlat(cur)); + } else { + prev.push(cur); + } + return prev; + }, []); + } + + /** + * @namespace + * @name Color + */ + /** + * Remove the # from the hex color. + * @memberof Color + * @param {} hex - hex color + * @return {} hex color + * @example + import {cutHex} from "@daybrush/utils"; + + console.log(cutHex("#000000")) // "000000" + */ + function cutHex(hex) { + return hex.replace("#", ""); + } + /** + * convert hex color to rgb color. + * @memberof Color + * @param {} hex - hex color + * @return {} rgb color + * @example + import {hexToRGBA} from "@daybrush/utils"; + + console.log(hexToRGBA("#00000005")); + // [0, 0, 0, 1] + console.log(hexToRGBA("#201045")); + // [32, 16, 69, 1] + */ + function hexToRGBA(hex) { + var h = cutHex(hex); + var r = parseInt(h.substring(0, 2), 16); + var g = parseInt(h.substring(2, 4), 16); + var b = parseInt(h.substring(4, 6), 16); + var a = parseInt(h.substring(6, 8), 16) / 255; + if (isNaN(a)) { + a = 1; + } + return [r, g, b, a]; + } + /** + * convert 3(or 4)-digit hex color to 6(or 8)-digit hex color. + * @memberof Color + * @param {} hex - 3(or 4)-digit hex color + * @return {} 6(or 8)-digit hex color + * @example + import {toFullHex} from "@daybrush/utils"; + + console.log(toFullHex("#123")); // "#112233" + console.log(toFullHex("#123a")); // "#112233aa" + */ + function toFullHex(h) { + var r = h.charAt(1); + var g = h.charAt(2); + var b = h.charAt(3); + var a = h.charAt(4); + var arr = ["#", r, r, g, g, b, b, a, a]; + return arr.join(""); + } + /** + * convert hsl color to rgba color. + * @memberof Color + * @param {} hsl - hsl color(hue: 0 ~ 360, saturation: 0 ~ 1, lightness: 0 ~ 1, alpha: 0 ~ 1) + * @return {} rgba color + * @example + import {hslToRGBA} from "@daybrush/utils"; + + console.log(hslToRGBA([150, 0.5, 0.4])); + // [51, 153, 102, 1] + */ + function hslToRGBA(hsl) { + var _a; + var h = hsl[0]; + var s = hsl[1]; + var l = hsl[2]; + if (h < 0) { + h += Math.floor((Math.abs(h) + 360) / 360) * 360; + } + h %= 360; + var c = (1 - Math.abs(2 * l - 1)) * s; + var x = c * (1 - Math.abs(h / 60 % 2 - 1)); + var m = l - c / 2; + var rgb; + if (h < 60) { + rgb = [c, x, 0]; + } else if (h < 120) { + rgb = [x, c, 0]; + } else if (h < 180) { + rgb = [0, c, x]; + } else if (h < 240) { + rgb = [0, x, c]; + } else if (h < 300) { + rgb = [x, 0, c]; + } else if (h < 360) { + rgb = [c, 0, x]; + } else { + rgb = [0, 0, 0]; + } + return [Math.round((rgb[0] + m) * 255), Math.round((rgb[1] + m) * 255), Math.round((rgb[2] + m) * 255), (_a = hsl[3]) !== null && _a !== void 0 ? _a : 1]; + } + /** + * convert string to rgba color. + * @memberof Color + * @param {} - 3-hex(#000), 4-hex(#0000) 6-hex(#000000), 8-hex(#00000000) or RGB(A), or HSL(A) + * @return {} rgba color + * @example + import {stringToRGBA} from "@daybrush/utils"; + + console.log(stringToRGBA("#000000")); // [0, 0, 0, 1] + console.log(stringToRGBA("rgb(100, 100, 100)")); // [100, 100, 100, 1] + console.log(stringToRGBA("hsl(150, 0.5, 0.4)")); // [51, 153, 102, 1] + */ + function stringToRGBA(color) { + if (color.charAt(0) === "#") { + if (color.length === 4 || color.length === 5) { + return hexToRGBA(toFullHex(color)); + } else { + return hexToRGBA(color); + } + } else if (color.indexOf("(") !== -1) { + // in bracket. + var _a = splitBracket(color), + prefix = _a.prefix, + value = _a.value; + if (!prefix || !value) { + return undefined; + } + var arr = splitComma(value); + var colorArr = [0, 0, 0, 1]; + var length = arr.length; + switch (prefix) { + case RGB: + case RGBA: + for (var i = 0; i < length; ++i) { + colorArr[i] = parseFloat(arr[i]); + } + return colorArr; + case HSL: + case HSLA: + for (var i = 0; i < length; ++i) { + if (arr[i].indexOf("%") !== -1) { + colorArr[i] = parseFloat(arr[i]) / 100; + } else { + colorArr[i] = parseFloat(arr[i]); + } + } + // hsl, hsla to rgba + return hslToRGBA(colorArr); + } + } + return undefined; + } + + /** + * Returns all element descendants of node that + * match selectors. + */ + /** + * Checks if the specified class value exists in the element's class attribute. + * @memberof DOM + * @param - A DOMString containing one or more selectors to match + * @param - If multi is true, a DOMString containing one or more selectors to match against. + * @example + import {$} from "@daybrush/utils"; + + console.log($("div")); // div element + console.log($("div", true)); // [div, div] elements + */ + function $(selectors, multi) { + return multi ? doc.querySelectorAll(selectors) : doc.querySelector(selectors); + } + /** + * Checks if the specified class value exists in the element's class attribute. + * @memberof DOM + * @param element - target + * @param className - the class name to search + * @return {boolean} return false if the class is not found. + * @example + import {hasClass} from "@daybrush/utils"; + + console.log(hasClass(element, "start")); // true or false + */ + function hasClass(element, className) { + if (element.classList) { + return element.classList.contains(className); + } + return !!element.className.match(new RegExp("(\\s|^)" + className + "(\\s|$)")); + } + /** + * Add the specified class value. If these classe already exist in the element's class attribute they are ignored. + * @memberof DOM + * @param element - target + * @param className - the class name to add + * @example + import {addClass} from "@daybrush/utils"; + + addClass(element, "start"); + */ + function addClass(element, className) { + if (element.classList) { + element.classList.add(className); + } else { + element.className += " " + className; + } + } + /** + * Removes the specified class value. + * @memberof DOM + * @param element - target + * @param className - the class name to remove + * @example + import {removeClass} from "@daybrush/utils"; + + removeClass(element, "start"); + */ + function removeClass(element, className) { + if (element.classList) { + element.classList.remove(className); + } else { + var reg = new RegExp("(\\s|^)" + className + "(\\s|$)"); + element.className = element.className.replace(reg, " "); + } + } + /** + * Gets the CSS properties from the element. + * @memberof DOM + * @param elements - elements + * @param properites - the CSS properties + * @return returns CSS properties and values. + * @example + import {fromCSS} from "@daybrush/utils"; + + console.log(fromCSS(element, ["left", "opacity", "top"])); // {"left": "10px", "opacity": 1, "top": "10px"} + */ + function fromCSS(elements, properties) { + if (!elements || !properties || !properties.length) { + return {}; + } + var element; + if (elements instanceof Element) { + element = elements; + } else if (elements.length) { + element = elements[0]; + } else { + return {}; + } + var cssObject = {}; + var styles = window.getComputedStyle(element); + var length = properties.length; + for (var i = 0; i < length; ++i) { + cssObject[properties[i]] = styles[properties[i]]; + } + return cssObject; + } + /** + * Sets up a function that will be called whenever the specified event is delivered to the target + * @memberof DOM + * @param - event target + * @param - A case-sensitive string representing the event type to listen for. + * @param - The object which receives a notification (an object that implements the Event interface) when an event of the specified type occurs + * @param - An options object that specifies characteristics about the event listener. + * @example + import {addEvent} from "@daybrush/utils"; + + addEvent(el, "click", e => { + console.log(e); + }); + */ + function addEvent(el, type, listener, options) { + el.addEventListener(type, listener, options); + } + /** + * removes from the EventTarget an event listener previously registered with EventTarget.addEventListener() + * @memberof DOM + * @param - event target + * @param - A case-sensitive string representing the event type to listen for. + * @param - The EventListener function of the event handler to remove from the event target. + * @param - An options object that specifies characteristics about the event listener. + * @example + import {addEvent, removeEvent} from "@daybrush/utils"; + const listener = e => { + console.log(e); + }; + addEvent(el, "click", listener); + removeEvent(el, "click", listener); + */ + function removeEvent(el, type, listener, options) { + el.removeEventListener(type, listener, options); + } + + + + var utils = ({ + RGB: RGB, + RGBA: RGBA, + HSL: HSL, + HSLA: HSLA, + COLOR_MODELS: COLOR_MODELS, + FUNCTION: FUNCTION, + PROPERTY: PROPERTY, + ARRAY: ARRAY, + OBJECT: OBJECT, + STRING: STRING, + NUMBER: NUMBER, + UNDEFINED: UNDEFINED, + IS_WINDOW: IS_WINDOW, + document: doc, + getCrossBrowserProperty: getCrossBrowserProperty, + TRANSFORM: TRANSFORM, + FILTER: FILTER, + ANIMATION: ANIMATION, + KEYFRAMES: KEYFRAMES, + OPEN_CLOSED_CHARACTERS: OPEN_CLOSED_CHARACTERS, + TINY_NUM: TINY_NUM, + REVERSE_TINY_NUM: REVERSE_TINY_NUM, + DEFAULT_UNIT_PRESETS: DEFAULT_UNIT_PRESETS, + cutHex: cutHex, + hexToRGBA: hexToRGBA, + toFullHex: toFullHex, + hslToRGBA: hslToRGBA, + stringToRGBA: stringToRGBA, + dot: dot, + isUndefined: isUndefined, + isObject: isObject, + isArray: isArray, + isString: isString, + isNumber: isNumber, + isFunction: isFunction, + splitText: splitText, + splitSpace: splitSpace, + splitComma: splitComma, + splitBracket: splitBracket, + splitUnit: splitUnit, + camelize: camelize, + decamelize: decamelize, + toArray: toArray, + now: now, + findIndex: findIndex, + findLastIndex: findLastIndex, + findLast: findLast, + find: find, + requestAnimationFrame: requestAnimationFrame, + cancelAnimationFrame: cancelAnimationFrame, + getKeys: getKeys, + getValues: getValues, + getEntries: getEntries, + sortOrders: sortOrders, + convertUnitSize: convertUnitSize, + between: between, + checkBoundSize: checkBoundSize, + calculateBoundSize: calculateBoundSize, + sum: sum, + average: average, + getRad: getRad, + getCenterPoint: getCenterPoint, + getShapeDirection: getShapeDirection, + getDist: getDist, + throttle: throttle, + throttleArray: throttleArray, + counter: counter, + replaceOnce: replaceOnce, + flat: flat, + deepFlat: deepFlat, + $: $, + hasClass: hasClass, + addClass: addClass, + removeClass: removeClass, + fromCSS: fromCSS, + addEvent: addEvent, + removeEvent: removeEvent + }); + + return utils; + +}))); +//# sourceMappingURL=utils.js.map diff --git a/dist/utils.js.map b/dist/utils.js.map new file mode 100644 index 0000000..22d7e11 --- /dev/null +++ b/dist/utils.js.map @@ -0,0 +1 @@ +{"version":3,"file":"utils.js","sources":["../src/consts.ts","../src/utils.ts","../src/color.ts","../src/dom.ts"],"sourcesContent":["/**\n* @namespace\n* @name Consts\n*/\n\nimport { IObject, OpenCloseCharacter } from \"./types\";\n\n/**\n* get string \"rgb\"\n* @memberof Color\n* @example\nimport {RGB} from \"@daybrush/utils\";\n\nconsole.log(RGB); // \"rgb\"\n*/\nexport const RGB = \"rgb\";\n/**\n* get string \"rgba\"\n* @memberof Color\n* @example\nimport {RGBA} from \"@daybrush/utils\";\n\nconsole.log(RGBA); // \"rgba\"\n*/\nexport const RGBA = \"rgba\";\n/**\n* get string \"hsl\"\n* @memberof Color\n* @example\nimport {HSL} from \"@daybrush/utils\";\n\nconsole.log(HSL); // \"hsl\"\n*/\nexport const HSL = \"hsl\";\n/**\n* get string \"hsla\"\n* @memberof Color\n* @example\nimport {HSLA} from \"@daybrush/utils\";\n\nconsole.log(HSLA); // \"hsla\"\n*/\nexport const HSLA = \"hsla\";\n/**\n* gets an array of color models.\n* @memberof Color\n* @example\nimport {COLOR_MODELS} from \"@daybrush/utils\";\n\nconsole.log(COLOR_MODELS); // [\"rgb\", \"rgba\", \"hsl\", \"hsla\"];\n*/\nexport const COLOR_MODELS = [RGB, RGBA, HSL, HSLA];\n\n/**\n* get string \"function\"\n* @memberof Consts\n* @example\nimport {FUNCTION} from \"@daybrush/utils\";\n\nconsole.log(FUNCTION); // \"function\"\n*/\nexport const FUNCTION = \"function\";\n/**\n* get string \"property\"\n* @memberof Consts\n* @example\nimport {PROPERTY} from \"@daybrush/utils\";\n\nconsole.log(PROPERTY); // \"property\"\n*/\nexport const PROPERTY = \"property\";\n/**\n* get string \"array\"\n* @memberof Consts\n* @example\nimport {ARRAY} from \"@daybrush/utils\";\n\nconsole.log(ARRAY); // \"array\"\n*/\nexport const ARRAY = \"array\";\n/**\n* get string \"object\"\n* @memberof Consts\n* @example\nimport {OBJECT} from \"@daybrush/utils\";\n\nconsole.log(OBJECT); // \"object\"\n*/\nexport const OBJECT = \"object\";\n/**\n* get string \"string\"\n* @memberof Consts\n* @example\nimport {STRING} from \"@daybrush/utils\";\n\nconsole.log(STRING); // \"string\"\n*/\nexport const STRING = \"string\";\n/**\n* get string \"number\"\n* @memberof Consts\n* @example\nimport {NUMBER} from \"@daybrush/utils\";\n\nconsole.log(NUMBER); // \"number\"\n*/\nexport const NUMBER = \"number\";\n/**\n* get string \"undefined\"\n* @memberof Consts\n* @example\nimport {UNDEFINED} from \"@daybrush/utils\";\n\nconsole.log(UNDEFINED); // \"undefined\"\n*/\nexport const UNDEFINED = \"undefined\";\n\n/**\n* Check whether the environment is window or node.js.\n* @memberof Consts\n* @example\nimport {IS_WINDOW} from \"@daybrush/utils\";\n\nconsole.log(IS_WINDOW); // false in node.js\nconsole.log(IS_WINDOW); // true in browser\n*/\nexport const IS_WINDOW = typeof window !== UNDEFINED;\n\n/**\n* Check whether the environment is window or node.js.\n* @memberof Consts\n* @name document\n* @example\nimport {IS_WINDOW} from \"@daybrush/utils\";\n\nconsole.log(IS_WINDOW); // false in node.js\nconsole.log(IS_WINDOW); // true in browser\n*/\nconst doc = (typeof document !== UNDEFINED && document) as Document; // FIXME: this type maybe false\n\nexport {doc as document};\n\nconst prefixes: string[] = [\"webkit\", \"ms\", \"moz\", \"o\"];\n\n/**\n * @namespace CrossBrowser\n */\n\n/**\n* Get a CSS property with a vendor prefix that supports cross browser.\n* @function\n* @param {string} property - A CSS property\n* @return {string} CSS property with cross-browser vendor prefix\n* @memberof CrossBrowser\n* @example\nimport {getCrossBrowserProperty} from \"@daybrush/utils\";\n\nconsole.log(getCrossBrowserProperty(\"transform\")); // \"transform\", \"-ms-transform\", \"-webkit-transform\"\nconsole.log(getCrossBrowserProperty(\"filter\")); // \"filter\", \"-webkit-filter\"\n*/\nexport const getCrossBrowserProperty = /*#__PURE__*/(property: string) => {\n if (!doc) {\n return \"\";\n }\n const styles = (doc.body || doc.documentElement).style as any;\n const length = prefixes.length;\n\n if (typeof styles[property] !== UNDEFINED) {\n return property;\n }\n for (let i = 0; i < length; ++i) {\n const name = `-${prefixes[i]}-${property}`;\n\n if (typeof styles[name] !== UNDEFINED) {\n return name;\n }\n }\n return \"\";\n};\n\n/**\n* get string \"transfrom\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {TRANSFORM} from \"@daybrush/utils\";\n\nconsole.log(TRANSFORM); // \"transform\", \"-ms-transform\", \"-webkit-transform\"\n*/\nexport const TRANSFORM = /*#__PURE__*/getCrossBrowserProperty(\"transform\");\n/**\n* get string \"filter\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {FILTER} from \"@daybrush/utils\";\n\nconsole.log(FILTER); // \"filter\", \"-ms-filter\", \"-webkit-filter\"\n*/\nexport const FILTER = /*#__PURE__*/getCrossBrowserProperty(\"filter\");\n/**\n* get string \"animation\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {ANIMATION} from \"@daybrush/utils\";\n\nconsole.log(ANIMATION); // \"animation\", \"-ms-animation\", \"-webkit-animation\"\n*/\nexport const ANIMATION = /*#__PURE__*/getCrossBrowserProperty(\"animation\");\n/**\n* get string \"keyframes\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {KEYFRAMES} from \"@daybrush/utils\";\n\nconsole.log(KEYFRAMES); // \"keyframes\", \"-ms-keyframes\", \"-webkit-keyframes\"\n*/\nexport const KEYFRAMES = /*#__PURE__*/ANIMATION.replace(\"animation\", \"keyframes\");\n\nexport const OPEN_CLOSED_CHARACTERS: OpenCloseCharacter[] = [\n { open: \"(\", close: \")\" },\n { open: `\"`, close: `\"`},\n { open: `'`, close: `'`},\n { open: `\\\\\"`, close: `\\\\\"`},\n { open: `\\\\'`, close: `\\\\'`},\n];\nexport const TINY_NUM = 0.0000001;\nexport const REVERSE_TINY_NUM = 1 / TINY_NUM;\nexport const DEFAULT_UNIT_PRESETS: IObject<(pos: number, size?: number) => number> = {\n \"cm\": pos => pos * 96 / 2.54,\n \"mm\": pos => pos * 96 / 254,\n \"in\": pos => pos * 96,\n \"pt\": pos => pos * 96 / 72,\n \"pc\": pos => pos * 96 / 6,\n \"%\": (pos, size) => pos * size! / 100,\n \"vw\": (pos, size = window.innerWidth) => pos / 100 * size,\n \"vh\": (pos, size = window.innerHeight) => pos / 100 * size,\n \"vmax\": (pos, size = Math.max(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n \"vmin\": (pos, size = Math.min(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n};\n","import {\n UNDEFINED, STRING,\n OBJECT, FUNCTION,\n IS_WINDOW, OPEN_CLOSED_CHARACTERS, NUMBER,\n DEFAULT_UNIT_PRESETS,\n TINY_NUM\n} from \"./consts\";\nimport {\n FlattedElement,\n IArrayFormat, IObject, OpenCloseCharacter,\n SplitOptions,\n} from \"./types\";\n/**\n* @namespace\n* @name Utils\n*/\n\n/**\n * Returns the inner product of two numbers(`a1`, `a2`) by two criteria(`b1`, `b2`).\n * @memberof Utils\n * @param - The first number\n * @param - The second number\n * @param - The first number to base on the inner product\n * @param - The second number to base on the inner product\n * @return - Returns the inner product\nimport { dot } from \"@daybrush/utils\";\n\nconsole.log(dot(0, 15, 2, 3)); // 6\nconsole.log(dot(5, 15, 2, 3)); // 9\nconsole.log(dot(5, 15, 1, 1)); // 10\n */\nexport function dot(a1: number, a2: number, b1: number, b2: number) {\n return (a1 * b2 + a2 * b1) / (b1 + b2);\n}\n/**\n* Check the type that the value is undefined.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {boolean} true if the type is correct, false otherwise\n* @example\nimport {isUndefined} from \"@daybrush/utils\";\n\nconsole.log(isUndefined(undefined)); // true\nconsole.log(isUndefined(\"\")); // false\nconsole.log(isUndefined(1)); // false\nconsole.log(isUndefined(null)); // false\n*/\nexport function isUndefined(value: any): value is undefined {\n return (typeof value === UNDEFINED);\n}\n/**\n* Check the type that the value is object.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isObject} from \"@daybrush/utils\";\n\nconsole.log(isObject({})); // true\nconsole.log(isObject(undefined)); // false\nconsole.log(isObject(\"\")); // false\nconsole.log(isObject(null)); // false\n*/\nexport function isObject(value: any): value is IObject {\n return value && (typeof value === OBJECT);\n}\n/**\n* Check the type that the value is isArray.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isArray} from \"@daybrush/utils\";\n\nconsole.log(isArray([])); // true\nconsole.log(isArray({})); // false\nconsole.log(isArray(undefined)); // false\nconsole.log(isArray(null)); // false\n*/\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value);\n}\n/**\n* Check the type that the value is string.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isString} from \"@daybrush/utils\";\n\nconsole.log(isString(\"1234\")); // true\nconsole.log(isString(undefined)); // false\nconsole.log(isString(1)); // false\nconsole.log(isString(null)); // false\n*/\nexport function isString(value: any): value is string {\n return typeof value === STRING;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === NUMBER;\n}\n\n/**\n* Check the type that the value is function.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isFunction} from \"@daybrush/utils\";\n\nconsole.log(isFunction(function a() {})); // true\nconsole.log(isFunction(() => {})); // true\nconsole.log(isFunction(\"1234\")); // false\nconsole.log(isFunction(1)); // false\nconsole.log(isFunction(null)); // false\n*/\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === FUNCTION;\n}\nfunction isEqualSeparator(\n character: string,\n separator: string,\n) {\n const isCharacterSpace = character === \"\" || character == \" \";\n const isSeparatorSpace = separator === \"\" || separator == \" \";\n\n return (isSeparatorSpace && isCharacterSpace) || character === separator;\n}\nfunction findOpen(\n openCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n const isIgnore = findIgnore(openCharacter, texts, index);\n\n if (!isIgnore) {\n return findClose(openCharacter, texts, index + 1, length, openCloseCharacters);\n }\n return index;\n}\nfunction findIgnore(\n character: OpenCloseCharacter,\n texts: string[],\n index: number,\n) {\n if (!character.ignore) {\n return null;\n }\n const otherText = texts.slice(Math.max(index - 3, 0), index + 3).join(\"\");\n\n return new RegExp(character.ignore).exec(otherText);\n\n}\nfunction findClose(\n closeCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n for (let i = index; i < length; ++i) {\n const character = texts[i].trim();\n\n if (character === closeCharacter.close && !findIgnore(closeCharacter, texts, i)) {\n return i;\n }\n let nextIndex = i;\n // re open\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n }\n if (nextIndex === -1) {\n break;\n }\n i = nextIndex;\n }\n return -1;\n}\n\nexport function splitText(\n text: string,\n splitOptions: string | SplitOptions,\n): string[] {\n const {\n separator = \",\",\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose = isSeparateOnlyOpenClose,\n openCloseCharacters = OPEN_CLOSED_CHARACTERS,\n } = isString(splitOptions) ? {\n separator: splitOptions,\n } as SplitOptions : splitOptions;\n const openClosedText = openCloseCharacters.map(({ open, close }) => {\n if (open === close) {\n return open;\n }\n return `${open}|${close}`;\n }).join(\"|\");\n const regexText = `(\\\\s*${separator}\\\\s*|${openClosedText}|\\\\s+)`;\n const regex = new RegExp(regexText, \"g\");\n const texts = text.split(regex).filter(Boolean);\n const length = texts.length;\n const values: string[] = [];\n let tempValues: string[] = [];\n\n function resetTemp() {\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n tempValues = [];\n\n return true;\n }\n return false;\n }\n for (let i = 0; i < length; ++i) {\n const character = texts[i].trim();\n let nextIndex = i;\n\n\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n const closeCharacter = find(openCloseCharacters, ({ close }) => close === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n\n if (nextIndex !== -1 && isSeparateOpenClose) {\n if (resetTemp() && isSeparateFirst) {\n break;\n }\n values.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n } else if (closeCharacter && !findIgnore(closeCharacter, texts, i)) {\n const nextOpenCloseCharacters = [...openCloseCharacters];\n\n nextOpenCloseCharacters.splice(openCloseCharacters.indexOf(closeCharacter), 1);\n\n return splitText(\n text,\n {\n separator,\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose,\n openCloseCharacters: nextOpenCloseCharacters,\n });\n } else if (isEqualSeparator(character, separator) && !isSeparateOnlyOpenClose) {\n resetTemp();\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n\n if (nextIndex === -1) {\n nextIndex = length - 1;\n }\n tempValues.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n }\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n }\n return values;\n}\n\n/**\n* divide text by space.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {spliceSpace} from \"@daybrush/utils\";\n\nconsole.log(splitSpace(\"a b c d e f g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitSpace(\"'a,b' c 'd,e' f g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitSpace(text: string) {\n // divide comma(space)\n return splitText(text, \"\");\n}\n\n/**\n* divide text by comma.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {splitComma} from \"@daybrush/utils\";\n\nconsole.log(splitComma(\"a,b,c,d,e,f,g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitComma(\"'a,b',c,'d,e',f,g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitComma(text: string): string[] {\n // divide comma(,)\n // \"[^\"]*\"|'[^']*'\n return splitText(text, \",\");\n}\n/**\n* divide text by bracket \"(\", \")\".\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {object} divided texts\n* @example\nimport {splitBracket} from \"@daybrush/utils\";\n\nconsole.log(splitBracket(\"a(1, 2)\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"\"}\nconsole.log(splitBracket(\"a(1, 2)b\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"b\"}\n*/\nexport function splitBracket(text: string) {\n const matches = (/([^(]*)\\(([\\s\\S]*)\\)([\\s\\S]*)/g).exec(text);\n\n if (!matches || matches.length < 4) {\n return {};\n } else {\n return { prefix: matches[1], value: matches[2], suffix: matches[3] };\n }\n}\n/**\n* divide text by number and unit.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {} divided texts\n* @example\nimport {splitUnit} from \"@daybrush/utils\";\n\nconsole.log(splitUnit(\"10px\"));\n// {prefix: \"\", value: 10, unit: \"px\"}\nconsole.log(splitUnit(\"-10px\"));\n// {prefix: \"\", value: -10, unit: \"px\"}\nconsole.log(splitUnit(\"a10%\"));\n// {prefix: \"a\", value: 10, unit: \"%\"}\n*/\nexport function splitUnit(text: string): { prefix: string, unit: string, value: number } {\n const matches = /^([^\\d|e|\\-|\\+]*)((?:\\d|\\.|-|e-|e\\+)+)(\\S*)$/g.exec(text);\n\n if (!matches) {\n return { prefix: \"\", unit: \"\", value: NaN };\n }\n const prefix = matches[1];\n const value = matches[2];\n const unit = matches[3];\n\n return { prefix, unit, value: parseFloat(value) };\n}\n\n/**\n* transform strings to camel-case\n* @memberof Utils\n* @param {String} text - string\n* @return {String} camel-case string\n* @example\nimport {camelize} from \"@daybrush/utils\";\n\nconsole.log(camelize(\"transform-origin\")); // transformOrigin\nconsole.log(camelize(\"abcd_efg\")); // abcdEfg\nconsole.log(camelize(\"abcd efg\")); // abcdEfg\n*/\nexport function camelize(str: string) {\n return str.replace(/[\\s-_]([a-z])/g, (all, letter) => letter.toUpperCase());\n}\n/**\n* transform a camelized string into a lowercased string.\n* @memberof Utils\n* @param {string} text - a camel-cased string\n* @param {string} [separator=\"-\"] - a separator\n* @return {string} a lowercased string\n* @example\nimport {decamelize} from \"@daybrush/utils\";\n\nconsole.log(decamelize(\"transformOrigin\")); // transform-origin\nconsole.log(decamelize(\"abcdEfg\", \"_\")); // abcd_efg\n*/\nexport function decamelize(str: string, separator: string = \"-\") {\n return str.replace(/([a-z])([A-Z])/g, (all, letter, letter2) => `${letter}${separator}${letter2.toLowerCase()}`);\n}\n\n/**\n* transforms something in an array into an array.\n* @memberof Utils\n* @param - Array form\n* @return an array\n* @example\nimport {toArray} from \"@daybrush/utils\";\n\nconst arr1 = toArray(document.querySelectorAll(\".a\")); // Element[]\nconst arr2 = toArray(document.querySelectorAll(\".a\")); // HTMLElement[]\n*/\nexport function toArray(value: IArrayFormat): T[] {\n return [].slice.call(value);\n}\n\n/**\n* Date.now() method\n* @memberof CrossBrowser\n* @return {number} milliseconds\n* @example\nimport {now} from \"@daybrush/utils\";\n\nconsole.log(now()); // 12121324241(milliseconds)\n*/\nexport function now() {\n return Date.now ? Date.now() : new Date().getTime();\n}\n\n/**\n* Returns the index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findIndex } from \"@daybrush/utils\";\n\nfindIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = 0; i < length; ++i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the reverse direction index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLastIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findLastIndex } from \"@daybrush/utils\";\n\nfindLastIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findLastIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = length - 1; i >= 0; --i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the value of the reverse direction element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLast` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function findLast(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findLastIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n/**\n* Returns the value of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `find` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function find(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n\n/**\n* window.requestAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {FrameRequestCallback} callback - The function to call when it's time to update your animation for the next repaint.\n* @return {number} id\n* @example\nimport {requestAnimationFrame} from \"@daybrush/utils\";\n\nrequestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n*/\nexport const requestAnimationFrame = /*#__PURE__*/(() => {\n const firstTime = now();\n\n const raf = IS_WINDOW\n && (window.requestAnimationFrame || (window as any).webkitRequestAnimationFrame\n || (window as any).mozRequestAnimationFrame || (window as any).msRequestAnimationFrame);\n\n return raf ? (raf.bind(window) as (callback: FrameRequestCallback) => number) : ((callback: FrameRequestCallback) => {\n const currTime = now();\n const id = setTimeout(() => {\n callback(currTime - firstTime);\n }, 1000 / 60);\n\n return id as any as number;\n });\n})();\n\n/**\n* window.cancelAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {number} handle - the id obtained through requestAnimationFrame method\n* @return {void}\n* @example\nimport { requestAnimationFrame, cancelAnimationFrame } from \"@daybrush/utils\";\n\nconst id = requestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n\ncancelAnimationFrame(id);\n*/\nexport const cancelAnimationFrame = /*#__PURE__*/(() => {\n const caf = IS_WINDOW\n && (window.cancelAnimationFrame || (window as any).webkitCancelAnimationFrame\n || (window as any).mozCancelAnimationFrame || (window as any).msCancelAnimationFrame);\n\n return caf\n ? caf.bind(window) as (handle: number) => void\n : ((handle: number) => { clearTimeout(handle); });\n})();\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getKeys(obj: IObject): string[] {\n return Object.keys(obj);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getValues(obj: IObject): any[] {\n const keys = getKeys(obj);\n\n return keys.map(key => obj[key]);\n}\n/**\n* @function\n* @memberof Utils\n*/\nexport function getEntries(obj: IObject): [string, any][] {\n const keys = getKeys(obj);\n\n return keys.map(key => [key, obj[key]]);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function sortOrders(keys: Array, orders: Array = []) {\n keys.sort((a, b) => {\n const index1 = orders.indexOf(a);\n const index2 = orders.indexOf(b);\n\n if (index2 === -1 && index1 === -1) {\n return 0;\n }\n if (index1 === -1) {\n return 1;\n }\n if (index2 === -1) {\n return -1;\n }\n return index1 - index2;\n });\n}\n\n/**\n* convert unit size to px size\n* @function\n* @memberof Utils\n*/\nexport function convertUnitSize(pos: string, size: number | IObject<((pos: number) => number) | number>) {\n const { value, unit } = splitUnit(pos);\n\n if (isObject(size)) {\n const sizeFunction = size[unit];\n if (sizeFunction) {\n if (isFunction(sizeFunction)) {\n return sizeFunction(value);\n } else if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value, sizeFunction);\n }\n }\n } else if (unit === \"%\") {\n return value * size / 100;\n }\n if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value);\n }\n return value;\n}\n\n/**\n* calculate between min, max\n* @function\n* @memberof Utils\n*/\nexport function between(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(value, max));\n}\n\nexport function checkBoundSize(targetSize: number[], compareSize: number[], isMax: boolean, ratio = targetSize[0] / targetSize[1]) {\n return [\n [throttle(compareSize[0], TINY_NUM), throttle(compareSize[0] / ratio, TINY_NUM)],\n [throttle(compareSize[1] * ratio, TINY_NUM), throttle(compareSize[1], TINY_NUM)],\n ].filter(size => size.every((value, i) => {\n const defaultSize = compareSize[i];\n const throttledSize = throttle(defaultSize, TINY_NUM);\n\n return isMax ? value <= defaultSize || value <= throttledSize : value >= defaultSize || value >= throttledSize;\n }))[0] || targetSize;\n}\n\n/**\n* calculate bound size\n* @function\n* @memberof Utils\n*/\nexport function calculateBoundSize(\n size: number[],\n minSize: number[],\n maxSize: number[],\n keepRatio?: number | boolean,\n): number[] {\n if (!keepRatio) {\n return size.map((value, i) => between(value, minSize[i], maxSize[i]));\n }\n let [width, height] = size;\n\n const ratio = keepRatio === true ? width / height : keepRatio;\n // width : height = minWidth : minHeight;\n const [minWidth, minHeight] = checkBoundSize(size, minSize, false, ratio);\n const [maxWidth, maxHeight] = checkBoundSize(size, maxSize, true, ratio);\n\n if (width < minWidth || height < minHeight) {\n width = minWidth;\n height = minHeight;\n } else if (width > maxWidth || height > maxHeight) {\n width = maxWidth;\n height = maxHeight;\n }\n return [width, height];\n}\n\n\n/**\n* Add all the numbers.\n* @function\n* @memberof Utils\n*/\nexport function sum(nums: number[]): number {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return total;\n}\n\n/**\n* Average all numbers.\n* @function\n* @memberof Utils\n*/\nexport function average(nums: number[]) {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return length ? total / length : 0;\n}\n/**\n* Get the angle of two points. (0 <= rad < 359)\n* @function\n* @memberof Utils\n*/\nexport function getRad(pos1: number[], pos2: number[]): number {\n const distX = pos2[0] - pos1[0];\n const distY = pos2[1] - pos1[1];\n const rad = Math.atan2(distY, distX);\n\n return rad >= 0 ? rad : rad + Math.PI * 2;\n}\n/**\n* Get the average point of all points.\n* @function\n* @memberof Utils\n*/\nexport function getCenterPoint(points: number[][]): number[] {\n return [0, 1].map(i => average(points.map(pos => pos[i])));\n}\n/**\n* Gets the direction of the shape.\n* @function\n* @memberof Utils\n*/\nexport function getShapeDirection(points: number[][]): 1 | -1 {\n const center = getCenterPoint(points);\n const pos1Rad = getRad(center, points[0]);\n const pos2Rad = getRad(center, points[1]);\n\n return (pos1Rad < pos2Rad && pos2Rad - pos1Rad < Math.PI) || (pos1Rad > pos2Rad && pos2Rad - pos1Rad < -Math.PI)\n ? 1 : -1;\n}\n\n/**\n* Get the distance between two points.\n* @function\n* @memberof Utils\n*/\nexport function getDist(a: number[], b?: number[]) {\n return Math.sqrt(Math.pow((b ? b[0] : 0) - a[0], 2) + Math.pow((b ? b[1] : 0) - a[1], 2));\n}\n\n/**\n* throttle number depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttle(num: number, unit?: number) {\n if (!unit) {\n return num;\n }\n const reverseUnit = 1 / unit;\n return Math.round(num / unit) / reverseUnit;\n}\n\n/**\n* throttle number array depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttleArray(nums: number[], unit?: number) {\n nums.forEach((_, i) => {\n nums[i] = throttle(nums[i], unit);\n });\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function counter(num: number): number[] {\n const nums: number[] = [];\n\n for (let i = 0; i < num; ++i) {\n nums.push(i);\n }\n\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function replaceOnce(text: string, fromText: RegExp | string, toText: string | ((...args: any[]) => string)): string {\n let isOnce = false;\n return text.replace(fromText, (...args: any[]) => {\n if (isOnce) {\n return args[0];\n }\n isOnce = true;\n return isString(toText) ? toText : toText(...args);\n });\n}\n\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function flat(arr: Type[][]): Type[] {\n return arr.reduce((prev, cur) => {\n return prev.concat(cur);\n }, []);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function deepFlat(arr: T): Array> {\n return arr.reduce((prev, cur) => {\n if (isArray(cur)) {\n prev.push(...deepFlat(cur));\n } else {\n prev.push(cur);\n }\n return prev;\n }, [] as any[]);\n}\n","import { RGB, RGBA, HSL, HSLA } from \"./consts\";\nimport { splitBracket, splitComma } from \"./utils\";\n\n/**\n* @namespace\n* @name Color\n*/\n\n/**\n* Remove the # from the hex color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} hex color\n* @example\nimport {cutHex} from \"@daybrush/utils\";\n\nconsole.log(cutHex(\"#000000\")) // \"000000\"\n*/\nexport function cutHex(hex: string) {\n return hex.replace(\"#\", \"\");\n}\n/**\n* convert hex color to rgb color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} rgb color\n* @example\nimport {hexToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hexToRGBA(\"#00000005\"));\n// [0, 0, 0, 1]\nconsole.log(hexToRGBA(\"#201045\"));\n// [32, 16, 69, 1]\n*/\nexport function hexToRGBA(hex: string): [number, number, number, number] {\n const h = cutHex(hex);\n const r = parseInt(h.substring(0, 2), 16);\n const g = parseInt(h.substring(2, 4), 16);\n const b = parseInt(h.substring(4, 6), 16);\n let a = parseInt(h.substring(6, 8), 16) / 255;\n\n if (isNaN(a)) {\n a = 1;\n }\n return [r, g, b, a];\n}\n\n/**\n* convert 3(or 4)-digit hex color to 6(or 8)-digit hex color.\n* @memberof Color\n* @param {} hex - 3(or 4)-digit hex color\n* @return {} 6(or 8)-digit hex color\n* @example\nimport {toFullHex} from \"@daybrush/utils\";\n\nconsole.log(toFullHex(\"#123\")); // \"#112233\"\nconsole.log(toFullHex(\"#123a\")); // \"#112233aa\"\n*/\nexport function toFullHex(h: string): string {\n const r = h.charAt(1);\n const g = h.charAt(2);\n const b = h.charAt(3);\n const a = h.charAt(4);\n const arr = [\"#\", r, r, g, g, b, b, a, a];\n\n return arr.join(\"\");\n}\n/**\n* convert hsl color to rgba color.\n* @memberof Color\n* @param {} hsl - hsl color(hue: 0 ~ 360, saturation: 0 ~ 1, lightness: 0 ~ 1, alpha: 0 ~ 1)\n* @return {} rgba color\n* @example\nimport {hslToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hslToRGBA([150, 0.5, 0.4]));\n// [51, 153, 102, 1]\n*/\nexport function hslToRGBA(hsl: readonly [number, number, number, number?]): [number, number, number, number] {\n let h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n\n if (h < 0) {\n h += Math.floor((Math.abs(h) + 360) / 360) * 360;\n }\n h %= 360;\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let rgb: [number, number, number];\n\n if (h < 60) {\n rgb = [c, x, 0];\n } else if (h < 120) {\n rgb = [x, c, 0];\n } else if (h < 180) {\n rgb = [0, c, x];\n } else if (h < 240) {\n rgb = [0, x, c];\n } else if (h < 300) {\n rgb = [x, 0, c];\n } else if (h < 360) {\n rgb = [c, 0, x];\n } else {\n rgb = [0, 0, 0];\n }\n\n return [\n Math.round((rgb[0] + m) * 255),\n Math.round((rgb[1] + m) * 255),\n Math.round((rgb[2] + m) * 255),\n hsl[3] ?? 1,\n ];\n}\n/**\n* convert string to rgba color.\n* @memberof Color\n* @param {} - 3-hex(#000), 4-hex(#0000) 6-hex(#000000), 8-hex(#00000000) or RGB(A), or HSL(A)\n* @return {} rgba color\n* @example\nimport {stringToRGBA} from \"@daybrush/utils\";\n\nconsole.log(stringToRGBA(\"#000000\")); // [0, 0, 0, 1]\nconsole.log(stringToRGBA(\"rgb(100, 100, 100)\")); // [100, 100, 100, 1]\nconsole.log(stringToRGBA(\"hsl(150, 0.5, 0.4)\")); // [51, 153, 102, 1]\n*/\nexport function stringToRGBA(color: string): [number, number, number, number] {\n if (color.charAt(0) === \"#\") {\n if (color.length === 4 || color.length === 5) {\n return hexToRGBA(toFullHex(color));\n } else {\n return hexToRGBA(color);\n }\n } else if (color.indexOf(\"(\") !== -1) {\n // in bracket.\n const {prefix, value} = splitBracket(color);\n\n if (!prefix || !value) {\n return undefined as never;\n }\n const arr = splitComma(value);\n const colorArr: [number, number, number, number] = [0, 0, 0, 1];\n const length = arr.length;\n\n switch (prefix) {\n case RGB:\n case RGBA:\n for (let i = 0; i < length; ++i) {\n colorArr[i] = parseFloat(arr[i]);\n }\n return colorArr;\n case HSL:\n case HSLA:\n for (let i = 0; i < length; ++i) {\n if (arr[i].indexOf(\"%\") !== -1) {\n colorArr[i] = parseFloat(arr[i]) / 100;\n } else {\n colorArr[i] = parseFloat(arr[i]);\n }\n }\n // hsl, hsla to rgba\n return hslToRGBA(colorArr);\n }\n }\n return undefined as never;\n}\n","import { document } from \"./consts\";\nimport { IObject, IEventMap } from \"./types\";\n\n/**\n * @namespace DOM\n */\n\nexport function $(selectors: K, multi: true):\n NodeListOf;\nexport function $(selectors: K, multi: true): NodeListOf;\nexport function $(selectors: string, multi: true): NodeListOf;\n\nexport function $(selectors: K, multi?: false): HTMLElementTagNameMap[K] | null;\nexport function $(selectors: K, multi?: false): SVGElementTagNameMap[K] | null;\nexport function $(selectors: string, multi?: false): E | null;\n/**\n * Returns all element descendants of node that\n * match selectors.\n */\n\n/**\n * Checks if the specified class value exists in the element's class attribute.\n * @memberof DOM\n * @param - A DOMString containing one or more selectors to match\n * @param - If multi is true, a DOMString containing one or more selectors to match against.\n * @example\nimport {$} from \"@daybrush/utils\";\n\nconsole.log($(\"div\")); // div element\nconsole.log($(\"div\", true)); // [div, div] elements\n*/\nexport function $(selectors: string, multi?: boolean): E | NodeListOf | null {\n return multi ? document.querySelectorAll(selectors) : document.querySelector(selectors);\n}\n\n/**\n* Checks if the specified class value exists in the element's class attribute.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to search\n* @return {boolean} return false if the class is not found.\n* @example\nimport {hasClass} from \"@daybrush/utils\";\n\nconsole.log(hasClass(element, \"start\")); // true or false\n*/\nexport function hasClass(element: Element, className: string) {\n if (element.classList) {\n return element.classList.contains(className);\n }\n return !!element.className.match(new RegExp(`(\\\\s|^)${className}(\\\\s|$)`));\n}\n\n/**\n* Add the specified class value. If these classe already exist in the element's class attribute they are ignored.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to add\n* @example\nimport {addClass} from \"@daybrush/utils\";\n\naddClass(element, \"start\");\n*/\nexport function addClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.add(className);\n } else {\n element.className += ` ${className}`;\n }\n}\n\n/**\n* Removes the specified class value.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to remove\n* @example\nimport {removeClass} from \"@daybrush/utils\";\n\nremoveClass(element, \"start\");\n*/\nexport function removeClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.remove(className);\n } else {\n const reg = new RegExp(`(\\\\s|^)${className}(\\\\s|$)`);\n\n element.className = element.className.replace(reg, \" \");\n }\n}\n\n/**\n* Gets the CSS properties from the element.\n* @memberof DOM\n* @param elements - elements\n* @param properites - the CSS properties\n* @return returns CSS properties and values.\n* @example\nimport {fromCSS} from \"@daybrush/utils\";\n\nconsole.log(fromCSS(element, [\"left\", \"opacity\", \"top\"])); // {\"left\": \"10px\", \"opacity\": 1, \"top\": \"10px\"}\n*/\nexport function fromCSS(\n elements: Element | Element[] | NodeListOf, properties: string[]): IObject {\n if (!elements || !properties || !properties.length) {\n return {};\n }\n let element;\n\n if (elements instanceof Element) {\n element = elements;\n } else if (elements.length) {\n element = elements[0];\n } else {\n return {};\n }\n const cssObject: IObject = {};\n const styles = window.getComputedStyle(element) as any;\n const length = properties.length;\n\n for (let i = 0; i < length; ++i) {\n cssObject[properties[i]] = styles[properties[i]];\n }\n return cssObject;\n}\n\nexport function addEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;\n/**\n* Sets up a function that will be called whenever the specified event is delivered to the target\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The object which receives a notification (an object that implements the Event interface) when an event of the specified type occurs\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent} from \"@daybrush/utils\";\n\naddEvent(el, \"click\", e => {\n console.log(e);\n});\n*/\nexport function addEvent(\n el: EventTarget,\n type: string, listener: (e: Event) => void,\n options?: boolean | AddEventListenerOptions) {\n el.addEventListener(type, listener, options);\n}\n\nexport function removeEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | EventListenerOptions): void;\n/**\n* removes from the EventTarget an event listener previously registered with EventTarget.addEventListener()\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The EventListener function of the event handler to remove from the event target.\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent, removeEvent} from \"@daybrush/utils\";\nconst listener = e => {\n console.log(e);\n};\naddEvent(el, \"click\", listener);\nremoveEvent(el, \"click\", listener);\n*/\nexport function removeEvent(\n el: EventTarget, type: string,\n listener: (e: Event) => void,\n options?: boolean | EventListenerOptions,\n) {\n el.removeEventListener(type, listener, options);\n}\n"],"names":["RGB","RGBA","HSL","HSLA","COLOR_MODELS","FUNCTION","PROPERTY","ARRAY","OBJECT","STRING","NUMBER","UNDEFINED","IS_WINDOW","window","doc","document","prefixes","getCrossBrowserProperty","property","styles","body","documentElement","style","length","i","name","TRANSFORM","FILTER","ANIMATION","KEYFRAMES","replace","OPEN_CLOSED_CHARACTERS","open","close","TINY_NUM","REVERSE_TINY_NUM","DEFAULT_UNIT_PRESETS","pos","size","innerWidth","innerHeight","Math","max","min","dot","a1","a2","b1","b2","isUndefined","value","isObject","isArray","Array","isString","isNumber","isFunction","isEqualSeparator","character","separator","isCharacterSpace","isSeparatorSpace","findOpen","openCharacter","texts","index","openCloseCharacters","isIgnore","findIgnore","findClose","ignore","otherText","slice","join","RegExp","exec","closeCharacter","trim","nextIndex","find","_a","splitText","text","splitOptions","_b","isSeparateFirst","isSeparateOnlyOpenClose","_c","isSeparateOpenClose","_d","openClosedText","map","regexText","regex","split","filter","Boolean","values","tempValues","resetTemp","push","nextOpenCloseCharacters","splice","indexOf","splitSpace","splitComma","splitBracket","matches","prefix","suffix","splitUnit","unit","NaN","parseFloat","camelize","str","all","letter","toUpperCase","decamelize","letter2","toLowerCase","toArray","call","now","Date","getTime","findIndex","arr","callback","defaultIndex","findLastIndex","findLast","defalutValue","requestAnimationFrame","firstTime","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","bind","currTime","id","setTimeout","cancelAnimationFrame","caf","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","handle","clearTimeout","getKeys","obj","Object","keys","getValues","key","getEntries","sortOrders","orders","sort","a","b","index1","index2","convertUnitSize","sizeFunction","between","checkBoundSize","targetSize","compareSize","isMax","ratio","throttle","every","defaultSize","throttledSize","calculateBoundSize","minSize","maxSize","keepRatio","width","height","minWidth","minHeight","maxWidth","maxHeight","sum","nums","total","average","getRad","pos1","pos2","distX","distY","rad","atan2","PI","getCenterPoint","points","getShapeDirection","center","pos1Rad","pos2Rad","getDist","sqrt","pow","num","reverseUnit","round","throttleArray","forEach","_","counter","replaceOnce","fromText","toText","isOnce","_i","args","flat","reduce","prev","cur","concat","deepFlat","cutHex","hex","hexToRGBA","h","r","parseInt","substring","g","isNaN","toFullHex","charAt","hslToRGBA","hsl","s","l","floor","abs","c","x","m","rgb","stringToRGBA","color","undefined","colorArr","$","selectors","multi","querySelectorAll","querySelector","hasClass","element","className","classList","contains","match","addClass","add","removeClass","remove","reg","fromCSS","elements","properties","Element","cssObject","getComputedStyle","addEvent","el","type","listener","options","addEventListener","removeEvent","removeEventListener"],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils.min.js b/dist/utils.min.js new file mode 100644 index 0000000..4877d10 --- /dev/null +++ b/dist/utils.min.js @@ -0,0 +1,10 @@ +/* +Copyright (c) 2018 Daybrush +@name: @daybrush/utils +license: MIT +author: Daybrush +repository: https://github.com/daybrush/utils +@version 1.10.1 +*/ +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.utils=e()}(this,function(){"use strict";function n(n){if(l){var e=(l.body||l.documentElement).style,t=p.length;if(typeof e[n]!=o)return n;for(var r=0;r {\n if (!doc) {\n return \"\";\n }\n const styles = (doc.body || doc.documentElement).style as any;\n const length = prefixes.length;\n\n if (typeof styles[property] !== UNDEFINED) {\n return property;\n }\n for (let i = 0; i < length; ++i) {\n const name = `-${prefixes[i]}-${property}`;\n\n if (typeof styles[name] !== UNDEFINED) {\n return name;\n }\n }\n return \"\";\n};\n\n/**\n* get string \"transfrom\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {TRANSFORM} from \"@daybrush/utils\";\n\nconsole.log(TRANSFORM); // \"transform\", \"-ms-transform\", \"-webkit-transform\"\n*/\nexport const TRANSFORM = /*#__PURE__*/getCrossBrowserProperty(\"transform\");\n/**\n* get string \"filter\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {FILTER} from \"@daybrush/utils\";\n\nconsole.log(FILTER); // \"filter\", \"-ms-filter\", \"-webkit-filter\"\n*/\nexport const FILTER = /*#__PURE__*/getCrossBrowserProperty(\"filter\");\n/**\n* get string \"animation\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {ANIMATION} from \"@daybrush/utils\";\n\nconsole.log(ANIMATION); // \"animation\", \"-ms-animation\", \"-webkit-animation\"\n*/\nexport const ANIMATION = /*#__PURE__*/getCrossBrowserProperty(\"animation\");\n/**\n* get string \"keyframes\" with the vendor prefix.\n* @memberof CrossBrowser\n* @example\nimport {KEYFRAMES} from \"@daybrush/utils\";\n\nconsole.log(KEYFRAMES); // \"keyframes\", \"-ms-keyframes\", \"-webkit-keyframes\"\n*/\nexport const KEYFRAMES = /*#__PURE__*/ANIMATION.replace(\"animation\", \"keyframes\");\n\nexport const OPEN_CLOSED_CHARACTERS: OpenCloseCharacter[] = [\n { open: \"(\", close: \")\" },\n { open: `\"`, close: `\"`},\n { open: `'`, close: `'`},\n { open: `\\\\\"`, close: `\\\\\"`},\n { open: `\\\\'`, close: `\\\\'`},\n];\nexport const TINY_NUM = 0.0000001;\nexport const REVERSE_TINY_NUM = 1 / TINY_NUM;\nexport const DEFAULT_UNIT_PRESETS: IObject<(pos: number, size?: number) => number> = {\n \"cm\": pos => pos * 96 / 2.54,\n \"mm\": pos => pos * 96 / 254,\n \"in\": pos => pos * 96,\n \"pt\": pos => pos * 96 / 72,\n \"pc\": pos => pos * 96 / 6,\n \"%\": (pos, size) => pos * size! / 100,\n \"vw\": (pos, size = window.innerWidth) => pos / 100 * size,\n \"vh\": (pos, size = window.innerHeight) => pos / 100 * size,\n \"vmax\": (pos, size = Math.max(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n \"vmin\": (pos, size = Math.min(window.innerWidth, window.innerHeight)) => pos / 100 * size,\n};\n","import {\n UNDEFINED, STRING,\n OBJECT, FUNCTION,\n IS_WINDOW, OPEN_CLOSED_CHARACTERS, NUMBER,\n DEFAULT_UNIT_PRESETS,\n TINY_NUM\n} from \"./consts\";\nimport {\n FlattedElement,\n IArrayFormat, IObject, OpenCloseCharacter,\n SplitOptions,\n} from \"./types\";\n/**\n* @namespace\n* @name Utils\n*/\n\n/**\n * Returns the inner product of two numbers(`a1`, `a2`) by two criteria(`b1`, `b2`).\n * @memberof Utils\n * @param - The first number\n * @param - The second number\n * @param - The first number to base on the inner product\n * @param - The second number to base on the inner product\n * @return - Returns the inner product\nimport { dot } from \"@daybrush/utils\";\n\nconsole.log(dot(0, 15, 2, 3)); // 6\nconsole.log(dot(5, 15, 2, 3)); // 9\nconsole.log(dot(5, 15, 1, 1)); // 10\n */\nexport function dot(a1: number, a2: number, b1: number, b2: number) {\n return (a1 * b2 + a2 * b1) / (b1 + b2);\n}\n/**\n* Check the type that the value is undefined.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {boolean} true if the type is correct, false otherwise\n* @example\nimport {isUndefined} from \"@daybrush/utils\";\n\nconsole.log(isUndefined(undefined)); // true\nconsole.log(isUndefined(\"\")); // false\nconsole.log(isUndefined(1)); // false\nconsole.log(isUndefined(null)); // false\n*/\nexport function isUndefined(value: any): value is undefined {\n return (typeof value === UNDEFINED);\n}\n/**\n* Check the type that the value is object.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isObject} from \"@daybrush/utils\";\n\nconsole.log(isObject({})); // true\nconsole.log(isObject(undefined)); // false\nconsole.log(isObject(\"\")); // false\nconsole.log(isObject(null)); // false\n*/\nexport function isObject(value: any): value is IObject {\n return value && (typeof value === OBJECT);\n}\n/**\n* Check the type that the value is isArray.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isArray} from \"@daybrush/utils\";\n\nconsole.log(isArray([])); // true\nconsole.log(isArray({})); // false\nconsole.log(isArray(undefined)); // false\nconsole.log(isArray(null)); // false\n*/\nexport function isArray(value: any): value is any[] {\n return Array.isArray(value);\n}\n/**\n* Check the type that the value is string.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isString} from \"@daybrush/utils\";\n\nconsole.log(isString(\"1234\")); // true\nconsole.log(isString(undefined)); // false\nconsole.log(isString(1)); // false\nconsole.log(isString(null)); // false\n*/\nexport function isString(value: any): value is string {\n return typeof value === STRING;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === NUMBER;\n}\n\n/**\n* Check the type that the value is function.\n* @memberof Utils\n* @param {string} value - Value to check the type\n* @return {} true if the type is correct, false otherwise\n* @example\nimport {isFunction} from \"@daybrush/utils\";\n\nconsole.log(isFunction(function a() {})); // true\nconsole.log(isFunction(() => {})); // true\nconsole.log(isFunction(\"1234\")); // false\nconsole.log(isFunction(1)); // false\nconsole.log(isFunction(null)); // false\n*/\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === FUNCTION;\n}\nfunction isEqualSeparator(\n character: string,\n separator: string,\n) {\n const isCharacterSpace = character === \"\" || character == \" \";\n const isSeparatorSpace = separator === \"\" || separator == \" \";\n\n return (isSeparatorSpace && isCharacterSpace) || character === separator;\n}\nfunction findOpen(\n openCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n const isIgnore = findIgnore(openCharacter, texts, index);\n\n if (!isIgnore) {\n return findClose(openCharacter, texts, index + 1, length, openCloseCharacters);\n }\n return index;\n}\nfunction findIgnore(\n character: OpenCloseCharacter,\n texts: string[],\n index: number,\n) {\n if (!character.ignore) {\n return null;\n }\n const otherText = texts.slice(Math.max(index - 3, 0), index + 3).join(\"\");\n\n return new RegExp(character.ignore).exec(otherText);\n\n}\nfunction findClose(\n closeCharacter: OpenCloseCharacter,\n texts: string[],\n index: number,\n length: number,\n openCloseCharacters: OpenCloseCharacter[],\n) {\n for (let i = index; i < length; ++i) {\n const character = texts[i].trim();\n\n if (character === closeCharacter.close && !findIgnore(closeCharacter, texts, i)) {\n return i;\n }\n let nextIndex = i;\n // re open\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n }\n if (nextIndex === -1) {\n break;\n }\n i = nextIndex;\n }\n return -1;\n}\n\nexport function splitText(\n text: string,\n splitOptions: string | SplitOptions,\n): string[] {\n const {\n separator = \",\",\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose = isSeparateOnlyOpenClose,\n openCloseCharacters = OPEN_CLOSED_CHARACTERS,\n } = isString(splitOptions) ? {\n separator: splitOptions,\n } as SplitOptions : splitOptions;\n const openClosedText = openCloseCharacters.map(({ open, close }) => {\n if (open === close) {\n return open;\n }\n return `${open}|${close}`;\n }).join(\"|\");\n const regexText = `(\\\\s*${separator}\\\\s*|${openClosedText}|\\\\s+)`;\n const regex = new RegExp(regexText, \"g\");\n const texts = text.split(regex).filter(Boolean);\n const length = texts.length;\n const values: string[] = [];\n let tempValues: string[] = [];\n\n function resetTemp() {\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n tempValues = [];\n\n return true;\n }\n return false;\n }\n for (let i = 0; i < length; ++i) {\n const character = texts[i].trim();\n let nextIndex = i;\n\n\n const openCharacter = find(openCloseCharacters, ({ open }) => open === character);\n const closeCharacter = find(openCloseCharacters, ({ close }) => close === character);\n\n if (openCharacter) {\n nextIndex = findOpen(openCharacter, texts, i, length, openCloseCharacters);\n\n if (nextIndex !== -1 && isSeparateOpenClose) {\n if (resetTemp() && isSeparateFirst) {\n break;\n }\n values.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n } else if (closeCharacter && !findIgnore(closeCharacter, texts, i)) {\n const nextOpenCloseCharacters = [...openCloseCharacters];\n\n nextOpenCloseCharacters.splice(openCloseCharacters.indexOf(closeCharacter), 1);\n\n return splitText(\n text,\n {\n separator,\n isSeparateFirst,\n isSeparateOnlyOpenClose,\n isSeparateOpenClose,\n openCloseCharacters: nextOpenCloseCharacters,\n });\n } else if (isEqualSeparator(character, separator) && !isSeparateOnlyOpenClose) {\n resetTemp();\n if (isSeparateFirst) {\n break;\n }\n continue;\n }\n\n if (nextIndex === -1) {\n nextIndex = length - 1;\n }\n tempValues.push(texts.slice(i, nextIndex + 1).join(\"\"));\n i = nextIndex;\n }\n if (tempValues.length) {\n values.push(tempValues.join(\"\"));\n }\n return values;\n}\n\n/**\n* divide text by space.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {spliceSpace} from \"@daybrush/utils\";\n\nconsole.log(splitSpace(\"a b c d e f g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitSpace(\"'a,b' c 'd,e' f g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitSpace(text: string) {\n // divide comma(space)\n return splitText(text, \"\");\n}\n\n/**\n* divide text by comma.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {Array} divided texts\n* @example\nimport {splitComma} from \"@daybrush/utils\";\n\nconsole.log(splitComma(\"a,b,c,d,e,f,g\"));\n// [\"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\"]\nconsole.log(splitComma(\"'a,b',c,'d,e',f,g\"));\n// [\"'a,b'\", \"c\", \"'d,e'\", \"f\", \"g\"]\n*/\nexport function splitComma(text: string): string[] {\n // divide comma(,)\n // \"[^\"]*\"|'[^']*'\n return splitText(text, \",\");\n}\n/**\n* divide text by bracket \"(\", \")\".\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {object} divided texts\n* @example\nimport {splitBracket} from \"@daybrush/utils\";\n\nconsole.log(splitBracket(\"a(1, 2)\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"\"}\nconsole.log(splitBracket(\"a(1, 2)b\"));\n// {prefix: \"a\", value: \"1, 2\", suffix: \"b\"}\n*/\nexport function splitBracket(text: string) {\n const matches = (/([^(]*)\\(([\\s\\S]*)\\)([\\s\\S]*)/g).exec(text);\n\n if (!matches || matches.length < 4) {\n return {};\n } else {\n return { prefix: matches[1], value: matches[2], suffix: matches[3] };\n }\n}\n/**\n* divide text by number and unit.\n* @memberof Utils\n* @param {string} text - text to divide\n* @return {} divided texts\n* @example\nimport {splitUnit} from \"@daybrush/utils\";\n\nconsole.log(splitUnit(\"10px\"));\n// {prefix: \"\", value: 10, unit: \"px\"}\nconsole.log(splitUnit(\"-10px\"));\n// {prefix: \"\", value: -10, unit: \"px\"}\nconsole.log(splitUnit(\"a10%\"));\n// {prefix: \"a\", value: 10, unit: \"%\"}\n*/\nexport function splitUnit(text: string): { prefix: string, unit: string, value: number } {\n const matches = /^([^\\d|e|\\-|\\+]*)((?:\\d|\\.|-|e-|e\\+)+)(\\S*)$/g.exec(text);\n\n if (!matches) {\n return { prefix: \"\", unit: \"\", value: NaN };\n }\n const prefix = matches[1];\n const value = matches[2];\n const unit = matches[3];\n\n return { prefix, unit, value: parseFloat(value) };\n}\n\n/**\n* transform strings to camel-case\n* @memberof Utils\n* @param {String} text - string\n* @return {String} camel-case string\n* @example\nimport {camelize} from \"@daybrush/utils\";\n\nconsole.log(camelize(\"transform-origin\")); // transformOrigin\nconsole.log(camelize(\"abcd_efg\")); // abcdEfg\nconsole.log(camelize(\"abcd efg\")); // abcdEfg\n*/\nexport function camelize(str: string) {\n return str.replace(/[\\s-_]([a-z])/g, (all, letter) => letter.toUpperCase());\n}\n/**\n* transform a camelized string into a lowercased string.\n* @memberof Utils\n* @param {string} text - a camel-cased string\n* @param {string} [separator=\"-\"] - a separator\n* @return {string} a lowercased string\n* @example\nimport {decamelize} from \"@daybrush/utils\";\n\nconsole.log(decamelize(\"transformOrigin\")); // transform-origin\nconsole.log(decamelize(\"abcdEfg\", \"_\")); // abcd_efg\n*/\nexport function decamelize(str: string, separator: string = \"-\") {\n return str.replace(/([a-z])([A-Z])/g, (all, letter, letter2) => `${letter}${separator}${letter2.toLowerCase()}`);\n}\n\n/**\n* transforms something in an array into an array.\n* @memberof Utils\n* @param - Array form\n* @return an array\n* @example\nimport {toArray} from \"@daybrush/utils\";\n\nconst arr1 = toArray(document.querySelectorAll(\".a\")); // Element[]\nconst arr2 = toArray(document.querySelectorAll(\".a\")); // HTMLElement[]\n*/\nexport function toArray(value: IArrayFormat): T[] {\n return [].slice.call(value);\n}\n\n/**\n* Date.now() method\n* @memberof CrossBrowser\n* @return {number} milliseconds\n* @example\nimport {now} from \"@daybrush/utils\";\n\nconsole.log(now()); // 12121324241(milliseconds)\n*/\nexport function now() {\n return Date.now ? Date.now() : new Date().getTime();\n}\n\n/**\n* Returns the index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findIndex } from \"@daybrush/utils\";\n\nfindIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = 0; i < length; ++i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the reverse direction index of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLastIndex` was called upon.\n* @param - A function to execute on each value in the array until the function returns true, indicating that the satisfying element was found.\n* @param - Returns defaultIndex if not found by the function.\n* @example\nimport { findLastIndex } from \"@daybrush/utils\";\n\nfindLastIndex([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // 1\n*/\nexport function findLastIndex(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defaultIndex: number = -1,\n): number {\n const length = arr.length;\n\n for (let i = length - 1; i >= 0; --i) {\n if (callback(arr[i], i, arr)) {\n return i;\n }\n }\n return defaultIndex;\n}\n\n/**\n* Returns the value of the reverse direction element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `findLast` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function findLast(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findLastIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n/**\n* Returns the value of the first element in the array that satisfies the provided testing function.\n* @function\n* @memberof CrossBrowser\n* @param - The array `find` was called upon.\n* @param - A function to execute on each value in the array,\n* @param - Returns defalutValue if not found by the function.\n* @example\nimport { find } from \"@daybrush/utils\";\n\nfind([{a: 1}, {a: 2}, {a: 3}, {a: 4}], ({ a }) => a === 2); // {a: 2}\n*/\nexport function find(\n arr: T[],\n callback: (element: T, index: number, arr: T[]) => any,\n defalutValue?: T,\n): T | undefined {\n const index = findIndex(arr, callback);\n\n return index > - 1 ? arr[index] : defalutValue;\n}\n\n/**\n* window.requestAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {FrameRequestCallback} callback - The function to call when it's time to update your animation for the next repaint.\n* @return {number} id\n* @example\nimport {requestAnimationFrame} from \"@daybrush/utils\";\n\nrequestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n*/\nexport const requestAnimationFrame = /*#__PURE__*/(() => {\n const firstTime = now();\n\n const raf = IS_WINDOW\n && (window.requestAnimationFrame || (window as any).webkitRequestAnimationFrame\n || (window as any).mozRequestAnimationFrame || (window as any).msRequestAnimationFrame);\n\n return raf ? (raf.bind(window) as (callback: FrameRequestCallback) => number) : ((callback: FrameRequestCallback) => {\n const currTime = now();\n const id = setTimeout(() => {\n callback(currTime - firstTime);\n }, 1000 / 60);\n\n return id as any as number;\n });\n})();\n\n/**\n* window.cancelAnimationFrame() method with cross browser.\n* @function\n* @memberof CrossBrowser\n* @param {number} handle - the id obtained through requestAnimationFrame method\n* @return {void}\n* @example\nimport { requestAnimationFrame, cancelAnimationFrame } from \"@daybrush/utils\";\n\nconst id = requestAnimationFrame((timestamp) => {\n console.log(timestamp);\n});\n\ncancelAnimationFrame(id);\n*/\nexport const cancelAnimationFrame = /*#__PURE__*/(() => {\n const caf = IS_WINDOW\n && (window.cancelAnimationFrame || (window as any).webkitCancelAnimationFrame\n || (window as any).mozCancelAnimationFrame || (window as any).msCancelAnimationFrame);\n\n return caf\n ? caf.bind(window) as (handle: number) => void\n : ((handle: number) => { clearTimeout(handle); });\n})();\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getKeys(obj: IObject): string[] {\n return Object.keys(obj);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function getValues(obj: IObject): any[] {\n const keys = getKeys(obj);\n\n return keys.map(key => obj[key]);\n}\n/**\n* @function\n* @memberof Utils\n*/\nexport function getEntries(obj: IObject): [string, any][] {\n const keys = getKeys(obj);\n\n return keys.map(key => [key, obj[key]]);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function sortOrders(keys: Array, orders: Array = []) {\n keys.sort((a, b) => {\n const index1 = orders.indexOf(a);\n const index2 = orders.indexOf(b);\n\n if (index2 === -1 && index1 === -1) {\n return 0;\n }\n if (index1 === -1) {\n return 1;\n }\n if (index2 === -1) {\n return -1;\n }\n return index1 - index2;\n });\n}\n\n/**\n* convert unit size to px size\n* @function\n* @memberof Utils\n*/\nexport function convertUnitSize(pos: string, size: number | IObject<((pos: number) => number) | number>) {\n const { value, unit } = splitUnit(pos);\n\n if (isObject(size)) {\n const sizeFunction = size[unit];\n if (sizeFunction) {\n if (isFunction(sizeFunction)) {\n return sizeFunction(value);\n } else if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value, sizeFunction);\n }\n }\n } else if (unit === \"%\") {\n return value * size / 100;\n }\n if (DEFAULT_UNIT_PRESETS[unit]) {\n return DEFAULT_UNIT_PRESETS[unit](value);\n }\n return value;\n}\n\n/**\n* calculate between min, max\n* @function\n* @memberof Utils\n*/\nexport function between(value: number, min: number, max: number): number {\n return Math.max(min, Math.min(value, max));\n}\n\nexport function checkBoundSize(targetSize: number[], compareSize: number[], isMax: boolean, ratio = targetSize[0] / targetSize[1]) {\n return [\n [throttle(compareSize[0], TINY_NUM), throttle(compareSize[0] / ratio, TINY_NUM)],\n [throttle(compareSize[1] * ratio, TINY_NUM), throttle(compareSize[1], TINY_NUM)],\n ].filter(size => size.every((value, i) => {\n const defaultSize = compareSize[i];\n const throttledSize = throttle(defaultSize, TINY_NUM);\n\n return isMax ? value <= defaultSize || value <= throttledSize : value >= defaultSize || value >= throttledSize;\n }))[0] || targetSize;\n}\n\n/**\n* calculate bound size\n* @function\n* @memberof Utils\n*/\nexport function calculateBoundSize(\n size: number[],\n minSize: number[],\n maxSize: number[],\n keepRatio?: number | boolean,\n): number[] {\n if (!keepRatio) {\n return size.map((value, i) => between(value, minSize[i], maxSize[i]));\n }\n let [width, height] = size;\n\n const ratio = keepRatio === true ? width / height : keepRatio;\n // width : height = minWidth : minHeight;\n const [minWidth, minHeight] = checkBoundSize(size, minSize, false, ratio);\n const [maxWidth, maxHeight] = checkBoundSize(size, maxSize, true, ratio);\n\n if (width < minWidth || height < minHeight) {\n width = minWidth;\n height = minHeight;\n } else if (width > maxWidth || height > maxHeight) {\n width = maxWidth;\n height = maxHeight;\n }\n return [width, height];\n}\n\n\n/**\n* Add all the numbers.\n* @function\n* @memberof Utils\n*/\nexport function sum(nums: number[]): number {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return total;\n}\n\n/**\n* Average all numbers.\n* @function\n* @memberof Utils\n*/\nexport function average(nums: number[]) {\n const length = nums.length;\n let total = 0;\n\n for (let i = length - 1; i >= 0; --i) {\n total += nums[i];\n }\n return length ? total / length : 0;\n}\n/**\n* Get the angle of two points. (0 <= rad < 359)\n* @function\n* @memberof Utils\n*/\nexport function getRad(pos1: number[], pos2: number[]): number {\n const distX = pos2[0] - pos1[0];\n const distY = pos2[1] - pos1[1];\n const rad = Math.atan2(distY, distX);\n\n return rad >= 0 ? rad : rad + Math.PI * 2;\n}\n/**\n* Get the average point of all points.\n* @function\n* @memberof Utils\n*/\nexport function getCenterPoint(points: number[][]): number[] {\n return [0, 1].map(i => average(points.map(pos => pos[i])));\n}\n/**\n* Gets the direction of the shape.\n* @function\n* @memberof Utils\n*/\nexport function getShapeDirection(points: number[][]): 1 | -1 {\n const center = getCenterPoint(points);\n const pos1Rad = getRad(center, points[0]);\n const pos2Rad = getRad(center, points[1]);\n\n return (pos1Rad < pos2Rad && pos2Rad - pos1Rad < Math.PI) || (pos1Rad > pos2Rad && pos2Rad - pos1Rad < -Math.PI)\n ? 1 : -1;\n}\n\n/**\n* Get the distance between two points.\n* @function\n* @memberof Utils\n*/\nexport function getDist(a: number[], b?: number[]) {\n return Math.sqrt(Math.pow((b ? b[0] : 0) - a[0], 2) + Math.pow((b ? b[1] : 0) - a[1], 2));\n}\n\n/**\n* throttle number depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttle(num: number, unit?: number) {\n if (!unit) {\n return num;\n }\n const reverseUnit = 1 / unit;\n return Math.round(num / unit) / reverseUnit;\n}\n\n/**\n* throttle number array depending on the unit.\n* @function\n* @memberof Utils\n*/\nexport function throttleArray(nums: number[], unit?: number) {\n nums.forEach((_, i) => {\n nums[i] = throttle(nums[i], unit);\n });\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function counter(num: number): number[] {\n const nums: number[] = [];\n\n for (let i = 0; i < num; ++i) {\n nums.push(i);\n }\n\n return nums;\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function replaceOnce(text: string, fromText: RegExp | string, toText: string | ((...args: any[]) => string)): string {\n let isOnce = false;\n return text.replace(fromText, (...args: any[]) => {\n if (isOnce) {\n return args[0];\n }\n isOnce = true;\n return isString(toText) ? toText : toText(...args);\n });\n}\n\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function flat(arr: Type[][]): Type[] {\n return arr.reduce((prev, cur) => {\n return prev.concat(cur);\n }, []);\n}\n\n/**\n* @function\n* @memberof Utils\n*/\nexport function deepFlat(arr: T): Array> {\n return arr.reduce((prev, cur) => {\n if (isArray(cur)) {\n prev.push(...deepFlat(cur));\n } else {\n prev.push(cur);\n }\n return prev;\n }, [] as any[]);\n}\n","import { RGB, RGBA, HSL, HSLA } from \"./consts\";\nimport { splitBracket, splitComma } from \"./utils\";\n\n/**\n* @namespace\n* @name Color\n*/\n\n/**\n* Remove the # from the hex color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} hex color\n* @example\nimport {cutHex} from \"@daybrush/utils\";\n\nconsole.log(cutHex(\"#000000\")) // \"000000\"\n*/\nexport function cutHex(hex: string) {\n return hex.replace(\"#\", \"\");\n}\n/**\n* convert hex color to rgb color.\n* @memberof Color\n* @param {} hex - hex color\n* @return {} rgb color\n* @example\nimport {hexToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hexToRGBA(\"#00000005\"));\n// [0, 0, 0, 1]\nconsole.log(hexToRGBA(\"#201045\"));\n// [32, 16, 69, 1]\n*/\nexport function hexToRGBA(hex: string): [number, number, number, number] {\n const h = cutHex(hex);\n const r = parseInt(h.substring(0, 2), 16);\n const g = parseInt(h.substring(2, 4), 16);\n const b = parseInt(h.substring(4, 6), 16);\n let a = parseInt(h.substring(6, 8), 16) / 255;\n\n if (isNaN(a)) {\n a = 1;\n }\n return [r, g, b, a];\n}\n\n/**\n* convert 3(or 4)-digit hex color to 6(or 8)-digit hex color.\n* @memberof Color\n* @param {} hex - 3(or 4)-digit hex color\n* @return {} 6(or 8)-digit hex color\n* @example\nimport {toFullHex} from \"@daybrush/utils\";\n\nconsole.log(toFullHex(\"#123\")); // \"#112233\"\nconsole.log(toFullHex(\"#123a\")); // \"#112233aa\"\n*/\nexport function toFullHex(h: string): string {\n const r = h.charAt(1);\n const g = h.charAt(2);\n const b = h.charAt(3);\n const a = h.charAt(4);\n const arr = [\"#\", r, r, g, g, b, b, a, a];\n\n return arr.join(\"\");\n}\n/**\n* convert hsl color to rgba color.\n* @memberof Color\n* @param {} hsl - hsl color(hue: 0 ~ 360, saturation: 0 ~ 1, lightness: 0 ~ 1, alpha: 0 ~ 1)\n* @return {} rgba color\n* @example\nimport {hslToRGBA} from \"@daybrush/utils\";\n\nconsole.log(hslToRGBA([150, 0.5, 0.4]));\n// [51, 153, 102, 1]\n*/\nexport function hslToRGBA(hsl: readonly [number, number, number, number?]): [number, number, number, number] {\n let h = hsl[0];\n const s = hsl[1];\n const l = hsl[2];\n\n if (h < 0) {\n h += Math.floor((Math.abs(h) + 360) / 360) * 360;\n }\n h %= 360;\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h / 60) % 2 - 1));\n const m = l - c / 2;\n let rgb: [number, number, number];\n\n if (h < 60) {\n rgb = [c, x, 0];\n } else if (h < 120) {\n rgb = [x, c, 0];\n } else if (h < 180) {\n rgb = [0, c, x];\n } else if (h < 240) {\n rgb = [0, x, c];\n } else if (h < 300) {\n rgb = [x, 0, c];\n } else if (h < 360) {\n rgb = [c, 0, x];\n } else {\n rgb = [0, 0, 0];\n }\n\n return [\n Math.round((rgb[0] + m) * 255),\n Math.round((rgb[1] + m) * 255),\n Math.round((rgb[2] + m) * 255),\n hsl[3] ?? 1,\n ];\n}\n/**\n* convert string to rgba color.\n* @memberof Color\n* @param {} - 3-hex(#000), 4-hex(#0000) 6-hex(#000000), 8-hex(#00000000) or RGB(A), or HSL(A)\n* @return {} rgba color\n* @example\nimport {stringToRGBA} from \"@daybrush/utils\";\n\nconsole.log(stringToRGBA(\"#000000\")); // [0, 0, 0, 1]\nconsole.log(stringToRGBA(\"rgb(100, 100, 100)\")); // [100, 100, 100, 1]\nconsole.log(stringToRGBA(\"hsl(150, 0.5, 0.4)\")); // [51, 153, 102, 1]\n*/\nexport function stringToRGBA(color: string): [number, number, number, number] {\n if (color.charAt(0) === \"#\") {\n if (color.length === 4 || color.length === 5) {\n return hexToRGBA(toFullHex(color));\n } else {\n return hexToRGBA(color);\n }\n } else if (color.indexOf(\"(\") !== -1) {\n // in bracket.\n const {prefix, value} = splitBracket(color);\n\n if (!prefix || !value) {\n return undefined as never;\n }\n const arr = splitComma(value);\n const colorArr: [number, number, number, number] = [0, 0, 0, 1];\n const length = arr.length;\n\n switch (prefix) {\n case RGB:\n case RGBA:\n for (let i = 0; i < length; ++i) {\n colorArr[i] = parseFloat(arr[i]);\n }\n return colorArr;\n case HSL:\n case HSLA:\n for (let i = 0; i < length; ++i) {\n if (arr[i].indexOf(\"%\") !== -1) {\n colorArr[i] = parseFloat(arr[i]) / 100;\n } else {\n colorArr[i] = parseFloat(arr[i]);\n }\n }\n // hsl, hsla to rgba\n return hslToRGBA(colorArr);\n }\n }\n return undefined as never;\n}\n","import { document } from \"./consts\";\nimport { IObject, IEventMap } from \"./types\";\n\n/**\n * @namespace DOM\n */\n\nexport function $(selectors: K, multi: true):\n NodeListOf;\nexport function $(selectors: K, multi: true): NodeListOf;\nexport function $(selectors: string, multi: true): NodeListOf;\n\nexport function $(selectors: K, multi?: false): HTMLElementTagNameMap[K] | null;\nexport function $(selectors: K, multi?: false): SVGElementTagNameMap[K] | null;\nexport function $(selectors: string, multi?: false): E | null;\n/**\n * Returns all element descendants of node that\n * match selectors.\n */\n\n/**\n * Checks if the specified class value exists in the element's class attribute.\n * @memberof DOM\n * @param - A DOMString containing one or more selectors to match\n * @param - If multi is true, a DOMString containing one or more selectors to match against.\n * @example\nimport {$} from \"@daybrush/utils\";\n\nconsole.log($(\"div\")); // div element\nconsole.log($(\"div\", true)); // [div, div] elements\n*/\nexport function $(selectors: string, multi?: boolean): E | NodeListOf | null {\n return multi ? document.querySelectorAll(selectors) : document.querySelector(selectors);\n}\n\n/**\n* Checks if the specified class value exists in the element's class attribute.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to search\n* @return {boolean} return false if the class is not found.\n* @example\nimport {hasClass} from \"@daybrush/utils\";\n\nconsole.log(hasClass(element, \"start\")); // true or false\n*/\nexport function hasClass(element: Element, className: string) {\n if (element.classList) {\n return element.classList.contains(className);\n }\n return !!element.className.match(new RegExp(`(\\\\s|^)${className}(\\\\s|$)`));\n}\n\n/**\n* Add the specified class value. If these classe already exist in the element's class attribute they are ignored.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to add\n* @example\nimport {addClass} from \"@daybrush/utils\";\n\naddClass(element, \"start\");\n*/\nexport function addClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.add(className);\n } else {\n element.className += ` ${className}`;\n }\n}\n\n/**\n* Removes the specified class value.\n* @memberof DOM\n* @param element - target\n* @param className - the class name to remove\n* @example\nimport {removeClass} from \"@daybrush/utils\";\n\nremoveClass(element, \"start\");\n*/\nexport function removeClass(element: Element, className: string) {\n if (element.classList) {\n element.classList.remove(className);\n } else {\n const reg = new RegExp(`(\\\\s|^)${className}(\\\\s|$)`);\n\n element.className = element.className.replace(reg, \" \");\n }\n}\n\n/**\n* Gets the CSS properties from the element.\n* @memberof DOM\n* @param elements - elements\n* @param properites - the CSS properties\n* @return returns CSS properties and values.\n* @example\nimport {fromCSS} from \"@daybrush/utils\";\n\nconsole.log(fromCSS(element, [\"left\", \"opacity\", \"top\"])); // {\"left\": \"10px\", \"opacity\": 1, \"top\": \"10px\"}\n*/\nexport function fromCSS(\n elements: Element | Element[] | NodeListOf, properties: string[]): IObject {\n if (!elements || !properties || !properties.length) {\n return {};\n }\n let element;\n\n if (elements instanceof Element) {\n element = elements;\n } else if (elements.length) {\n element = elements[0];\n } else {\n return {};\n }\n const cssObject: IObject = {};\n const styles = window.getComputedStyle(element) as any;\n const length = properties.length;\n\n for (let i = 0; i < length; ++i) {\n cssObject[properties[i]] = styles[properties[i]];\n }\n return cssObject;\n}\n\nexport function addEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;\n/**\n* Sets up a function that will be called whenever the specified event is delivered to the target\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The object which receives a notification (an object that implements the Event interface) when an event of the specified type occurs\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent} from \"@daybrush/utils\";\n\naddEvent(el, \"click\", e => {\n console.log(e);\n});\n*/\nexport function addEvent(\n el: EventTarget,\n type: string, listener: (e: Event) => void,\n options?: boolean | AddEventListenerOptions) {\n el.addEventListener(type, listener, options);\n}\n\nexport function removeEvent(\n el: EventTarget, type: K, listener: (e: IEventMap[K]) => void, options?: boolean | EventListenerOptions): void;\n/**\n* removes from the EventTarget an event listener previously registered with EventTarget.addEventListener()\n* @memberof DOM\n* @param - event target\n* @param - A case-sensitive string representing the event type to listen for.\n* @param - The EventListener function of the event handler to remove from the event target.\n* @param - An options object that specifies characteristics about the event listener.\n* @example\nimport {addEvent, removeEvent} from \"@daybrush/utils\";\nconst listener = e => {\n console.log(e);\n};\naddEvent(el, \"click\", listener);\nremoveEvent(el, \"click\", listener);\n*/\nexport function removeEvent(\n el: EventTarget, type: string,\n listener: (e: Event) => void,\n options?: boolean | EventListenerOptions,\n) {\n el.removeEventListener(type, listener, options);\n}\n"],"names":["getCrossBrowserProperty","property","doc","styles","body","documentElement","style","length","prefixes","UNDEFINED","i","name","RGB","RGBA","HSL","HSLA","COLOR_MODELS","FUNCTION","OBJECT","STRING","NUMBER","IS_WINDOW","window","document","TRANSFORM","FILTER","ANIMATION","KEYFRAMES","replace","OPEN_CLOSED_CHARACTERS","open","close","TINY_NUM","DEFAULT_UNIT_PRESETS","cm","pos","mm","in","pt","pc","%","size","vw","innerWidth","vh","innerHeight","vmax","Math","max","vmin","min","isObject","value","isArray","Array","isString","isFunction","findOpen","openCharacter","texts","index","openCloseCharacters","findIgnore","findClose","closeCharacter","nextIndex","character","trim","find","_a","ignore","otherText","slice","join","RegExp","exec","splitText","text","splitOptions","separator","_b","isSeparateFirst","isSeparateOnlyOpenClose","_c","isSeparateOpenClose","_d","openClosedText","map","regex","split","filter","Boolean","values","tempValues","resetTemp","push","nextOpenCloseCharacters","splice","indexOf","isEqualSeparator","splitComma","splitBracket","matches","prefix","suffix","splitUnit","unit","parseFloat","NaN","now","Date","getTime","findIndex","arr","callback","defaultIndex","findLastIndex","defalutValue","requestAnimationFrame","firstTime","raf","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","bind","currTime","setTimeout","getKeys","obj","Object","keys","between","checkBoundSize","targetSize","compareSize","isMax","ratio","throttle","every","defaultSize","throttledSize","average","nums","total","getRad","pos1","pos2","distX","distY","rad","atan2","PI","getCenterPoint","points","num","reverseUnit","round","cutHex","hex","hexToRGBA","h","r","parseInt","substring","g","b","a","isNaN","toFullHex","charAt","hslToRGBA","hsl","s","l","c","floor","abs","x","m","rgb","color","colorArr","a1","a2","b1","b2","str","all","letter","toUpperCase","letter2","toLowerCase","call","caf","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","handle","clearTimeout","key","orders","sort","index1","index2","sizeFunction","minSize","maxSize","keepRatio","width","height","minWidth","minHeight","maxWidth","maxHeight","pos1Rad","center","pos2Rad","sqrt","pow","forEach","_","fromText","toText","isOnce","_i","args","reduce","prev","cur","concat","deepFlat","selectors","multi","querySelectorAll","querySelector","element","className","classList","contains","match","add","remove","reg","elements","properties","Element","cssObject","getComputedStyle","el","type","listener","options","addEventListener","removeEventListener"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 569595a..0000000 --- a/package-lock.json +++ /dev/null @@ -1,10183 +0,0 @@ -{ - "name": "@daybrush/utils", - "version": "1.10.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@daybrush/utils", - "version": "1.10.0", - "license": "MIT", - "devDependencies": { - "@daybrush/jsdoc": "^0.3.6", - "@daybrush/release": "^0.2.4", - "@types/karma-chai": "^0.1.2", - "@types/mocha": "^7.0.2", - "@types/node": "^14.0.27", - "@types/sinon": "^9.0.0", - "chai": "^4.2.0", - "coveralls": "^3.1.0", - "daybrush-jsdoc-template": "^1.5.0", - "gh-pages": "^2.0.1", - "karma": "^5.0.2", - "karma-chai": "^0.1.0", - "karma-chrome-launcher": "^3.1.0", - "karma-mocha": "^2.0.0", - "karma-mocha-reporter": "^2.2.5", - "karma-typescript": "^5.0.2", - "mocha": "^7.1.2", - "print-coveralls": "^1.2.2", - "rollup": "^0.66.6", - "rollup-plugin-es3": "^1.1.0", - "rollup-plugin-prototype-minify": "^1.0.4", - "rollup-plugin-replace": "^2.1.0", - "rollup-plugin-typescript": "^1.0.0", - "rollup-plugin-uglify": "^6.0.0", - "string-replace": "^0.2.0", - "tslint": "^5.11.0", - "typescript": "^3.9.5" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/core": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", - "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.1", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.0", - "@babel/types": "^7.11.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/generator": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", - "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.11.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.11.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.11.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "node_modules/@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.11.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", - "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@daybrush/jsdoc": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@daybrush/jsdoc/-/jsdoc-0.3.7.tgz", - "integrity": "sha512-xVB7GZ5tp60swOGwmpl/XSIiE/MNfMTT0g7EjWQJlACFJpJdrkOUgAQBOH+piVI+1TcohGwukrky1NXTP2QYjg==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", - "@daybrush/utils": "^0.4.0", - "ast-parser": "^0.0.3", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "markdown-it": "~8.3.1", - "markdown-it-named-headers": "~0.0.4", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", - "taffydb": "2.6.2", - "underscore": "~1.8.3" - }, - "bin": { - "jsdoc": "jsdoc.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@daybrush/release": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@daybrush/release/-/release-0.2.4.tgz", - "integrity": "sha512-SgCvcKBP/FCNWwONpKYGHjbNHNFesbBLF6Wc/RdP8OJeF39/yXa8AWu776Zq/jfOVpOMV9UoheC6h4mbD5XxCA==", - "dev": true, - "dependencies": { - "args": "^5.0.1", - "gh-pages": "^2.0.1", - "sync-exec": "^0.6.2" - }, - "bin": { - "prerelease": "prerelease.js", - "release": "release.js" - } - }, - "node_modules/@daybrush/utils": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.4.2.tgz", - "integrity": "sha512-PMn5ppv/VOZCOrJH4W48xr2rFAatn+ZNkY77xZn6ZzEJAZ/uVCOgxIkbUml8oHRwu4gV7UM19Cc1flOunkymWA==", - "dev": true - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@types/chai": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.12.tgz", - "integrity": "sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ==", - "dev": true - }, - "node_modules/@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "node_modules/@types/karma-chai": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/karma-chai/-/karma-chai-0.1.2.tgz", - "integrity": "sha512-JcYsFVGRUb1oeY32alUNwv40u8nd5TJYy5oj9Blfi5MyK21nagAOMAoApZvpbvj5VDjBQTXNwgprK0JuzcV/+Q==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/mocha": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", - "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", - "dev": true - }, - "node_modules/@types/node": { - "version": "14.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", - "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==", - "dev": true - }, - "node_modules/@types/sinon": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.4.tgz", - "integrity": "sha512-sJmb32asJZY6Z2u09bl0G2wglSxDlROlAejCjsnor+LzBMz17gu8IU7vKC/vWDnv9zEq2wqADHVXFjf4eE8Gdw==", - "dev": true, - "dependencies": { - "@types/sinonjs__fake-timers": "*" - } - }, - "node_modules/@types/sinonjs__fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", - "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "node_modules/after-all": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/after-all/-/after-all-2.0.2.tgz", - "integrity": "sha1-IDACmO1glLTIXJjnyK1NymKPn3M=", - "dev": true, - "dependencies": { - "once": "^1.3.0" - } - }, - "node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", - "dev": true, - "dependencies": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "dev": true, - "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/ast-parser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/ast-parser/-/ast-parser-0.0.3.tgz", - "integrity": "sha512-Ycpq7GpFwZ2Q9Mq8E5lq20i8bbcXvdHXlugC+0o5VBuAwGI0Y0/R55cdoIHXTIWLIHrbyCVH5CaIh66Sve4Lyw==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.2.3", - "@babel/types": "^7.3.0", - "@daybrush/utils": "^0.6.0" - } - }, - "node_modules/ast-parser/node_modules/@daybrush/utils": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.6.0.tgz", - "integrity": "sha512-ay9e0XgiT77pYnxw9j84WzrZPBXlkzqfYXQLEpOhqMVKUtdNSrbPtKslt8Y0sY8/3cpnzedMoFpn9UcjerE/uA==", - "dev": true - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dev": true, - "dependencies": { - "array-filter": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", - "dev": true - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "node_modules/base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true, - "engines": { - "node": "^4.5.0 || >= 5.9" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "dependencies": { - "callsite": "1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "node_modules/bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "dependencies": { - "resolve": "1.1.7" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.2" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "node_modules/combine-source-map/node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", - "dev": true, - "dependencies": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" - }, - "bin": { - "coveralls": "bin/coveralls.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/daybrush-jsdoc-template": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/daybrush-jsdoc-template/-/daybrush-jsdoc-template-1.6.0.tgz", - "integrity": "sha512-bbhzsTSXmePFM4BTH7a4wdUPYRLP8qimuDh1856dDFi98OnsWlQALhypCBkxBZSM0c5j0q/Lxdjk/BifwlmUGw==", - "dev": true, - "dependencies": { - "@daybrush/utils": "^0.10.0" - } - }, - "node_modules/daybrush-jsdoc-template/node_modules/@daybrush/utils": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.10.5.tgz", - "integrity": "sha512-VCPbgJgImkUmGHX33drZJh/5FYBhfSM+EFqlBY7fzKIahBGEemjYfninVSp9BdzqF9P2MyCh7R3hgxmySXLEzg==", - "dev": true - }, - "node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/domain-browser": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.16.0.tgz", - "integrity": "sha512-oppVWKOBKO04ZGw7xyqUopOl4DeL35Nwosev6WNCaLZCXRPnivliimXj1Jvf4H8ASzX7dyIHjh5YHK18byLg8Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/engine.io": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", - "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/engine.io-client": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", - "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", - "dev": true, - "dependencies": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/engine.io-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", - "dev": true, - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "node_modules/entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "node_modules/es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", - "dev": true - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "node_modules/eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/filename-reserved-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", - "dev": true, - "dependencies": { - "filename-reserved-regex": "^1.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/filenamify-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", - "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", - "dev": true, - "dependencies": { - "filenamify": "^1.0.0", - "humanize-url": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", - "dev": true, - "dependencies": { - "is-buffer": "~2.0.3" - }, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "deprecated": "\"Please update to latest v2.3 or v2.2\"", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/gh-pages": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz", - "integrity": "sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==", - "dev": true, - "dependencies": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify-url": "^1.0.0", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - }, - "bin": { - "gh-pages": "bin/gh-pages.js", - "gh-pages-clean": "bin/gh-pages-clean.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/humanize-url": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", - "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", - "dev": true, - "dependencies": { - "normalize-url": "^1.0.0", - "strip-url-auth": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "dependencies": { - "source-map": "~0.5.3" - } - }, - "node_modules/is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", - "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-nan": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz", - "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", - "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.0", - "es-abstract": "^1.17.4", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true, - "engines": { - "node": ">= 8.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/gjtorikian/" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", - "dev": true, - "dependencies": { - "xmlcreate": "^1.0.1" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/karma": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.1.1.tgz", - "integrity": "sha512-xAlOr5PMqUbiKXSv5PCniHWV3aiwj6wIZ0gUVcwpTCPVQm/qH2WAMFWxtnpM6KJqhkRWrIpovR4Rb0rn8GtJzQ==", - "dev": true, - "dependencies": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "flatted": "^2.0.2", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.15", - "log4js": "^6.2.1", - "mime": "^2.4.5", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^2.3.0", - "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "0.7.21", - "yargs": "^15.3.1" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/karma-chai": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz", - "integrity": "sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o=", - "dev": true, - "peerDependencies": { - "chai": "*", - "karma": ">=0.10.9" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-mocha": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", - "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.3" - } - }, - "node_modules/karma-mocha-reporter": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz", - "integrity": "sha1-FRIAlejtgZGG5HoLAS8810GJVWA=", - "dev": true, - "dependencies": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "strip-ansi": "^4.0.0" - }, - "peerDependencies": { - "karma": ">=0.13" - } - }, - "node_modules/karma-mocha-reporter/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/karma-mocha-reporter/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/karma-typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/karma-typescript/-/karma-typescript-5.0.3.tgz", - "integrity": "sha512-Irs767Oc5BCMPLbZ+VdJmIxLL+1fB3L9dye8oQHDfHXFuYBx+uir5FDLzNNXFgDRUMYxEFT1T1eucAcb56v+0A==", - "dev": true, - "dependencies": { - "acorn": "^7.1.0", - "acorn-walk": "^7.0.0", - "assert": "^2.0.0", - "async": "^3.0.1", - "browser-resolve": "^1.11.3", - "browserify-zlib": "^0.2.0", - "buffer": "^5.4.3", - "combine-source-map": "^0.8.0", - "console-browserify": "^1.2.0", - "constants-browserify": "^1.0.0", - "convert-source-map": "^1.7.0", - "crypto-browserify": "^3.12.0", - "diff": "^4.0.1", - "domain-browser": "^4.0.0", - "events": "^3.0.0", - "glob": "^7.1.6", - "https-browserify": "^1.0.0", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "log4js": "^6.1.0", - "minimatch": "^3.0.4", - "os-browserify": "^0.3.0", - "pad": "^3.2.0", - "path-browserify": "^1.0.0", - "process": "^0.11.10", - "punycode": "^2.1.1", - "querystring-es3": "^0.2.1", - "readable-stream": "^3.1.1", - "source-map": "^0.7.3", - "stream-browserify": "^2.0.2", - "stream-http": "^3.1.0", - "string_decoder": "^1.3.0", - "timers-browserify": "^2.0.11", - "tmp": "^0.1.0", - "tty-browserify": "^0.0.1", - "url": "^0.11.0", - "util": "^0.12.1", - "vm-browserify": "^1.1.2" - }, - "peerDependencies": { - "karma": "1 || 2 || 3 || 4 || 5", - "typescript": "1 || 2 || 3" - } - }, - "node_modules/karma-typescript/node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "node_modules/karma-typescript/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/karma-typescript/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/karma-typescript/node_modules/tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "dependencies": { - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/karma/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", - "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.9" - } - }, - "node_modules/lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "dev": true, - "bin": { - "lcov-parse": "bin/cli.js" - } - }, - "node_modules/leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "node_modules/log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true, - "engines": { - "node": ">=0.8.6" - } - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dev": true, - "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "dev": true, - "dependencies": { - "vlq": "^0.2.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/markdown-it": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.2.tgz", - "integrity": "sha512-4J92IhJq1kGoyXddwzzfjr9cEKGexBfFsZooKYMhMLLlWa4+dlSPDUUP7y+xQOCebIj61aLmKlowg//YcdPP1w==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.3" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it-named-headers": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/markdown-it-named-headers/-/markdown-it-named-headers-0.0.4.tgz", - "integrity": "sha1-gu/CgyQkCmsed7mq5QF3HV81HB8=", - "dev": true, - "dependencies": { - "string": "^3.0.1" - } - }, - "node_modules/marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "dependencies": { - "mime-db": "1.44.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "dev": true, - "dependencies": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.1.1" - } - }, - "node_modules/mocha/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/mocha/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/mocha/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/mocha/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/mocha/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/mocha/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mocha/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/mocha/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/mri": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - } - }, - "node_modules/node-environment-flags/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "node_modules/object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "engines": { - "node": ">= 0.8" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pad": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pad/-/pad-3.2.0.tgz", - "integrity": "sha512-2u0TrjcGbOjBTJpyewEl4hBO3OeX5wWue7eIFPzQTg6wFSvoaHcBTTUY5m+n0hd04gmTCPuY0kCpVIVuw5etwg==", - "dev": true, - "dependencies": { - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, - "dependencies": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/print-coveralls": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/print-coveralls/-/print-coveralls-1.2.2.tgz", - "integrity": "sha512-oz2VM+SJYrjvIITgDXHgdt+cpzcNYvGC+gIH4VqBCUva9XGzt2CJw7q2yqwTIXKmcin+TjgoH7cPaYYsJfE3Qw==", - "dev": true, - "bin": { - "print-coveralls": "bin/coveralls.js" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/prototype-minify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prototype-minify/-/prototype-minify-1.1.0.tgz", - "integrity": "sha512-xsxG/Bh06Y0keIM/DNsOnX0lFuPVrhl7v48FxEHg8xCAjPjjoI2EruVdJbzfYHCGqf8HqD4JI3s7gsWZ392x9w==", - "dev": true, - "dependencies": { - "@babel/generator": "^7.1.2", - "@babel/parser": "^7.1.2", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.1.2" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true, - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "node_modules/rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rollup": { - "version": "0.66.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz", - "integrity": "sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==", - "dev": true, - "dependencies": { - "@types/estree": "0.0.39", - "@types/node": "*" - }, - "bin": { - "rollup": "bin/rollup" - } - }, - "node_modules/rollup-plugin-es3": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-es3/-/rollup-plugin-es3-1.1.0.tgz", - "integrity": "sha512-jTMqQgMZ/tkjRW4scf4ln5c0OiTSi+Lx/IEyFd41ldgGoLvvg9AQxmVOl93+KaoyB7XRYToYjiHDvO40NPF/fA==", - "dev": true, - "dependencies": { - "magic-string": "^0.22.4" - } - }, - "node_modules/rollup-plugin-prototype-minify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-prototype-minify/-/rollup-plugin-prototype-minify-1.1.0.tgz", - "integrity": "sha512-8kMi+F3Zy1q3NnxJbfIQuH0trYA1GxAtJjGxNidupsLIi47/azAM1rFvIlyeAD3gkqL3ZP/YrQgevH07D17b6g==", - "dev": true, - "dependencies": { - "prototype-minify": "^1.1.0" - } - }, - "node_modules/rollup-plugin-replace": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz", - "integrity": "sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==", - "deprecated": "This module has moved and is now available at @rollup/plugin-replace. Please update your dependencies. This version is no longer maintained.", - "dev": true, - "dependencies": { - "magic-string": "^0.25.2", - "rollup-pluginutils": "^2.6.0" - } - }, - "node_modules/rollup-plugin-replace/node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/rollup-plugin-typescript": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript/-/rollup-plugin-typescript-1.0.1.tgz", - "integrity": "sha512-rwJDNn9jv/NsKZuyBb/h0jsclP4CJ58qbvZt2Q9zDIGILF2LtdtvCqMOL+Gq9IVq5MTrTlHZNrn8h7VjQgd8tw==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-typescript.", - "dev": true, - "dependencies": { - "resolve": "^1.10.0", - "rollup-pluginutils": "^2.5.0" - }, - "peerDependencies": { - "tslib": "*", - "typescript": ">=2.1.0" - } - }, - "node_modules/rollup-plugin-typescript/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rollup-plugin-uglify": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.4.tgz", - "integrity": "sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "jest-worker": "^24.0.0", - "serialize-javascript": "^2.1.2", - "uglify-js": "^3.4.9" - }, - "peerDependencies": { - "rollup": ">=0.66.0 <2" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "dev": true, - "dependencies": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "node_modules/socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "dev": true, - "dependencies": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/socket.io-client/node_modules/socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "dev": true, - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dev": true, - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-browserify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/stream-browserify/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/stream-browserify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/stream-http": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", - "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dev": true, - "dependencies": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", - "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=", - "dev": true - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-replace": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/string-replace/-/string-replace-0.2.0.tgz", - "integrity": "sha1-//T72p49xZPOyqmQ8+TzCRfy0lk=", - "dev": true, - "dependencies": { - "after-all": "^2.0.2" - } - }, - "node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-url-auth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", - "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sync-exec": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", - "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=", - "dev": true - }, - "node_modules/taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, - "node_modules/timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "node_modules/tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" - } - }, - "node_modules/tslint/node_modules/resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "dependencies": { - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" - } - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz", - "integrity": "sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==", - "dev": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/util": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", - "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/which-typed-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", - "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.2", - "es-abstract": "^1.17.5", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "dependencies": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", - "dev": true - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, - "dependencies": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/yargs-unparser/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/yargs-unparser/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs-unparser/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs-unparser/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs-unparser/node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-unparser/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/core": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.1.tgz", - "integrity": "sha512-XqF7F6FWQdKGGWAzGELL+aCO1p+lRY5Tj5/tbT3St1G8NaH70jhhDIKknIZaDans0OQBG5wRAldROLHSt44BgQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-module-transforms": "^7.11.0", - "@babel/helpers": "^7.10.4", - "@babel/parser": "^7.11.1", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.11.0", - "@babel/types": "^7.11.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz", - "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", - "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", - "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", - "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@babel/helper-replace-supers": "^7.10.4", - "@babel/helper-simple-access": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/template": "^7.10.4", - "@babel/types": "^7.11.0", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", - "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-replace-supers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", - "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", - "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", - "dev": true, - "requires": { - "@babel/types": "^7.11.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", - "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.11.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.3.tgz", - "integrity": "sha512-REo8xv7+sDxkKvoxEywIdsNFiZLybwdI7hcT5uEPyQrSMB4YQ973BfC9OOrD/81MaIjh6UxdulIQXkjmiH3PcA==", - "dev": true - }, - "@babel/template": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", - "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz", - "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.11.0", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.11.0", - "@babel/types": "^7.11.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "@babel/types": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", - "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@daybrush/jsdoc": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@daybrush/jsdoc/-/jsdoc-0.3.7.tgz", - "integrity": "sha512-xVB7GZ5tp60swOGwmpl/XSIiE/MNfMTT0g7EjWQJlACFJpJdrkOUgAQBOH+piVI+1TcohGwukrky1NXTP2QYjg==", - "dev": true, - "requires": { - "@babel/parser": "^7.2.3", - "@babel/types": "^7.2.2", - "@daybrush/utils": "^0.4.0", - "ast-parser": "^0.0.3", - "bluebird": "~3.5.0", - "catharsis": "~0.8.9", - "escape-string-regexp": "~1.0.5", - "js2xmlparser": "~3.0.0", - "klaw": "~2.0.0", - "markdown-it": "~8.3.1", - "markdown-it-named-headers": "~0.0.4", - "marked": "~0.3.6", - "mkdirp": "~0.5.1", - "requizzle": "~0.2.1", - "strip-json-comments": "~2.0.1", - "taffydb": "2.6.2", - "underscore": "~1.8.3" - } - }, - "@daybrush/release": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@daybrush/release/-/release-0.2.4.tgz", - "integrity": "sha512-SgCvcKBP/FCNWwONpKYGHjbNHNFesbBLF6Wc/RdP8OJeF39/yXa8AWu776Zq/jfOVpOMV9UoheC6h4mbD5XxCA==", - "dev": true, - "requires": { - "args": "^5.0.1", - "gh-pages": "^2.0.1", - "sync-exec": "^0.6.2" - } - }, - "@daybrush/utils": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.4.2.tgz", - "integrity": "sha512-PMn5ppv/VOZCOrJH4W48xr2rFAatn+ZNkY77xZn6ZzEJAZ/uVCOgxIkbUml8oHRwu4gV7UM19Cc1flOunkymWA==", - "dev": true - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@types/chai": { - "version": "4.2.12", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.12.tgz", - "integrity": "sha512-aN5IAC8QNtSUdQzxu7lGBgYAOuU1tmRU4c9dIq5OKGf/SBVjXo+ffM2wEjudAWbgpOhy60nLoAGH1xm8fpCKFQ==", - "dev": true - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", - "dev": true - }, - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", - "dev": true - }, - "@types/karma-chai": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/karma-chai/-/karma-chai-0.1.2.tgz", - "integrity": "sha512-JcYsFVGRUb1oeY32alUNwv40u8nd5TJYy5oj9Blfi5MyK21nagAOMAoApZvpbvj5VDjBQTXNwgprK0JuzcV/+Q==", - "dev": true, - "requires": { - "@types/chai": "*" - } - }, - "@types/mocha": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", - "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", - "dev": true - }, - "@types/node": { - "version": "14.0.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", - "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==", - "dev": true - }, - "@types/sinon": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.4.tgz", - "integrity": "sha512-sJmb32asJZY6Z2u09bl0G2wglSxDlROlAejCjsnor+LzBMz17gu8IU7vKC/vWDnv9zEq2wqADHVXFjf4eE8Gdw==", - "dev": true, - "requires": { - "@types/sinonjs__fake-timers": "*" - } - }, - "@types/sinonjs__fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.1.tgz", - "integrity": "sha512-yYezQwGWty8ziyYLdZjwxyMb0CZR49h8JALHGrxjQHWlqGgc8kLdHEgWrgL0uZ29DMvEVBDnHU2Wg36zKSIUtA==", - "dev": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", - "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "after-all": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/after-all/-/after-all-2.0.2.tgz", - "integrity": "sha1-IDACmO1glLTIXJjnyK1NymKPn3M=", - "dev": true, - "requires": { - "once": "^1.3.0" - } - }, - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz", - "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "args": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", - "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", - "dev": true, - "requires": { - "camelcase": "5.0.0", - "chalk": "2.4.2", - "leven": "2.1.0", - "mri": "1.1.4" - } - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "dev": true, - "requires": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "ast-parser": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/ast-parser/-/ast-parser-0.0.3.tgz", - "integrity": "sha512-Ycpq7GpFwZ2Q9Mq8E5lq20i8bbcXvdHXlugC+0o5VBuAwGI0Y0/R55cdoIHXTIWLIHrbyCVH5CaIh66Sve4Lyw==", - "dev": true, - "requires": { - "@babel/traverse": "^7.2.3", - "@babel/types": "^7.3.0", - "@daybrush/utils": "^0.6.0" - }, - "dependencies": { - "@daybrush/utils": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.6.0.tgz", - "integrity": "sha512-ay9e0XgiT77pYnxw9j84WzrZPBXlkzqfYXQLEpOhqMVKUtdNSrbPtKslt8Y0sY8/3cpnzedMoFpn9UcjerE/uA==", - "dev": true - } - } - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dev": true, - "requires": { - "array-filter": "^1.0.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, - "binary-extensions": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", - "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", - "dev": true - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", - "dev": true - }, - "bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", - "dev": true, - "requires": { - "resolve": "1.1.7" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "camelcase": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", - "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "catharsis": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", - "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "chai": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", - "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", - "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - } - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "coveralls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.0.tgz", - "integrity": "sha512-sHxOu2ELzW8/NC1UP5XVLbZDzO4S3VxfFye3XYCznopHy02YjNkHcj5bKaVw2O7hVaBdBjEdQGpie4II1mWhuQ==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "dev": true - }, - "daybrush-jsdoc-template": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/daybrush-jsdoc-template/-/daybrush-jsdoc-template-1.6.0.tgz", - "integrity": "sha512-bbhzsTSXmePFM4BTH7a4wdUPYRLP8qimuDh1856dDFi98OnsWlQALhypCBkxBZSM0c5j0q/Lxdjk/BifwlmUGw==", - "dev": true, - "requires": { - "@daybrush/utils": "^0.10.0" - }, - "dependencies": { - "@daybrush/utils": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/@daybrush/utils/-/utils-0.10.5.tgz", - "integrity": "sha512-VCPbgJgImkUmGHX33drZJh/5FYBhfSM+EFqlBY7fzKIahBGEemjYfninVSp9BdzqF9P2MyCh7R3hgxmySXLEzg==", - "dev": true - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "domain-browser": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.16.0.tgz", - "integrity": "sha512-oppVWKOBKO04ZGw7xyqUopOl4DeL35Nwosev6WNCaLZCXRPnivliimXj1Jvf4H8ASzX7dyIHjh5YHK18byLg8Q==", - "dev": true - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "email-addresses": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", - "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "engine.io": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", - "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - } - }, - "engine.io-client": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.3.tgz", - "integrity": "sha512-0NGY+9hioejTEJCaSJZfWZLk4FPI9dN+1H1C4+wj2iuFba47UgZbJzfWs4aNFajnX/qAaYKbe2lLTfEEWzCmcw==", - "dev": true, - "requires": { - "component-emitter": "~1.3.0", - "component-inherit": "0.0.3", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", - "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "es-abstract": { - "version": "1.17.6", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", - "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.0", - "is-regex": "^1.1.0", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz", - "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==", - "dev": true - }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "filename-reserved-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", - "integrity": "sha1-5hz4BfDeHJhFZ9A4bcXfUO5a9+Q=", - "dev": true - }, - "filenamify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", - "integrity": "sha1-qfL/0RxQO+0wABUCknI3jx8TZaU=", - "dev": true, - "requires": { - "filename-reserved-regex": "^1.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" - } - }, - "filenamify-url": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", - "integrity": "sha1-syvYExnvWGO3MHi+1Q9GpPeXX1A=", - "dev": true, - "requires": { - "filenamify": "^1.0.0", - "humanize-url": "^1.0.0" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "follow-redirects": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", - "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", - "dev": true - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "gh-pages": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz", - "integrity": "sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==", - "dev": true, - "requires": { - "async": "^2.6.1", - "commander": "^2.18.0", - "email-addresses": "^3.0.1", - "filenamify-url": "^1.0.0", - "fs-extra": "^8.1.0", - "globby": "^6.1.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } - } - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "humanize-url": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", - "integrity": "sha1-9KuZ4NKIF0yk4eUEB8VfuuRk7/8=", - "dev": true, - "requires": { - "normalize-url": "^1.0.0", - "strip-url-auth": "^1.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", - "dev": true - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", - "dev": true - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz", - "integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-nan": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz", - "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true - }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typed-array": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", - "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.0", - "es-abstract": "^1.17.4", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", - "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "js2xmlparser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz", - "integrity": "sha1-P7YOqgicVED5MZ9RdgzNB+JJlzM=", - "dev": true, - "requires": { - "xmlcreate": "^1.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "karma": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/karma/-/karma-5.1.1.tgz", - "integrity": "sha512-xAlOr5PMqUbiKXSv5PCniHWV3aiwj6wIZ0gUVcwpTCPVQm/qH2WAMFWxtnpM6KJqhkRWrIpovR4Rb0rn8GtJzQ==", - "dev": true, - "requires": { - "body-parser": "^1.19.0", - "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.4.0", - "connect": "^3.7.0", - "di": "^0.0.1", - "dom-serialize": "^2.2.1", - "flatted": "^2.0.2", - "glob": "^7.1.6", - "graceful-fs": "^4.2.4", - "http-proxy": "^1.18.1", - "isbinaryfile": "^4.0.6", - "lodash": "^4.17.15", - "log4js": "^6.2.1", - "mime": "^2.4.5", - "minimatch": "^3.0.4", - "qjobs": "^1.2.0", - "range-parser": "^1.2.1", - "rimraf": "^3.0.2", - "socket.io": "^2.3.0", - "source-map": "^0.6.1", - "tmp": "0.2.1", - "ua-parser-js": "0.7.21", - "yargs": "^15.3.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "karma-chai": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz", - "integrity": "sha1-vuWtQEAFF4Ea40u5RfdikJEIt5o=", - "dev": true, - "requires": {} - }, - "karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "requires": { - "which": "^1.2.1" - } - }, - "karma-mocha": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz", - "integrity": "sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ==", - "dev": true, - "requires": { - "minimist": "^1.2.3" - } - }, - "karma-mocha-reporter": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz", - "integrity": "sha1-FRIAlejtgZGG5HoLAS8810GJVWA=", - "dev": true, - "requires": { - "chalk": "^2.1.0", - "log-symbols": "^2.1.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "karma-typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/karma-typescript/-/karma-typescript-5.0.3.tgz", - "integrity": "sha512-Irs767Oc5BCMPLbZ+VdJmIxLL+1fB3L9dye8oQHDfHXFuYBx+uir5FDLzNNXFgDRUMYxEFT1T1eucAcb56v+0A==", - "dev": true, - "requires": { - "acorn": "^7.1.0", - "acorn-walk": "^7.0.0", - "assert": "^2.0.0", - "async": "^3.0.1", - "browser-resolve": "^1.11.3", - "browserify-zlib": "^0.2.0", - "buffer": "^5.4.3", - "combine-source-map": "^0.8.0", - "console-browserify": "^1.2.0", - "constants-browserify": "^1.0.0", - "convert-source-map": "^1.7.0", - "crypto-browserify": "^3.12.0", - "diff": "^4.0.1", - "domain-browser": "^4.0.0", - "events": "^3.0.0", - "glob": "^7.1.6", - "https-browserify": "^1.0.0", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.0", - "json-stringify-safe": "^5.0.1", - "lodash": "^4.17.15", - "log4js": "^6.1.0", - "minimatch": "^3.0.4", - "os-browserify": "^0.3.0", - "pad": "^3.2.0", - "path-browserify": "^1.0.0", - "process": "^0.11.10", - "punycode": "^2.1.1", - "querystring-es3": "^0.2.1", - "readable-stream": "^3.1.1", - "source-map": "^0.7.3", - "stream-browserify": "^2.0.2", - "stream-http": "^3.1.0", - "string_decoder": "^1.3.0", - "timers-browserify": "^2.0.11", - "tmp": "^0.1.0", - "tty-browserify": "^0.0.1", - "url": "^0.11.0", - "util": "^0.12.1", - "vm-browserify": "^1.1.2" - }, - "dependencies": { - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - }, - "tmp": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", - "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", - "dev": true, - "requires": { - "rimraf": "^2.6.3" - } - } - } - }, - "klaw": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz", - "integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, - "lcov-parse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", - "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "dev": true - }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.19", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", - "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "log-driver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", - "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dev": true, - "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - } - }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "dev": true, - "requires": { - "vlq": "^0.2.2" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "markdown-it": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.2.tgz", - "integrity": "sha512-4J92IhJq1kGoyXddwzzfjr9cEKGexBfFsZooKYMhMLLlWa4+dlSPDUUP7y+xQOCebIj61aLmKlowg//YcdPP1w==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "entities": "~1.1.1", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.3" - } - }, - "markdown-it-named-headers": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/markdown-it-named-headers/-/markdown-it-named-headers-0.0.4.tgz", - "integrity": "sha1-gu/CgyQkCmsed7mq5QF3HV81HB8=", - "dev": true, - "requires": { - "string": "^3.0.1" - } - }, - "marked": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz", - "integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "mime": { - "version": "2.4.6", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", - "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", - "dev": true - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "dev": true - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "dev": true, - "requires": { - "mime-db": "1.44.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "mocha": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz", - "integrity": "sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==", - "dev": true, - "requires": { - "ansi-colors": "3.2.3", - "browser-stdout": "1.3.1", - "chokidar": "3.3.0", - "debug": "3.2.6", - "diff": "3.5.0", - "escape-string-regexp": "1.0.5", - "find-up": "3.0.0", - "glob": "7.1.3", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "3.13.1", - "log-symbols": "3.0.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.5", - "ms": "2.1.1", - "node-environment-flags": "1.0.6", - "object.assign": "4.1.0", - "strip-json-comments": "2.0.1", - "supports-color": "6.0.0", - "which": "1.3.1", - "wide-align": "1.1.3", - "yargs": "13.3.2", - "yargs-parser": "13.1.2", - "yargs-unparser": "1.6.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "chokidar": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz", - "integrity": "sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==", - "dev": true, - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.2.0" - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "requires": { - "chalk": "^2.4.2" - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "readdirp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz", - "integrity": "sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==", - "dev": true, - "requires": { - "picomatch": "^2.0.4" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz", - "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "mri": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", - "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true - }, - "node-environment-flags": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz", - "integrity": "sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==", - "dev": true, - "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", - "dev": true - }, - "object-is": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz", - "integrity": "sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pad": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pad/-/pad-3.2.0.tgz", - "integrity": "sha512-2u0TrjcGbOjBTJpyewEl4hBO3OeX5wWue7eIFPzQTg6wFSvoaHcBTTUY5m+n0hd04gmTCPuY0kCpVIVuw5etwg==", - "dev": true, - "requires": { - "wcwidth": "^1.0.1" - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "pathval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", - "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", - "dev": true - }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true - }, - "print-coveralls": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/print-coveralls/-/print-coveralls-1.2.2.tgz", - "integrity": "sha512-oz2VM+SJYrjvIITgDXHgdt+cpzcNYvGC+gIH4VqBCUva9XGzt2CJw7q2yqwTIXKmcin+TjgoH7cPaYYsJfE3Qw==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "prototype-minify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/prototype-minify/-/prototype-minify-1.1.0.tgz", - "integrity": "sha512-xsxG/Bh06Y0keIM/DNsOnX0lFuPVrhl7v48FxEHg8xCAjPjjoI2EruVdJbzfYHCGqf8HqD4JI3s7gsWZ392x9w==", - "dev": true, - "requires": { - "@babel/generator": "^7.1.2", - "@babel/parser": "^7.1.2", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.1.2" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "requizzle": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz", - "integrity": "sha512-YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - }, - "rfdc": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", - "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rollup": { - "version": "0.66.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz", - "integrity": "sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==", - "dev": true, - "requires": { - "@types/estree": "0.0.39", - "@types/node": "*" - } - }, - "rollup-plugin-es3": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-es3/-/rollup-plugin-es3-1.1.0.tgz", - "integrity": "sha512-jTMqQgMZ/tkjRW4scf4ln5c0OiTSi+Lx/IEyFd41ldgGoLvvg9AQxmVOl93+KaoyB7XRYToYjiHDvO40NPF/fA==", - "dev": true, - "requires": { - "magic-string": "^0.22.4" - } - }, - "rollup-plugin-prototype-minify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-prototype-minify/-/rollup-plugin-prototype-minify-1.1.0.tgz", - "integrity": "sha512-8kMi+F3Zy1q3NnxJbfIQuH0trYA1GxAtJjGxNidupsLIi47/azAM1rFvIlyeAD3gkqL3ZP/YrQgevH07D17b6g==", - "dev": true, - "requires": { - "prototype-minify": "^1.1.0" - } - }, - "rollup-plugin-replace": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz", - "integrity": "sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==", - "dev": true, - "requires": { - "magic-string": "^0.25.2", - "rollup-pluginutils": "^2.6.0" - }, - "dependencies": { - "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.4" - } - } - } - }, - "rollup-plugin-typescript": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-typescript/-/rollup-plugin-typescript-1.0.1.tgz", - "integrity": "sha512-rwJDNn9jv/NsKZuyBb/h0jsclP4CJ58qbvZt2Q9zDIGILF2LtdtvCqMOL+Gq9IVq5MTrTlHZNrn8h7VjQgd8tw==", - "dev": true, - "requires": { - "resolve": "^1.10.0", - "rollup-pluginutils": "^2.5.0" - }, - "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - } - } - }, - "rollup-plugin-uglify": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.4.tgz", - "integrity": "sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "jest-worker": "^24.0.0", - "serialize-javascript": "^2.1.2", - "uglify-js": "^3.4.9" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "dev": true, - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } - } - } - } - }, - "socket.io-parser": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", - "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "stream-http": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.1.1.tgz", - "integrity": "sha512-S7OqaYu0EkFpgeGFb/NPOoPLxFko7TPqtEeFg5DXPB4v/KETHG0Ln6fRFrNezoelpaDKmycEmmZ81cC9DAwgYg==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dev": true, - "requires": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - } - } - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/string/-/string-3.3.3.tgz", - "integrity": "sha1-XqIRzZLSKOGEKUmQpsyXs2anfLA=", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-replace": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/string-replace/-/string-replace-0.2.0.tgz", - "integrity": "sha1-//T72p49xZPOyqmQ8+TzCRfy0lk=", - "dev": true, - "requires": { - "after-all": "^2.0.2" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "strip-url-auth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", - "integrity": "sha1-IrD6OkE4WzO+PzMVUbu4N/oM164=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "sync-exec": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz", - "integrity": "sha1-cX0izFPwzh3vVZQ2LzqJouu5EQU=", - "dev": true - }, - "taffydb": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz", - "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "dev": true, - "requires": { - "setimmediate": "^1.0.4" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true - }, - "tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "resolve": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", - "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typescript": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", - "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.21", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz", - "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "uglify-js": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.1.tgz", - "integrity": "sha512-RjxApKkrPJB6kjJxQS3iZlf///REXWYxYJxO/MpmlQzVkDWVI3PSnCBWezMecmTU/TRkNxrl8bmsfFQCp+LO+Q==", - "dev": true - }, - "underscore": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } - }, - "util": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz", - "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true - }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "which-typed-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", - "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.2", - "es-abstract": "^1.17.5", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "ws": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz", - "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==", - "dev": true, - "requires": {} - }, - "xmlcreate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz", - "integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yargs-unparser": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz", - "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==", - "dev": true, - "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.15", - "yargs": "^13.3.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - } - } -} diff --git a/package.json b/package.json index 754ec98..d3ff3e1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@daybrush/utils", - "version": "1.10.0", + "version": "1.10.1", "description": "utils for daybrush", "main": "dist/utils.cjs.js", "module": "dist/utils.esm.js", diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..ebf820b --- /dev/null +++ b/yarn.lock @@ -0,0 +1,3847 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.20.0": + version "7.20.5" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" + integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== + +"@babel/core@^7.7.5": + version "7.20.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" + integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.0" + "@babel/helper-module-transforms" "^7.20.2" + "@babel/helpers" "^7.20.5" + "@babel/parser" "^7.20.5" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/generator@^7.1.2", "@babel/generator@^7.20.5": + version "7.20.5" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" + integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== + dependencies: + "@babel/types" "^7.20.5" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.20.0": + version "7.20.0" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" + integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== + dependencies: + "@babel/compat-data" "^7.20.0" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.21.3" + semver "^6.3.0" + +"@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-function-name@^7.19.0": + version "7.19.0" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" + integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/types" "^7.19.0" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.20.2": + version "7.20.2" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" + integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.20.2" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.1" + "@babel/types" "^7.20.2" + +"@babel/helper-simple-access@^7.20.2": + version "7.20.2" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" + integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== + dependencies: + "@babel/types" "^7.20.2" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== + +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": + version "7.19.1" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helpers@^7.20.5": + version "7.20.6" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" + integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== + dependencies: + "@babel/template" "^7.18.10" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.2", "@babel/parser@^7.18.10", "@babel/parser@^7.2.3", "@babel/parser@^7.20.5": + version "7.20.5" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== + +"@babel/template@^7.18.10": + version "7.18.10" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71" + integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.10" + "@babel/types" "^7.18.10" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.2.3", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5": + version "7.20.5" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" + integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.20.5" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.1.2", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.2.2", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0": + version "7.20.5" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== + dependencies: + "@babel/helper-string-parser" "^7.19.4" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + +"@daybrush/jsdoc@^0.3.6": + version "0.3.12" + resolved "https://registry.npmjs.org/@daybrush/jsdoc/-/jsdoc-0.3.12.tgz#22fc3a008eb52a01eae728d8b75fe7661cc71d48" + integrity sha512-aejzziZRBQH7pQXyt9DBeJt80Z2prmkFPFSCXspvN0XWTBeDkonZst5Ku3IzB4CXhd17fGa6hAhX4l/e3x20Bg== + dependencies: + "@babel/parser" "^7.2.3" + "@babel/types" "^7.2.2" + "@daybrush/utils" "^1.0.0" + ast-parser "^0.1.1" + bluebird "~3.5.0" + catharsis "~0.8.9" + escape-string-regexp "~1.0.5" + js2xmlparser "~3.0.0" + klaw "~2.0.0" + markdown-it "~8.3.1" + markdown-it-named-headers "~0.0.4" + marked "~0.3.6" + mkdirp "~0.5.1" + requizzle "~0.2.1" + strip-json-comments "~2.0.1" + taffydb "2.6.2" + underscore "~1.8.3" + +"@daybrush/jsdoc@^0.4.0": + version "0.4.3" + resolved "https://registry.npmjs.org/@daybrush/jsdoc/-/jsdoc-0.4.3.tgz#9073899e099e5faa5a7e8d34dcd22766b84e1681" + integrity sha512-0ZbqoitrE060eNOFQzW+TdzNqQSTQnWYHMqwLhrsFpPZy8GzorTdZwNll9XxKcDFoTR0sphcv1OKh9odHfLuvw== + dependencies: + "@babel/parser" "^7.2.3" + "@babel/types" "^7.2.2" + "@daybrush/utils" "^1.6.0" + ast-parser "^0.2.0" + bluebird "~3.5.0" + catharsis "~0.8.9" + escape-string-regexp "~1.0.5" + js2xmlparser "~3.0.0" + klaw "~2.0.0" + markdown-it "~8.3.1" + markdown-it-named-headers "~0.0.4" + marked "~0.3.6" + mkdirp "~0.5.1" + requizzle "~0.2.1" + strip-json-comments "~2.0.1" + taffydb "2.6.2" + underscore "~1.8.3" + +"@daybrush/release@^0.2.4": + version "0.2.4" + resolved "https://registry.npmjs.org/@daybrush/release/-/release-0.2.4.tgz#8c1c883cbec7de76a3df54899c6d95db2ce85eea" + integrity sha512-SgCvcKBP/FCNWwONpKYGHjbNHNFesbBLF6Wc/RdP8OJeF39/yXa8AWu776Zq/jfOVpOMV9UoheC6h4mbD5XxCA== + dependencies: + args "^5.0.1" + gh-pages "^2.0.1" + sync-exec "^0.6.2" + +"@daybrush/utils@^0.11.0": + version "0.11.0" + resolved "https://registry.npmjs.org/@daybrush/utils/-/utils-0.11.0.tgz#3fd113fcedaab29d8c80773ca5f4d32551bdc9d8" + integrity sha512-PnrY1NDjXqXKASoREcjHokQt0WWHiUBClMJ0l9APx42QkeOCQ5nXB7k4VdmkaU23BndeSmNNYJDNL6eEsRitaA== + +"@daybrush/utils@^1.0.0", "@daybrush/utils@^1.6.0": + version "1.10.0" + resolved "https://registry.npmjs.org/@daybrush/utils/-/utils-1.10.0.tgz#2a2235269b960b7ffaf05ca2e75379ea1fb58204" + integrity sha512-IDT0DWAGcjxb2+WMr8pHrVTkHVKdilBumX1SubXJUlowN4rMSLphwDxvMNfv+vQOrdCPXSoPVZ3mhfrHsQ9Xow== + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@types/chai@*": + version "4.3.4" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" + integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/karma-chai@^0.1.2": + version "0.1.3" + resolved "https://registry.npmjs.org/@types/karma-chai/-/karma-chai-0.1.3.tgz#9f51fde87c038bd8c9290a39c9910fd366fb57f8" + integrity sha512-Xrj2aOfrdSOR72Lk8GIUJezOncTqOi/w8MZ6HB2bvz1/5Tz8Nf+B3nyWeu9qALrpY3w6HJyRP+SDY3jGNf29nw== + dependencies: + "@types/chai" "*" + +"@types/mocha@^7.0.2": + version "7.0.2" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz#b17f16cf933597e10d6d78eae3251e692ce8b0ce" + integrity sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w== + +"@types/node@*": + version "18.11.15" + resolved "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" + integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== + +"@types/node@^14.0.27": + version "14.18.34" + resolved "https://registry.npmjs.org/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" + integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== + +"@types/sinon@^9.0.0": + version "9.0.11" + resolved "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.11.tgz#7af202dda5253a847b511c929d8b6dda170562eb" + integrity sha512-PwP4UY33SeeVKodNE37ZlOsR9cReypbMJOhZ7BVE0lB+Hix3efCOxiJWiE5Ia+yL9Cn2Ch72EjFTRze8RZsNtg== + dependencies: + "@types/sinonjs__fake-timers" "*" + +"@types/sinonjs__fake-timers@*": + version "8.1.2" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" + integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== + +accepts@~1.3.4: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-walk@^8.0.2: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.1.0: + version "8.8.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +after-all@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/after-all/-/after-all-2.0.2.tgz#20300298ed6094b4c85c98e7c8ad4dca628f9f73" + integrity sha512-hLX6aRs9sGcjre3C+QOqA2cgBUnXzph+yza6QPPc2zAo3akaAzqQwO7TmM95ZYdx4pRap2Q+hjneZm7XNg6NIw== + dependencies: + once "^1.3.0" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA== + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@3.2.3: + version "3.2.3" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813" + integrity sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" + integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.1, anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +args@^5.0.1: + version "5.0.3" + resolved "https://registry.npmjs.org/args/-/args-5.0.3.tgz#943256db85021a85684be2f0882f25d796278702" + integrity sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA== + dependencies: + camelcase "5.0.0" + chalk "2.4.2" + leven "2.1.0" + mri "1.1.4" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + +array.prototype.reduce@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" + integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +assert@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" + integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + dependencies: + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +ast-parser@^0.1.1: + version "0.1.1" + resolved "https://registry.npmjs.org/ast-parser/-/ast-parser-0.1.1.tgz#cbf41f23cc39bd656c1f8e58e1ae8591ad98afc1" + integrity sha512-IFkSxogYovWJivO7cnjaCQatLRPV7i3tzCbGFi9QGHczxJzkxKFuJYdwBGdRLg0f1nAqaHS2k9k1GO0INZ+gKQ== + dependencies: + "@babel/traverse" "^7.2.3" + "@babel/types" "^7.3.0" + "@daybrush/utils" "^0.11.0" + +ast-parser@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/ast-parser/-/ast-parser-0.2.0.tgz#c8e23d8929d2b9ed3663709b3f036c96f01898ae" + integrity sha512-9fv42KOoY1/TmKlqSM3XaHvOUDRS8MA4gjQvPuyr7PWzu9fnm9NEColOvUXJg91SxViOGbwO6EkDYXKFJKL5zA== + dependencies: + "@babel/traverse" "^7.2.3" + "@babel/types" "^7.3.0" + "@daybrush/utils" "^0.11.0" + +async@^2.6.1: + version "2.6.4" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== + dependencies: + lodash "^4.17.14" + +async@^3.0.1: + version "3.2.4" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-arraybuffer@0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" + integrity sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@~3.5.0: + version "3.5.5" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" + integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.1" + resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +body-parser@^1.19.0: + version "1.20.1" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-resolve@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz#99b7304cb392f8d73dba741bb2d7da28c6d7842b" + integrity sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== + dependencies: + resolve "^1.17.0" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@^4.21.3: + version "4.21.4" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@^5.4.3: + version "5.7.1" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtin-modules@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +camelcase@5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== + +camelcase@^5.0.0: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-lite@^1.0.30001400: + version "1.0.30001439" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz#ab7371faeb4adff4b74dad1718a6fd122e45d9cb" + integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +catharsis@~0.8.9: + version "0.8.11" + resolved "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz#d0eb3d2b82b7da7a3ce2efb1a7b00becc6643468" + integrity sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g== + dependencies: + lodash "^4.17.14" + +chai@^4.2.0: + version "4.3.7" + resolved "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" + integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^4.1.2" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== + +chokidar@3.3.0: + version "3.3.0" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz#12c0714668c55800f659e262d4962a97faf554a6" + integrity sha512-dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.2.0" + optionalDependencies: + fsevents "~2.1.1" + +chokidar@^3.4.2: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +combine-source-map@^0.8.0: + version "0.8.0" + resolved "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz#a58d0df042c186fcf822a8e8015f5450d2d79a8b" + integrity sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg== + dependencies: + convert-source-map "~1.1.0" + inline-source-map "~0.6.0" + lodash.memoize "~3.0.3" + source-map "~0.5.3" + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.12.1, commander@^2.18.0: + version "2.20.3" + resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw== + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA== + +component-emitter@~1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +connect@^3.7.0: + version "3.7.0" + resolved "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8" + integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ== + dependencies: + debug "2.6.9" + finalhandler "1.1.2" + parseurl "~1.3.3" + utils-merge "1.0.1" + +console-browserify@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@~1.1.0: + version "1.1.3" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz#4829c877e9fe49b3161f3bf3673888e204699860" + integrity sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg== + +cookie@~0.4.1: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +coveralls@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz#f5d4431d8b5ae69c5079c8f8ca00d64ac77cf081" + integrity sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww== + dependencies: + js-yaml "^3.13.1" + lcov-parse "^1.0.0" + log-driver "^1.2.7" + minimist "^1.2.5" + request "^2.88.2" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +crypto-browserify@^3.12.0: + version "3.12.0" + resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + integrity sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +date-format@^4.0.14: + version "4.0.14" + resolved "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz#7a8e584434fb169a521c8b7aa481f355810d9400" + integrity sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg== + +daybrush-jsdoc-template@^1.5.0: + version "1.8.0" + resolved "https://registry.npmjs.org/daybrush-jsdoc-template/-/daybrush-jsdoc-template-1.8.0.tgz#ea0aaa4eb9e5304fd89682d07330413ccddafb21" + integrity sha512-/d+XmFMaBxys49djBMpHUfER3f22OTKKKIfkg/JGY4oXf4hG5rH7PCFhyvk86jvJ6PP5okc+j3MXK60jreB3qQ== + dependencies: + "@daybrush/jsdoc" "^0.4.0" + "@daybrush/utils" "^1.6.0" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@3.2.6: + version "3.2.6" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@~4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2, define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + integrity sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA== + +diff@3.5.0: + version "3.5.0" + resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dom-serialize@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + integrity sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ== + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +domain-browser@^4.16.0: + version "4.22.0" + resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz#6ddd34220ec281f9a65d3386d267ddd35c491f9f" + integrity sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw== + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +email-addresses@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz#cabf7e085cbdb63008a70319a74e6136188812fb" + integrity sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +engine.io-client@~3.5.0: + version "3.5.3" + resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.3.tgz#3254f61fdbd53503dc9a6f9d46a52528871ca0d7" + integrity sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw== + dependencies: + component-emitter "~1.3.0" + component-inherit "0.0.3" + debug "~3.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + ws "~7.4.2" + xmlhttprequest-ssl "~1.6.2" + yeast "0.1.2" + +engine.io-parser@~2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" + integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.4" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.6.0: + version "3.6.1" + resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.6.1.tgz#7ca4c7779c20865e30d208751bde08ca1e800256" + integrity sha512-dfs8EVg/i7QjFsXxn7cCRQ+Wai1G1TlEvHhdYEi80fxn5R1vZ2K661O6v/rezj1FP234SZ14r9CmJke99iYDGg== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "~0.4.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "~7.4.2" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== + +entities@~1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.5" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + gopd "^1.0.1" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" + unbox-primitive "^1.0.2" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" + integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5, escape-string-regexp@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.2.0: + version "3.3.0" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +filename-reserved-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz#e61cf805f0de1c984567d0386dc5df50ee5af7e4" + integrity sha512-UZArj7+U+2reBBVCvVmRlyq9D7EYQdUtuNN+1iz7pF1jGcJ2L0TjiRCxsTZfj2xFbM4c25uGCUDpKTHA7L2TKg== + +filenamify-url@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz#b32bd81319ef5863b73078bed50f46a4f7975f50" + integrity sha512-O9K9JcZeF5VdZWM1qR92NSv1WY2EofwudQayPx5dbnnFl9k0IcZha4eV/FGkjnBK+1irOQInij0yiooCHu/0Fg== + dependencies: + filenamify "^1.0.0" + humanize-url "^1.0.0" + +filenamify@^1.0.0: + version "1.2.1" + resolved "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz#a9f2ffd11c503bed300015029272378f1f1365a5" + integrity sha512-DKVP0WQcB7WaIMSwDETqImRej2fepPqvXQjaVib7LRZn9Rxn5UbvK2tYTqGf1A1DkIprQQkG4XSQXSOZp7Q3GQ== + dependencies: + filename-reserved-regex "^1.0.0" + strip-outer "^1.0.0" + trim-repeated "^1.0.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== + dependencies: + is-buffer "~2.0.3" + +flatted@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" + integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== + +follow-redirects@^1.0.0: + version "1.15.2" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +gh-pages@^2.0.1: + version "2.2.0" + resolved "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz#74ebeaca8d2b9a11279dcbd4a39ddfff3e6caa24" + integrity sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA== + dependencies: + async "^2.6.1" + commander "^2.18.0" + email-addresses "^3.0.1" + filenamify-url "^1.0.0" + fs-extra "^8.1.0" + globby "^6.1.0" + +glob-parent@~5.1.0, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.1.3: + version "7.1.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.3, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw== + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.0, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-proxy@^1.18.1: + version "1.18.1" + resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== + +humanize-url@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz#f4ab99e0d288174ca4e1e50407c55fbae464efff" + integrity sha512-RtgTzXCPVb/te+e82NDhAc5paj+DuKSratIGAr+v+HZK24eAQ8LMoBGYoL7N/O+9iEc33AKHg45dOMKw3DNldQ== + dependencies: + normalize-url "^1.0.0" + strip-url-auth "^1.0.0" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inline-source-map@~0.6.0: + version "0.6.2" + resolved "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz#f9393471c18a79d1724f863fa38b586370ade2a5" + integrity sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA== + dependencies: + source-map "~0.5.3" + +internal-slot@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== + dependencies: + get-intrinsic "^1.1.3" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-buffer@~2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.3: + version "1.1.10" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ== + +isbinaryfile@^4.0.6: + version "4.0.10" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +istanbul-lib-coverage@^3.0.0: + version "3.2.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.0: + version "3.1.5" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-worker@^24.0.0: + version "24.9.0" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.13.1: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js2xmlparser@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-3.0.0.tgz#3fb60eaa089c5440f9319f51760ccd07e2499733" + integrity sha512-CSOkdn0/GhRFwxnipmhXfqJ+FG6+wkWBi46kKSsPx6+j65176ZiQcrCYpg6K8x3iLbO4k3zScBnZ7I/L80dAtw== + dependencies: + xmlcreate "^1.0.1" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +karma-chai@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/karma-chai/-/karma-chai-0.1.0.tgz#bee5ad40400517811ae34bb945f762909108b79a" + integrity sha512-mqKCkHwzPMhgTYca10S90aCEX9+HjVjjrBFAsw36Zj7BlQNbokXXCAe6Ji04VUMsxcY5RLP7YphpfO06XOubdg== + +karma-chrome-launcher@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz#baca9cc071b1562a1db241827257bfe5cab597ea" + integrity sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ== + dependencies: + which "^1.2.1" + +karma-mocha-reporter@^2.2.5: + version "2.2.5" + resolved "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz#15120095e8ed819186e47a0b012f3cd741895560" + integrity sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w== + dependencies: + chalk "^2.1.0" + log-symbols "^2.1.0" + strip-ansi "^4.0.0" + +karma-mocha@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/karma-mocha/-/karma-mocha-2.0.1.tgz#4b0254a18dfee71bdbe6188d9a6861bf86b0cd7d" + integrity sha512-Tzd5HBjm8his2OA4bouAsATYEpZrp9vC7z5E5j4C5Of5Rrs1jY67RAwXNcVmd/Bnk1wgvQRou0zGVLey44G4tQ== + dependencies: + minimist "^1.2.3" + +karma-typescript@^5.0.2: + version "5.5.3" + resolved "https://registry.npmjs.org/karma-typescript/-/karma-typescript-5.5.3.tgz#29c04d9677f8bd78dfacd89e8fa6f475dd25aba2" + integrity sha512-l1FHurolXEBIzRa9ExpNtjzysAhsi/vLpTazpwLHWWK86mknvVpqor6pRZ5Nid7jvOPrTBqAq0JRuLgiCdRkFw== + dependencies: + acorn "^8.1.0" + acorn-walk "^8.0.2" + assert "^2.0.0" + async "^3.0.1" + browser-resolve "^2.0.0" + browserify-zlib "^0.2.0" + buffer "^5.4.3" + combine-source-map "^0.8.0" + console-browserify "^1.2.0" + constants-browserify "^1.0.0" + convert-source-map "^1.7.0" + crypto-browserify "^3.12.0" + diff "^4.0.1" + domain-browser "^4.16.0" + events "^3.2.0" + glob "^7.1.6" + https-browserify "^1.0.0" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.0" + json-stringify-safe "^5.0.1" + lodash "^4.17.19" + log4js "^6.3.0" + minimatch "^3.0.4" + os-browserify "^0.3.0" + pad "^3.2.0" + path-browserify "^1.0.0" + process "^0.11.10" + punycode "^2.1.1" + querystring-es3 "^0.2.1" + readable-stream "^3.1.1" + source-map "^0.7.3" + stream-browserify "^3.0.0" + stream-http "^3.1.0" + string_decoder "^1.3.0" + timers-browserify "^2.0.11" + tmp "^0.2.1" + tty-browserify "^0.0.1" + url "^0.11.0" + util "^0.12.1" + vm-browserify "^1.1.2" + +karma@^5.0.2: + version "5.2.3" + resolved "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz#3264024219bad2728e92542e0058a2492d7a46e4" + integrity sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ== + dependencies: + body-parser "^1.19.0" + braces "^3.0.2" + chokidar "^3.4.2" + colors "^1.4.0" + connect "^3.7.0" + di "^0.0.1" + dom-serialize "^2.2.1" + glob "^7.1.6" + graceful-fs "^4.2.4" + http-proxy "^1.18.1" + isbinaryfile "^4.0.6" + lodash "^4.17.19" + log4js "^6.2.1" + mime "^2.4.5" + minimatch "^3.0.4" + qjobs "^1.2.0" + range-parser "^1.2.1" + rimraf "^3.0.2" + socket.io "^2.3.0" + source-map "^0.6.1" + tmp "0.2.1" + ua-parser-js "0.7.22" + yargs "^15.3.1" + +klaw@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/klaw/-/klaw-2.0.0.tgz#59c128e0dc5ce410201151194eeb9cbf858650f6" + integrity sha512-Hx5PvgJKTWpMkNJCYrBUNBLlxYIkxN4FVU/BnZP4CFh5BpiHOgujAPx7iFVz/phD0bP8rsqD48gtqcvNlUt0lQ== + dependencies: + graceful-fs "^4.1.9" + +lcov-parse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz#eb0d46b54111ebc561acb4c408ef9363bdc8f7e0" + integrity sha512-aprLII/vPzuQvYZnDRU78Fns9I2Ag3gi4Ipga/hxnVMCZC8DnR2nI7XBqrPoywGfxqIx/DgarGvDJZAD3YBTgQ== + +leven@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA== + +linkify-it@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf" + integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw== + dependencies: + uc.micro "^1.0.1" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.memoize@~3.0.3: + version "3.0.4" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz#2dcbd2c287cbc0a55cc42328bd0c736150d53e3f" + integrity sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A== + +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-driver@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== + +log-symbols@3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz#f3a08516a5dea893336a7dee14d18a1cfdab77c4" + integrity sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ== + dependencies: + chalk "^2.4.2" + +log-symbols@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" + integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== + dependencies: + chalk "^2.0.1" + +log4js@^6.2.1, log4js@^6.3.0: + version "6.7.1" + resolved "https://registry.npmjs.org/log4js/-/log4js-6.7.1.tgz#06e12b1ac915dd1067146ffad8215f666f7d2c51" + integrity sha512-lzbd0Eq1HRdWM2abSD7mk6YIVY0AogGJzb/z+lqzRk+8+XJP+M6L1MS5FUSc3jjGru4dbKjEMJmqlsoYYpuivQ== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + flatted "^3.2.7" + rfdc "^1.3.0" + streamroller "^3.1.3" + +loupe@^2.3.1: + version "2.3.6" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== + dependencies: + get-func-name "^2.0.0" + +magic-string@^0.22.4: + version "0.22.5" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" + integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== + dependencies: + vlq "^0.2.2" + +magic-string@^0.25.2: + version "0.25.9" + resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-dir@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +markdown-it-named-headers@~0.0.4: + version "0.0.4" + resolved "https://registry.npmjs.org/markdown-it-named-headers/-/markdown-it-named-headers-0.0.4.tgz#82efc28324240a6b1e77b9aae501771d5f351c1f" + integrity sha512-2uuJ9urchbulz9F7q6VVQmeGxSXjxFeeGcb4ebKiz3+nuKOho1rLw8866a6zs1EeAe9xdSOKEpqeF5Dv22ZDxw== + dependencies: + string "^3.0.1" + +markdown-it@~8.3.1: + version "8.3.2" + resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-8.3.2.tgz#df4b86530d17c3bc9beec3b68d770b92ea17ae96" + integrity sha512-4J92IhJq1kGoyXddwzzfjr9cEKGexBfFsZooKYMhMLLlWa4+dlSPDUUP7y+xQOCebIj61aLmKlowg//YcdPP1w== + dependencies: + argparse "^1.0.7" + entities "~1.1.1" + linkify-it "^2.0.0" + mdurl "^1.0.1" + uc.micro "^1.0.3" + +marked@~0.3.6: + version "0.3.19" + resolved "https://registry.npmjs.org/marked/-/marked-0.3.19.tgz#5d47f709c4c9fc3c216b6d46127280f40b39d790" + integrity sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@^2.4.5: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +mkdirp@0.5.5: + version "0.5.5" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^0.5.1, mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mocha@^7.1.2: + version "7.2.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz#01cc227b00d875ab1eed03a75106689cfed5a604" + integrity sha512-O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ== + dependencies: + ansi-colors "3.2.3" + browser-stdout "1.3.1" + chokidar "3.3.0" + debug "3.2.6" + diff "3.5.0" + escape-string-regexp "1.0.5" + find-up "3.0.0" + glob "7.1.3" + growl "1.10.5" + he "1.2.0" + js-yaml "3.13.1" + log-symbols "3.0.0" + minimatch "3.0.4" + mkdirp "0.5.5" + ms "2.1.1" + node-environment-flags "1.0.6" + object.assign "4.1.0" + strip-json-comments "2.0.1" + supports-color "6.0.0" + which "1.3.1" + wide-align "1.1.3" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.0" + +mri@1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a" + integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-environment-flags@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088" + integrity sha512-5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw== + dependencies: + object.getownpropertydescriptors "^2.0.3" + semver "^5.7.0" + +node-releases@^2.0.6: + version "2.0.7" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz#593edbc7c22860ee4d32d3933cfebdfab0c0e0e5" + integrity sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^1.0.0: + version "1.9.1" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ== + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.11, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.getownpropertydescriptors@^2.0.3: + version "2.1.5" + resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" + integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + dependencies: + array.prototype.reduce "^1.0.5" + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pad@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/pad/-/pad-3.2.0.tgz#be7a1d1cb6757049b4ad5b70e71977158fea95d1" + integrity sha512-2u0TrjcGbOjBTJpyewEl4hBO3OeX5wWue7eIFPzQTg6wFSvoaHcBTTUY5m+n0hd04gmTCPuY0kCpVIVuw5etwg== + dependencies: + wcwidth "^1.0.1" + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parseqs@0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" + integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== + +parseuri@0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" + integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-browserify@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pbkdf2@^3.0.3: + version "3.1.2" + resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== + +print-coveralls@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/print-coveralls/-/print-coveralls-1.2.2.tgz#e08b5fe0b2c74659f781ec59b7c49c5ab7e53b2d" + integrity sha512-oz2VM+SJYrjvIITgDXHgdt+cpzcNYvGC+gIH4VqBCUva9XGzt2CJw7q2yqwTIXKmcin+TjgoH7cPaYYsJfE3Qw== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== + +prototype-minify@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/prototype-minify/-/prototype-minify-1.1.0.tgz#8e2de2589aec8e4f778893e545ef1465e8282ebd" + integrity sha512-xsxG/Bh06Y0keIM/DNsOnX0lFuPVrhl7v48FxEHg8xCAjPjjoI2EruVdJbzfYHCGqf8HqD4JI3s7gsWZ392x9w== + dependencies: + "@babel/generator" "^7.1.2" + "@babel/parser" "^7.1.2" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.1.2" + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qjobs@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz#c45e9c61800bd087ef88d7e256423bdd49e5d071" + integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q== + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^3.1.1, readable-stream@^3.5.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz#c30c33352b12c96dfb4b895421a49fd5a9593839" + integrity sha512-crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ== + dependencies: + picomatch "^2.0.4" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +request@^2.88.2: + version "2.88.2" + resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +requizzle@~0.2.1: + version "0.2.4" + resolved "https://registry.npmjs.org/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" + integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== + dependencies: + lodash "^4.17.21" + +resolve@^1.10.0, resolve@^1.17.0, resolve@^1.3.2: + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +rfdc@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-es3@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/rollup-plugin-es3/-/rollup-plugin-es3-1.1.0.tgz#f866f91b4db839e5b475d8e4a7b9d4c77ecade14" + integrity sha512-jTMqQgMZ/tkjRW4scf4ln5c0OiTSi+Lx/IEyFd41ldgGoLvvg9AQxmVOl93+KaoyB7XRYToYjiHDvO40NPF/fA== + dependencies: + magic-string "^0.22.4" + +rollup-plugin-prototype-minify@^1.0.4: + version "1.1.0" + resolved "https://registry.npmjs.org/rollup-plugin-prototype-minify/-/rollup-plugin-prototype-minify-1.1.0.tgz#4ae45ecf0aa6a774108ab9eefb22fdd3d2256023" + integrity sha512-8kMi+F3Zy1q3NnxJbfIQuH0trYA1GxAtJjGxNidupsLIi47/azAM1rFvIlyeAD3gkqL3ZP/YrQgevH07D17b6g== + dependencies: + prototype-minify "^1.1.0" + +rollup-plugin-replace@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz#f41ae5372e11e7a217cde349c8b5d5fd115e70e3" + integrity sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA== + dependencies: + magic-string "^0.25.2" + rollup-pluginutils "^2.6.0" + +rollup-plugin-typescript@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/rollup-plugin-typescript/-/rollup-plugin-typescript-1.0.1.tgz#86565033b714c3d1f3aba510aad3dc519f7091e9" + integrity sha512-rwJDNn9jv/NsKZuyBb/h0jsclP4CJ58qbvZt2Q9zDIGILF2LtdtvCqMOL+Gq9IVq5MTrTlHZNrn8h7VjQgd8tw== + dependencies: + resolve "^1.10.0" + rollup-pluginutils "^2.5.0" + +rollup-plugin-uglify@^6.0.0: + version "6.0.4" + resolved "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.4.tgz#65a0959d91586627f1e46a7db966fd504ec6c4e6" + integrity sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw== + dependencies: + "@babel/code-frame" "^7.0.0" + jest-worker "^24.0.0" + serialize-javascript "^2.1.2" + uglify-js "^3.4.9" + +rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.6.0: + version "2.8.2" + resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^0.66.6: + version "0.66.6" + resolved "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz#ce7d6185beb7acea644ce220c25e71ae03275482" + integrity sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw== + dependencies: + "@types/estree" "0.0.39" + "@types/node" "*" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^5.3.0, semver@^5.7.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.5.0.tgz#34f486f3640dde9c2211fce885ac2746f9baf5cb" + integrity sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw== + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "~1.3.0" + debug "~3.1.0" + engine.io-client "~3.5.0" + has-binary2 "~1.0.2" + indexof "0.0.1" + parseqs "0.0.6" + parseuri "0.0.6" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.3" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.3.tgz#3a8b84823eba87f3f7624e64a8aaab6d6318a72f" + integrity sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg== + dependencies: + component-emitter "~1.3.0" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.4.0: + version "3.4.2" + resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.2.tgz#d70a69f34900d8290a511995d26f581828a49065" + integrity sha512-QFZBaZDNqZXeemwejc7D39jrq2eGK/qZuVDiMPKzZK1hLlNvjGilGt4ckfQZeVX4dGmuPzCytN9ZW1nQlEWjgA== + dependencies: + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.3.0: + version "2.5.0" + resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.5.0.tgz#e1c7fb1823f7fa09dfebb5bb68f9d2ee03a0a2e3" + integrity sha512-gGunfS0od3VpwDBpGwVkzSZx6Aqo9uOcf1afJj2cKnKFAoyl16fvhpsUhmUFd4Ldbvl5JvRQed6eQw6oQp6n8w== + dependencies: + debug "~4.1.0" + engine.io "~3.6.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.5.0" + socket.io-parser "~3.4.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg== + dependencies: + is-plain-obj "^1.0.0" + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== + +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +stream-browserify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" + integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== + dependencies: + inherits "~2.0.4" + readable-stream "^3.5.0" + +stream-http@^3.1.0: + version "3.2.0" + resolved "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" + integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.4" + readable-stream "^3.6.0" + xtend "^4.0.2" + +streamroller@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/streamroller/-/streamroller-3.1.3.tgz#d95689a8c29b30d093525d0baffe6616fd62ca7e" + integrity sha512-CphIJyFx2SALGHeINanjFRKQ4l7x2c+rXYJ4BMq0gd+ZK0gi4VT8b+eHe2wi58x4UayBAKx4xtHpXT/ea1cz8w== + dependencies: + date-format "^4.0.14" + debug "^4.3.4" + fs-extra "^8.1.0" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== + +string-replace@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/string-replace/-/string-replace-0.2.0.tgz#fff4fbda9e3dc593cecaa990f3e4f30917f2d259" + integrity sha512-SoP2pAqNUYveGunEX75/5tfPH3c48QXJ2Ykruuh+f0uHW0THoCfp6jldKDLv/V6XPub1KHa/2j8evQMZ/pX28A== + dependencies: + after-all "^2.0.2" + +"string-width@^1.0.2 || 2": + version "2.1.1" + resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string@^3.0.1: + version "3.3.3" + resolved "https://registry.npmjs.org/string/-/string-3.3.3.tgz#5ea211cd92d228e184294990a6cc97b366a77cb0" + integrity sha512-LbvprpPZT/39QKfNrlPX9vXtS7If80vqbPQ7clnHQb5oVOM5hz/cs3iQCCZjvQDwsAWl+HpLQX3gRgN6IC8t3g== + +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@2.0.1, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-outer@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631" + integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg== + dependencies: + escape-string-regexp "^1.0.2" + +strip-url-auth@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz#22b0fa3a41385b33be3f331551bbb837fa0cd7ae" + integrity sha512-++41PnXftlL3pvI6lpvhSEO+89g1kIJC4MYB5E6yH+WHa5InIqz51yGd1YOGd7VNSNdoEOfzTMqbAM/2PbgaHQ== + +supports-color@6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a" + integrity sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg== + dependencies: + has-flag "^3.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +sync-exec@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/sync-exec/-/sync-exec-0.6.2.tgz#717d22cc53f0ce1def5594362f3a89a2ebb91105" + integrity sha512-FHup6L3hMWn+2asiIC/7kj/3CaMM8aAAKPx62DRk42hQkz4H2yBADR0OnnY8Eh5Bxrzb371aPUfnW4WzAUYItQ== + +taffydb@2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" + integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== + +timers-browserify@^2.0.11: + version "2.0.12" + resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +tmp@0.2.1, tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +trim-repeated@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21" + integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg== + dependencies: + escape-string-regexp "^1.0.2" + +tslib@^1.8.0, tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslint@^5.11.0: + version "5.20.1" + resolved "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz#e401e8aeda0152bc44dd07e614034f3f80c67b7d" + integrity sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg== + dependencies: + "@babel/code-frame" "^7.0.0" + builtin-modules "^1.1.1" + chalk "^2.3.0" + commander "^2.12.1" + diff "^4.0.1" + glob "^7.1.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + mkdirp "^0.5.1" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.8.0" + tsutils "^2.29.0" + +tsutils@^2.29.0: + version "2.29.0" + resolved "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99" + integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA== + dependencies: + tslib "^1.8.1" + +tty-browserify@^0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" + integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@^3.9.5: + version "3.9.10" + resolved "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" + integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== + +ua-parser-js@0.7.22: + version "0.7.22" + resolved "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz#960df60a5f911ea8f1c818f3747b99c6e177eae3" + integrity sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q== + +uc.micro@^1.0.1, uc.micro@^1.0.3: + version "1.0.6" + resolved "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + +uglify-js@^3.4.9: + version "3.17.4" + resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +underscore@~1.8.3: + version "1.8.3" + resolved "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" + integrity sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ== + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.0, util@^0.12.1: + version "0.12.5" + resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vlq@^0.2.2: + version "0.2.3" + resolved "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== + +vm-browserify@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + integrity sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + +which-typed-array@^1.1.2: + version "1.1.9" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +which@1.3.1, which@^1.2.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@~7.4.2: + version "7.4.6" + resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +xmlcreate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz#fa6bf762a60a413fb3dd8f4b03c5b269238d308f" + integrity sha512-Mbe56Dvj00onbnSo9J0qj/XlY5bfN9KidsOnpd5tRCsR3ekB3hyyNU9fGrTdqNT5ZNvv4BsA2TcQlignsZyVcw== + +xmlhttprequest-ssl@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" + integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== + +xtend@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.3" + resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== + +yargs-parser@13.1.2, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-unparser@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f" + integrity sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw== + dependencies: + flat "^4.1.0" + lodash "^4.17.15" + yargs "^13.3.0" + +yargs@13.3.2, yargs@^13.3.0: + version "13.3.2" + resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.3.1: + version "15.4.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==