diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..7951405 --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ +lib \ No newline at end of file diff --git a/lib/umap-js.js b/lib/umap-js.js new file mode 100644 index 0000000..b78b3b6 --- /dev/null +++ b/lib/umap-js.js @@ -0,0 +1,1308 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 1); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +function generateGaussian(mean, std, rng) { + if (rng === void 0) { rng = Math.random; } + var u1 = tauRand(rng); + var u2 = tauRand(rng); + var z0 = Math.sqrt(-2.0 * Math.log(u1)) * Math.cos(Math.PI * 2 * u2); + return z0 * std + mean; +} +function randomNormal2d(mean, stdev, size, rng) { + if (mean === void 0) { mean = 0; } + if (stdev === void 0) { stdev = 1; } + if (size === void 0) { size = [1, 1]; } + if (rng === void 0) { rng = Math.random; } + return Array(size[0]) + .fill(0) + .map(function () { + return Array(size[1]) + .fill(0) + .map(function () { return generateGaussian(mean, stdev, rng); }); + }); +} +exports.randomNormal2d = randomNormal2d; +function tauRandInt(n, random) { + if (random === void 0) { random = Math.random; } + return Math.floor(random() * n); +} +exports.tauRandInt = tauRandInt; +function tauRand(random) { + if (random === void 0) { random = Math.random; } + return random(); +} +exports.tauRand = tauRand; +function norm(vec) { + var result = 0; + for (var _i = 0, vec_1 = vec; _i < vec_1.length; _i++) { + var item = vec_1[_i]; + result += Math.pow(item, 2); + } + return Math.sqrt(result); +} +exports.norm = norm; +function empty(n) { + var output = []; + for (var i = 0; i < n; i++) { + output.push(undefined); + } + return output; +} +exports.empty = empty; +function range(n) { + return empty(n).map(function (_, i) { return i; }); +} +exports.range = range; +function filled(n, v) { + return empty(n).map(function () { return v; }); +} +exports.filled = filled; +function zeros(n) { + return filled(n, 0); +} +exports.zeros = zeros; +function ones(n) { + return filled(n, 1); +} +exports.ones = ones; +function sum(input) { + return input.reduce(function (sum, val) { return sum + val; }); +} +exports.sum = sum; +function mean(input) { + return sum(input) / input.length; +} +exports.mean = mean; +function max(input) { + var max = 0; + for (var i = 0; i < input.length; i++) { + max = input[i] > max ? input[i] : max; + } + return max; +} +exports.max = max; +function max2d(input) { + var max = 0; + for (var i = 0; i < input.length; i++) { + for (var j = 0; j < input[i].length; j++) { + max = input[i][j] > max ? input[i][j] : max; + } + } + return max; +} +exports.max2d = max2d; + + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var umap_1 = __webpack_require__(2); +window.UMAP = umap_1.UMAP; + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var matrix = __webpack_require__(3); +var nnDescent = __webpack_require__(4); +var tree = __webpack_require__(6); +var utils = __webpack_require__(0); +var SMOOTH_K_TOLERANCE = 1e-5; +var MIN_K_DIST_SCALE = 1e-3; +var UMAP = (function () { + function UMAP(params) { + if (params === void 0) { params = {}; } + this.nNeighbors = 15; + this.nComponents = 2; + this.nEpochs = 0; + this.random = Math.random; + this.distanceFn = euclidean; + this.isInitialized = false; + this.embedding = []; + this.optimizationState = new OptimizationState(); + this.nComponents = params.nComponents || this.nComponents; + this.nEpochs = params.nEpochs || this.nEpochs; + this.nNeighbors = params.nNeighbors || this.nNeighbors; + this.random = params.random || this.random; + } + UMAP.prototype.fit = function (X) { + this.initializeFit(X); + this.optimizeLayout(); + return this.embedding; + }; + UMAP.prototype.fitAsync = function (X, callback) { + if (callback === void 0) { callback = function () { return true; }; } + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + this.initializeFit(X); + return [4, this.optimizeLayout(callback)]; + case 1: + _a.sent(); + return [2, this.embedding]; + } + }); + }); + }; + UMAP.prototype.initializeFit = function (X, knnIndices, knnDistances) { + if (this.data === X && this.isInitialized) { + return this.getNEpochs(); + } + this.data = X; + if (knnIndices && knnDistances) { + this.knnIndices = knnIndices; + this.knnDistances = knnDistances; + } + else { + var knnResults = this.nearestNeighbors(X); + this.knnIndices = knnResults.knnIndices; + this.knnDistances = knnResults.knnDistances; + } + this.graph = this.fuzzySimplicialSet(X); + var _a = this.initializeSimplicialSetEmbedding(), head = _a.head, tail = _a.tail, epochsPerSample = _a.epochsPerSample; + this.optimizationState.head = head; + this.optimizationState.tail = tail; + this.optimizationState.epochsPerSample = epochsPerSample; + this.isInitialized = true; + return this.getNEpochs(); + }; + UMAP.prototype.step = function () { + var _a = this.optimizationState, currentEpoch = _a.currentEpoch, isInitialized = _a.isInitialized; + if (!isInitialized) { + this.initializeOptimization(); + } + if (currentEpoch < this.getNEpochs()) { + this.optimizeLayoutStep(currentEpoch); + } + return this.optimizationState.currentEpoch; + }; + UMAP.prototype.getEmbedding = function () { + return this.embedding; + }; + UMAP.prototype.nearestNeighbors = function (X) { + var _a = this, distanceFn = _a.distanceFn, nNeighbors = _a.nNeighbors; + var log2 = function (n) { return Math.log(n) / Math.log(2); }; + var metricNNDescent = nnDescent.makeNNDescent(distanceFn, this.random); + var round = function (n) { + return n === 0.5 ? 0 : Math.round(n); + }; + var nTrees = 5 + Math.floor(round(Math.pow(X.length, 0.5) / 20.0)); + var nIters = Math.max(5, Math.floor(Math.round(log2(X.length)))); + var rpForest = tree.makeForest(X, nNeighbors, nTrees, this.random); + var leafArray = tree.makeLeafArray(rpForest); + var _b = metricNNDescent(X, leafArray, nNeighbors, nIters), indices = _b.indices, weights = _b.weights; + return { knnIndices: indices, knnDistances: weights }; + }; + UMAP.prototype.fuzzySimplicialSet = function (X, localConnectivity, setOpMixRatio) { + if (localConnectivity === void 0) { localConnectivity = 1.0; } + if (setOpMixRatio === void 0) { setOpMixRatio = 1.0; } + var _a = this, nNeighbors = _a.nNeighbors, _b = _a.knnIndices, knnIndices = _b === void 0 ? [] : _b, _c = _a.knnDistances, knnDistances = _c === void 0 ? [] : _c; + var _d = this.smoothKNNDistance(knnDistances, nNeighbors, localConnectivity), sigmas = _d.sigmas, rhos = _d.rhos; + var _e = this.computeMembershipStrengths(knnIndices, knnDistances, sigmas, rhos), rows = _e.rows, cols = _e.cols, vals = _e.vals; + var size = [X.length, X.length]; + var sparseMatrix = new matrix.SparseMatrix(rows, cols, vals, size); + var transpose = matrix.transpose(sparseMatrix); + var prodMatrix = matrix.dotMultiply(sparseMatrix, transpose); + var a = matrix.subtract(matrix.add(sparseMatrix, transpose), prodMatrix); + var b = matrix.multiplyScalar(a, setOpMixRatio); + var c = matrix.multiplyScalar(prodMatrix, 1.0 - setOpMixRatio); + var result = matrix.add(b, c); + return result; + }; + UMAP.prototype.smoothKNNDistance = function (distances, k, localConnectivity, nIter, bandwidth) { + if (localConnectivity === void 0) { localConnectivity = 1.0; } + if (nIter === void 0) { nIter = 64; } + if (bandwidth === void 0) { bandwidth = 1.0; } + var target = (Math.log(k) / Math.log(2)) * bandwidth; + var rho = utils.zeros(distances.length); + var result = utils.zeros(distances.length); + for (var i = 0; i < distances.length; i++) { + var lo = 0.0; + var hi = Infinity; + var mid = 1.0; + var ithDistances = distances[i]; + var nonZeroDists = ithDistances.filter(function (d) { return d > 0.0; }); + if (nonZeroDists.length >= localConnectivity) { + var index = Math.floor(localConnectivity); + var interpolation = localConnectivity - index; + if (index > 0) { + rho[i] = nonZeroDists[index - 1]; + if (interpolation > SMOOTH_K_TOLERANCE) { + rho[i] += + interpolation * (nonZeroDists[index] - nonZeroDists[index - 1]); + } + } + else { + rho[i] = interpolation * nonZeroDists[0]; + } + } + else if (nonZeroDists.length > 0) { + rho[i] = utils.max(nonZeroDists); + } + for (var n = 0; n < nIter; n++) { + var psum = 0.0; + for (var j = 1; j < distances[i].length; j++) { + var d = distances[i][j] - rho[i]; + if (d > 0) { + psum += Math.exp(-(d / mid)); + } + else { + psum += 1.0; + } + } + if (Math.abs(psum - target) < SMOOTH_K_TOLERANCE) { + break; + } + if (psum > target) { + hi = mid; + mid = (lo + hi) / 2.0; + } + else { + lo = mid; + if (hi === Infinity) { + mid *= 2; + } + else { + mid = (lo + hi) / 2.0; + } + } + } + result[i] = mid; + if (rho[i] > 0.0) { + var meanIthDistances = utils.mean(ithDistances); + if (result[i] < MIN_K_DIST_SCALE * meanIthDistances) { + result[i] = MIN_K_DIST_SCALE * meanIthDistances; + } + } + else { + var meanDistances = utils.mean(distances.map(utils.mean)); + if (result[i] < MIN_K_DIST_SCALE * meanDistances) { + result[i] = MIN_K_DIST_SCALE * meanDistances; + } + } + } + return { sigmas: result, rhos: rho }; + }; + UMAP.prototype.computeMembershipStrengths = function (knnIndices, knnDistances, sigmas, rhos) { + var nSamples = knnIndices.length; + var nNeighbors = knnIndices[0].length; + var rows = utils.zeros(nSamples * nNeighbors); + var cols = utils.zeros(nSamples * nNeighbors); + var vals = utils.zeros(nSamples * nNeighbors); + for (var i = 0; i < nSamples; i++) { + for (var j = 0; j < nNeighbors; j++) { + var val = 0; + if (knnIndices[i][j] === -1) { + continue; + } + if (knnIndices[i][j] === i) { + val = 0.0; + } + else if (knnDistances[i][j] - rhos[i] <= 0.0) { + val = 1.0; + } + else { + val = Math.exp(-((knnDistances[i][j] - rhos[i]) / sigmas[i])); + } + rows[i * nNeighbors + j] = i; + cols[i * nNeighbors + j] = knnIndices[i][j]; + vals[i * nNeighbors + j] = val; + } + } + return { rows: rows, cols: cols, vals: vals }; + }; + UMAP.prototype.initializeSimplicialSetEmbedding = function () { + var _this = this; + var nEpochs = this.getNEpochs(); + var nComponents = this.nComponents; + var graphValues = this.graph.getValues(); + var graphMax = 0; + for (var i = 0; i < graphValues.length; i++) { + var value = graphValues[i]; + if (graphMax < graphValues[i]) { + graphMax = value; + } + } + var graph = this.graph.map(function (value) { + if (value < graphMax / nEpochs) { + return 0; + } + else { + return value; + } + }); + this.embedding = utils.zeros(graph.nRows).map(function () { + return utils.zeros(nComponents).map(function () { + return utils.tauRand(_this.random) * 20 + -10; + }); + }); + var weights = []; + var head = []; + var tail = []; + for (var i = 0; i < graph.nRows; i++) { + for (var j = 0; j < graph.nCols; j++) { + var value = graph.get(i, j); + if (value) { + weights.push(value); + tail.push(i); + head.push(j); + } + } + } + var epochsPerSample = this.makeEpochsPerSample(weights, nEpochs); + return { head: head, tail: tail, epochsPerSample: epochsPerSample }; + }; + UMAP.prototype.makeEpochsPerSample = function (weights, nEpochs) { + var result = utils.filled(weights.length, -1.0); + var max = utils.max(weights); + var nSamples = weights.map(function (w) { return (w / max) * nEpochs; }); + nSamples.forEach(function (n, i) { + if (n > 0) + result[i] = nEpochs / nSamples[i]; + }); + return result; + }; + UMAP.prototype.initializeOptimization = function () { + var headEmbedding = this.embedding; + var tailEmbedding = this.embedding; + var _a = this.optimizationState, head = _a.head, tail = _a.tail, epochsPerSample = _a.epochsPerSample; + var gamma = 1.0; + var initialAlpha = 1.0; + var negativeSampleRate = 5; + var nEpochs = this.getNEpochs(); + var nVertices = this.graph.nCols; + var a = 1.5769434603113077; + var b = 0.8950608779109733; + var dim = headEmbedding[0].length; + var moveOther = headEmbedding.length === tailEmbedding.length; + var alpha = initialAlpha; + var epochsPerNegativeSample = epochsPerSample.map(function (e) { return e / negativeSampleRate; }); + var epochOfNextNegativeSample = epochsPerNegativeSample.slice(); + var epochOfNextSample = epochsPerSample.slice(); + Object.assign(this.optimizationState, { + isInitialized: true, + headEmbedding: headEmbedding, + tailEmbedding: tailEmbedding, + head: head, + tail: tail, + epochsPerSample: epochsPerSample, + epochOfNextSample: epochOfNextSample, + epochOfNextNegativeSample: epochOfNextNegativeSample, + epochsPerNegativeSample: epochsPerNegativeSample, + moveOther: moveOther, + initialAlpha: initialAlpha, + alpha: alpha, + gamma: gamma, + a: a, + b: b, + dim: dim, + nEpochs: nEpochs, + nVertices: nVertices, + }); + }; + UMAP.prototype.optimizeLayoutStep = function (n) { + var optimizationState = this.optimizationState; + var head = optimizationState.head, tail = optimizationState.tail, headEmbedding = optimizationState.headEmbedding, tailEmbedding = optimizationState.tailEmbedding, epochsPerSample = optimizationState.epochsPerSample, epochOfNextSample = optimizationState.epochOfNextSample, epochOfNextNegativeSample = optimizationState.epochOfNextNegativeSample, epochsPerNegativeSample = optimizationState.epochsPerNegativeSample, moveOther = optimizationState.moveOther, initialAlpha = optimizationState.initialAlpha, alpha = optimizationState.alpha, gamma = optimizationState.gamma, a = optimizationState.a, b = optimizationState.b, dim = optimizationState.dim, nEpochs = optimizationState.nEpochs, nVertices = optimizationState.nVertices; + var clipValue = 4.0; + for (var i = 0; i < epochsPerSample.length; i++) { + if (epochOfNextSample[i] > n) { + continue; + } + var j = head[i]; + var k = tail[i]; + var current = headEmbedding[j]; + var other = tailEmbedding[k]; + var distSquared = rDist(current, other); + var gradCoeff = 0; + if (distSquared > 0) { + gradCoeff = -2.0 * a * b * Math.pow(distSquared, b - 1.0); + gradCoeff /= a * Math.pow(distSquared, b) + 1.0; + } + for (var d = 0; d < dim; d++) { + var gradD = clip(gradCoeff * (current[d] - other[d]), clipValue); + current[d] += gradD * alpha; + if (moveOther) { + other[d] += -gradD * alpha; + } + } + epochOfNextSample[i] += epochsPerSample[i]; + var nNegSamples = Math.floor((n - epochOfNextNegativeSample[i]) / epochsPerNegativeSample[i]); + for (var p = 0; p < nNegSamples; p++) { + var k_1 = utils.tauRandInt(nVertices, this.random); + var other_1 = tailEmbedding[k_1]; + var distSquared_1 = rDist(current, other_1); + var gradCoeff_1 = 0.0; + if (distSquared_1 > 0.0) { + gradCoeff_1 = 2.0 * gamma * b; + gradCoeff_1 /= + (0.001 + distSquared_1) * (a * Math.pow(distSquared_1, b) + 1); + } + else if (j === k_1) { + continue; + } + for (var d = 0; d < dim; d++) { + var gradD = 4.0; + if (gradCoeff_1 > 0.0) { + gradD = clip(gradCoeff_1 * (current[d] - other_1[d]), clipValue); + } + current[d] += gradD * alpha; + } + } + epochOfNextNegativeSample[i] += nNegSamples * epochsPerNegativeSample[i]; + } + optimizationState.alpha = initialAlpha * (1.0 - n / nEpochs); + optimizationState.currentEpoch += 1; + this.embedding = headEmbedding; + return optimizationState.currentEpoch; + }; + UMAP.prototype.optimizeLayout = function (epochCallback) { + var _this = this; + if (epochCallback === void 0) { epochCallback = function () { return true; }; } + if (!this.optimizationState.isInitialized) { + this.initializeOptimization(); + } + return new Promise(function (resolve, reject) { + var step = function () { return __awaiter(_this, void 0, void 0, function () { + var _a, nEpochs, currentEpoch, epochCompleted, shouldStop, isFinished; + return __generator(this, function (_b) { + try { + _a = this.optimizationState, nEpochs = _a.nEpochs, currentEpoch = _a.currentEpoch; + epochCompleted = this.optimizeLayoutStep(currentEpoch); + shouldStop = epochCallback(epochCompleted) === false; + isFinished = epochCompleted === nEpochs; + if (!shouldStop && !isFinished) { + step(); + } + else { + return [2, resolve(isFinished)]; + } + } + catch (err) { + reject(err); + } + return [2]; + }); + }); }; + step(); + }); + }; + UMAP.prototype.getNEpochs = function () { + var graph = this.graph; + if (this.nEpochs > 0) { + return this.nEpochs; + } + var length = graph.nRows; + if (length <= 2500) { + return 500; + } + else if (length <= 5000) { + return 400; + } + else if (length <= 7500) { + return 300; + } + else { + return 200; + } + }; + return UMAP; +}()); +exports.UMAP = UMAP; +function euclidean(x, y) { + var result = 0; + for (var i = 0; i < x.length; i++) { + result += Math.pow((x[i] - y[i]), 2); + } + return Math.sqrt(result); +} +exports.euclidean = euclidean; +function cosine(x, y) { + var result = 0.0; + var normX = 0.0; + var normY = 0.0; + for (var i = 0; i < x.length; i++) { + result += x[i] * y[i]; + normX += Math.pow(x[i], 2); + normY += Math.pow(y[i], 2); + } + if (normX === 0 && normY === 0) { + return 0; + } + else if (normX === 0 || normY === 0) { + return 1.0; + } + else { + return 1.0 - result / Math.sqrt(normX * normY); + } +} +exports.cosine = cosine; +var OptimizationState = (function () { + function OptimizationState() { + this.currentEpoch = 0; + this.isInitialized = false; + this.headEmbedding = []; + this.tailEmbedding = []; + this.head = []; + this.tail = []; + this.epochsPerSample = []; + this.epochOfNextSample = []; + this.epochOfNextNegativeSample = []; + this.epochsPerNegativeSample = []; + this.moveOther = true; + this.initialAlpha = 1.0; + this.alpha = 1.0; + this.gamma = 1.0; + this.a = 1.5769434603113077; + this.b = 0.8950608779109733; + this.dim = 2; + this.nEpochs = 500; + this.nVertices = 0; + } + return OptimizationState; +}()); +function clip(x, clipValue) { + if (x > clipValue) + return clipValue; + else if (x < -clipValue) + return -clipValue; + else + return x; +} +function rDist(x, y) { + var result = 0.0; + for (var i = 0; i < x.length; i++) { + result += Math.pow(x[i] - y[i], 2); + } + return result; +} + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var SparseMatrix = (function () { + function SparseMatrix(rows, cols, values, dims) { + this.entries = new Map(); + this.nRows = 0; + this.nCols = 0; + this.rows = rows.slice(); + this.cols = cols.slice(); + this.values = values.slice(); + for (var i = 0; i < values.length; i++) { + var key = this.makeKey(this.rows[i], this.cols[i]); + this.entries.set(key, i); + } + this.nRows = dims[0]; + this.nCols = dims[0]; + } + SparseMatrix.prototype.makeKey = function (row, col) { + return row + ":" + col; + }; + SparseMatrix.prototype.checkDims = function (row, col) { + var withinBounds = row < this.nRows && col < this.nCols; + if (!withinBounds) { + throw new Error('array index out of bounds'); + } + }; + SparseMatrix.prototype.set = function (row, col, value) { + this.checkDims(row, col); + var key = this.makeKey(row, col); + if (!this.entries.has(key)) { + this.rows.push(row); + this.cols.push(col); + this.values.push(value); + this.entries.set(key, this.values.length - 1); + } + else { + var index = this.entries.get(key); + this.values[index] = value; + } + }; + SparseMatrix.prototype.get = function (row, col, defaultValue) { + if (defaultValue === void 0) { defaultValue = 0; } + this.checkDims(row, col); + var key = this.makeKey(row, col); + if (this.entries.has(key)) { + var index = this.entries.get(key); + return this.values[index]; + } + else { + return defaultValue; + } + }; + SparseMatrix.prototype.getRows = function () { + return this.rows.slice(); + }; + SparseMatrix.prototype.getCols = function () { + return this.cols.slice(); + }; + SparseMatrix.prototype.getValues = function () { + return this.values.slice(); + }; + SparseMatrix.prototype.forEach = function (fn) { + for (var i = 0; i < this.values.length; i++) { + fn(this.values[i], this.rows[i], this.cols[i]); + } + }; + SparseMatrix.prototype.map = function (fn) { + var vals = []; + for (var i = 0; i < this.values.length; i++) { + vals.push(fn(this.values[i], this.rows[i], this.cols[i])); + } + var dims = [this.nRows, this.nCols]; + return new SparseMatrix(this.rows, this.cols, vals, dims); + }; + SparseMatrix.prototype.toArray = function () { + var _this = this; + var rows = new Array(this.nRows).slice(); + var output = rows.map(function () { + var cols = new Array(_this.nCols).slice(); + return cols.map(function () { return 0; }); + }); + for (var i = 0; i < this.values.length; i++) { + output[this.rows[i]][this.cols[i]] = this.values[i]; + } + return output; + }; + return SparseMatrix; +}()); +exports.SparseMatrix = SparseMatrix; +function transpose(matrix) { + var cols = []; + var rows = []; + var vals = []; + matrix.forEach(function (value, row, col) { + cols.push(row); + rows.push(col); + vals.push(value); + }); + var dims = [matrix.nCols, matrix.nRows]; + return new SparseMatrix(rows, cols, vals, dims); +} +exports.transpose = transpose; +function identity(size) { + var rows = size[0]; + var matrix = new SparseMatrix([], [], [], size); + for (var i = 0; i < rows; i++) { + matrix.set(i, i, 1); + } + return matrix; +} +exports.identity = identity; +function dotMultiply(a, b) { + return elementWise(a, b, function (x, y) { return x * y; }); +} +exports.dotMultiply = dotMultiply; +function add(a, b) { + return elementWise(a, b, function (x, y) { return x + y; }); +} +exports.add = add; +function subtract(a, b) { + return elementWise(a, b, function (x, y) { return x - y; }); +} +exports.subtract = subtract; +function multiplyScalar(a, scalar) { + return a.map(function (value) { + return value * scalar; + }); +} +exports.multiplyScalar = multiplyScalar; +function elementWise(a, b, op) { + var visited = new Set(); + var rows = []; + var cols = []; + var vals = []; + var operate = function (row, col) { + rows.push(row); + cols.push(col); + var nextValue = op(a.get(row, col), b.get(row, col)); + vals.push(nextValue); + }; + var valuesA = a.getValues(); + var rowsA = a.getRows(); + var colsA = a.getCols(); + for (var i = 0; i < valuesA.length; i++) { + var row = rowsA[i]; + var col = colsA[i]; + var key = row + ":" + col; + visited.add(key); + operate(row, col); + } + var valuesB = b.getValues(); + var rowsB = b.getRows(); + var colsB = b.getCols(); + for (var i = 0; i < valuesB.length; i++) { + var row = rowsB[i]; + var col = colsB[i]; + var key = row + ":" + col; + if (visited.has(key)) + continue; + operate(row, col); + } + var dims = [a.nRows, a.nCols]; + return new SparseMatrix(rows, cols, vals, dims); +} + + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var heap = __webpack_require__(5); +var utils = __webpack_require__(0); +function makeNNDescent(distanceFn, random) { + return function nNDescent(data, leafArray, nNeighbors, nIters, maxCandidates, delta, rho, rpTreeInit) { + if (nIters === void 0) { nIters = 10; } + if (maxCandidates === void 0) { maxCandidates = 50; } + if (delta === void 0) { delta = 0.001; } + if (rho === void 0) { rho = 0.5; } + if (rpTreeInit === void 0) { rpTreeInit = true; } + var nVertices = data.length; + var currentGraph = heap.makeHeap(data.length, nNeighbors); + for (var i = 0; i < data.length; i++) { + var indices = heap.rejectionSample(nNeighbors, data.length, random); + for (var j = 0; j < indices.length; j++) { + var d = distanceFn(data[i], data[indices[j]]); + heap.heapPush(currentGraph, i, d, indices[j], 1); + heap.heapPush(currentGraph, indices[j], d, i, 1); + } + } + if (rpTreeInit) { + for (var n = 0; n < leafArray.length; n++) { + for (var i = 0; i < leafArray[n].length; i++) { + if (leafArray[n][i] < 0) { + break; + } + for (var j = i + 1; j < leafArray[n].length; j++) { + if (leafArray[n][j] < 0) { + break; + } + var d = distanceFn(data[leafArray[n][i]], data[leafArray[n][j]]); + heap.heapPush(currentGraph, leafArray[n][i], d, leafArray[n][j], 1); + heap.heapPush(currentGraph, leafArray[n][j], d, leafArray[n][i], 1); + } + } + } + } + for (var n = 0; n < nIters; n++) { + var candidateNeighbors = heap.buildCandidates(currentGraph, nVertices, nNeighbors, maxCandidates, random); + var c = 0; + for (var i = 0; i < nVertices; i++) { + for (var j = 0; j < maxCandidates; j++) { + var p = Math.floor(candidateNeighbors[0][i][j]); + if (p < 0 || utils.tauRand(random) < rho) { + continue; + } + for (var k = 0; k < maxCandidates; k++) { + var q = Math.floor(candidateNeighbors[0][i][k]); + var cj = candidateNeighbors[2][i][j]; + var ck = candidateNeighbors[2][i][k]; + if (q < 0 || (!cj && !ck)) { + continue; + } + var d = distanceFn(data[p], data[q]); + c += heap.heapPush(currentGraph, p, d, q, 1); + c += heap.heapPush(currentGraph, q, d, p, 1); + } + } + } + if (c <= delta * nNeighbors * data.length) { + break; + } + } + var sorted = heap.deheapSort(currentGraph); + return sorted; + }; +} +exports.makeNNDescent = makeNNDescent; + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var utils = __webpack_require__(0); +function makeHeap(nPoints, size) { + var makeArrays = function (fillValue) { + return utils.empty(nPoints).map(function () { + return utils.filled(size, fillValue); + }); + }; + var heap = []; + heap.push(makeArrays(-1)); + heap.push(makeArrays(Infinity)); + heap.push(makeArrays(0)); + return heap; +} +exports.makeHeap = makeHeap; +function rejectionSample(nSamples, poolSize, random) { + var result = utils.zeros(nSamples); + for (var i = 0; i < nSamples; i++) { + var rejectSample = true; + var j = 0; + while (rejectSample) { + j = utils.tauRandInt(poolSize, random); + var broken = false; + for (var k = 0; k < i; k++) { + if (j === result[k]) { + broken = true; + break; + } + } + if (!broken) + rejectSample = false; + } + result[i] = j; + } + return result; +} +exports.rejectionSample = rejectionSample; +function heapPush(heap, row, weight, index, flag) { + row = Math.floor(row); + var indices = heap[0][row]; + var weights = heap[1][row]; + var isNew = heap[2][row]; + if (weight >= weights[0]) { + return 0; + } + for (var i_1 = 0; i_1 < indices.length; i_1++) { + if (index === indices[i_1]) { + return 0; + } + } + weights[0] = weight; + indices[0] = index; + isNew[0] = flag; + var i = 0; + var iSwap = 0; + while (true) { + var ic1 = 2 * i + 1; + var ic2 = ic1 + 1; + var heapShape2 = heap[0][0].length; + if (ic1 >= heapShape2) { + break; + } + else if (ic2 >= heapShape2) { + if (weights[ic1] > weight) { + iSwap = ic1; + } + else { + break; + } + } + else if (weights[ic1] >= weights[ic2]) { + if (weight < weights[ic1]) { + iSwap = ic1; + } + else { + break; + } + } + else { + if (weight < weights[ic2]) { + iSwap = ic2; + } + else { + break; + } + } + weights[i] = weights[iSwap]; + indices[i] = indices[iSwap]; + isNew[i] = isNew[iSwap]; + i = iSwap; + } + weights[i] = weight; + indices[i] = index; + isNew[i] = flag; + return 1; +} +exports.heapPush = heapPush; +function buildCandidates(currentGraph, nVertices, nNeighbors, maxCandidates, random) { + var candidateNeighbors = makeHeap(nVertices, maxCandidates); + for (var i = 0; i < nVertices; i++) { + for (var j = 0; j < nNeighbors; j++) { + if (currentGraph[0][i][j] < 0) { + continue; + } + var idx = currentGraph[0][i][j]; + var isn = currentGraph[2][i][j]; + var d = utils.tauRand(random); + heapPush(candidateNeighbors, i, d, idx, isn); + heapPush(candidateNeighbors, idx, d, i, isn); + currentGraph[2][i][j] = 0; + } + } + return candidateNeighbors; +} +exports.buildCandidates = buildCandidates; +function deheapSort(heap) { + var indices = heap[0]; + var weights = heap[1]; + for (var i = 0; i < indices.length; i++) { + var indHeap = indices[i]; + var distHeap = weights[i]; + for (var j = 0; j < indHeap.length - 1; j++) { + var indHeapIndex = indHeap.length - j - 1; + var distHeapIndex = distHeap.length - j - 1; + var temp1 = indHeap[0]; + indHeap[0] = indHeap[indHeapIndex]; + indHeap[indHeapIndex] = temp1; + var temp2 = distHeap[0]; + distHeap[0] = distHeap[distHeapIndex]; + distHeap[distHeapIndex] = temp2; + siftDown(distHeap, indHeap, distHeapIndex, 0); + } + } + return { indices: indices, weights: weights }; +} +exports.deheapSort = deheapSort; +function siftDown(heap1, heap2, ceiling, elt) { + while (elt * 2 + 1 < ceiling) { + var leftChild = elt * 2 + 1; + var rightChild = leftChild + 1; + var swap = elt; + if (heap1[swap] < heap1[leftChild]) { + swap = leftChild; + } + if (rightChild < ceiling && heap1[swap] < heap1[rightChild]) { + swap = rightChild; + } + if (swap === elt) { + break; + } + else { + var temp1 = heap1[elt]; + heap1[elt] = heap1[swap]; + heap1[swap] = temp1; + var temp2 = heap2[elt]; + heap2[elt] = heap2[swap]; + heap2[swap] = temp2; + elt = swap; + } + } +} + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var utils = __webpack_require__(0); +var FlatTree = (function () { + function FlatTree(hyperplanes, offsets, children, indices) { + this.hyperplanes = hyperplanes; + this.offsets = offsets; + this.children = children; + this.indices = indices; + } + return FlatTree; +}()); +exports.FlatTree = FlatTree; +function makeForest(data, nNeighbors, nTrees, random) { + var leafSize = Math.max(10, nNeighbors); + var trees = utils + .range(nTrees) + .map(function (_, i) { return makeTree(data, leafSize, i, random); }); + var forest = trees.map(function (tree) { return flattenTree(tree, leafSize); }); + return forest; +} +exports.makeForest = makeForest; +function makeTree(data, leafSize, n, random) { + if (leafSize === void 0) { leafSize = 30; } + var indices = utils.range(data.length); + var tree = makeEuclideanTree(data, indices, leafSize, n, random); + return tree; +} +function makeEuclideanTree(data, indices, leafSize, q, random) { + if (leafSize === void 0) { leafSize = 30; } + if (indices.length > leafSize) { + var splitResults = euclideanRandomProjectionSplit(data, indices, random); + var indicesLeft = splitResults.indicesLeft, indicesRight = splitResults.indicesRight, hyperplane = splitResults.hyperplane, offset = splitResults.offset; + var leftChild = makeEuclideanTree(data, indicesLeft, leafSize, q + 1, random); + var rightChild = makeEuclideanTree(data, indicesRight, leafSize, q + 1, random); + var node = { leftChild: leftChild, rightChild: rightChild, isLeaf: false, hyperplane: hyperplane, offset: offset }; + return node; + } + else { + var node = { indices: indices, isLeaf: true }; + return node; + } +} +function euclideanRandomProjectionSplit(data, indices, random) { + var dim = data[0].length; + var leftIndex = utils.tauRandInt(indices.length, random); + var rightIndex = utils.tauRandInt(indices.length, random); + rightIndex += leftIndex === rightIndex ? 1 : 0; + rightIndex = rightIndex % indices.length; + var left = indices[leftIndex]; + var right = indices[rightIndex]; + var hyperplaneOffset = 0; + var hyperplaneVector = utils.zeros(dim); + for (var i = 0; i < hyperplaneVector.length; i++) { + hyperplaneVector[i] = data[left][i] - data[right][i]; + hyperplaneOffset -= + (hyperplaneVector[i] * (data[left][i] + data[right][i])) / 2.0; + } + var nLeft = 0; + var nRight = 0; + var side = utils.zeros(indices.length); + for (var i = 0; i < indices.length; i++) { + var margin = hyperplaneOffset; + for (var d = 0; d < dim; d++) { + margin += hyperplaneVector[d] * data[indices[i]][d]; + } + if (margin === 0) { + side[i] = utils.tauRandInt(2, random); + if (side[i] === 0) { + nLeft += 1; + } + else { + nRight += 1; + } + } + else if (margin > 0) { + side[i] = 0; + nLeft += 1; + } + else { + side[i] = 1; + nRight += 1; + } + } + var indicesLeft = utils.zeros(nLeft); + var indicesRight = utils.zeros(nRight); + nLeft = 0; + nRight = 0; + for (var i in utils.range(side.length)) { + if (side[i] === 0) { + indicesLeft[nLeft] = indices[i]; + nLeft += 1; + } + else { + indicesRight[nRight] = indices[i]; + nRight += 1; + } + } + return { + indicesLeft: indicesLeft, + indicesRight: indicesRight, + hyperplane: hyperplaneVector, + offset: hyperplaneOffset, + }; +} +function flattenTree(tree, leafSize) { + var nNodes = numNodes(tree); + var nLeaves = numLeaves(tree); + var hyperplanes = utils + .range(nNodes) + .map(function () { return utils.zeros(tree.hyperplane.length); }); + var offsets = utils.zeros(nNodes); + var children = utils.range(nNodes).map(function () { return [-1, -1]; }); + var indices = utils + .range(nLeaves) + .map(function () { return utils.range(leafSize).map(function () { return -1; }); }); + recursiveFlatten(tree, hyperplanes, offsets, children, indices, 0, 0); + return new FlatTree(hyperplanes, offsets, children, indices); +} +function recursiveFlatten(tree, hyperplanes, offsets, children, indices, nodeNum, leafNum) { + var _a; + if (tree.isLeaf) { + children[nodeNum][0] = -leafNum; + (_a = indices[leafNum]).splice.apply(_a, [0, tree.indices.length].concat(tree.indices)); + leafNum += 1; + return { nodeNum: nodeNum, leafNum: leafNum }; + } + else { + hyperplanes[nodeNum] = tree.hyperplane; + offsets[nodeNum] = tree.offset; + children[nodeNum][0] = nodeNum + 1; + var oldNodeNum = nodeNum; + var res = recursiveFlatten(tree.leftChild, hyperplanes, offsets, children, indices, nodeNum + 1, leafNum); + nodeNum = res.nodeNum; + leafNum = res.leafNum; + children[oldNodeNum][1] = nodeNum + 1; + res = recursiveFlatten(tree.rightChild, hyperplanes, offsets, children, indices, nodeNum + 1, leafNum); + return { nodeNum: res.nodeNum, leafNum: res.leafNum }; + } +} +function numNodes(tree) { + if (tree.isLeaf) { + return 1; + } + else { + return 1 + numNodes(tree.leftChild) + numNodes(tree.rightChild); + } +} +function numLeaves(tree) { + if (tree.isLeaf) { + return 1; + } + else { + return numLeaves(tree.leftChild) + numLeaves(tree.rightChild); + } +} +function makeLeafArray(rpForest) { + if (rpForest.length > 0) { + var output = []; + for (var _i = 0, rpForest_1 = rpForest; _i < rpForest_1.length; _i++) { + var tree = rpForest_1[_i]; + output.push.apply(output, tree.indices); + } + return output; + } + else { + return [[-1]]; + } +} +exports.makeLeafArray = makeLeafArray; + + +/***/ }) +/******/ ]); \ No newline at end of file diff --git a/lib/umap-js.min.js b/lib/umap-js.min.js new file mode 100644 index 0000000..a03476a --- /dev/null +++ b/lib/umap-js.min.js @@ -0,0 +1 @@ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(t,e,n){"use strict";function r(t){return void 0===t&&(t=Math.random),t()}function i(t){for(var e=[],n=0;ne?t[n]:e;return e},e.max2d=function(t){for(var e=0,n=0;ne?t[n][r]:e;return e}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2);window.UMAP=r.UMAP},function(t,e,n){"use strict";var r=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{h(r.next(t))}catch(t){o(t)}}function s(t){try{h(r.throw(t))}catch(t){o(t)}}function h(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(a,s)}h((r=r.apply(t,e||[])).next())})},i=this&&this.__generator||function(t,e){var n,r,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(o){return function(s){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(i=2&o[0]?r.return:o[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,o[1])).done)return i;switch(r=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,r=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=(i=a.trys).length>0&&i[i.length-1])&&(6===o[0]||2===o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0});if(d.length>=n){var v=Math.floor(n),m=n-v;v>0?(a[u]=d[v-1],m>1e-5&&(a[u]+=m*(d[v]-d[v-1]))):a[u]=m*d[0]}else d.length>0&&(a[u]=h.max(d));for(var g=0;g0?Math.exp(-w/f):1}if(Math.abs(y-o)<1e-5)break;y>o?f=(l+(c=f))/2:(l=f,c===1/0?f*=2:f=(l+c)/2)}if(s[u]=f,a[u]>0){var M=h.mean(p);s[u]<.001*M&&(s[u]=.001*M)}else{var S=h.mean(t.map(h.mean));s[u]<.001*S&&(s[u]=.001*S)}}return{sigmas:s,rhos:a}},t.prototype.computeMembershipStrengths=function(t,e,n,r){for(var i=t.length,o=t[0].length,a=h.zeros(i*o),s=h.zeros(i*o),u=h.zeros(i*o),l=0;l0&&(n[r]=e/i[r])}),n},t.prototype.initializeOptimization=function(){var t=this.embedding,e=this.embedding,n=this.optimizationState,r=n.head,i=n.tail,o=n.epochsPerSample,a=this.getNEpochs(),s=this.graph.nCols,h=t[0].length,u=t.length===e.length,l=o.map(function(t){return t/5}),c=l.slice(),f=o.slice();Object.assign(this.optimizationState,{isInitialized:!0,headEmbedding:t,tailEmbedding:e,head:r,tail:i,epochsPerSample:o,epochOfNextSample:f,epochOfNextNegativeSample:c,epochsPerNegativeSample:l,moveOther:u,initialAlpha:1,alpha:1,gamma:1,a:1.5769434603113077,b:.8950608779109733,dim:h,nEpochs:a,nVertices:s})},t.prototype.optimizeLayoutStep=function(t){for(var e=this.optimizationState,n=e.head,r=e.tail,i=e.headEmbedding,o=e.tailEmbedding,a=e.epochsPerSample,s=e.epochOfNextSample,u=e.epochOfNextNegativeSample,l=e.epochsPerNegativeSample,c=e.moveOther,d=e.initialAlpha,v=e.alpha,m=e.gamma,g=e.a,y=e.b,b=e.dim,w=e.nEpochs,M=e.nVertices,S=0;St)){var z=n[S],N=r[S],k=i[z],E=o[N],P=p(k,E),x=0;P>0&&(x=-2*g*y*Math.pow(P,y-1),x/=g*Math.pow(P,y)+1);for(var C=0;C0)A=2*m*y,A/=(.001+L)*(g*Math.pow(L,y)+1);else if(z===I)continue;for(C=0;C0&&(O=f(A*(k[C]-j[C]),4)),k[C]+=O*v}}u[S]+=R*l[S]}return e.alpha=d*(1-t/w),e.currentEpoch+=1,this.embedding=i,e.currentEpoch},t.prototype.optimizeLayout=function(t){var e=this;return void 0===t&&(t=function(){return!0}),this.optimizationState.isInitialized||this.initializeOptimization(),new Promise(function(n,o){var a=function(){return r(e,void 0,void 0,function(){var e,r,s,h,u,l;return i(this,function(i){try{if(e=this.optimizationState,r=e.nEpochs,s=e.currentEpoch,h=this.optimizeLayoutStep(s),u=!1===t(h),l=h===r,u||l)return[2,n(l)];a()}catch(t){o(t)}return[2]})})};a()})},t.prototype.getNEpochs=function(){var t=this.graph;if(this.nEpochs>0)return this.nEpochs;var e=t.nRows;return e<=2500?500:e<=5e3?400:e<=7500?300:200},t}();function l(t,e){for(var n=0,r=0;re?e:t<-e?-e:t}function p(t,e){for(var n=0,r=0;r=a[0])return 0;for(var h=0;h=p)break;if(f>=p){if(!(a[c]>n))break;l=c}else if(a[c]>=a[f]){if(!(ni){var s=function(t,e,n){var i=t[0].length,o=r.tauRandInt(e.length,n),a=r.tauRandInt(e.length,n);a=(a+=o===a?1:0)%e.length;for(var s=e[o],h=e[a],u=0,l=r.zeros(i),c=0;c0?(d[c]=0,f+=1):(d[c]=1,p+=1)}var g=r.zeros(f),y=r.zeros(p);for(var c in f=0,p=0,r.range(d.length))0===d[c]?(g[f]=e[c],f+=1):(y[p]=e[c],p+=1);return{indicesLeft:g,indicesRight:y,hyperplane:l,offset:u}}(e,n,a),h=s.indicesLeft,u=s.indicesRight,l=s.hyperplane,c=s.offset,f=t(e,h,i,o+1,a),p=t(e,u,i,o+1,a),d={leftChild:f,rightChild:p,isLeaf:!1,hyperplane:l,offset:c};return d}var d={indices:n,isLeaf:!0};return d}(t,o,e,n,i)}(t,a,n,o)}).map(function(t){return function(t,e){var n=function t(e){return e.isLeaf?1:1+t(e.leftChild)+t(e.rightChild)}(t),o=function t(e){return e.isLeaf?1:t(e.leftChild)+t(e.rightChild)}(t),a=r.range(n).map(function(){return r.zeros(t.hyperplane.length)}),s=r.zeros(n),h=r.range(n).map(function(){return[-1,-1]}),u=r.range(o).map(function(){return r.range(e).map(function(){return-1})});return function t(e,n,r,i,o,a,s){var h;if(e.isLeaf)return i[a][0]=-s,(h=o[s]).splice.apply(h,[0,e.indices.length].concat(e.indices)),{nodeNum:a,leafNum:s+=1};n[a]=e.hyperplane,r[a]=e.offset,i[a][0]=a+1;var u=a,l=t(e.leftChild,n,r,i,o,a+1,s);return a=l.nodeNum,s=l.leafNum,i[u][1]=a+1,{nodeNum:(l=t(e.rightChild,n,r,i,o,a+1,s)).nodeNum,leafNum:l.leafNum}}(t,a,s,h,u,0,0),new i(a,s,h,u)}(t,a)})},e.makeLeafArray=function(t){if(t.length>0){for(var e=[],n=0,r=t;n= 0.3.2 < 0.4.0": version "0.3.6" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.6.tgz#f85206cee04efa841f3c5982a74ba96ab20d65ad" @@ -575,6 +976,10 @@ cssstyle@^1.0.0: dependencies: cssom "0.3.x" +cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -589,6 +994,10 @@ data-urls@^1.0.0: whatwg-mimetype "^2.2.0" whatwg-url "^7.0.0" +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + debug@^2.1.2, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -601,7 +1010,7 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -decamelize@^1.1.1: +decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -656,6 +1065,17 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-file@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" @@ -674,12 +1094,33 @@ diff@^3.1.0, diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" dependencies: webidl-conversions "^4.0.2" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -687,6 +1128,42 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" +elliptic@^6.0.0: + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + 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" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + tapable "^1.0.0" + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + error-ex@^1.2.0: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -727,6 +1204,13 @@ escodegen@^1.9.1: optionalDependencies: source-map "~0.6.1" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -735,7 +1219,13 @@ esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" -estraverse@^4.2.0: +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -743,6 +1233,17 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" +events@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + exec-sh@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" @@ -761,6 +1262,18 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -789,6 +1302,12 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + expect@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" @@ -862,6 +1381,10 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -892,6 +1415,14 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -905,6 +1436,28 @@ find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + dependencies: + locate-path "^3.0.0" + +findup-sync@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + dependencies: + detect-file "^1.0.0" + is-glob "^3.1.0" + micromatch "^3.0.4" + resolve-dir "^1.0.1" + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -933,17 +1486,33 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" dependencies: minipass "^2.2.1" +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.2.3: +fsevents@^1.2.3, fsevents@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" dependencies: @@ -975,6 +1544,12 @@ get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -998,6 +1573,13 @@ glob-parent@^2.0.0: dependencies: is-glob "^2.0.0" +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" @@ -1009,11 +1591,29 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" -graceful-fs@^4.1.11, graceful-fs@^4.1.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" @@ -1097,6 +1697,28 @@ has@^1.0.1, has@^1.0.3: dependencies: function-bind "^1.1.1" +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -1104,6 +1726,12 @@ home-or-tmp@^2.0.0: os-homedir "^1.0.0" os-tmpdir "^1.0.1" +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + dependencies: + parse-passwd "^1.0.0" + hosted-git-info@^2.1.4: version "2.7.1" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" @@ -1122,12 +1750,24 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + iconv-lite@0.4.24, iconv-lite@^0.4.4: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" dependencies: safer-buffer ">= 2.1.2 < 3" +ieee754@^1.1.4: + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + ignore-walk@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" @@ -1141,10 +1781,21 @@ import-local@^1.0.0: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1152,14 +1803,22 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@~2.0.3: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" -ini@~1.3.0: +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" +interpret@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -1170,6 +1829,10 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -1190,6 +1853,12 @@ is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -1260,6 +1929,10 @@ is-extglob@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" @@ -1286,6 +1959,18 @@ is-glob@^2.0.0, is-glob@^2.0.1: dependencies: is-extglob "^1.0.0" +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + is-number@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" @@ -1340,7 +2025,7 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" -is-windows@^1.0.2: +is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -1348,7 +2033,7 @@ is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" -isarray@1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -1777,6 +2462,10 @@ jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -1799,6 +2488,12 @@ json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + dependencies: + minimist "^1.2.0" + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -1838,6 +2533,12 @@ lcid@^1.0.0: dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + dependencies: + invert-kv "^2.0.0" + left-pad@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" @@ -1863,6 +2564,18 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +loader-runner@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + +loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + locate-path@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" @@ -1870,6 +2583,13 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -1891,6 +2611,18 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + dependencies: + yallist "^3.0.2" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + dependencies: + pify "^3.0.0" + make-error@1.x, make-error@^1.1.1: version "1.3.5" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8" @@ -1901,6 +2633,16 @@ makeerror@1.0.x: dependencies: tmpl "1.0.x" +mamacro@^0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -1915,12 +2657,35 @@ math-random@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c" +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.1.0.tgz#aeb9be2d21f47e78af29e4ac5978e8afa2ca5b8a" + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" @@ -1949,7 +2714,7 @@ micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.1.4: +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" dependencies: @@ -1967,6 +2732,13 @@ micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@~1.37.0: version "1.37.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" @@ -1981,6 +2753,14 @@ mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -2012,6 +2792,21 @@ minizlib@^1.1.1: dependencies: minipass "^2.2.1" +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + mixin-deep@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" @@ -2019,12 +2814,23 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -2065,10 +2871,46 @@ needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" +neo-async@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" +node-libs-browser@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "0.0.4" + node-notifier@^5.2.1: version "5.4.0" resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.0.tgz#7b455fdce9f7de0c63538297354f3db468426e6a" @@ -2116,6 +2958,10 @@ normalize-path@^2.0.1, normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + npm-bundled@^1.0.1: version "1.0.6" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" @@ -2196,7 +3042,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -2220,6 +3066,10 @@ optionator@^0.8.1: type-check "~0.3.2" wordwrap "~1.0.0" +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -2232,6 +3082,14 @@ os-locale@^2.0.0: lcid "^1.0.0" mem "^1.1.0" +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -2243,26 +3101,73 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" +p-is-promise@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.0.0.tgz#7554e3d572109a87e1f3f53f6a7d85d1b194f4c5" + p-limit@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" dependencies: p-try "^1.0.0" +p-limit@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.1.0.tgz#1d5a0d20fb12707c758a655f6bbc4386b5930d68" + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + dependencies: + p-limit "^2.0.0" + p-try@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + +pako@~1.0.5: + version "1.0.8" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.8.tgz#6844890aab9c635af868ad5fecc62e8acbba3ea4" + +parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parse-asn1@^5.0.0: + version "5.1.4" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" + 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" + parse-glob@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" @@ -2278,6 +3183,10 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" @@ -2286,6 +3195,14 @@ pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" @@ -2300,7 +3217,7 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-key@^2.0.0: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -2316,6 +3233,16 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + 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.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -2324,6 +3251,10 @@ pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -2340,6 +3271,12 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + dependencies: + find-up "^3.0.0" + pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" @@ -2379,6 +3316,14 @@ process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + prompts@^0.1.9: version "0.1.14" resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" @@ -2386,6 +3331,10 @@ prompts@^0.1.9: kleur "^2.0.1" sisteransi "^0.1.1" +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" @@ -2394,7 +3343,44 @@ psl@^1.1.24, psl@^1.1.28: version "1.1.31" resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" -punycode@^1.4.1: +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + 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" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -2406,6 +3392,14 @@ qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + randomatic@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed" @@ -2414,6 +3408,19 @@ randomatic@^3.0.0: kind-of "^6.0.0" math-random "^1.0.1" +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -2438,7 +3445,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@^2.0.1, readable-stream@^2.0.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -2450,6 +3457,14 @@ readable-stream@^2.0.1, readable-stream@^2.0.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + realpath-native@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" @@ -2544,6 +3559,13 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-dir@^1.0.0, resolve-dir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" @@ -2566,17 +3588,30 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" -rimraf@^2.5.4, rimraf@^2.6.1: +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" dependencies: glob "^7.1.3" +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + rsvp@^3.3.3: version "3.6.2" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" -safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -2609,10 +3644,22 @@ sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5, semver@^5.5.0: +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.3.0, semver@^5.5, semver@^5.5.0: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" +serialize-javascript@^1.4.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -2635,6 +3682,17 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -2688,6 +3746,10 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + source-map-resolve@^0.5.0: version "0.5.2" resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" @@ -2704,7 +3766,7 @@ source-map-support@^0.4.15: dependencies: source-map "^0.5.6" -source-map-support@^0.5.6: +source-map-support@^0.5.6, source-map-support@~0.5.9: version "0.5.10" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.10.tgz#2214080bc9d51832511ee2bab96e3c2f9353120c" dependencies: @@ -2769,6 +3831,12 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + dependencies: + figgy-pudding "^3.5.1" + stack-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" @@ -2784,6 +3852,34 @@ stealthy-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" @@ -2806,6 +3902,12 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string_decoder@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + dependencies: + safe-buffer "~5.1.0" + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -2852,7 +3954,7 @@ supports-color@^3.1.2: dependencies: has-flag "^1.0.0" -supports-color@^5.3.0: +supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" dependencies: @@ -2862,6 +3964,10 @@ symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" +tapable@^1.0.0, tapable@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" + tar@^4: version "4.4.8" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" @@ -2874,6 +3980,27 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.2" +terser-webpack-plugin@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.2.2.tgz#9bff3a891ad614855a7dde0d707f7db5a927e3d9" + dependencies: + cacache "^11.0.2" + find-cache-dir "^2.0.0" + schema-utils "^1.0.0" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + terser "^3.16.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser@^3.16.1: + version "3.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.16.1.tgz#5b0dd4fa1ffd0b0b43c2493b2c364fd179160493" + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + source-map-support "~0.5.9" + test-exclude@^4.2.1: version "4.2.3" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" @@ -2888,10 +4015,27 @@ throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +timers-browserify@^2.0.4: + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + dependencies: + setimmediate "^1.0.4" + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -2964,6 +4108,16 @@ ts-jest@^23.10.5: semver "^5.5" yargs-parser "10.x" +ts-loader@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-5.3.3.tgz#8b4af042e773132d86b3c99ef0acf3b4d325f473" + dependencies: + chalk "^2.3.0" + enhanced-resolve "^4.0.0" + loader-utils "^1.0.2" + micromatch "^3.1.4" + semver "^5.0.1" + ts-node@^8.0.2: version "8.0.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.0.2.tgz#9ecdf8d782a0ca4c80d1d641cbb236af4ac1b756" @@ -2974,6 +4128,14 @@ ts-node@^8.0.2: source-map-support "^0.5.6" yn "^3.0.0" +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -2990,6 +4152,10 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + typescript@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.2.4.tgz#c585cb952912263d915b462726ce244ba510ef3d" @@ -3010,6 +4176,18 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^0.4.3" +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + dependencies: + imurmurhash "^0.1.4" + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -3017,6 +4195,10 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" +upath@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -3027,6 +4209,13 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" @@ -3042,10 +4231,26 @@ util.promisify@^1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + dependencies: + inherits "2.0.3" + uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" +v8-compile-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -3061,6 +4266,12 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" @@ -3080,10 +4291,70 @@ watch@~0.18.0: exec-sh "^0.2.0" minimist "^1.2.0" +watchpack@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" +webpack-cli@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.2.3.tgz#13653549adfd8ccd920ad7be1ef868bacc22e346" + dependencies: + chalk "^2.4.1" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.0" + findup-sync "^2.0.0" + global-modules "^1.0.0" + import-local "^2.0.0" + interpret "^1.1.0" + loader-utils "^1.1.0" + supports-color "^5.5.0" + v8-compile-cache "^2.0.2" + yargs "^12.0.4" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^4.29.5: + version "4.29.5" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.29.5.tgz#52b60a7b0838427c3a894cd801a11dc0836bc79f" + dependencies: + "@webassemblyjs/ast" "1.8.3" + "@webassemblyjs/helper-module-context" "1.8.3" + "@webassemblyjs/wasm-edit" "1.8.3" + "@webassemblyjs/wasm-parser" "1.8.3" + acorn "^6.0.5" + acorn-dynamic-import "^4.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + micromatch "^3.1.8" + mkdirp "~0.5.0" + neo-async "^2.5.0" + node-libs-browser "^2.0.0" + schema-utils "^1.0.0" + tapable "^1.1.0" + terser-webpack-plugin "^1.1.0" + watchpack "^1.5.0" + webpack-sources "^1.3.0" + whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -3114,7 +4385,7 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@^1.2.12, which@^1.2.9, which@^1.3.0: +which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" dependencies: @@ -3134,6 +4405,12 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" +worker-farm@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -3163,10 +4440,18 @@ xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -3181,6 +4466,13 @@ yargs-parser@10.x: dependencies: camelcase "^4.1.0" +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" @@ -3204,7 +4496,23 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" +yargs@^12.0.4: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + yn@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/yn/-/yn-3.0.0.tgz#0073c6b56e92aed652fbdfd62431f2d6b9a7a091" -