@@ -58,7 +58,7 @@
-
short-unique-id - v3.0.2
+
short-unique-id - v3.0.4
diff --git a/lib/short-unique-id.js b/lib/short-unique-id.js
index 23b6f1a..c471c10 100644
--- a/lib/short-unique-id.js
+++ b/lib/short-unique-id.js
@@ -2,10 +2,11 @@
// This is a specialised implementation of a System module loader.
+"use strict";
+
// @ts-nocheck
/* eslint-disable */
-let System, __instantiateAsync, __instantiate;
-
+let System, __instantiate;
(() => {
const r = new Map();
@@ -14,7 +15,6 @@ let System, __instantiateAsync, __instantiate;
r.set(id, { d, f, exp: {} });
},
};
-
async function dI(mid, src) {
let id = mid.replace(/\.\w+$/i, "");
if (id.includes("./")) {
@@ -91,383 +91,174 @@ let System, __instantiateAsync, __instantiate;
}
return m.exp;
}
-
- __instantiateAsync = async (m) => {
- System = __instantiateAsync = __instantiate = undefined;
- rF(m);
- return gExpA(m);
- };
-
- __instantiate = (m) => {
- System = __instantiateAsync = __instantiate = undefined;
+ __instantiate = (m, a) => {
+ System = __instantiate = undefined;
rF(m);
- return gExp(m);
+ return a ? gExpA(m) : gExp(m);
};
})();
System.register("version", [], function (exports_1, context_1) {
- "use strict";
- var __moduleName = context_1 && context_1.id;
- return {
- setters: [],
- execute: function () {
- exports_1("default", "3.0.2");
- },
- };
+ "use strict";
+ var __moduleName = context_1 && context_1.id;
+ return {
+ setters: [],
+ execute: function () {
+ exports_1("default", '3.0.4');
+ }
+ };
});
System.register("mod", ["version"], function (exports_2, context_2) {
- "use strict";
- var version_ts_1,
- DEFAULT_UUID_LENGTH,
- DIGIT_FIRST_ASCII,
- DIGIT_LAST_ASCII,
- ALPHA_LOWER_FIRST_ASCII,
- ALPHA_LOWER_LAST_ASCII,
- ALPHA_UPPER_FIRST_ASCII,
- ALPHA_UPPER_LAST_ASCII,
- DICT_RANGES,
- DEFAULT_OPTIONS,
- ShortUniqueId;
- var __moduleName = context_2 && context_2.id;
- return {
- setters: [
- function (version_ts_1_1) {
- version_ts_1 = version_ts_1_1;
- },
- ],
- execute: function () {
- /**
- * 6 was chosen as the default UUID length since for most cases
- * it will be more than aptly suitable to provide millions of UUIDs
- * with a very low probability of producing a duplicate UUID.
- *
- * For example, with a dictionary including digits from 0 to 9,
- * as well as the alphabet from a to z both in UPPER and lower case,
- * the probability of generating a duplicate in 1,000,000 rounds
- * is ~0.00000002, or about 1 in 50,000,000.
- */
- DEFAULT_UUID_LENGTH = 6;
- DIGIT_FIRST_ASCII = 48;
- DIGIT_LAST_ASCII = 58;
- ALPHA_LOWER_FIRST_ASCII = 97;
- ALPHA_LOWER_LAST_ASCII = 123;
- ALPHA_UPPER_FIRST_ASCII = 65;
- ALPHA_UPPER_LAST_ASCII = 91;
- DICT_RANGES = {
- digits: [DIGIT_FIRST_ASCII, DIGIT_LAST_ASCII],
- lowerCase: [ALPHA_LOWER_FIRST_ASCII, ALPHA_LOWER_LAST_ASCII],
- upperCase: [ALPHA_UPPER_FIRST_ASCII, ALPHA_UPPER_LAST_ASCII],
- };
- DEFAULT_OPTIONS = {
- dictionary: [],
- shuffle: true,
- debug: false,
- length: DEFAULT_UUID_LENGTH,
- };
- /**
- * Generate random or sequential UUID of any length.
- *
- * ### Use as module
- *
- * ```js
- * // Deno (web module) Import
- * import ShortUniqueId from 'https://cdn.jsdelivr.net/npm/short-unique-id@latest/short_uuid/mod.ts';
- *
- * // ES6 / TypeScript Import
- * import ShortUniqueId from 'short-unique-id';
- *
- * //or Node.js require
- * const {default: ShortUniqueId} = require('short-unique-id');
- *
- * //Instantiate
- * const uid = new ShortUniqueId();
- *
- * // Random UUID
- * console.log(uid());
- *
- * // Sequential UUID
- * console.log(uid.seq());
- * ```
- *
- * ### Use in browser
- *
- * ```html
- *
- *
- *
- *
- *
- * ```
- *
- * ### Options
- *
- * Options can be passed when instantiating `uid`:
- *
- * ```js
- * const options = { ... };
- *
- * const uid = new ShortUniqueId(options);
- * ```
- *
- * For more information take a look at the [Options type definition](/globals.html#options).
- */
- ShortUniqueId = class ShortUniqueId extends Function {
- /* tslint:enable consistent-return */
- constructor(argOptions = {}) {
- super("...args", "return this.randomUUID(...args)");
- this.dictIndex = 0;
- this.dictRange = [];
- this.lowerBound = 0;
- this.upperBound = 0;
- this.dictLength = 0;
- const options = {
- ...DEFAULT_OPTIONS,
- ...argOptions,
- };
- this.counter = 0;
- this.debug = false;
- this.dict = [];
- this.version = version_ts_1.default;
- const { dictionary: userDict, shuffle, length } = options;
- this.uuidLength = length;
- if (userDict && userDict.length > 1) {
- this.setDictionary(userDict);
- } else {
- let i;
- this.dictIndex = i = 0;
- Object.keys(DICT_RANGES).forEach((rangeType) => {
- const rangeTypeKey = rangeType;
- this.dictRange = DICT_RANGES[rangeTypeKey];
- this.lowerBound = this.dictRange[0];
- this.upperBound = this.dictRange[1];
- for (
- this.dictIndex = i = this.lowerBound;
- this.lowerBound <= this.upperBound
- ? i < this.upperBound
- : i > this.upperBound;
- this.dictIndex = this.lowerBound <= this.upperBound
- ? i += 1
- : i -= 1
- ) {
- this.dict.push(String.fromCharCode(this.dictIndex));
- }
- });
- }
- if (shuffle) {
- // Shuffle Dictionary for removing selection bias.
- const PROBABILITY = 0.5;
- this.setDictionary(
- this.dict.sort(() => Math.random() - PROBABILITY),
- );
- } else {
- this.setDictionary(this.dict);
- }
- this.debug = options.debug;
- this.log(this.dict);
- this.log(
- (`Generator instantiated with Dictionary Size ${this.dictLength}`),
- );
- const instance = this.bind(this);
- Object.getOwnPropertyNames(this).forEach((prop) => {
- if (!(/arguments|caller|callee|length|name|prototype/).test(prop)) {
- const propKey = prop;
- instance[prop] = this[propKey];
- }
- });
- return instance;
- }
- /* tslint:disable consistent-return */
- log(...args) {
- const finalArgs = [...args];
- finalArgs[0] = `[short-unique-id] ${args[0]}`;
- /* tslint:disable no-console */
- if (this.debug === true) {
- if (typeof console !== "undefined" && console !== null) {
- return console.log(...finalArgs);
- }
- }
- /* tslint:enable no-console */
- }
- /** Change the dictionary after initialization. */
- setDictionary(dictionary) {
- this.dict = dictionary;
- // Cache Dictionary Length for future usage.
- this.dictLength = this.dict.length; // Resets internal counter.
- this.counter = 0;
- }
- seq() {
- return this.sequentialUUID();
- }
- /**
- * Generates UUID based on internal counter that's incremented after each ID generation.
- * @alias `const uid = new ShortUniqueId(); uid.seq();`
- */
- sequentialUUID() {
- let counterDiv;
- let counterRem;
- let id = "";
- counterDiv = this.counter;
- /* tslint:disable no-constant-condition */
- while (true) {
- counterRem = counterDiv % this.dictLength;
- counterDiv = Math.trunc(counterDiv / this.dictLength);
- id += this.dict[counterRem];
- if (counterDiv === 0) {
- break;
+ "use strict";
+ var version_ts_1, DEFAULT_UUID_LENGTH, DIGIT_FIRST_ASCII, DIGIT_LAST_ASCII, ALPHA_LOWER_FIRST_ASCII, ALPHA_LOWER_LAST_ASCII, ALPHA_UPPER_FIRST_ASCII, ALPHA_UPPER_LAST_ASCII, DICT_RANGES, DEFAULT_OPTIONS, ShortUniqueId;
+ var __moduleName = context_2 && context_2.id;
+ return {
+ setters: [
+ function (version_ts_1_1) {
+ version_ts_1 = version_ts_1_1;
}
- }
- /* tslint:enable no-constant-condition */
- this.counter += 1;
- return id;
- }
- /**
- * Generates UUID by creating each part randomly.
- * @alias `const uid = new ShortUniqueId(); uid(uuidLength: number);`
- */
- randomUUID(uuidLength = this.uuidLength || DEFAULT_UUID_LENGTH) {
- let id;
- let randomPartIdx;
- let j;
- let idIndex;
- if (
- (uuidLength === null || typeof uuidLength === "undefined") ||
- uuidLength < 1
- ) {
- throw new Error("Invalid UUID Length Provided");
- }
- // Generate random ID parts from Dictionary.
- id = "";
- for (
- idIndex = j = 0;
- 0 <= uuidLength ? j < uuidLength : j > uuidLength;
- idIndex = 0 <= uuidLength ? j += 1 : j -= 1
- ) {
- randomPartIdx =
- parseInt((Math.random() * this.dictLength).toFixed(0), 10) %
- this.dictLength;
- id += this.dict[randomPartIdx];
- }
- // Return random generated ID.
- return id;
- }
- /**
- * Calculates total number of possible UUIDs.
- *
- * Given that:
- *
- * - `H` is the total number of possible UUIDs
- * - `n` is the number of unique characters in the dictionary
- * - `l` is the UUID length
- *
- * Then `H` is defined as `n` to the power of `l`:
- *
- * ![](https://render.githubusercontent.com/render/math?math=%5CHuge%20H=n%5El)
- *
- * This function returns `H`.
- */
- availableUUIDs(uuidLength = this.uuidLength) {
- return parseFloat(
- Math.pow([...new Set(this.dict)].length, uuidLength).toFixed(0),
- );
+ ],
+ execute: function () {
+ DEFAULT_UUID_LENGTH = 6;
+ DIGIT_FIRST_ASCII = 48;
+ DIGIT_LAST_ASCII = 58;
+ ALPHA_LOWER_FIRST_ASCII = 97;
+ ALPHA_LOWER_LAST_ASCII = 123;
+ ALPHA_UPPER_FIRST_ASCII = 65;
+ ALPHA_UPPER_LAST_ASCII = 91;
+ DICT_RANGES = {
+ digits: [DIGIT_FIRST_ASCII, DIGIT_LAST_ASCII],
+ lowerCase: [ALPHA_LOWER_FIRST_ASCII, ALPHA_LOWER_LAST_ASCII],
+ upperCase: [ALPHA_UPPER_FIRST_ASCII, ALPHA_UPPER_LAST_ASCII],
+ };
+ DEFAULT_OPTIONS = {
+ dictionary: [],
+ shuffle: true,
+ debug: false,
+ length: DEFAULT_UUID_LENGTH,
+ };
+ ShortUniqueId = class ShortUniqueId extends Function {
+ constructor(argOptions = {}) {
+ super('...args', 'return this.randomUUID(...args)');
+ this.dictIndex = 0;
+ this.dictRange = [];
+ this.lowerBound = 0;
+ this.upperBound = 0;
+ this.dictLength = 0;
+ const options = {
+ ...DEFAULT_OPTIONS,
+ ...argOptions,
+ };
+ this.counter = 0;
+ this.debug = false;
+ this.dict = [];
+ this.version = version_ts_1.default;
+ const { dictionary: userDict, shuffle, length, } = options;
+ this.uuidLength = length;
+ if (userDict && userDict.length > 1) {
+ this.setDictionary(userDict);
+ }
+ else {
+ let i;
+ this.dictIndex = i = 0;
+ Object.keys(DICT_RANGES).forEach((rangeType) => {
+ const rangeTypeKey = rangeType;
+ this.dictRange = DICT_RANGES[rangeTypeKey];
+ this.lowerBound = this.dictRange[0];
+ this.upperBound = this.dictRange[1];
+ for (this.dictIndex = i = this.lowerBound; this.lowerBound <= this.upperBound ? i < this.upperBound : i > this.upperBound; this.dictIndex = this.lowerBound <= this.upperBound ? i += 1 : i -= 1) {
+ this.dict.push(String.fromCharCode(this.dictIndex));
+ }
+ });
+ }
+ if (shuffle) {
+ const PROBABILITY = 0.5;
+ this.setDictionary(this.dict.sort(() => Math.random() - PROBABILITY));
+ }
+ else {
+ this.setDictionary(this.dict);
+ }
+ this.debug = options.debug;
+ this.log(this.dict);
+ this.log((`Generator instantiated with Dictionary Size ${this.dictLength}`));
+ const instance = this.bind(this);
+ Object.getOwnPropertyNames(this).forEach((prop) => {
+ if (!(/arguments|caller|callee|length|name|prototype/).test(prop)) {
+ const propKey = prop;
+ instance[prop] = this[propKey];
+ }
+ });
+ return instance;
+ }
+ log(...args) {
+ const finalArgs = [...args];
+ finalArgs[0] = `[short-unique-id] ${args[0]}`;
+ if (this.debug === true) {
+ if (typeof console !== 'undefined' && console !== null) {
+ return console.log(...finalArgs);
+ }
+ }
+ }
+ setDictionary(dictionary) {
+ this.dict = dictionary;
+ this.dictLength = this.dict.length;
+ this.counter = 0;
+ }
+ seq() {
+ return this.sequentialUUID();
+ }
+ sequentialUUID() {
+ let counterDiv;
+ let counterRem;
+ let id = '';
+ counterDiv = this.counter;
+ while (true) {
+ counterRem = counterDiv % this.dictLength;
+ counterDiv = Math.trunc(counterDiv / this.dictLength);
+ id += this.dict[counterRem];
+ if (counterDiv === 0) {
+ break;
+ }
+ }
+ this.counter += 1;
+ return id;
+ }
+ randomUUID(uuidLength = this.uuidLength || DEFAULT_UUID_LENGTH) {
+ let id;
+ let randomPartIdx;
+ let j;
+ let idIndex;
+ if ((uuidLength === null || typeof uuidLength === 'undefined') || uuidLength < 1) {
+ throw new Error('Invalid UUID Length Provided');
+ }
+ id = '';
+ for (idIndex = j = 0; 0 <= uuidLength ? j < uuidLength : j > uuidLength; idIndex = 0 <= uuidLength ? j += 1 : j -= 1) {
+ randomPartIdx = parseInt((Math.random() * this.dictLength).toFixed(0), 10) % this.dictLength;
+ id += this.dict[randomPartIdx];
+ }
+ return id;
+ }
+ availableUUIDs(uuidLength = this.uuidLength) {
+ return parseFloat(Math.pow([...new Set(this.dict)].length, uuidLength).toFixed(0));
+ }
+ approxMaxBeforeCollision(rounds = this.availableUUIDs(this.uuidLength)) {
+ return parseFloat(Math.sqrt((Math.PI / 2) * rounds).toFixed(20));
+ }
+ collisionProbability(rounds = this.availableUUIDs(this.uuidLength), uuidLength = this.uuidLength) {
+ return parseFloat((this.approxMaxBeforeCollision(rounds) / this.availableUUIDs(uuidLength)).toFixed(20));
+ }
+ uniqueness(rounds = this.availableUUIDs(this.uuidLength)) {
+ const score = parseFloat((1 - (this.approxMaxBeforeCollision(rounds) / rounds)).toFixed(20));
+ return (score > 1) ? (1) : ((score < 0) ? 0 : score);
+ }
+ getVersion() {
+ return this.version;
+ }
+ };
+ exports_2("default", ShortUniqueId);
}
- /**
- * Calculates approximate number of hashes before first collision.
- *
- * Given that:
- *
- * - `H` is the total number of possible UUIDs, or in terms of this library,
- * the result of running `availableUUIDs()`
- * - the expected number of values we have to choose before finding the
- * first collision can be expressed as the quantity `Q(H)`
- *
- * Then `Q(H)` can be approximated as the square root of the of the product
- * of half of pi times `H`:
- *
- * ![](https://render.githubusercontent.com/render/math?math=%5CHuge%20Q(H)%5Capprox%5Csqrt%7B%5Cfrac%7B%5Cpi%7D%7B2%7DH%7D)
- *
- * This function returns `Q(H)`.
- */
- approxMaxBeforeCollision(
- rounds = this.availableUUIDs(this.uuidLength),
- ) {
- return parseFloat(Math.sqrt((Math.PI / 2) * rounds).toFixed(20));
- }
- /**
- * Calculates probability of generating duplicate UUIDs (a collision) in a
- * given number of UUID generation rounds.
- *
- * Given that:
- *
- * - `r` is the maximum number of times that `randomUUID()` will be called,
- * or better said the number of _rounds_
- * - `H` is the total number of possible UUIDs, or in terms of this library,
- * the result of running `availableUUIDs()`
- *
- * Then the probability of collision `p(r; H)` can be approximated as the result
- * of dividing the square root of the of the product of half of pi times `H` by `H`:
- *
- * ![](https://render.githubusercontent.com/render/math?math=%5CHuge%20p(r%3B%20H)%5Capprox%5Cfrac%7B%5Csqrt%7B%5Cfrac%7B%5Cpi%7D%7B2%7Dr%7D%7D%7BH%7D)
- *
- * This function returns `p(r; H)`.
- *
- * (Useful if you are wondering _"If I use this lib and expect to perform at most
- * `r` rounds of UUID generations, what is the probability that I will hit a duplicate UUID?"_.)
- */
- collisionProbability(
- rounds = this.availableUUIDs(this.uuidLength),
- uuidLength = this.uuidLength,
- ) {
- return parseFloat(
- (this.approxMaxBeforeCollision(rounds) /
- this.availableUUIDs(uuidLength)).toFixed(20),
- );
- }
- /**
- * Calculate a "uniqueness" score (from 0 to 1) of UUIDs based on size of
- * dictionary and chosen UUID length.
- *
- * Given that:
- *
- * - `H` is the total number of possible UUIDs, or in terms of this library,
- * the result of running `availableUUIDs()`
- * - `Q(H)` is the approximate number of hashes before first collision,
- * or in terms of this library, the result of running `approxMaxBeforeCollision()`
- *
- * Then `uniqueness` can be expressed as the additive inverse of the probability of
- * generating a "word" I had previously generated (a duplicate) at any given iteration
- * up to the the total number of possible UUIDs expressed as the quotiend of `Q(H)` and `H`:
- *
- * ![](https://render.githubusercontent.com/render/math?math=%5CHuge%201-%5Cfrac%7BQ(H)%7D%7BH%7D)
- *
- * (Useful if you need a value to rate the "quality" of the combination of given dictionary
- * and UUID length. The closer to 1, higher the uniqueness and thus better the quality.)
- */
- uniqueness(rounds = this.availableUUIDs(this.uuidLength)) {
- const score = parseFloat(
- (1 - (this.approxMaxBeforeCollision(rounds) / rounds)).toFixed(20),
- );
- return (score > 1) ? (1) : ((score < 0) ? 0 : score);
- }
- /**
- * Return the version of this module.
- */
- getVersion() {
- return this.version;
- }
- };
- exports_2("default", ShortUniqueId);
- },
- };
+ };
});
-const __exp = __instantiate("mod");
+const __exp = __instantiate("mod", false);
exports. default = __exp["default"];
diff --git a/lib/version.js b/lib/version.js
index 5e7fc00..b207d9d 100644
--- a/lib/version.js
+++ b/lib/version.js
@@ -2,10 +2,11 @@
// This is a specialised implementation of a System module loader.
+"use strict";
+
// @ts-nocheck
/* eslint-disable */
-let System, __instantiateAsync, __instantiate;
-
+let System, __instantiate;
(() => {
const r = new Map();
@@ -14,7 +15,6 @@ let System, __instantiateAsync, __instantiate;
r.set(id, { d, f, exp: {} });
},
};
-
async function dI(mid, src) {
let id = mid.replace(/\.\w+$/i, "");
if (id.includes("./")) {
@@ -91,30 +91,23 @@ let System, __instantiateAsync, __instantiate;
}
return m.exp;
}
-
- __instantiateAsync = async (m) => {
- System = __instantiateAsync = __instantiate = undefined;
+ __instantiate = (m, a) => {
+ System = __instantiate = undefined;
rF(m);
- return gExpA(m);
- };
-
- __instantiate = (m) => {
- System = __instantiateAsync = __instantiate = undefined;
- rF(m);
- return gExp(m);
+ return a ? gExpA(m) : gExp(m);
};
})();
System.register("version", [], function (exports_1, context_1) {
- "use strict";
- var __moduleName = context_1 && context_1.id;
- return {
- setters: [],
- execute: function () {
- exports_1("default", "3.0.2");
- },
- };
+ "use strict";
+ var __moduleName = context_1 && context_1.id;
+ return {
+ setters: [],
+ execute: function () {
+ exports_1("default", '3.0.4');
+ }
+ };
});
-const __exp = __instantiate("version");
+const __exp = __instantiate("version", false);
exports. default = __exp["default"];
diff --git a/package.json b/package.json
index 1869172..f1a3ae6 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "short-unique-id",
- "version": "3.0.3",
+ "version": "3.0.4",
"description": "Generate random or sequential UUID of any length",
"keywords": [
"short",
@@ -20,11 +20,14 @@
"type": "git",
"url": "https://github.com/jeanlescure/short-unique-id"
},
+ "publishConfig": {
+ "registry": "https://npm.pkg.github.com/"
+ },
"runkitExampleFilename": "./test/runkit.js",
"scripts": {
"gen:version": "echo \"export default '`jq -r .version package.json`';\" > short_uuid/version.ts",
"gen:docs": "cd short_uuid && typedoc --gaID UA-159642755-1 --readme ../README.md --theme ../node_modules/short_uuid_typedoc_template/bin/default --out ../docs . && cd .. && cp -r ./assets ./docs && mv ./docs/assets/favicon.ico ./docs/ && echo shortunique.id > ./docs/CNAME",
- "gen:typings": "cd short_uuid && ../node_modules/typescript/bin/tsc --declaration --emitDeclarationOnly mod.ts ; mv mod.d.ts ../typings/short-unique-id.d.ts",
+ "gen:typings": "tsc --lib dom,es2015 --downlevelIteration --declaration --emitDeclarationOnly ./short_uuid/mod.ts ; mv ./short_uuid/mod.d.ts ./typings/short-unique-id.d.ts",
"lib:build": "yarn gen:version && rm ./lib/* ; mkdir -p tmp && cd short_uuid && deno bundle mod.ts ../tmp/mod.js && deno bundle version.ts ../tmp/version.js && cd .. && sucrase ./tmp -d ./lib -t imports && mv ./lib/mod.js ./lib/short-unique-id.js && rm -rf ./tmp",
"dist:build": "yarn lib:build && rm ./dist/* ; echo 'var __suid_module = ' > ./dist/short-unique-id.js && browserify ./lib/short-unique-id.js >> ./dist/short-unique-id.js && echo 'var ShortUniqueId = __suid_module(1)[\"default\"];' >> ./dist/short-unique-id.js && minify ./dist/short-unique-id.js > ./dist/short-unique-id.min.js",
"test": "cd short_uuid && deno test && cd .. && yarn link && yarn link short-unique-id && node ./runkit.js",
diff --git a/short_uuid b/short_uuid
index 19a5cbb..aed5860 160000
--- a/short_uuid
+++ b/short_uuid
@@ -1 +1 @@
-Subproject commit 19a5cbb5a90b4ac2c9cc86001b307e37f4ba8820
+Subproject commit aed58607a7d7f6600b8928044b7c2ad3023d1529
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..e1fdcb7
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "compilerOptions": {
+ "experimentalDecorators": true,
+ "pretty": true,
+ "noFallthroughCasesInSwitch": true,
+ "noImplicitReturns": true,
+ "forceConsistentCasingInFileNames": true,
+ "allowSyntheticDefaultImports": true,
+ "downlevelIteration": true,
+ "lib": [
+ "DOM",
+ "ES2015"
+ ]
+ }
+}
diff --git a/yarn.lock b/yarn.lock
index ccc1ff9..5b09969 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -835,9 +835,9 @@ lodash.memoize@~3.0.3:
integrity sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=
lodash@^4.17.15:
- version "4.17.15"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
- integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
+ version "4.17.19"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
+ integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
lower-case@^1.1.1:
version "1.1.4"
Returns the name of the function. Function names are read-only and can not be changed.
+