From 415a04695c8694a91760914fecebe62d9ebe7b60 Mon Sep 17 00:00:00 2001 From: Emile Fugulin Date: Fri, 12 Feb 2021 13:02:51 -0500 Subject: [PATCH] Refactor the mapping to be the same as reference implementation, remove unused implementations --- package.json | 4 - src/ddsketch/DDSketch.ts | 14 +- .../mapping/CubicallyInterpolatedMapping.ts | 86 --- src/ddsketch/mapping/KeyMapping.ts | 82 --- .../mapping/LinearlyInterpolatedMapping.ts | 69 --- src/ddsketch/mapping/LogarithmicMapping.ts | 55 +- src/ddsketch/mapping/helpers.ts | 24 + src/ddsketch/mapping/index.ts | 7 +- src/ddsketch/mapping/types.ts | 17 +- src/types/math-float64-frexp/index.d.ts | 12 - src/types/math-float64-ldexp/index.d.ts | 12 - test/ddsketch.test.ts | 2 +- test/mapping.test.ts | 101 +--- yarn.lock | 523 +----------------- 14 files changed, 110 insertions(+), 898 deletions(-) delete mode 100644 src/ddsketch/mapping/CubicallyInterpolatedMapping.ts delete mode 100644 src/ddsketch/mapping/KeyMapping.ts delete mode 100644 src/ddsketch/mapping/LinearlyInterpolatedMapping.ts create mode 100644 src/ddsketch/mapping/helpers.ts delete mode 100644 src/types/math-float64-frexp/index.d.ts delete mode 100644 src/types/math-float64-ldexp/index.d.ts diff --git a/package.json b/package.json index 5573a27..3c1cdd9 100644 --- a/package.json +++ b/package.json @@ -30,10 +30,6 @@ "prepack": "yarn build", "typecheck": "tsc --noEmit" }, - "dependencies": { - "math-float64-frexp": "^1.0.0", - "math-float64-ldexp": "^1.0.1" - }, "devDependencies": { "@types/jest": "^26.0.14", "@typescript-eslint/eslint-plugin": "^4.2.0", diff --git a/src/ddsketch/DDSketch.ts b/src/ddsketch/DDSketch.ts index 9e764dc..509082b 100644 --- a/src/ddsketch/DDSketch.ts +++ b/src/ddsketch/DDSketch.ts @@ -6,13 +6,13 @@ */ import { Bin, DenseStore } from './store'; -import { Mapping, LogarithmicMapping } from './mapping'; +import { IndexMapping, LogarithmicMapping } from './mapping'; const DEFAULT_RELATIVE_ACCURACY = 0.01; interface BaseSketchConfig { /** The mapping between values and indicies for the sketch */ - mapping: Mapping; + mapping: IndexMapping; /** Storage for values */ store: DenseStore; } @@ -20,7 +20,7 @@ interface BaseSketchConfig { /** Base class for DDSketch*/ class BaseDDSketch { /** The mapping between values and indicies for the sketch */ - mapping: Mapping; + mapping: IndexMapping; /** Storage for values */ store: DenseStore; /** The minimum value seen by the sketch */ @@ -52,8 +52,8 @@ class BaseDDSketch { */ accept(value: number, weight = 1): void { if ( - value < this.mapping.minPossible || - value > this.mapping.maxPossible + value < this.mapping.minIndexableValue || + value > this.mapping.maxIndexableValue ) { throw new Error( 'Input value is outside the range that is tracked by the sketch' @@ -64,7 +64,7 @@ class BaseDDSketch { throw new Error('Weight must be a positive number'); } - const key = this.mapping.key(value); + const key = this.mapping.index(value); this.store.add(key, weight); /* Keep track of summary stats */ @@ -136,7 +136,7 @@ class BaseDDSketch { * @param sketch The sketch to be merged into the caller sketch */ mergeable(sketch: DDSketch): boolean { - return this.mapping.gamma === sketch.mapping.gamma; + return this.mapping.equals(sketch.mapping); } /* diff --git a/src/ddsketch/mapping/CubicallyInterpolatedMapping.ts b/src/ddsketch/mapping/CubicallyInterpolatedMapping.ts deleted file mode 100644 index 33eb152..0000000 --- a/src/ddsketch/mapping/CubicallyInterpolatedMapping.ts +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed - * under the Apache 2.0 license (see LICENSE). - * Copyright 2020 Datadog, Inc. for original work - * Copyright 2021 GraphMetrics for modifications - */ - -import { KeyMapping, MAX_INT_16, MIN_INT_16 } from './KeyMapping'; -import frexp from 'math-float64-frexp'; -import ldexp from 'math-float64-ldexp'; - -/** - * A fast KeyMapping that approximates the memory-optimal LogarithmicMapping by - * extracting the floor value of the logarithm to the base 2 from the binary - * representations of floating-point values and cubically interpolating the - * logarithm in-between. - * - * More detailed documentation of this method can be found in: - * sketches-java - */ -export class CubicallyInterpolatedMapping extends KeyMapping { - A = 6 / 35; - B = -3 / 5; - C = 10 / 7; - - constructor(relativeAccuracy: number, offset = 0) { - super(relativeAccuracy, offset); - this._multiplier /= this.C; - this.minPossible = Math.max( - Math.pow( - 2, - (MIN_INT_16 - this._offset) / this._multiplier - - this._cubicLog2Approx(1) + - 1 - ), - this.minPossible - ); - this.maxPossible = Math.min( - Math.pow( - 2, - (MAX_INT_16 - this._offset) / this._multiplier - - this._cubicLog2Approx(1) - - 1 - ), - this.maxPossible - ); - } - - /** Approximates log2 using a cubic polynomial */ - _cubicLog2Approx(value: number): number { - const [mantissa, exponent] = frexp(value); - const significand = 2 * mantissa - 1; - return ( - ((this.A * significand + this.B) * significand + this.C) * - significand + - (exponent - 1) - ); - } - - /** Derived from Cardano's formula */ - _cubicExp2Approx(value: number): number { - const exponent = Math.floor(value); - const delta0 = this.B * this.B - 3 * this.A * this.C; - const delta1 = - 2 * this.B * this.B * this.B - - 9 * this.A * this.B * this.C - - 27 * this.A * this.A * (value - exponent); - const cardano = Math.cbrt( - (delta1 - - Math.sqrt(delta1 * delta1 - 4 * delta0 * delta0 * delta0)) / - 2 - ); - const significandPlusOne = - -(this.B + cardano + delta0 / cardano) / (3 * this.A) + 1; - const mantissa = significandPlusOne / 2; - return ldexp(mantissa, exponent + 1); - } - - _logGamma(value: number): number { - return this._cubicLog2Approx(value) * this._multiplier; - } - - _powGamma(value: number): number { - return this._cubicExp2Approx(value / this._multiplier); - } -} diff --git a/src/ddsketch/mapping/KeyMapping.ts b/src/ddsketch/mapping/KeyMapping.ts deleted file mode 100644 index bd83e33..0000000 --- a/src/ddsketch/mapping/KeyMapping.ts +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed - * under the Apache 2.0 license (see LICENSE). - * Copyright 2020 Datadog, Inc. for original work - * Copyright 2021 GraphMetrics for modifications - */ - -import type { Mapping } from './types'; - -// 1.1125369292536007e-308 -const MIN_SAFE_FLOAT = Math.pow(2, -1023); -const MAX_SAFE_FLOAT = Number.MAX_VALUE; -export const MIN_INT_16 = -32767; -export const MAX_INT_16 = 32767; - -/** - * A mapping between values and integer indices that imposes relative accuracy - * guarantees. Specifically, for any value `minPossible() < value < - * maxPossible` implementations of `KeyMapping` must be such that - * `value(key(v))` is close to `v` with a relative error that is less than - * `relativeAccuracy`. - * - * In implementations of KeyMapping, there is generally a trade-off between the - * cost of computing the key and the number of keys that are required to cover a - * given range of values (memory optimality). The most memory-optimal mapping is - * the LogarithmicMapping, but it requires the costly evaluation of the logarithm - * when computing the index. Other mappings can approximate the logarithmic - * mapping, while being less computationally costly. - */ -export class KeyMapping implements Mapping { - relativeAccuracy: number; - /** The base for the exponential buckets. gamma = (1 + alpha) / (1 - alpha) */ - gamma: number; - /** The smallest possible value the sketch can distinguish from 0 */ - minPossible: number; - /** The largest possible value the sketch can handle */ - maxPossible: number; - /** Used for calculating _logGamma(value). Initially, _multiplier = 1 / log(gamma) */ - _multiplier: number; - /** An offset that can be used for shifting all keys */ - _offset: number; - - constructor(relativeAccuracy: number, offset = 0) { - if (relativeAccuracy <= 0 || relativeAccuracy >= 1) { - throw Error( - 'Relative accuracy must be between 0 and 1 when initializing a KeyMapping' - ); - } - this.relativeAccuracy = relativeAccuracy; - this._offset = offset; - const gammaMantissa = (2 * relativeAccuracy) / (1 - relativeAccuracy); - this.gamma = 1 + gammaMantissa; - this._multiplier = 1 / Math.log1p(gammaMantissa); - this.minPossible = MIN_SAFE_FLOAT * this.gamma; - this.maxPossible = MAX_SAFE_FLOAT / this.gamma; - } - - static fromGammaOffset(gamma: number, indexOffset: number): KeyMapping { - const relativeAccuracy = (gamma - 1) / (gamma + 1); - return new this(relativeAccuracy, indexOffset); - } - - /** Retrieve the key specifying the bucket for a `value` */ - key(value: number): number { - return Math.ceil(this._logGamma(value)) + this._offset; - } - - /** Retrieve the value represented by the bucket at `key` */ - value(key: number): number { - return this._powGamma(key - this._offset) * (2 / (1 + this.gamma)); - } - - /** Return (an approximation of) the logarithm of the value base gamma */ - _logGamma(value: number): number { - return Math.log2(value) * this._multiplier; - } - - /** Return (an approximation of) gamma to the power value */ - _powGamma(value: number): number { - return Math.pow(2, value / this._multiplier); - } -} diff --git a/src/ddsketch/mapping/LinearlyInterpolatedMapping.ts b/src/ddsketch/mapping/LinearlyInterpolatedMapping.ts deleted file mode 100644 index 36feec6..0000000 --- a/src/ddsketch/mapping/LinearlyInterpolatedMapping.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed - * under the Apache 2.0 license (see LICENSE). - * Copyright 2020 Datadog, Inc. for original work - * Copyright 2021 GraphMetrics for modifications - */ - -import { KeyMapping, MAX_INT_16, MIN_INT_16 } from './KeyMapping'; -import frexp from 'math-float64-frexp'; -import ldexp from 'math-float64-ldexp'; - -/** - * A fast KeyMapping that approximates the memory-optimal one - * (LogarithmicMapping) by extracting the floor value of the logarithm to the - * base 2 from the binary representations of floating-point values and - * linearly interpolating the logarithm in-between. - */ -export class LinearlyInterpolatedMapping extends KeyMapping { - constructor(relativeAccuracy: number, offset = 0) { - super(relativeAccuracy, offset); - this.minPossible = Math.max( - Math.pow( - 2, - (MIN_INT_16 - this._offset) / this._multiplier - - this._log2Approx(1) + - 1 - ), - this.minPossible - ); - this.maxPossible = Math.min( - Math.pow( - 2, - (MAX_INT_16 - this._offset) / this._multiplier - - this._log2Approx(1) - - 1 - ), - this.maxPossible - ); - } - - /** - * Approximates log2 by s + f - * where v = (s+1) * 2 ** f for s in [0, 1) - * - * frexp(v) returns m and e s.t. - * v = m * 2 ** e ; (m in [0.5, 1) or 0.0) - * so we adjust m and e accordingly - */ - _log2Approx(value: number): number { - const [mantissa, exponent] = frexp(value); - const significand = 2 * mantissa - 1; - return significand + (exponent - 1); - } - - /** Inverse of _log2Approx */ - _exp2Approx(value: number): number { - const exponent = Math.floor(value) + 1; - const mantissa = (value - exponent + 2) / 2; - return ldexp(mantissa, exponent); - } - - _logGamma(value: number): number { - return Math.log2(value) * this._multiplier; - } - - _powGamma(value: number): number { - return Math.pow(2, value / this._multiplier); - } -} diff --git a/src/ddsketch/mapping/LogarithmicMapping.ts b/src/ddsketch/mapping/LogarithmicMapping.ts index 1edfa83..49399b7 100644 --- a/src/ddsketch/mapping/LogarithmicMapping.ts +++ b/src/ddsketch/mapping/LogarithmicMapping.ts @@ -5,32 +5,57 @@ * Copyright 2021 GraphMetrics for modifications */ -import { KeyMapping, MIN_INT_16, MAX_INT_16 } from './KeyMapping'; +import { + EXP_OVERFLOW, + MAX_INT_16, + MIN_INT_16, + MIN_SAFE_FLOAT, + withinTolerance +} from './helpers'; +import { IndexMapping } from './types'; /** * A memory-optimal KeyMapping, i.e., given a targeted relative accuracy, it * requires the least number of keys to cover a given range of values. This is * done by logarithmically mapping floating-point values to integers. */ -export class LogarithmicMapping extends KeyMapping { - constructor(relativeAccuracy: number, offset = 0) { - super(relativeAccuracy, offset); - this._multiplier *= Math.log(2); - this.minPossible = Math.max( - Math.pow(2, (MIN_INT_16 - this._offset) / this._multiplier + 1), - this.minPossible +export class LogarithmicMapping implements IndexMapping { + public readonly relativeAccuracy: number; + public readonly minIndexableValue: number; + public readonly maxIndexableValue: number; + private readonly multiplier: number; + + constructor(relativeAccuracy: number) { + this.relativeAccuracy = relativeAccuracy; + this.multiplier = + 1 / Math.log1p((2 * relativeAccuracy) / (1 - relativeAccuracy)); + this.minIndexableValue = Math.max( + Math.exp(MIN_INT_16 / this.multiplier + 1), + (MIN_SAFE_FLOAT * (1 + relativeAccuracy)) / (1 - relativeAccuracy) ); - this.maxPossible = Math.min( - Math.pow(2, (MAX_INT_16 - this._offset) / this._multiplier - 1), - this.maxPossible + this.maxIndexableValue = Math.min( + Math.exp(MAX_INT_16 / this.multiplier - 1), + Math.exp(EXP_OVERFLOW) / (1 + relativeAccuracy) ); } - _logGamma(value: number): number { - return Math.log2(value) * this._multiplier; + public index(value: number): number { + const index = Math.log(value) * this.multiplier; + if (index >= 0) { + return ~~index; + } else { + return ~~index - 1; // faster than Math.Floor + } + } + + public value(index: number): number { + return Math.exp(index / this.multiplier) * (1 + this.relativeAccuracy); } - _powGamma(value: number): number { - return Math.pow(2, value / this._multiplier); + public equals(other: IndexMapping): boolean { + if (!(other instanceof LogarithmicMapping)) { + return false; + } + return withinTolerance(this.multiplier, other.multiplier, 1e-12); } } diff --git a/src/ddsketch/mapping/helpers.ts b/src/ddsketch/mapping/helpers.ts new file mode 100644 index 0000000..8382503 --- /dev/null +++ b/src/ddsketch/mapping/helpers.ts @@ -0,0 +1,24 @@ +/* + * Unless explicitly stated otherwise all files in this repository are licensed + * under the Apache 2.0 license (see LICENSE). + * Copyright 2021 GraphMetrics + */ + +export const MIN_INT_16 = -32767; +export const MAX_INT_16 = 32767; +export const MIN_SAFE_FLOAT = Math.pow(2, -1023); +export const MAX_SAFE_FLOAT = Number.MAX_VALUE; +export const EXP_OVERFLOW = Math.log(MAX_SAFE_FLOAT); +export const withinTolerance = ( + x: number, + y: number, + tolerance: number +): boolean => { + if (x == 0 || y == 0) { + return Math.abs(x) <= tolerance && Math.abs(y) <= tolerance; + } else { + return ( + Math.abs(x - y) <= tolerance * Math.max(Math.abs(x), Math.abs(y)) + ); + } +}; diff --git a/src/ddsketch/mapping/index.ts b/src/ddsketch/mapping/index.ts index c7e4817..e71169f 100644 --- a/src/ddsketch/mapping/index.ts +++ b/src/ddsketch/mapping/index.ts @@ -5,8 +5,7 @@ * Copyright 2021 GraphMetrics for modifications */ -export type { Mapping } from './types'; -export { KeyMapping } from './KeyMapping'; +export { IndexMapping } from './types'; export { LogarithmicMapping } from './LogarithmicMapping'; -export { LinearlyInterpolatedMapping } from './LinearlyInterpolatedMapping'; -export { CubicallyInterpolatedMapping } from './CubicallyInterpolatedMapping'; +// export { LinearlyInterpolatedMapping } from './LinearlyInterpolatedMapping'; +// export { CubicallyInterpolatedMapping } from './CubicallyInterpolatedMapping'; diff --git a/src/ddsketch/mapping/types.ts b/src/ddsketch/mapping/types.ts index 1fde91e..4b68c1e 100644 --- a/src/ddsketch/mapping/types.ts +++ b/src/ddsketch/mapping/types.ts @@ -5,11 +5,16 @@ * Copyright 2021 GraphMetrics for modifications */ -export interface Mapping { - relativeAccuracy: number; - gamma: number; - minPossible: number; - maxPossible: number; - key: (value: number) => number; +export interface IndexMapping { + readonly relativeAccuracy: number; + /** The smallest possible value the sketch can distinguish from 0 */ + readonly minIndexableValue: number; + /** The largest possible value the sketch can handle */ + readonly maxIndexableValue: number; + /** Retrieve the index specifying the bucket for a `value` */ + index: (value: number) => number; + /** Retrieve the value represented by the bucket at `key` */ value: (key: number) => number; + /** Compare two mappings */ + equals: (other: IndexMapping) => boolean; } diff --git a/src/types/math-float64-frexp/index.d.ts b/src/types/math-float64-frexp/index.d.ts deleted file mode 100644 index 1c82f1e..0000000 --- a/src/types/math-float64-frexp/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed - * under the Apache 2.0 license (see LICENSE). - * Copyright 2020 Datadog, Inc. for original work - * Copyright 2021 GraphMetrics for modifications - */ - -declare module 'math-float64-frexp' { - function frexp(value: number): [number, number]; - - export = frexp; -} diff --git a/src/types/math-float64-ldexp/index.d.ts b/src/types/math-float64-ldexp/index.d.ts deleted file mode 100644 index 80f68f6..0000000 --- a/src/types/math-float64-ldexp/index.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Unless explicitly stated otherwise all files in this repository are licensed - * under the Apache 2.0 license (see LICENSE). - * Copyright 2020 Datadog, Inc. for original work - * Copyright 2021 GraphMetrics for modifications - */ - -declare module 'math-float64-ldexp' { - function ldexp(mantissa: number, exponent: number): number; - - export = ldexp; -} diff --git a/test/ddsketch.test.ts b/test/ddsketch.test.ts index 3b4414a..dcf509a 100644 --- a/test/ddsketch.test.ts +++ b/test/ddsketch.test.ts @@ -224,7 +224,7 @@ describe('DDSketch', () => { } expect(nbrBins).toEqual(1); - expect(summary[38]).toEqual(10); + expect(summary[37]).toEqual(10); }); it('allows multiple bins to be iterated upon', () => { diff --git a/test/mapping.test.ts b/test/mapping.test.ts index 0858707..d7008e6 100644 --- a/test/mapping.test.ts +++ b/test/mapping.test.ts @@ -5,19 +5,13 @@ * Copyright 2021 GraphMetrics for modifications */ -import { Mapping } from '../src/ddsketch/mapping'; -import { - LogarithmicMapping, - LinearlyInterpolatedMapping, - CubicallyInterpolatedMapping -} from '../src/ddsketch/mapping'; -import { MAX_INT_16, MIN_INT_16 } from '../src/ddsketch/mapping/KeyMapping'; +import { IndexMapping, LogarithmicMapping } from '../src/ddsketch/mapping'; +import { MAX_INT_16, MIN_INT_16 } from '../src/ddsketch/mapping/helpers'; describe('Mapping', () => { const relativeAccuracyMultiplier = 1 - Math.sqrt(2) * 1e-1; const minRelativeAccuracy = 1e-8; const INITIAL_RELATIVE_ACCURACY = 1 - 1e-3; - const testOffsets = [0, 1, -12.23, 7768.3]; const calculateRelativeError = ( expectedMin: number, @@ -46,14 +40,14 @@ describe('Mapping', () => { return (actual - expectedMax) / expectedMax; }; - const evaluateValueRelativeAccuracy = (mapping: Mapping) => { + const evaluateValueRelativeAccuracy = (mapping: IndexMapping) => { const valueMultiplier = 2 - Math.sqrt(2) * 1e-1; let maxRelativeAccuracy = 0; - let value = mapping.minPossible; + let value = mapping.minIndexableValue; - while (value < mapping.maxPossible / valueMultiplier) { + while (value < mapping.maxIndexableValue / valueMultiplier) { value *= valueMultiplier; - const mapValue = mapping.value(mapping.key(value)); + const mapValue = mapping.value(mapping.index(value)); const relativeError = calculateRelativeError( value, value, @@ -64,12 +58,10 @@ describe('Mapping', () => { `\nValue: ${value}\nMapping relativeAccuracy: ${ mapping.relativeAccuracy }\nMapping value: ${mapValue}\nRelative error: ${relativeError}\nMapping maxPoss: ${ - mapping.maxPossible + mapping.maxIndexableValue }\nMapping minPoss: ${ - mapping.minPossible - }\nMapping gamma: ${ - mapping.gamma - }\nMapping key: ${mapping.key(value)}` + mapping.minIndexableValue + }\nMapping key: ${mapping.index(value)}` ); } expect(relativeError).toBeLessThan(mapping.relativeAccuracy); @@ -78,9 +70,9 @@ describe('Mapping', () => { maxRelativeAccuracy = Math.max( maxRelativeAccuracy, calculateRelativeError( - mapping.maxPossible, - mapping.maxPossible, - mapping.value(mapping.key(mapping.maxPossible)) + mapping.maxIndexableValue, + mapping.maxIndexableValue, + mapping.value(mapping.index(mapping.maxIndexableValue)) ) ); return maxRelativeAccuracy; @@ -102,76 +94,11 @@ describe('Mapping', () => { } }); - it('can be initialized with an offset', () => { - for (const offset of testOffsets) { - const mapping = new LogarithmicMapping(0.01, offset); - expect(mapping.key(1)).toEqual(offset); - } - }); - it('is within bounds', () => { const mapping = new LogarithmicMapping(0.01); - const minIndex = mapping.key(mapping.minPossible); - const maxIndex = mapping.key(mapping.maxPossible); - - expect(minIndex).toBeGreaterThan(MIN_INT_16); - expect(maxIndex).toBeLessThan(MAX_INT_16); - }); - }); - - describe('LinearlyInterpolatedMapping', () => { - it('is accurate', () => { - let relativeAccuracy = INITIAL_RELATIVE_ACCURACY; - - while (relativeAccuracy >= minRelativeAccuracy) { - const mapping = new LinearlyInterpolatedMapping( - relativeAccuracy - ); - const maxRelativeAccuracy = evaluateValueRelativeAccuracy( - mapping - ); - expect(maxRelativeAccuracy).toBeLessThan( - mapping.relativeAccuracy - ); - relativeAccuracy *= relativeAccuracyMultiplier; - } - }); - - it('is within bounds', () => { - const mapping = new LinearlyInterpolatedMapping(0.01); - - const minIndex = mapping.key(mapping.minPossible); - const maxIndex = mapping.key(mapping.maxPossible); - - expect(minIndex).toBeGreaterThan(MIN_INT_16); - expect(maxIndex).toBeLessThan(MAX_INT_16); - }); - }); - - describe('CubicallyInterpolatedMapping', () => { - it('is accurate', () => { - let relativeAccuracy = INITIAL_RELATIVE_ACCURACY; - - while (relativeAccuracy >= minRelativeAccuracy) { - const mapping = new CubicallyInterpolatedMapping( - relativeAccuracy - ); - const maxRelativeAccuracy = evaluateValueRelativeAccuracy( - mapping - ); - expect(maxRelativeAccuracy).toBeLessThan( - mapping.relativeAccuracy - ); - relativeAccuracy *= relativeAccuracyMultiplier; - } - }); - - it('is within bounds', () => { - const mapping = new CubicallyInterpolatedMapping(0.01); - - const minIndex = mapping.key(mapping.minPossible); - const maxIndex = mapping.key(mapping.maxPossible); + const minIndex = mapping.index(mapping.minIndexableValue); + const maxIndex = mapping.index(mapping.maxIndexableValue); expect(minIndex).toBeGreaterThan(MIN_INT_16); expect(maxIndex).toBeLessThan(MAX_INT_16); diff --git a/yarn.lock b/yarn.lock index 1ca79a6..7461b9d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -756,11 +756,6 @@ ansi-escapes@^4.2.1: dependencies: type-fest "^0.11.0" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - ansi-regex@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" @@ -771,11 +766,6 @@ ansi-regex@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -966,18 +956,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -boxen@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.3.1.tgz#a7d898243ae622f7abb6bb604d740a76c6a5461b" - integrity sha1-p9iYJDrmIvertrtgTXQKdsalRhs= - dependencies: - chalk "^1.1.1" - filled-array "^1.0.0" - object-assign "^4.0.1" - repeating "^2.0.0" - string-width "^1.0.1" - widest-line "^1.0.0" - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1070,27 +1048,11 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -capture-stack-trace@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" - integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== - caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@^1.0.0, chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1150,11 +1112,6 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= - collect-v8-coverage@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" @@ -1209,38 +1166,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -configstore@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" - integrity sha1-c3o6cDbpiGECqmCZ5HuzOrGroaE= - dependencies: - dot-prop "^3.0.0" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" - -const-ninf-float64@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/const-ninf-float64/-/const-ninf-float64-1.0.0.tgz#d9e4c8d3bdd13603e98b93abcbe38f7a6db7318d" - integrity sha1-2eTI073RNgPpi5Ory+OPem23MY0= - -const-pinf-float64@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/const-pinf-float64/-/const-pinf-float64-1.0.0.tgz#f6efb0d79f9c0986d3e79f2923abf9b70b63d726" - integrity sha1-9u+w15+cCYbT558pI6v5twtj1yY= - -const-smallest-float64@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/const-smallest-float64/-/const-smallest-float64-1.0.0.tgz#b706684180c9d87fe0f3f946d60c747e1e54947e" - integrity sha1-twZoQYDJ2H/g8/lG1gx0fh5UlH4= - dependencies: - utils-define-read-only-property "^1.0.0" - convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" @@ -1253,18 +1178,11 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -create-error-class@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= - dependencies: - capture-stack-trace "^1.0.0" - cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -1347,11 +1265,6 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -1432,13 +1345,6 @@ dot-prop@^4.2.1: dependencies: is-obj "^1.0.0" -duplexer2@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -1476,14 +1382,14 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -1807,11 +1713,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -filled-array@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" - integrity sha1-w8T2xmO5I0WamqKZEtLQMfFQf4Q= - find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -1964,28 +1865,7 @@ globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" -got@^5.0.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" - integrity sha1-X4FjWmHkplifGAVp6k44FoClHzU= - dependencies: - create-error-class "^3.0.1" - duplexer2 "^0.1.4" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - node-status-codes "^1.0.0" - object-assign "^4.0.1" - parse-json "^2.1.0" - pinkie-promise "^2.0.0" - read-all-stream "^3.0.0" - readable-stream "^2.0.5" - timed-out "^3.0.0" - unzip-response "^1.0.2" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.2.4: +graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -2008,13 +1888,6 @@ har-validator@~5.1.3: ajv "^6.12.3" har-schema "^2.0.0" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -2133,16 +2006,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@~2.0.3: +inherits@2: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== - ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" @@ -2233,18 +2101,6 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w== - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" @@ -2267,11 +2123,6 @@ is-glob@^4.0.0, is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= - is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -2301,17 +2152,7 @@ is-potential-custom-element-name@^1.0.0: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= - -is-retry-allowed@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" - integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== - -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -2338,7 +2179,7 @@ is-wsl@^2.2.0: dependencies: is-docker "^2.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" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -2917,13 +2758,6 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -latest-version@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" - integrity sha1-VvjWE5YghHuAF/jx9NeOIRMkFos= - dependencies: - package-json "^2.0.0" - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -2972,11 +2806,6 @@ lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== -lowercase-keys@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -3008,82 +2837,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -math-abs@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/math-abs/-/math-abs-1.0.2.tgz#8fb2675d969327a61a629821fc23e41faac5c4d3" - integrity sha1-j7JnXZaTJ6YaYpgh/CPkH6rFxNM= - -math-float64-copysign@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-float64-copysign/-/math-float64-copysign-1.0.0.tgz#8aec85d28d81c7a23cab0748a23c5f01916966f6" - integrity sha1-iuyF0o2Bx6I8qwdIojxfAZFpZvY= - dependencies: - math-float64-from-words "^1.0.0" - math-float64-get-high-word "^1.0.0" - math-float64-to-words "^1.0.0" - -math-float64-exponent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-float64-exponent/-/math-float64-exponent-1.0.0.tgz#d8893e835f5e65812add6ce7abafee93daa75ca5" - integrity sha1-2Ik+g19eZYEq3Wznq6/uk9qnXKU= - dependencies: - math-float64-get-high-word "^1.0.0" - -math-float64-frexp@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-float64-frexp/-/math-float64-frexp-1.0.0.tgz#cca960d4fcccff3018909f86174994852113d505" - integrity sha1-zKlg1PzM/zAYkJ+GF0mUhSET1QU= - dependencies: - const-ninf-float64 "^1.0.0" - const-pinf-float64 "^1.0.0" - math-float64-exponent "^1.0.0" - math-float64-from-words "^1.0.0" - math-float64-normalize "^1.0.0" - math-float64-to-words "^1.0.0" - -math-float64-from-words@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-float64-from-words/-/math-float64-from-words-1.0.0.tgz#94648f9377f8128a8add54856cba951f6e90a139" - integrity sha1-lGSPk3f4EoqK3VSFbLqVH26QoTk= - dependencies: - utils-is-little-endian "^1.0.0" - -math-float64-get-high-word@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-float64-get-high-word/-/math-float64-get-high-word-1.0.0.tgz#9fb7107e366585d5bb0efddc036f947c9666611a" - integrity sha1-n7cQfjZlhdW7Dv3cA2+UfJZmYRo= - dependencies: - utils-is-little-endian "^1.0.0" - -math-float64-ldexp@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/math-float64-ldexp/-/math-float64-ldexp-1.0.1.tgz#e8076daa29a6529a572002fa9fd9e3e3c52253da" - integrity sha1-6AdtqimmUppXIAL6n9nj48UiU9o= - dependencies: - const-ninf-float64 "^1.0.0" - const-pinf-float64 "^1.0.0" - math-float64-copysign "^1.0.0" - math-float64-exponent "^1.0.0" - math-float64-from-words "^1.0.0" - math-float64-normalize "^1.0.0" - math-float64-to-words "^1.0.0" - -math-float64-normalize@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-float64-normalize/-/math-float64-normalize-1.0.0.tgz#d8bba30804df177bf1d76f641315301fa1260077" - integrity sha1-2LujCATfF3vx129kExUwH6EmAHc= - dependencies: - const-smallest-float64 "^1.0.0" - math-abs "^1.0.2" - validate.io-infinite "^1.0.0" - -math-float64-to-words@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-float64-to-words/-/math-float64-to-words-1.0.0.tgz#624ebd00c7ff87b2bbcba6e230f904e8a83e061e" - integrity sha1-Yk69AMf/h7K7y6biMPkE6Kg+Bh4= - dependencies: - utils-is-little-endian "^1.0.0" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3163,7 +2916,7 @@ mkdirp@1.x: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@^0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -3229,11 +2982,6 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-status-codes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" - integrity sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8= - normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -3270,11 +3018,6 @@ npm-run-path@^4.0.0: dependencies: path-key "^3.0.0" -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" @@ -3285,11 +3028,6 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - object-copy@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" @@ -3351,24 +3089,6 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.0: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - p-each-series@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" @@ -3398,16 +3118,6 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -package-json@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" - integrity sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs= - dependencies: - got "^5.0.0" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -3415,13 +3125,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz#f96088cdf24a8faa9aea9a009f2d9d942c999646" @@ -3482,18 +3185,6 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= - pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" @@ -3508,11 +3199,6 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" -pkginfo@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/pkginfo/-/pkginfo-0.3.1.tgz#5b29f6a81f70717142e09e765bbeab97b4f81e21" - integrity sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE= - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -3528,11 +3214,6 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -3565,11 +3246,6 @@ pretty-format@^26.4.2: ansi-styles "^4.0.0" react-is "^16.12.0" -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -3606,29 +3282,11 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -rc@^1.0.1, rc@^1.1.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-is@^16.12.0: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - integrity sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po= - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - read-pkg-up@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" @@ -3648,19 +3306,6 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" @@ -3674,21 +3319,6 @@ regexpp@^3.0.0, regexpp@^3.1.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= - dependencies: - rc "^1.0.1" - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -3704,13 +3334,6 @@ repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - request-promise-core@1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" @@ -3831,7 +3454,7 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.2: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== @@ -3870,14 +3493,7 @@ saxes@^5.0.0: dependencies: xmlchars "^2.2.0" -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.4.1, semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -3960,11 +3576,6 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - integrity sha1-VusCfWW00tzmyy4tMsTUr8nh1wc= - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -4115,15 +3726,6 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - string-width@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" @@ -4142,20 +3744,6 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -4190,16 +3778,6 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4264,11 +3842,6 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== -timed-out@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" - integrity sha1-lYYL/MXHbCd/j4Mm/Q9bLiDrohc= - tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -4440,23 +4013,6 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -unzip-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" - integrity sha1-uYTwh3/AqJwsdzzB73tbIytbBv4= - -update-notifier@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.6.3.tgz#776dec8daa13e962a341e8a1d98354306b67ae08" - integrity sha1-d23sjaoT6WKjQeih2YNUMGtnrgg= - dependencies: - boxen "^0.3.1" - chalk "^1.0.0" - configstore "^2.0.0" - is-npm "^1.0.0" - latest-version "^2.0.0" - semver-diff "^2.0.0" - uri-js@^4.2.2: version "4.4.0" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" @@ -4469,42 +4025,11 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= - dependencies: - prepend-http "^1.0.1" - use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -utils-define-read-only-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-define-read-only-property/-/utils-define-read-only-property-1.0.0.tgz#2e5db55acb0a9f06f5c81bad9f426d0e24f8e16f" - integrity sha1-Ll21WssKnwb1yButn0JtDiT44W8= - -utils-is-little-endian@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/utils-is-little-endian/-/utils-is-little-endian-1.0.0.tgz#a111d6e23593d3d228b0254664cd35c56dd5ad27" - integrity sha1-oRHW4jWT09IosCVGZM01xW3VrSc= - dependencies: - minimist "^1.2.0" - pkginfo "^0.3.1" - update-notifier "^0.6.0" - -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - integrity sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho= - uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" @@ -4537,11 +4062,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate.io-infinite@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/validate.io-infinite/-/validate.io-infinite-1.0.0.tgz#9076cf0b41f7ac201a42d58697c461142b4afcfb" - integrity sha1-kHbPC0H3rCAaQtWGl8RhFCtK/Ps= - verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -4622,13 +4142,6 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -widest-line@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" - integrity sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw= - dependencies: - string-width "^1.0.1" - word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -4648,15 +4161,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^1.1.2: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - integrity sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8= - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -4679,13 +4183,6 @@ ws@^7.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" - integrity sha1-7byQPMOF/ARSPZZqM1UEtVBNG9I= - dependencies: - os-homedir "^1.0.0" - 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"