From b4223015bee0e3d75badfe84947b7c96d0b9ecfa Mon Sep 17 00:00:00 2001 From: Dave Rupp Date: Mon, 3 May 2021 22:42:22 +0200 Subject: [PATCH 1/2] Add CryptoKeyCacheEntry to allowed types to store in IndexedDB --- dist/browser/idb-cache.js | 49 +- dist/browser/idb-cache.js.map | 2 +- dist/browser/idb-cache.min.js | 2 +- dist/cjs/idb-cache.js | 44 +- dist/esm/idb-cache.js | 44 +- dist/tsc/idb-cache.d.ts | 8 +- dist/tsc/idb-cache.js | 28 +- dist/tsc/utils/cryptoKeyCacheEntry.d.ts | 9 + dist/tsc/utils/cryptoKeyCacheEntry.js | 16 + package-lock.json | 1739 +++++++++++------------ src/idb-cache.ts | 302 ++-- src/utils/cryptoKeyCacheEntry.ts | 23 + 12 files changed, 1217 insertions(+), 1049 deletions(-) create mode 100644 dist/tsc/utils/cryptoKeyCacheEntry.d.ts create mode 100644 dist/tsc/utils/cryptoKeyCacheEntry.js create mode 100644 src/utils/cryptoKeyCacheEntry.ts diff --git a/dist/browser/idb-cache.js b/dist/browser/idb-cache.js index 108e76d..f29ce39 100644 --- a/dist/browser/idb-cache.js +++ b/dist/browser/idb-cache.js @@ -93,6 +93,37 @@ var IDBCache = (function () { return true; } + var CryptoKeyCacheEntry = + /*#__PURE__*/ + function () { + _createClass(CryptoKeyCacheEntry, [{ + key: "length", + get: function get() { + return this._length; + } + }, { + key: "key", + get: function get() { + return this._key; + } + }, { + key: "id", + get: function get() { + return this._id; + } + }]); + + function CryptoKeyCacheEntry(id, key, length) { + _classCallCheck(this, CryptoKeyCacheEntry); + + this._id = id; + this._key = key; + this._length = length; + } + + return CryptoKeyCacheEntry; + }(); + var VERSION = 1; var STORE_NAME = { META: 'metastore', @@ -101,14 +132,15 @@ var IDBCache = (function () { var DATA_TYPE = { STRING: 1, ARRAYBUFFER: 2, - BLOB: 3 + BLOB: 3, + CRYPTO_KEY: 4 }; var useBlob = canUseBlob(); var IDBCache = /*#__PURE__*/ function () { - function IDBCache(dbName, strageLimit) { + function IDBCache(dbName, storageLimit) { _classCallCheck(this, IDBCache); this._maxSize = 52428800; // 50MB @@ -127,10 +159,10 @@ var IDBCache = (function () { return; } - if (strageLimit) { - if (strageLimit.size) this._maxSize = strageLimit.size; - if (strageLimit.count) this._maxCount = strageLimit.count; - if (strageLimit.defaultAge) this._defaultAge = strageLimit.defaultAge; + if (storageLimit) { + if (storageLimit.size) this._maxSize = storageLimit.size; + if (storageLimit.count) this._maxCount = storageLimit.count; + if (storageLimit.defaultAge) this._defaultAge = storageLimit.defaultAge; } this._initialize(); @@ -548,6 +580,9 @@ var IDBCache = (function () { } else if (data instanceof Blob) { meta.type = DATA_TYPE.BLOB; meta.size = data.size; + } else if (data instanceof CryptoKeyCacheEntry) { + meta.type = DATA_TYPE.CRYPTO_KEY; + meta.size = data.length; } else { console.warn('Is not supported type of value'); } @@ -584,6 +619,8 @@ var IDBCache = (function () { type = DATA_TYPE.ARRAYBUFFER; } else if (data instanceof Blob) { type = DATA_TYPE.BLOB; + } else if (data instanceof CryptoKeyCacheEntry) { + type = DATA_TYPE.CRYPTO_KEY; } if (meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER) { diff --git a/dist/browser/idb-cache.js.map b/dist/browser/idb-cache.js.map index 38905e1..c969b4d 100644 --- a/dist/browser/idb-cache.js.map +++ b/dist/browser/idb-cache.js.map @@ -1 +1 @@ -{"version":3,"file":"idb-cache.js","sources":["../tsc/utils/canUseBlob.js","../tsc/idb-cache.js"],"sourcesContent":["export default function canUseBlob() {\n const ua = navigator.userAgent;\n const isIOS = /iP(hone|(o|a)d)/.test(ua);\n if (isIOS) {\n const iosVerRegexResult = /ip[honead]{2,4}(?:.*os\\s(\\w+)\\slike\\smac)/i.exec(ua);\n if (iosVerRegexResult) {\n const iosVer = iosVerRegexResult[1];\n const [major = '', minor = '', patch = ''] = iosVer.split('_');\n const iosVerStr = ('000' + major).slice(-3)\n + ('000' + minor).slice(-3)\n + ('000' + patch).slice(-3);\n // Less than iOS12.2 can not use blob\n if (iosVerStr < '012002000') {\n return false;\n }\n }\n }\n return true;\n}\n","/**\n * @author Drecom Co.,Ltd. http://www.drecom.co.jp/\n */\nimport canUseBlob from './utils/canUseBlob';\nconst VERSION = 1;\nconst STORE_NAME = {\n META: 'metastore',\n DATA: 'datastore',\n};\nconst DATA_TYPE = {\n STRING: 1,\n ARRAYBUFFER: 2,\n BLOB: 3,\n};\nconst useBlob = canUseBlob();\nexport default class IDBCache {\n constructor(dbName, strageLimit) {\n this._maxSize = 52428800; // 50MB\n this._maxCount = 100; // 100files\n this._defaultAge = 86400; // 1day\n this._nowSize = 0;\n this._metaCache = new Map();\n this._indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.OIndexedDB || window.msIndexedDB;\n this._dbName = dbName;\n if (!this._indexedDB) {\n console.error('IndexedDB is not supported');\n return;\n }\n if (strageLimit) {\n if (strageLimit.size)\n this._maxSize = strageLimit.size;\n if (strageLimit.count)\n this._maxCount = strageLimit.count;\n if (strageLimit.defaultAge)\n this._defaultAge = strageLimit.defaultAge;\n }\n this._initialize();\n }\n /**\n * Save key-value in IndexedDB.\n * Overwrite if the key already exists.\n * @param key\n * @param value\n * @param maxAge Number of seconds to keep\n */\n set(key, value, maxAge = this._defaultAge) {\n return new Promise((resolve, reject) => {\n this._serializeData(value, (data, meta) => {\n if (meta.size === 0) {\n reject(IDBCache.ERROR.INVALID_ARGUMENT);\n return;\n }\n this._open((db) => {\n const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n const nowSeconds = Math.floor(Date.now() / 1000);\n meta.expire = nowSeconds + maxAge;\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n const cacheMeta = this._metaCache.get(key);\n if (cacheMeta) {\n this._metaCache.delete(key);\n this._nowSize -= cacheMeta.size;\n }\n this._metaCache.set(key, meta);\n this._nowSize += meta.size;\n if (this._maxCount < this._metaCache.size || this._maxSize < this._nowSize) {\n this._cleanup();\n }\n resolve();\n };\n transaction.onerror = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n transaction.onabort = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n try {\n dataStore.put(data, key);\n metaStore.put(meta, key);\n }\n catch (e) {\n console.error(e);\n transaction.abort();\n }\n }, (errorCode) => {\n // Open error\n reject(errorCode);\n });\n });\n });\n }\n /**\n * Get value from IndexedDB\n * @param key\n */\n get(key) {\n return new Promise((resolve, reject) => {\n this._open((db) => {\n const transaction = db.transaction(STORE_NAME.DATA, 'readonly');\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n const request = dataStore.get(key);\n request.onsuccess = () => {\n request.onsuccess = null;\n request.onerror = null;\n const nowSeconds = Math.floor(Date.now() / 1000);\n const cacheMeta = this._metaCache.get(key);\n if (request.result && cacheMeta && nowSeconds < cacheMeta.expire) {\n this._deserializeData(request.result, cacheMeta, (data) => {\n resolve(data);\n });\n }\n else {\n // Can not find or expired\n reject(IDBCache.ERROR.GET_EMPTY);\n }\n };\n request.onerror = () => {\n request.onsuccess = null;\n request.onerror = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n }, (errorCode) => {\n // Open error\n reject(errorCode);\n });\n });\n }\n /**\n * Delete one value of IndexedDB\n * @param key\n */\n delete(key) {\n return new Promise((resolve, reject) => {\n this._open((db) => {\n const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n const cacheMeta = this._metaCache.get(key);\n if (cacheMeta) {\n this._metaCache.delete(key);\n this._nowSize -= cacheMeta.size;\n }\n resolve();\n };\n transaction.onerror = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n transaction.onabort = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n try {\n dataStore.delete(key);\n metaStore.delete(key);\n }\n catch (e) {\n console.error(e);\n transaction.abort();\n }\n }, (errorCode) => {\n // Open error\n reject(errorCode);\n });\n });\n }\n _initialize() {\n this._open((db) => {\n const transaction = db.transaction(STORE_NAME.META, 'readonly');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n this._metaCache.clear();\n this._nowSize = 0;\n let canGetAll = false;\n if (metaStore.getAllKeys && metaStore.getAll) {\n canGetAll = true;\n }\n else {\n console.warn('This device does not support getAll');\n }\n let allKeys;\n let allValues;\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n if (canGetAll) {\n for (var i = 0; i < allKeys.length; i++) {\n const key = allKeys[i];\n const val = allValues[i];\n this._metaCache.set(key, val);\n this._nowSize += val.size;\n }\n }\n // Sort in ascending order of expire\n const sortArray = [];\n const itelator = this._metaCache.entries();\n let iteratorResult = itelator.next();\n while (!iteratorResult.done) {\n sortArray.push(iteratorResult.value);\n iteratorResult = itelator.next();\n }\n sortArray.sort(function (a, b) {\n if (a[1].expire < b[1].expire)\n return -1;\n if (a[1].expire > b[1].expire)\n return 1;\n return 0;\n });\n this._metaCache = new Map(sortArray);\n this._cleanup();\n };\n transaction.onerror = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n };\n // referencing argument's event.target of openCursor() causes memory leak on Safari\n if (canGetAll) {\n metaStore.getAllKeys().onsuccess = (event) => {\n allKeys = event.target.result;\n };\n metaStore.getAll().onsuccess = (event) => {\n allValues = event.target.result;\n };\n }\n else {\n metaStore.openCursor().onsuccess = (event) => {\n const cursor = event.target.result;\n if (cursor) {\n this._metaCache.set(cursor.key, cursor.value);\n this._nowSize += cursor.value.size;\n cursor.continue();\n }\n ;\n };\n }\n ;\n }, () => {\n // Ignore open error\n });\n }\n _cleanup() {\n this._open((db) => {\n const removeKeys = new Set();\n const nowSeconds = Math.floor(Date.now() / 1000);\n let tmpNowCount = this._metaCache.size;\n this._metaCache.forEach((meta, key) => {\n if (meta.expire < nowSeconds || this._maxSize < this._nowSize || this._maxCount < tmpNowCount) {\n removeKeys.add(key);\n this._nowSize -= meta.size;\n tmpNowCount--;\n }\n });\n if (0 < removeKeys.size) {\n const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n removeKeys.forEach((key) => {\n if (this._metaCache.has(key))\n this._metaCache.delete(key);\n });\n };\n transaction.onerror = () => {\n console.error('IndexedDB cleanup failed');\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n this._nowSize = 0;\n this._metaCache.forEach((meta) => {\n this._nowSize += meta.size;\n });\n };\n transaction.onabort = () => {\n console.error('IndexedDB cleanup failed');\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n this._nowSize = 0;\n this._metaCache.forEach((meta) => {\n this._nowSize += meta.size;\n });\n };\n removeKeys.forEach((key) => {\n try {\n dataStore.delete(key);\n metaStore.delete(key);\n }\n catch (e) {\n transaction.abort();\n }\n });\n }\n }, () => {\n // Ignore open error\n });\n }\n _createObjectStore(db, oldVersion) {\n if (oldVersion < 1) {\n // Structure of first edition\n db.createObjectStore(STORE_NAME.META);\n db.createObjectStore(STORE_NAME.DATA);\n }\n }\n _open(success, error) {\n if (!this._indexedDB) {\n error(IDBCache.ERROR.NOT_SUPPORT_IDB);\n return;\n }\n let request = this._indexedDB.open(this._dbName, VERSION);\n request.onupgradeneeded = (event) => {\n request.onupgradeneeded = null;\n this._createObjectStore(request.result, event.oldVersion);\n };\n request.onblocked = () => {\n request.onblocked = null;\n alert('Please close other tabs');\n };\n request.onsuccess = () => {\n request.onupgradeneeded = null;\n request.onblocked = null;\n request.onsuccess = null;\n request.onerror = null;\n try {\n success(request.result);\n }\n catch (e) {\n console.error(e);\n error(IDBCache.ERROR.UNKNOWN);\n }\n };\n request.onerror = () => {\n console.error('IndexedDB open failed');\n request.onupgradeneeded = null;\n request.onblocked = null;\n request.onsuccess = null;\n request.onerror = null;\n error(IDBCache.ERROR.CANNOT_OPEN);\n };\n }\n _serializeData(data, cb) {\n const meta = {\n type: 0,\n size: 0,\n };\n if (typeof data === 'string') {\n meta.type = DATA_TYPE.STRING;\n meta.size = data.length;\n }\n else if (data instanceof ArrayBuffer) {\n meta.type = DATA_TYPE.ARRAYBUFFER;\n meta.size = data.byteLength;\n }\n else if (data instanceof Blob) {\n meta.type = DATA_TYPE.BLOB;\n meta.size = data.size;\n }\n else {\n console.warn('Is not supported type of value');\n }\n if (!useBlob && meta.type === DATA_TYPE.BLOB) {\n const reader = new FileReader();\n reader.onload = () => {\n reader.onload = null;\n meta.size = reader.result.byteLength;\n meta.mime = data.type;\n cb(reader.result, meta);\n };\n reader.onerror = () => {\n reader.onerror = null;\n meta.size = 0;\n cb(null, meta);\n };\n reader.readAsArrayBuffer(data);\n }\n else {\n cb(data, meta);\n }\n }\n _deserializeData(data, meta, cb) {\n let type = 0;\n if (typeof data === 'string') {\n type = DATA_TYPE.STRING;\n }\n else if (data instanceof ArrayBuffer) {\n type = DATA_TYPE.ARRAYBUFFER;\n }\n else if (data instanceof Blob) {\n type = DATA_TYPE.BLOB;\n }\n if (meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER) {\n const blob = new Blob([data], { type: meta.mime });\n cb(blob);\n }\n else {\n cb(data);\n }\n }\n}\nIDBCache.ERROR = {\n INVALID_ARGUMENT: 1,\n CANNOT_OPEN: 2,\n REQUEST_FAILED: 3,\n GET_EMPTY: 4,\n NOT_SUPPORT_IDB: 5,\n UNKNOWN: 6,\n};\n"],"names":["canUseBlob","ua","navigator","userAgent","isIOS","test","iosVerRegexResult","exec","iosVer","split","major","minor","patch","iosVerStr","slice","VERSION","STORE_NAME","META","DATA","DATA_TYPE","STRING","ARRAYBUFFER","BLOB","useBlob","IDBCache","dbName","strageLimit","_maxSize","_maxCount","_defaultAge","_nowSize","_metaCache","Map","_indexedDB","window","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","_dbName","console","error","size","count","defaultAge","_initialize","key","value","maxAge","Promise","resolve","reject","_serializeData","data","meta","ERROR","INVALID_ARGUMENT","_open","db","transaction","metaStore","objectStore","dataStore","nowSeconds","Math","floor","Date","now","expire","oncomplete","onerror","onabort","cacheMeta","get","delete","set","_cleanup","REQUEST_FAILED","put","e","abort","errorCode","request","onsuccess","result","_deserializeData","GET_EMPTY","clear","canGetAll","getAllKeys","getAll","warn","allKeys","allValues","i","length","val","sortArray","itelator","entries","iteratorResult","next","done","push","sort","a","b","event","target","openCursor","cursor","continue","removeKeys","Set","tmpNowCount","forEach","add","has","oldVersion","createObjectStore","success","NOT_SUPPORT_IDB","open","onupgradeneeded","_createObjectStore","onblocked","alert","UNKNOWN","CANNOT_OPEN","cb","type","ArrayBuffer","byteLength","Blob","reader","FileReader","onload","mime","readAsArrayBuffer","blob"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"idb-cache.js","sources":["../tsc/utils/canUseBlob.js","../tsc/utils/cryptoKeyCacheEntry.js","../tsc/idb-cache.js"],"sourcesContent":["export default function canUseBlob() {\n const ua = navigator.userAgent;\n const isIOS = /iP(hone|(o|a)d)/.test(ua);\n if (isIOS) {\n const iosVerRegexResult = /ip[honead]{2,4}(?:.*os\\s(\\w+)\\slike\\smac)/i.exec(ua);\n if (iosVerRegexResult) {\n const iosVer = iosVerRegexResult[1];\n const [major = '', minor = '', patch = ''] = iosVer.split('_');\n const iosVerStr = ('000' + major).slice(-3)\n + ('000' + minor).slice(-3)\n + ('000' + patch).slice(-3);\n // Less than iOS12.2 can not use blob\n if (iosVerStr < '012002000') {\n return false;\n }\n }\n }\n return true;\n}\n","export default class CryptoKeyCacheEntry {\n get length() {\n return this._length;\n }\n get key() {\n return this._key;\n }\n get id() {\n return this._id;\n }\n constructor(id, key, length) {\n this._id = id;\n this._key = key;\n this._length = length;\n }\n}\n","/**\n * @author Drecom Co.,Ltd. http://www.drecom.co.jp/\n *\n * Modified by Swisscom (Schweiz) AG (David Rupp)\n * -> Forked and enhanced with CryptoKeyCacheEntry\n */\nimport canUseBlob from './utils/canUseBlob';\nimport CryptoKeyCacheEntry from \"./utils/cryptoKeyCacheEntry\";\nconst VERSION = 1;\nconst STORE_NAME = {\n META: 'metastore',\n DATA: 'datastore',\n};\nconst DATA_TYPE = {\n STRING: 1,\n ARRAYBUFFER: 2,\n BLOB: 3,\n CRYPTO_KEY: 4\n};\nconst useBlob = canUseBlob();\nexport default class IDBCache {\n constructor(dbName, storageLimit) {\n this._maxSize = 52428800; // 50MB\n this._maxCount = 100; // 100files\n this._defaultAge = 86400; // 1day\n this._nowSize = 0;\n this._metaCache = new Map();\n this._indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.OIndexedDB || window.msIndexedDB;\n this._dbName = dbName;\n if (!this._indexedDB) {\n console.error('IndexedDB is not supported');\n return;\n }\n if (storageLimit) {\n if (storageLimit.size)\n this._maxSize = storageLimit.size;\n if (storageLimit.count)\n this._maxCount = storageLimit.count;\n if (storageLimit.defaultAge)\n this._defaultAge = storageLimit.defaultAge;\n }\n this._initialize();\n }\n /**\n * Save key-value in IndexedDB.\n * Overwrite if the key already exists.\n * @param key\n * @param value\n * @param maxAge Number of seconds to keep\n */\n set(key, value, maxAge = this._defaultAge) {\n return new Promise((resolve, reject) => {\n this._serializeData(value, (data, meta) => {\n if (meta.size === 0) {\n reject(IDBCache.ERROR.INVALID_ARGUMENT);\n return;\n }\n this._open((db) => {\n const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n const nowSeconds = Math.floor(Date.now() / 1000);\n meta.expire = nowSeconds + maxAge;\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n const cacheMeta = this._metaCache.get(key);\n if (cacheMeta) {\n this._metaCache.delete(key);\n this._nowSize -= cacheMeta.size;\n }\n this._metaCache.set(key, meta);\n this._nowSize += meta.size;\n if (this._maxCount < this._metaCache.size || this._maxSize < this._nowSize) {\n this._cleanup();\n }\n resolve();\n };\n transaction.onerror = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n transaction.onabort = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n try {\n dataStore.put(data, key);\n metaStore.put(meta, key);\n }\n catch (e) {\n console.error(e);\n transaction.abort();\n }\n }, (errorCode) => {\n // Open error\n reject(errorCode);\n });\n });\n });\n }\n /**\n * Get value from IndexedDB\n * @param key\n */\n get(key) {\n return new Promise((resolve, reject) => {\n this._open((db) => {\n const transaction = db.transaction(STORE_NAME.DATA, 'readonly');\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n const request = dataStore.get(key);\n request.onsuccess = () => {\n request.onsuccess = null;\n request.onerror = null;\n const nowSeconds = Math.floor(Date.now() / 1000);\n const cacheMeta = this._metaCache.get(key);\n if (request.result && cacheMeta && nowSeconds < cacheMeta.expire) {\n this._deserializeData(request.result, cacheMeta, (data) => {\n resolve(data);\n });\n }\n else {\n // Can not find or expired\n reject(IDBCache.ERROR.GET_EMPTY);\n }\n };\n request.onerror = () => {\n request.onsuccess = null;\n request.onerror = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n }, (errorCode) => {\n // Open error\n reject(errorCode);\n });\n });\n }\n /**\n * Delete one value of IndexedDB\n * @param key\n */\n delete(key) {\n return new Promise((resolve, reject) => {\n this._open((db) => {\n const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n const cacheMeta = this._metaCache.get(key);\n if (cacheMeta) {\n this._metaCache.delete(key);\n this._nowSize -= cacheMeta.size;\n }\n resolve();\n };\n transaction.onerror = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n transaction.onabort = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n reject(IDBCache.ERROR.REQUEST_FAILED);\n };\n try {\n dataStore.delete(key);\n metaStore.delete(key);\n }\n catch (e) {\n console.error(e);\n transaction.abort();\n }\n }, (errorCode) => {\n // Open error\n reject(errorCode);\n });\n });\n }\n _initialize() {\n this._open((db) => {\n const transaction = db.transaction(STORE_NAME.META, 'readonly');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n this._metaCache.clear();\n this._nowSize = 0;\n let canGetAll = false;\n if (metaStore.getAllKeys && metaStore.getAll) {\n canGetAll = true;\n }\n else {\n console.warn('This device does not support getAll');\n }\n let allKeys;\n let allValues;\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n if (canGetAll) {\n for (var i = 0; i < allKeys.length; i++) {\n const key = allKeys[i];\n const val = allValues[i];\n this._metaCache.set(key, val);\n this._nowSize += val.size;\n }\n }\n // Sort in ascending order of expire\n const sortArray = [];\n const itelator = this._metaCache.entries();\n let iteratorResult = itelator.next();\n while (!iteratorResult.done) {\n sortArray.push(iteratorResult.value);\n iteratorResult = itelator.next();\n }\n sortArray.sort(function (a, b) {\n if (a[1].expire < b[1].expire)\n return -1;\n if (a[1].expire > b[1].expire)\n return 1;\n return 0;\n });\n this._metaCache = new Map(sortArray);\n this._cleanup();\n };\n transaction.onerror = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n };\n // referencing argument's event.target of openCursor() causes memory leak on Safari\n if (canGetAll) {\n metaStore.getAllKeys().onsuccess = (event) => {\n allKeys = event.target.result;\n };\n metaStore.getAll().onsuccess = (event) => {\n allValues = event.target.result;\n };\n }\n else {\n metaStore.openCursor().onsuccess = (event) => {\n const cursor = event.target.result;\n if (cursor) {\n this._metaCache.set(cursor.key, cursor.value);\n this._nowSize += cursor.value.size;\n cursor.continue();\n }\n ;\n };\n }\n ;\n }, () => {\n // Ignore open error\n });\n }\n _cleanup() {\n this._open((db) => {\n const removeKeys = new Set();\n const nowSeconds = Math.floor(Date.now() / 1000);\n let tmpNowCount = this._metaCache.size;\n this._metaCache.forEach((meta, key) => {\n if (meta.expire < nowSeconds || this._maxSize < this._nowSize || this._maxCount < tmpNowCount) {\n removeKeys.add(key);\n this._nowSize -= meta.size;\n tmpNowCount--;\n }\n });\n if (0 < removeKeys.size) {\n const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite');\n const metaStore = transaction.objectStore(STORE_NAME.META);\n const dataStore = transaction.objectStore(STORE_NAME.DATA);\n transaction.oncomplete = () => {\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n removeKeys.forEach((key) => {\n if (this._metaCache.has(key))\n this._metaCache.delete(key);\n });\n };\n transaction.onerror = () => {\n console.error('IndexedDB cleanup failed');\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n this._nowSize = 0;\n this._metaCache.forEach((meta) => {\n this._nowSize += meta.size;\n });\n };\n transaction.onabort = () => {\n console.error('IndexedDB cleanup failed');\n transaction.oncomplete = null;\n transaction.onerror = null;\n transaction.onabort = null;\n this._nowSize = 0;\n this._metaCache.forEach((meta) => {\n this._nowSize += meta.size;\n });\n };\n removeKeys.forEach((key) => {\n try {\n dataStore.delete(key);\n metaStore.delete(key);\n }\n catch (e) {\n transaction.abort();\n }\n });\n }\n }, () => {\n // Ignore open error\n });\n }\n _createObjectStore(db, oldVersion) {\n if (oldVersion < 1) {\n // Structure of first edition\n db.createObjectStore(STORE_NAME.META);\n db.createObjectStore(STORE_NAME.DATA);\n }\n }\n _open(success, error) {\n if (!this._indexedDB) {\n error(IDBCache.ERROR.NOT_SUPPORT_IDB);\n return;\n }\n let request = this._indexedDB.open(this._dbName, VERSION);\n request.onupgradeneeded = (event) => {\n request.onupgradeneeded = null;\n this._createObjectStore(request.result, event.oldVersion);\n };\n request.onblocked = () => {\n request.onblocked = null;\n alert('Please close other tabs');\n };\n request.onsuccess = () => {\n request.onupgradeneeded = null;\n request.onblocked = null;\n request.onsuccess = null;\n request.onerror = null;\n try {\n success(request.result);\n }\n catch (e) {\n console.error(e);\n error(IDBCache.ERROR.UNKNOWN);\n }\n };\n request.onerror = () => {\n console.error('IndexedDB open failed');\n request.onupgradeneeded = null;\n request.onblocked = null;\n request.onsuccess = null;\n request.onerror = null;\n error(IDBCache.ERROR.CANNOT_OPEN);\n };\n }\n _serializeData(data, cb) {\n const meta = {\n type: 0,\n size: 0,\n };\n if (typeof data === 'string') {\n meta.type = DATA_TYPE.STRING;\n meta.size = data.length;\n }\n else if (data instanceof ArrayBuffer) {\n meta.type = DATA_TYPE.ARRAYBUFFER;\n meta.size = data.byteLength;\n }\n else if (data instanceof Blob) {\n meta.type = DATA_TYPE.BLOB;\n meta.size = data.size;\n }\n else if (data instanceof CryptoKeyCacheEntry) {\n meta.type = DATA_TYPE.CRYPTO_KEY;\n meta.size = data.length;\n }\n else {\n console.warn('Is not supported type of value');\n }\n if (!useBlob && meta.type === DATA_TYPE.BLOB) {\n const reader = new FileReader();\n reader.onload = () => {\n reader.onload = null;\n meta.size = reader.result.byteLength;\n meta.mime = data.type;\n cb(reader.result, meta);\n };\n reader.onerror = () => {\n reader.onerror = null;\n meta.size = 0;\n cb(null, meta);\n };\n reader.readAsArrayBuffer(data);\n }\n else {\n cb(data, meta);\n }\n }\n _deserializeData(data, meta, cb) {\n let type = 0;\n if (typeof data === 'string') {\n type = DATA_TYPE.STRING;\n }\n else if (data instanceof ArrayBuffer) {\n type = DATA_TYPE.ARRAYBUFFER;\n }\n else if (data instanceof Blob) {\n type = DATA_TYPE.BLOB;\n }\n else if (data instanceof CryptoKeyCacheEntry) {\n type = DATA_TYPE.CRYPTO_KEY;\n }\n if (meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER) {\n const blob = new Blob([data], { type: meta.mime });\n cb(blob);\n }\n else {\n cb(data);\n }\n }\n}\nIDBCache.ERROR = {\n INVALID_ARGUMENT: 1,\n CANNOT_OPEN: 2,\n REQUEST_FAILED: 3,\n GET_EMPTY: 4,\n NOT_SUPPORT_IDB: 5,\n UNKNOWN: 6,\n};\n"],"names":["canUseBlob","ua","navigator","userAgent","isIOS","test","iosVerRegexResult","exec","iosVer","split","major","minor","patch","iosVerStr","slice","CryptoKeyCacheEntry","_length","_key","_id","id","key","length","VERSION","STORE_NAME","META","DATA","DATA_TYPE","STRING","ARRAYBUFFER","BLOB","CRYPTO_KEY","useBlob","IDBCache","dbName","storageLimit","_maxSize","_maxCount","_defaultAge","_nowSize","_metaCache","Map","_indexedDB","window","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","_dbName","console","error","size","count","defaultAge","_initialize","value","maxAge","Promise","resolve","reject","_serializeData","data","meta","ERROR","INVALID_ARGUMENT","_open","db","transaction","metaStore","objectStore","dataStore","nowSeconds","Math","floor","Date","now","expire","oncomplete","onerror","onabort","cacheMeta","get","delete","set","_cleanup","REQUEST_FAILED","put","e","abort","errorCode","request","onsuccess","result","_deserializeData","GET_EMPTY","clear","canGetAll","getAllKeys","getAll","warn","allKeys","allValues","i","val","sortArray","itelator","entries","iteratorResult","next","done","push","sort","a","b","event","target","openCursor","cursor","continue","removeKeys","Set","tmpNowCount","forEach","add","has","oldVersion","createObjectStore","success","NOT_SUPPORT_IDB","open","onupgradeneeded","_createObjectStore","onblocked","alert","UNKNOWN","CANNOT_OPEN","cb","type","ArrayBuffer","byteLength","Blob","reader","FileReader","onload","mime","readAsArrayBuffer","blob"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAe,SAASA,UAAT,GAAsB;EACjC,MAAMC,EAAE,GAAGC,SAAS,CAACC,SAArB;EACA,MAAMC,KAAK,GAAG,kBAAkBC,IAAlB,CAAuBJ,EAAvB,CAAd;;EACA,MAAIG,KAAJ,EAAW;EACP,QAAME,iBAAiB,GAAG,6CAA6CC,IAA7C,CAAkDN,EAAlD,CAA1B;;EACA,QAAIK,iBAAJ,EAAuB;EACnB,UAAME,MAAM,GAAGF,iBAAiB,CAAC,CAAD,CAAhC;;EADmB,0BAE0BE,MAAM,CAACC,KAAP,CAAa,GAAb,CAF1B;EAAA;EAAA;EAAA,UAEZC,KAFY,gCAEJ,EAFI;EAAA;EAAA,UAEAC,KAFA,iCAEQ,EAFR;EAAA;EAAA,UAEYC,KAFZ,iCAEoB,EAFpB;;EAGnB,UAAMC,SAAS,GAAG,CAAC,QAAQH,KAAT,EAAgBI,KAAhB,CAAsB,CAAC,CAAvB,IACZ,CAAC,QAAQH,KAAT,EAAgBG,KAAhB,CAAsB,CAAC,CAAvB,CADY,GAEZ,CAAC,QAAQF,KAAT,EAAgBE,KAAhB,CAAsB,CAAC,CAAvB,CAFN,CAHmB;;EAOnB,UAAID,SAAS,GAAG,WAAhB,EAA6B;EACzB,eAAO,KAAP;EACH;EACJ;EACJ;;EACD,SAAO,IAAP;EACH;;MClBoBE;;;;;0BACJ;EACT,aAAO,KAAKC,OAAZ;EACH;;;0BACS;EACN,aAAO,KAAKC,IAAZ;EACH;;;0BACQ;EACL,aAAO,KAAKC,GAAZ;EACH;;;EACD,+BAAYC,EAAZ,EAAgBC,GAAhB,EAAqBC,MAArB,EAA6B;EAAA;;EACzB,SAAKH,GAAL,GAAWC,EAAX;EACA,SAAKF,IAAL,GAAYG,GAAZ;EACA,SAAKJ,OAAL,GAAeK,MAAf;EACH;;;;;ECNL,IAAMC,OAAO,GAAG,CAAhB;EACA,IAAMC,UAAU,GAAG;EACfC,EAAAA,IAAI,EAAE,WADS;EAEfC,EAAAA,IAAI,EAAE;EAFS,CAAnB;EAIA,IAAMC,SAAS,GAAG;EACdC,EAAAA,MAAM,EAAE,CADM;EAEdC,EAAAA,WAAW,EAAE,CAFC;EAGdC,EAAAA,IAAI,EAAE,CAHQ;EAIdC,EAAAA,UAAU,EAAE;EAJE,CAAlB;EAMA,IAAMC,OAAO,GAAG/B,UAAU,EAA1B;;MACqBgC;;;EACjB,oBAAYC,MAAZ,EAAoBC,YAApB,EAAkC;EAAA;;EAC9B,SAAKC,QAAL,GAAgB,QAAhB,CAD8B;;EAE9B,SAAKC,SAAL,GAAiB,GAAjB,CAF8B;;EAG9B,SAAKC,WAAL,GAAmB,KAAnB,CAH8B;;EAI9B,SAAKC,QAAL,GAAgB,CAAhB;EACA,SAAKC,UAAL,GAAkB,IAAIC,GAAJ,EAAlB;EACA,SAAKC,UAAL,GAAkBC,MAAM,CAACC,SAAP,IAAoBD,MAAM,CAACE,eAA3B,IAA8CF,MAAM,CAACG,YAArD,IAAqEH,MAAM,CAACI,UAA5E,IAA0FJ,MAAM,CAACK,WAAnH;EACA,SAAKC,OAAL,GAAef,MAAf;;EACA,QAAI,CAAC,KAAKQ,UAAV,EAAsB;EAClBQ,MAAAA,OAAO,CAACC,KAAR,CAAc,4BAAd;EACA;EACH;;EACD,QAAIhB,YAAJ,EAAkB;EACd,UAAIA,YAAY,CAACiB,IAAjB,EACI,KAAKhB,QAAL,GAAgBD,YAAY,CAACiB,IAA7B;EACJ,UAAIjB,YAAY,CAACkB,KAAjB,EACI,KAAKhB,SAAL,GAAiBF,YAAY,CAACkB,KAA9B;EACJ,UAAIlB,YAAY,CAACmB,UAAjB,EACI,KAAKhB,WAAL,GAAmBH,YAAY,CAACmB,UAAhC;EACP;;EACD,SAAKC,WAAL;EACH;EACD;;;;;;;;;;;0BAOIlC,KAAKmC,OAAkC;EAAA;;EAAA,UAA3BC,MAA2B,uEAAlB,KAAKnB,WAAa;EACvC,aAAO,IAAIoB,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;EACpC,QAAA,KAAI,CAACC,cAAL,CAAoBL,KAApB,EAA2B,UAACM,IAAD,EAAOC,IAAP,EAAgB;EACvC,cAAIA,IAAI,CAACX,IAAL,KAAc,CAAlB,EAAqB;EACjBQ,YAAAA,MAAM,CAAC3B,QAAQ,CAAC+B,KAAT,CAAeC,gBAAhB,CAAN;EACA;EACH;;EACD,UAAA,KAAI,CAACC,KAAL,CAAW,UAACC,EAAD,EAAQ;EACf,gBAAMC,WAAW,GAAGD,EAAE,CAACC,WAAH,CAAe,CAAC5C,UAAU,CAACC,IAAZ,EAAkBD,UAAU,CAACE,IAA7B,CAAf,EAAmD,WAAnD,CAApB;EACA,gBAAM2C,SAAS,GAAGD,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACC,IAAnC,CAAlB;EACA,gBAAM8C,SAAS,GAAGH,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACE,IAAnC,CAAlB;EACA,gBAAM8C,UAAU,GAAGC,IAAI,CAACC,KAAL,CAAWC,IAAI,CAACC,GAAL,KAAa,IAAxB,CAAnB;EACAb,YAAAA,IAAI,CAACc,MAAL,GAAcL,UAAU,GAAGf,MAA3B;;EACAW,YAAAA,WAAW,CAACU,UAAZ,GAAyB,YAAM;EAC3BV,cAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,cAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,cAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;;EACA,kBAAMC,SAAS,GAAG,KAAI,CAACzC,UAAL,CAAgB0C,GAAhB,CAAoB7D,GAApB,CAAlB;;EACA,kBAAI4D,SAAJ,EAAe;EACX,gBAAA,KAAI,CAACzC,UAAL,CAAgB2C,MAAhB,CAAuB9D,GAAvB;;EACA,gBAAA,KAAI,CAACkB,QAAL,IAAiB0C,SAAS,CAAC7B,IAA3B;EACH;;EACD,cAAA,KAAI,CAACZ,UAAL,CAAgB4C,GAAhB,CAAoB/D,GAApB,EAAyB0C,IAAzB;;EACA,cAAA,KAAI,CAACxB,QAAL,IAAiBwB,IAAI,CAACX,IAAtB;;EACA,kBAAI,KAAI,CAACf,SAAL,GAAiB,KAAI,CAACG,UAAL,CAAgBY,IAAjC,IAAyC,KAAI,CAAChB,QAAL,GAAgB,KAAI,CAACG,QAAlE,EAA4E;EACxE,gBAAA,KAAI,CAAC8C,QAAL;EACH;;EACD1B,cAAAA,OAAO;EACV,aAfD;;EAgBAS,YAAAA,WAAW,CAACW,OAAZ,GAAsB,YAAM;EACxBX,cAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,cAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,cAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;EACApB,cAAAA,MAAM,CAAC3B,QAAQ,CAAC+B,KAAT,CAAesB,cAAhB,CAAN;EACH,aALD;;EAMAlB,YAAAA,WAAW,CAACY,OAAZ,GAAsB,YAAM;EACxBZ,cAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,cAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,cAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;EACApB,cAAAA,MAAM,CAAC3B,QAAQ,CAAC+B,KAAT,CAAesB,cAAhB,CAAN;EACH,aALD;;EAMA,gBAAI;EACAf,cAAAA,SAAS,CAACgB,GAAV,CAAczB,IAAd,EAAoBzC,GAApB;EACAgD,cAAAA,SAAS,CAACkB,GAAV,CAAcxB,IAAd,EAAoB1C,GAApB;EACH,aAHD,CAIA,OAAOmE,CAAP,EAAU;EACNtC,cAAAA,OAAO,CAACC,KAAR,CAAcqC,CAAd;EACApB,cAAAA,WAAW,CAACqB,KAAZ;EACH;EACJ,WA1CD,EA0CG,UAACC,SAAD,EAAe;EACd;EACA9B,YAAAA,MAAM,CAAC8B,SAAD,CAAN;EACH,WA7CD;EA8CH,SAnDD;EAoDH,OArDM,CAAP;EAsDH;EACD;;;;;;;0BAIIrE,KAAK;EAAA;;EACL,aAAO,IAAIqC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;EACpC,QAAA,MAAI,CAACM,KAAL,CAAW,UAACC,EAAD,EAAQ;EACf,cAAMC,WAAW,GAAGD,EAAE,CAACC,WAAH,CAAe5C,UAAU,CAACE,IAA1B,EAAgC,UAAhC,CAApB;EACA,cAAM6C,SAAS,GAAGH,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACE,IAAnC,CAAlB;EACA,cAAMiE,OAAO,GAAGpB,SAAS,CAACW,GAAV,CAAc7D,GAAd,CAAhB;;EACAsE,UAAAA,OAAO,CAACC,SAAR,GAAoB,YAAM;EACtBD,YAAAA,OAAO,CAACC,SAAR,GAAoB,IAApB;EACAD,YAAAA,OAAO,CAACZ,OAAR,GAAkB,IAAlB;EACA,gBAAMP,UAAU,GAAGC,IAAI,CAACC,KAAL,CAAWC,IAAI,CAACC,GAAL,KAAa,IAAxB,CAAnB;;EACA,gBAAMK,SAAS,GAAG,MAAI,CAACzC,UAAL,CAAgB0C,GAAhB,CAAoB7D,GAApB,CAAlB;;EACA,gBAAIsE,OAAO,CAACE,MAAR,IAAkBZ,SAAlB,IAA+BT,UAAU,GAAGS,SAAS,CAACJ,MAA1D,EAAkE;EAC9D,cAAA,MAAI,CAACiB,gBAAL,CAAsBH,OAAO,CAACE,MAA9B,EAAsCZ,SAAtC,EAAiD,UAACnB,IAAD,EAAU;EACvDH,gBAAAA,OAAO,CAACG,IAAD,CAAP;EACH,eAFD;EAGH,aAJD,MAKK;EACD;EACAF,cAAAA,MAAM,CAAC3B,QAAQ,CAAC+B,KAAT,CAAe+B,SAAhB,CAAN;EACH;EACJ,WAdD;;EAeAJ,UAAAA,OAAO,CAACZ,OAAR,GAAkB,YAAM;EACpBY,YAAAA,OAAO,CAACC,SAAR,GAAoB,IAApB;EACAD,YAAAA,OAAO,CAACZ,OAAR,GAAkB,IAAlB;EACAnB,YAAAA,MAAM,CAAC3B,QAAQ,CAAC+B,KAAT,CAAesB,cAAhB,CAAN;EACH,WAJD;EAKH,SAxBD,EAwBG,UAACI,SAAD,EAAe;EACd;EACA9B,UAAAA,MAAM,CAAC8B,SAAD,CAAN;EACH,SA3BD;EA4BH,OA7BM,CAAP;EA8BH;EACD;;;;;;;8BAIOrE,KAAK;EAAA;;EACR,aAAO,IAAIqC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;EACpC,QAAA,MAAI,CAACM,KAAL,CAAW,UAACC,EAAD,EAAQ;EACf,cAAMC,WAAW,GAAGD,EAAE,CAACC,WAAH,CAAe,CAAC5C,UAAU,CAACC,IAAZ,EAAkBD,UAAU,CAACE,IAA7B,CAAf,EAAmD,WAAnD,CAApB;EACA,cAAM2C,SAAS,GAAGD,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACC,IAAnC,CAAlB;EACA,cAAM8C,SAAS,GAAGH,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACE,IAAnC,CAAlB;;EACA0C,UAAAA,WAAW,CAACU,UAAZ,GAAyB,YAAM;EAC3BV,YAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,YAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,YAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;;EACA,gBAAMC,SAAS,GAAG,MAAI,CAACzC,UAAL,CAAgB0C,GAAhB,CAAoB7D,GAApB,CAAlB;;EACA,gBAAI4D,SAAJ,EAAe;EACX,cAAA,MAAI,CAACzC,UAAL,CAAgB2C,MAAhB,CAAuB9D,GAAvB;;EACA,cAAA,MAAI,CAACkB,QAAL,IAAiB0C,SAAS,CAAC7B,IAA3B;EACH;;EACDO,YAAAA,OAAO;EACV,WAVD;;EAWAS,UAAAA,WAAW,CAACW,OAAZ,GAAsB,YAAM;EACxBX,YAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,YAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,YAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;EACApB,YAAAA,MAAM,CAAC3B,QAAQ,CAAC+B,KAAT,CAAesB,cAAhB,CAAN;EACH,WALD;;EAMAlB,UAAAA,WAAW,CAACY,OAAZ,GAAsB,YAAM;EACxBZ,YAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,YAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,YAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;EACApB,YAAAA,MAAM,CAAC3B,QAAQ,CAAC+B,KAAT,CAAesB,cAAhB,CAAN;EACH,WALD;;EAMA,cAAI;EACAf,YAAAA,SAAS,CAACY,MAAV,CAAiB9D,GAAjB;EACAgD,YAAAA,SAAS,CAACc,MAAV,CAAiB9D,GAAjB;EACH,WAHD,CAIA,OAAOmE,CAAP,EAAU;EACNtC,YAAAA,OAAO,CAACC,KAAR,CAAcqC,CAAd;EACApB,YAAAA,WAAW,CAACqB,KAAZ;EACH;EACJ,SAnCD,EAmCG,UAACC,SAAD,EAAe;EACd;EACA9B,UAAAA,MAAM,CAAC8B,SAAD,CAAN;EACH,SAtCD;EAuCH,OAxCM,CAAP;EAyCH;;;oCACa;EAAA;;EACV,WAAKxB,KAAL,CAAW,UAACC,EAAD,EAAQ;EACf,YAAMC,WAAW,GAAGD,EAAE,CAACC,WAAH,CAAe5C,UAAU,CAACC,IAA1B,EAAgC,UAAhC,CAApB;EACA,YAAM4C,SAAS,GAAGD,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACC,IAAnC,CAAlB;;EACA,QAAA,MAAI,CAACe,UAAL,CAAgBwD,KAAhB;;EACA,QAAA,MAAI,CAACzD,QAAL,GAAgB,CAAhB;EACA,YAAI0D,SAAS,GAAG,KAAhB;;EACA,YAAI5B,SAAS,CAAC6B,UAAV,IAAwB7B,SAAS,CAAC8B,MAAtC,EAA8C;EAC1CF,UAAAA,SAAS,GAAG,IAAZ;EACH,SAFD,MAGK;EACD/C,UAAAA,OAAO,CAACkD,IAAR,CAAa,qCAAb;EACH;;EACD,YAAIC,OAAJ;EACA,YAAIC,SAAJ;;EACAlC,QAAAA,WAAW,CAACU,UAAZ,GAAyB,YAAM;EAC3BV,UAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,UAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;;EACA,cAAIkB,SAAJ,EAAe;EACX,iBAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,OAAO,CAAC/E,MAA5B,EAAoCiF,CAAC,EAArC,EAAyC;EACrC,kBAAMlF,GAAG,GAAGgF,OAAO,CAACE,CAAD,CAAnB;EACA,kBAAMC,GAAG,GAAGF,SAAS,CAACC,CAAD,CAArB;;EACA,cAAA,MAAI,CAAC/D,UAAL,CAAgB4C,GAAhB,CAAoB/D,GAApB,EAAyBmF,GAAzB;;EACA,cAAA,MAAI,CAACjE,QAAL,IAAiBiE,GAAG,CAACpD,IAArB;EACH;EACJ,WAV0B;;;EAY3B,cAAMqD,SAAS,GAAG,EAAlB;;EACA,cAAMC,QAAQ,GAAG,MAAI,CAAClE,UAAL,CAAgBmE,OAAhB,EAAjB;;EACA,cAAIC,cAAc,GAAGF,QAAQ,CAACG,IAAT,EAArB;;EACA,iBAAO,CAACD,cAAc,CAACE,IAAvB,EAA6B;EACzBL,YAAAA,SAAS,CAACM,IAAV,CAAeH,cAAc,CAACpD,KAA9B;EACAoD,YAAAA,cAAc,GAAGF,QAAQ,CAACG,IAAT,EAAjB;EACH;;EACDJ,UAAAA,SAAS,CAACO,IAAV,CAAe,UAAUC,CAAV,EAAaC,CAAb,EAAgB;EAC3B,gBAAID,CAAC,CAAC,CAAD,CAAD,CAAKpC,MAAL,GAAcqC,CAAC,CAAC,CAAD,CAAD,CAAKrC,MAAvB,EACI,OAAO,CAAC,CAAR;EACJ,gBAAIoC,CAAC,CAAC,CAAD,CAAD,CAAKpC,MAAL,GAAcqC,CAAC,CAAC,CAAD,CAAD,CAAKrC,MAAvB,EACI,OAAO,CAAP;EACJ,mBAAO,CAAP;EACH,WAND;EAOA,UAAA,MAAI,CAACrC,UAAL,GAAkB,IAAIC,GAAJ,CAAQgE,SAAR,CAAlB;;EACA,UAAA,MAAI,CAACpB,QAAL;EACH,SA5BD;;EA6BAjB,QAAAA,WAAW,CAACW,OAAZ,GAAsB,YAAM;EACxBX,UAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,UAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACH,SAHD,CA3Ce;;;EAgDf,YAAIkB,SAAJ,EAAe;EACX5B,UAAAA,SAAS,CAAC6B,UAAV,GAAuBN,SAAvB,GAAmC,UAACuB,KAAD,EAAW;EAC1Cd,YAAAA,OAAO,GAAGc,KAAK,CAACC,MAAN,CAAavB,MAAvB;EACH,WAFD;;EAGAxB,UAAAA,SAAS,CAAC8B,MAAV,GAAmBP,SAAnB,GAA+B,UAACuB,KAAD,EAAW;EACtCb,YAAAA,SAAS,GAAGa,KAAK,CAACC,MAAN,CAAavB,MAAzB;EACH,WAFD;EAGH,SAPD,MAQK;EACDxB,UAAAA,SAAS,CAACgD,UAAV,GAAuBzB,SAAvB,GAAmC,UAACuB,KAAD,EAAW;EAC1C,gBAAMG,MAAM,GAAGH,KAAK,CAACC,MAAN,CAAavB,MAA5B;;EACA,gBAAIyB,MAAJ,EAAY;EACR,cAAA,MAAI,CAAC9E,UAAL,CAAgB4C,GAAhB,CAAoBkC,MAAM,CAACjG,GAA3B,EAAgCiG,MAAM,CAAC9D,KAAvC;;EACA,cAAA,MAAI,CAACjB,QAAL,IAAiB+E,MAAM,CAAC9D,KAAP,CAAaJ,IAA9B;EACAkE,cAAAA,MAAM,CAACC,QAAP;EACH;EAEJ,WARD;EASH;EAEJ,OApED,EAoEG,YAAM;EAER,OAtED;EAuEH;;;iCACU;EAAA;;EACP,WAAKrD,KAAL,CAAW,UAACC,EAAD,EAAQ;EACf,YAAMqD,UAAU,GAAG,IAAIC,GAAJ,EAAnB;EACA,YAAMjD,UAAU,GAAGC,IAAI,CAACC,KAAL,CAAWC,IAAI,CAACC,GAAL,KAAa,IAAxB,CAAnB;EACA,YAAI8C,WAAW,GAAG,MAAI,CAAClF,UAAL,CAAgBY,IAAlC;;EACA,QAAA,MAAI,CAACZ,UAAL,CAAgBmF,OAAhB,CAAwB,UAAC5D,IAAD,EAAO1C,GAAP,EAAe;EACnC,cAAI0C,IAAI,CAACc,MAAL,GAAcL,UAAd,IAA4B,MAAI,CAACpC,QAAL,GAAgB,MAAI,CAACG,QAAjD,IAA6D,MAAI,CAACF,SAAL,GAAiBqF,WAAlF,EAA+F;EAC3FF,YAAAA,UAAU,CAACI,GAAX,CAAevG,GAAf;EACA,YAAA,MAAI,CAACkB,QAAL,IAAiBwB,IAAI,CAACX,IAAtB;EACAsE,YAAAA,WAAW;EACd;EACJ,SAND;;EAOA,YAAI,IAAIF,UAAU,CAACpE,IAAnB,EAAyB;EACrB,cAAMgB,WAAW,GAAGD,EAAE,CAACC,WAAH,CAAe,CAAC5C,UAAU,CAACC,IAAZ,EAAkBD,UAAU,CAACE,IAA7B,CAAf,EAAmD,WAAnD,CAApB;EACA,cAAM2C,SAAS,GAAGD,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACC,IAAnC,CAAlB;EACA,cAAM8C,SAAS,GAAGH,WAAW,CAACE,WAAZ,CAAwB9C,UAAU,CAACE,IAAnC,CAAlB;;EACA0C,UAAAA,WAAW,CAACU,UAAZ,GAAyB,YAAM;EAC3BV,YAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,YAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,YAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;EACAwC,YAAAA,UAAU,CAACG,OAAX,CAAmB,UAACtG,GAAD,EAAS;EACxB,kBAAI,MAAI,CAACmB,UAAL,CAAgBqF,GAAhB,CAAoBxG,GAApB,CAAJ,EACI,MAAI,CAACmB,UAAL,CAAgB2C,MAAhB,CAAuB9D,GAAvB;EACP,aAHD;EAIH,WARD;;EASA+C,UAAAA,WAAW,CAACW,OAAZ,GAAsB,YAAM;EACxB7B,YAAAA,OAAO,CAACC,KAAR,CAAc,0BAAd;EACAiB,YAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,YAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,YAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;EACA,YAAA,MAAI,CAACzC,QAAL,GAAgB,CAAhB;;EACA,YAAA,MAAI,CAACC,UAAL,CAAgBmF,OAAhB,CAAwB,UAAC5D,IAAD,EAAU;EAC9B,cAAA,MAAI,CAACxB,QAAL,IAAiBwB,IAAI,CAACX,IAAtB;EACH,aAFD;EAGH,WATD;;EAUAgB,UAAAA,WAAW,CAACY,OAAZ,GAAsB,YAAM;EACxB9B,YAAAA,OAAO,CAACC,KAAR,CAAc,0BAAd;EACAiB,YAAAA,WAAW,CAACU,UAAZ,GAAyB,IAAzB;EACAV,YAAAA,WAAW,CAACW,OAAZ,GAAsB,IAAtB;EACAX,YAAAA,WAAW,CAACY,OAAZ,GAAsB,IAAtB;EACA,YAAA,MAAI,CAACzC,QAAL,GAAgB,CAAhB;;EACA,YAAA,MAAI,CAACC,UAAL,CAAgBmF,OAAhB,CAAwB,UAAC5D,IAAD,EAAU;EAC9B,cAAA,MAAI,CAACxB,QAAL,IAAiBwB,IAAI,CAACX,IAAtB;EACH,aAFD;EAGH,WATD;;EAUAoE,UAAAA,UAAU,CAACG,OAAX,CAAmB,UAACtG,GAAD,EAAS;EACxB,gBAAI;EACAkD,cAAAA,SAAS,CAACY,MAAV,CAAiB9D,GAAjB;EACAgD,cAAAA,SAAS,CAACc,MAAV,CAAiB9D,GAAjB;EACH,aAHD,CAIA,OAAOmE,CAAP,EAAU;EACNpB,cAAAA,WAAW,CAACqB,KAAZ;EACH;EACJ,WARD;EASH;EACJ,OAtDD,EAsDG,YAAM;EAER,OAxDD;EAyDH;;;yCACkBtB,IAAI2D,YAAY;EAC/B,UAAIA,UAAU,GAAG,CAAjB,EAAoB;EAChB;EACA3D,QAAAA,EAAE,CAAC4D,iBAAH,CAAqBvG,UAAU,CAACC,IAAhC;EACA0C,QAAAA,EAAE,CAAC4D,iBAAH,CAAqBvG,UAAU,CAACE,IAAhC;EACH;EACJ;;;4BACKsG,SAAS7E,OAAO;EAAA;;EAClB,UAAI,CAAC,KAAKT,UAAV,EAAsB;EAClBS,QAAAA,KAAK,CAAClB,QAAQ,CAAC+B,KAAT,CAAeiE,eAAhB,CAAL;EACA;EACH;;EACD,UAAItC,OAAO,GAAG,KAAKjD,UAAL,CAAgBwF,IAAhB,CAAqB,KAAKjF,OAA1B,EAAmC1B,OAAnC,CAAd;;EACAoE,MAAAA,OAAO,CAACwC,eAAR,GAA0B,UAAChB,KAAD,EAAW;EACjCxB,QAAAA,OAAO,CAACwC,eAAR,GAA0B,IAA1B;;EACA,QAAA,MAAI,CAACC,kBAAL,CAAwBzC,OAAO,CAACE,MAAhC,EAAwCsB,KAAK,CAACW,UAA9C;EACH,OAHD;;EAIAnC,MAAAA,OAAO,CAAC0C,SAAR,GAAoB,YAAM;EACtB1C,QAAAA,OAAO,CAAC0C,SAAR,GAAoB,IAApB;EACAC,QAAAA,KAAK,CAAC,yBAAD,CAAL;EACH,OAHD;;EAIA3C,MAAAA,OAAO,CAACC,SAAR,GAAoB,YAAM;EACtBD,QAAAA,OAAO,CAACwC,eAAR,GAA0B,IAA1B;EACAxC,QAAAA,OAAO,CAAC0C,SAAR,GAAoB,IAApB;EACA1C,QAAAA,OAAO,CAACC,SAAR,GAAoB,IAApB;EACAD,QAAAA,OAAO,CAACZ,OAAR,GAAkB,IAAlB;;EACA,YAAI;EACAiD,UAAAA,OAAO,CAACrC,OAAO,CAACE,MAAT,CAAP;EACH,SAFD,CAGA,OAAOL,CAAP,EAAU;EACNtC,UAAAA,OAAO,CAACC,KAAR,CAAcqC,CAAd;EACArC,UAAAA,KAAK,CAAClB,QAAQ,CAAC+B,KAAT,CAAeuE,OAAhB,CAAL;EACH;EACJ,OAZD;;EAaA5C,MAAAA,OAAO,CAACZ,OAAR,GAAkB,YAAM;EACpB7B,QAAAA,OAAO,CAACC,KAAR,CAAc,uBAAd;EACAwC,QAAAA,OAAO,CAACwC,eAAR,GAA0B,IAA1B;EACAxC,QAAAA,OAAO,CAAC0C,SAAR,GAAoB,IAApB;EACA1C,QAAAA,OAAO,CAACC,SAAR,GAAoB,IAApB;EACAD,QAAAA,OAAO,CAACZ,OAAR,GAAkB,IAAlB;EACA5B,QAAAA,KAAK,CAAClB,QAAQ,CAAC+B,KAAT,CAAewE,WAAhB,CAAL;EACH,OAPD;EAQH;;;qCACc1E,MAAM2E,IAAI;EACrB,UAAM1E,IAAI,GAAG;EACT2E,QAAAA,IAAI,EAAE,CADG;EAETtF,QAAAA,IAAI,EAAE;EAFG,OAAb;;EAIA,UAAI,OAAOU,IAAP,KAAgB,QAApB,EAA8B;EAC1BC,QAAAA,IAAI,CAAC2E,IAAL,GAAY/G,SAAS,CAACC,MAAtB;EACAmC,QAAAA,IAAI,CAACX,IAAL,GAAYU,IAAI,CAACxC,MAAjB;EACH,OAHD,MAIK,IAAIwC,IAAI,YAAY6E,WAApB,EAAiC;EAClC5E,QAAAA,IAAI,CAAC2E,IAAL,GAAY/G,SAAS,CAACE,WAAtB;EACAkC,QAAAA,IAAI,CAACX,IAAL,GAAYU,IAAI,CAAC8E,UAAjB;EACH,OAHI,MAIA,IAAI9E,IAAI,YAAY+E,IAApB,EAA0B;EAC3B9E,QAAAA,IAAI,CAAC2E,IAAL,GAAY/G,SAAS,CAACG,IAAtB;EACAiC,QAAAA,IAAI,CAACX,IAAL,GAAYU,IAAI,CAACV,IAAjB;EACH,OAHI,MAIA,IAAIU,IAAI,YAAY9C,mBAApB,EAAyC;EAC1C+C,QAAAA,IAAI,CAAC2E,IAAL,GAAY/G,SAAS,CAACI,UAAtB;EACAgC,QAAAA,IAAI,CAACX,IAAL,GAAYU,IAAI,CAACxC,MAAjB;EACH,OAHI,MAIA;EACD4B,QAAAA,OAAO,CAACkD,IAAR,CAAa,gCAAb;EACH;;EACD,UAAI,CAACpE,OAAD,IAAY+B,IAAI,CAAC2E,IAAL,KAAc/G,SAAS,CAACG,IAAxC,EAA8C;EAC1C,YAAMgH,MAAM,GAAG,IAAIC,UAAJ,EAAf;;EACAD,QAAAA,MAAM,CAACE,MAAP,GAAgB,YAAM;EAClBF,UAAAA,MAAM,CAACE,MAAP,GAAgB,IAAhB;EACAjF,UAAAA,IAAI,CAACX,IAAL,GAAY0F,MAAM,CAACjD,MAAP,CAAc+C,UAA1B;EACA7E,UAAAA,IAAI,CAACkF,IAAL,GAAYnF,IAAI,CAAC4E,IAAjB;EACAD,UAAAA,EAAE,CAACK,MAAM,CAACjD,MAAR,EAAgB9B,IAAhB,CAAF;EACH,SALD;;EAMA+E,QAAAA,MAAM,CAAC/D,OAAP,GAAiB,YAAM;EACnB+D,UAAAA,MAAM,CAAC/D,OAAP,GAAiB,IAAjB;EACAhB,UAAAA,IAAI,CAACX,IAAL,GAAY,CAAZ;EACAqF,UAAAA,EAAE,CAAC,IAAD,EAAO1E,IAAP,CAAF;EACH,SAJD;;EAKA+E,QAAAA,MAAM,CAACI,iBAAP,CAAyBpF,IAAzB;EACH,OAdD,MAeK;EACD2E,QAAAA,EAAE,CAAC3E,IAAD,EAAOC,IAAP,CAAF;EACH;EACJ;;;uCACgBD,MAAMC,MAAM0E,IAAI;EAC7B,UAAIC,IAAI,GAAG,CAAX;;EACA,UAAI,OAAO5E,IAAP,KAAgB,QAApB,EAA8B;EAC1B4E,QAAAA,IAAI,GAAG/G,SAAS,CAACC,MAAjB;EACH,OAFD,MAGK,IAAIkC,IAAI,YAAY6E,WAApB,EAAiC;EAClCD,QAAAA,IAAI,GAAG/G,SAAS,CAACE,WAAjB;EACH,OAFI,MAGA,IAAIiC,IAAI,YAAY+E,IAApB,EAA0B;EAC3BH,QAAAA,IAAI,GAAG/G,SAAS,CAACG,IAAjB;EACH,OAFI,MAGA,IAAIgC,IAAI,YAAY9C,mBAApB,EAAyC;EAC1C0H,QAAAA,IAAI,GAAG/G,SAAS,CAACI,UAAjB;EACH;;EACD,UAAIgC,IAAI,IAAIA,IAAI,CAAC2E,IAAL,KAAc/G,SAAS,CAACG,IAAhC,IAAwC4G,IAAI,KAAK/G,SAAS,CAACE,WAA/D,EAA4E;EACxE,YAAMsH,IAAI,GAAG,IAAIN,IAAJ,CAAS,CAAC/E,IAAD,CAAT,EAAiB;EAAE4E,UAAAA,IAAI,EAAE3E,IAAI,CAACkF;EAAb,SAAjB,CAAb;EACAR,QAAAA,EAAE,CAACU,IAAD,CAAF;EACH,OAHD,MAIK;EACDV,QAAAA,EAAE,CAAC3E,IAAD,CAAF;EACH;EACJ;;;;;EAEL7B,QAAQ,CAAC+B,KAAT,GAAiB;EACbC,EAAAA,gBAAgB,EAAE,CADL;EAEbuE,EAAAA,WAAW,EAAE,CAFA;EAGblD,EAAAA,cAAc,EAAE,CAHH;EAIbS,EAAAA,SAAS,EAAE,CAJE;EAKbkC,EAAAA,eAAe,EAAE,CALJ;EAMbM,EAAAA,OAAO,EAAE;EANI,CAAjB;;;;;;;;"} \ No newline at end of file diff --git a/dist/browser/idb-cache.min.js b/dist/browser/idb-cache.min.js index 98ad5dc..e801905 100644 --- a/dist/browser/idb-cache.min.js +++ b/dist/browser/idb-cache.min.js @@ -1,2 +1,2 @@ // idb-cache - https://github.com/drecom/idb-cache -var IDBCache=function(){"use strict";function t(e,n){for(var o=0;on[1].expire?1:0}),s._metaCache=new Map(t),s._cleanup()},l.onerror=function(){l.oncomplete=null,l.onerror=null},c?(n.getAllKeys().onsuccess=function(e){i=e.target.result},n.getAll().onsuccess=function(e){u=e.target.result}):n.openCursor().onsuccess=function(e){var n=e.target.result;n&&(s._metaCache.set(n.key,n.value),s._nowSize+=n.value.size,n.continue())}},function(){})}},{key:"_cleanup",value:function(){var i=this;this._open(function(e){var o=new Set,t=Math.floor(Date.now()/1e3),r=i._metaCache.size;if(i._metaCache.forEach(function(e,n){(e.expiren[1].expire?1:0}),s._metaCache=new Map(o),s._cleanup()},l.onerror=function(){l.oncomplete=null,l.onerror=null},c?(n.getAllKeys().onsuccess=function(e){a=e.target.result},n.getAll().onsuccess=function(e){u=e.target.result}):n.openCursor().onsuccess=function(e){var n=e.target.result;n&&(s._metaCache.set(n.key,n.value),s._nowSize+=n.value.size,n.continue())}},function(){})}},{key:"_cleanup",value:function(){var a=this;this._open(function(e){var t=new Set,o=Math.floor(Date.now()/1e3),r=a._metaCache.size;if(a._metaCache.forEach(function(e,n){(e.expire Forked and enhanced with CryptoKeyCacheEntry */ const VERSION = 1; const STORE_NAME = { @@ -32,10 +52,11 @@ const DATA_TYPE = { STRING: 1, ARRAYBUFFER: 2, BLOB: 3, + CRYPTO_KEY: 4 }; const useBlob = canUseBlob(); class IDBCache { - constructor(dbName, strageLimit) { + constructor(dbName, storageLimit) { this._maxSize = 52428800; // 50MB this._maxCount = 100; // 100files this._defaultAge = 86400; // 1day @@ -47,13 +68,13 @@ class IDBCache { console.error('IndexedDB is not supported'); return; } - if (strageLimit) { - if (strageLimit.size) - this._maxSize = strageLimit.size; - if (strageLimit.count) - this._maxCount = strageLimit.count; - if (strageLimit.defaultAge) - this._defaultAge = strageLimit.defaultAge; + if (storageLimit) { + if (storageLimit.size) + this._maxSize = storageLimit.size; + if (storageLimit.count) + this._maxCount = storageLimit.count; + if (storageLimit.defaultAge) + this._defaultAge = storageLimit.defaultAge; } this._initialize(); } @@ -393,6 +414,10 @@ class IDBCache { meta.type = DATA_TYPE.BLOB; meta.size = data.size; } + else if (data instanceof CryptoKeyCacheEntry) { + meta.type = DATA_TYPE.CRYPTO_KEY; + meta.size = data.length; + } else { console.warn('Is not supported type of value'); } @@ -426,6 +451,9 @@ class IDBCache { else if (data instanceof Blob) { type = DATA_TYPE.BLOB; } + else if (data instanceof CryptoKeyCacheEntry) { + type = DATA_TYPE.CRYPTO_KEY; + } if (meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER) { const blob = new Blob([data], { type: meta.mime }); cb(blob); diff --git a/dist/esm/idb-cache.js b/dist/esm/idb-cache.js index d86c352..58b32e3 100644 --- a/dist/esm/idb-cache.js +++ b/dist/esm/idb-cache.js @@ -18,8 +18,28 @@ function canUseBlob() { return true; } +class CryptoKeyCacheEntry { + get length() { + return this._length; + } + get key() { + return this._key; + } + get id() { + return this._id; + } + constructor(id, key, length) { + this._id = id; + this._key = key; + this._length = length; + } +} + /** * @author Drecom Co.,Ltd. http://www.drecom.co.jp/ + * + * Modified by Swisscom (Schweiz) AG (David Rupp) + * -> Forked and enhanced with CryptoKeyCacheEntry */ const VERSION = 1; const STORE_NAME = { @@ -30,10 +50,11 @@ const DATA_TYPE = { STRING: 1, ARRAYBUFFER: 2, BLOB: 3, + CRYPTO_KEY: 4 }; const useBlob = canUseBlob(); class IDBCache { - constructor(dbName, strageLimit) { + constructor(dbName, storageLimit) { this._maxSize = 52428800; // 50MB this._maxCount = 100; // 100files this._defaultAge = 86400; // 1day @@ -45,13 +66,13 @@ class IDBCache { console.error('IndexedDB is not supported'); return; } - if (strageLimit) { - if (strageLimit.size) - this._maxSize = strageLimit.size; - if (strageLimit.count) - this._maxCount = strageLimit.count; - if (strageLimit.defaultAge) - this._defaultAge = strageLimit.defaultAge; + if (storageLimit) { + if (storageLimit.size) + this._maxSize = storageLimit.size; + if (storageLimit.count) + this._maxCount = storageLimit.count; + if (storageLimit.defaultAge) + this._defaultAge = storageLimit.defaultAge; } this._initialize(); } @@ -391,6 +412,10 @@ class IDBCache { meta.type = DATA_TYPE.BLOB; meta.size = data.size; } + else if (data instanceof CryptoKeyCacheEntry) { + meta.type = DATA_TYPE.CRYPTO_KEY; + meta.size = data.length; + } else { console.warn('Is not supported type of value'); } @@ -424,6 +449,9 @@ class IDBCache { else if (data instanceof Blob) { type = DATA_TYPE.BLOB; } + else if (data instanceof CryptoKeyCacheEntry) { + type = DATA_TYPE.CRYPTO_KEY; + } if (meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER) { const blob = new Blob([data], { type: meta.mime }); cb(blob); diff --git a/dist/tsc/idb-cache.d.ts b/dist/tsc/idb-cache.d.ts index 4872202..4d25226 100644 --- a/dist/tsc/idb-cache.d.ts +++ b/dist/tsc/idb-cache.d.ts @@ -1,6 +1,10 @@ /** * @author Drecom Co.,Ltd. http://www.drecom.co.jp/ + * + * Modified by Swisscom (Schweiz) AG (David Rupp) + * -> Forked and enhanced with CryptoKeyCacheEntry */ +import CryptoKeyCacheEntry from "./utils/cryptoKeyCacheEntry"; export default class IDBCache { static ERROR: { INVALID_ARGUMENT: number; @@ -17,7 +21,7 @@ export default class IDBCache { private _defaultAge; private _nowSize; private _metaCache; - constructor(dbName: string, strageLimit?: { + constructor(dbName: string, storageLimit?: { size?: number; count?: number; defaultAge?: number; @@ -29,7 +33,7 @@ export default class IDBCache { * @param value * @param maxAge Number of seconds to keep */ - set(key: string, value: string | ArrayBuffer | Blob, maxAge?: number): Promise; + set(key: string, value: string | ArrayBuffer | Blob | CryptoKeyCacheEntry, maxAge?: number): Promise; /** * Get value from IndexedDB * @param key diff --git a/dist/tsc/idb-cache.js b/dist/tsc/idb-cache.js index 1077b28..d813e2d 100644 --- a/dist/tsc/idb-cache.js +++ b/dist/tsc/idb-cache.js @@ -1,7 +1,11 @@ /** * @author Drecom Co.,Ltd. http://www.drecom.co.jp/ + * + * Modified by Swisscom (Schweiz) AG (David Rupp) + * -> Forked and enhanced with CryptoKeyCacheEntry */ import canUseBlob from './utils/canUseBlob'; +import CryptoKeyCacheEntry from "./utils/cryptoKeyCacheEntry"; const VERSION = 1; const STORE_NAME = { META: 'metastore', @@ -11,10 +15,11 @@ const DATA_TYPE = { STRING: 1, ARRAYBUFFER: 2, BLOB: 3, + CRYPTO_KEY: 4 }; const useBlob = canUseBlob(); export default class IDBCache { - constructor(dbName, strageLimit) { + constructor(dbName, storageLimit) { this._maxSize = 52428800; // 50MB this._maxCount = 100; // 100files this._defaultAge = 86400; // 1day @@ -26,13 +31,13 @@ export default class IDBCache { console.error('IndexedDB is not supported'); return; } - if (strageLimit) { - if (strageLimit.size) - this._maxSize = strageLimit.size; - if (strageLimit.count) - this._maxCount = strageLimit.count; - if (strageLimit.defaultAge) - this._defaultAge = strageLimit.defaultAge; + if (storageLimit) { + if (storageLimit.size) + this._maxSize = storageLimit.size; + if (storageLimit.count) + this._maxCount = storageLimit.count; + if (storageLimit.defaultAge) + this._defaultAge = storageLimit.defaultAge; } this._initialize(); } @@ -374,6 +379,10 @@ export default class IDBCache { meta.type = DATA_TYPE.BLOB; meta.size = data.size; } + else if (data instanceof CryptoKeyCacheEntry) { + meta.type = DATA_TYPE.CRYPTO_KEY; + meta.size = data.length; + } else { console.warn('Is not supported type of value'); } @@ -407,6 +416,9 @@ export default class IDBCache { else if (data instanceof Blob) { type = DATA_TYPE.BLOB; } + else if (data instanceof CryptoKeyCacheEntry) { + type = DATA_TYPE.CRYPTO_KEY; + } if (meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER) { const blob = new Blob([data], { type: meta.mime }); cb(blob); diff --git a/dist/tsc/utils/cryptoKeyCacheEntry.d.ts b/dist/tsc/utils/cryptoKeyCacheEntry.d.ts new file mode 100644 index 0000000..7c94156 --- /dev/null +++ b/dist/tsc/utils/cryptoKeyCacheEntry.d.ts @@ -0,0 +1,9 @@ +export default class CryptoKeyCacheEntry { + readonly length: number; + readonly key: CryptoKey; + readonly id: string; + private readonly _id; + private readonly _key; + private readonly _length; + constructor(id: string, key: CryptoKey, length: number); +} diff --git a/dist/tsc/utils/cryptoKeyCacheEntry.js b/dist/tsc/utils/cryptoKeyCacheEntry.js new file mode 100644 index 0000000..1373f9f --- /dev/null +++ b/dist/tsc/utils/cryptoKeyCacheEntry.js @@ -0,0 +1,16 @@ +export default class CryptoKeyCacheEntry { + get length() { + return this._length; + } + get key() { + return this._key; + } + get id() { + return this._id; + } + constructor(id, key, length) { + this._id = id; + this._key = key; + this._length = length; + } +} diff --git a/package-lock.json b/package-lock.json index 4c9655e..b687063 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "@babel/highlight": "7.0.0" + "@babel/highlight": "^7.0.0" } }, "@babel/core": { @@ -19,20 +19,20 @@ "integrity": "sha512-OvjIh6aqXtlsA8ujtGKfC7LYWksYSX8yQcM8Ay3LuvVeQ63lcOKgoZWVqcpFwkd29aYU9rVx7jxhfhiEDV9MZA==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.4.4", - "@babel/helpers": "7.4.4", - "@babel/parser": "7.4.5", - "@babel/template": "7.4.4", - "@babel/traverse": "7.4.5", - "@babel/types": "7.4.4", - "convert-source-map": "1.6.0", - "debug": "4.1.1", - "json5": "2.1.0", - "lodash": "4.17.11", - "resolve": "1.11.1", - "semver": "5.7.0", - "source-map": "0.5.7" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helpers": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.5", + "@babel/types": "^7.4.4", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.11", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" } }, "@babel/generator": { @@ -41,11 +41,11 @@ "integrity": "sha512-53UOLK6TVNqKxf7RUh8NE851EHRxOOeVXKbK2bivdb+iziMyk03Sr4eaE9OELCbyZAAafAKPDwF2TPUES5QbxQ==", "dev": true, "requires": { - "@babel/types": "7.4.4", - "jsesc": "2.5.2", - "lodash": "4.17.11", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "@babel/types": "^7.4.4", + "jsesc": "^2.5.1", + "lodash": "^4.17.11", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" } }, "@babel/helper-annotate-as-pure": { @@ -54,7 +54,7 @@ "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", "dev": true, "requires": { - "@babel/types": "7.4.4" + "@babel/types": "^7.0.0" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -63,8 +63,8 @@ "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "7.1.0", - "@babel/types": "7.4.4" + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-call-delegate": { @@ -73,9 +73,9 @@ "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "7.4.4", - "@babel/traverse": "7.4.5", - "@babel/types": "7.4.4" + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/helper-define-map": { @@ -84,9 +84,9 @@ "integrity": "sha512-IX3Ln8gLhZpSuqHJSnTNBWGDE9kdkTEWl21A/K7PQ00tseBwbqCHTvNLHSBd9M0R5rER4h5Rsvj9vw0R5SieBg==", "dev": true, "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/types": "7.4.4", - "lodash": "4.17.11" + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" } }, "@babel/helper-explode-assignable-expression": { @@ -95,8 +95,8 @@ "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", "dev": true, "requires": { - "@babel/traverse": "7.4.5", - "@babel/types": "7.4.4" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-function-name": { @@ -105,9 +105,9 @@ "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "7.0.0", - "@babel/template": "7.4.4", - "@babel/types": "7.4.4" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-get-function-arity": { @@ -116,7 +116,7 @@ "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "@babel/types": "7.4.4" + "@babel/types": "^7.0.0" } }, "@babel/helper-hoist-variables": { @@ -125,7 +125,7 @@ "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", "dev": true, "requires": { - "@babel/types": "7.4.4" + "@babel/types": "^7.4.4" } }, "@babel/helper-member-expression-to-functions": { @@ -134,7 +134,7 @@ "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", "dev": true, "requires": { - "@babel/types": "7.4.4" + "@babel/types": "^7.0.0" } }, "@babel/helper-module-imports": { @@ -143,7 +143,7 @@ "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", "dev": true, "requires": { - "@babel/types": "7.4.4" + "@babel/types": "^7.0.0" } }, "@babel/helper-module-transforms": { @@ -152,12 +152,12 @@ "integrity": "sha512-3Z1yp8TVQf+B4ynN7WoHPKS8EkdTbgAEy0nU0rs/1Kw4pDgmvYH3rz3aI11KgxKCba2cn7N+tqzV1mY2HMN96w==", "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-simple-access": "7.1.0", - "@babel/helper-split-export-declaration": "7.4.4", - "@babel/template": "7.4.4", - "@babel/types": "7.4.4", - "lodash": "4.17.11" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.4.4", + "lodash": "^4.17.11" } }, "@babel/helper-optimise-call-expression": { @@ -166,7 +166,7 @@ "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", "dev": true, "requires": { - "@babel/types": "7.4.4" + "@babel/types": "^7.0.0" } }, "@babel/helper-plugin-utils": { @@ -181,7 +181,7 @@ "integrity": "sha512-Y5nuB/kESmR3tKjU8Nkn1wMGEx1tjJX076HBMeL3XLQCu6vA/YRzuTW0bbb+qRnXvQGn+d6Rx953yffl8vEy7Q==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.11" } }, "@babel/helper-remap-async-to-generator": { @@ -190,11 +190,11 @@ "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-wrap-function": "7.2.0", - "@babel/template": "7.4.4", - "@babel/traverse": "7.4.5", - "@babel/types": "7.4.4" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-replace-supers": { @@ -203,10 +203,10 @@ "integrity": "sha512-04xGEnd+s01nY1l15EuMS1rfKktNF+1CkKmHoErDppjAAZL+IUBZpzT748x262HF7fibaQPhbvWUl5HeSt1EXg==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "7.0.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/traverse": "7.4.5", - "@babel/types": "7.4.4" + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/helper-simple-access": { @@ -215,8 +215,8 @@ "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", "dev": true, "requires": { - "@babel/template": "7.4.4", - "@babel/types": "7.4.4" + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@babel/helper-split-export-declaration": { @@ -225,7 +225,7 @@ "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", "dev": true, "requires": { - "@babel/types": "7.4.4" + "@babel/types": "^7.4.4" } }, "@babel/helper-wrap-function": { @@ -234,10 +234,10 @@ "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", "dev": true, "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/template": "7.4.4", - "@babel/traverse": "7.4.5", - "@babel/types": "7.4.4" + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" } }, "@babel/helpers": { @@ -246,9 +246,9 @@ "integrity": "sha512-igczbR/0SeuPR8RFfC7tGrbdTbFL3QTvH6D+Z6zNxnTe//GyqmtHmDkzrqDmyZ3eSwPqB/LhyKoU5DXsp+Vp2A==", "dev": true, "requires": { - "@babel/template": "7.4.4", - "@babel/traverse": "7.4.5", - "@babel/types": "7.4.4" + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/highlight": { @@ -257,9 +257,9 @@ "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "chalk": "2.4.1", - "esutils": "2.0.2", - "js-tokens": "4.0.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, "@babel/parser": { @@ -274,9 +274,9 @@ "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0", - "@babel/plugin-syntax-async-generators": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" } }, "@babel/plugin-proposal-json-strings": { @@ -285,8 +285,8 @@ "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-json-strings": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" } }, "@babel/plugin-proposal-object-rest-spread": { @@ -295,8 +295,8 @@ "integrity": "sha512-dMBG6cSPBbHeEBdFXeQ2QLc5gUpg4Vkaz8octD4aoW/ISO+jBOcsuxYL7bsb5WSu8RLP6boxrBIALEHgoHtO9g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-object-rest-spread": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -305,8 +305,8 @@ "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "7.2.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" } }, "@babel/plugin-proposal-unicode-property-regex": { @@ -315,9 +315,9 @@ "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4", - "regexpu-core": "4.5.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" } }, "@babel/plugin-syntax-async-generators": { @@ -326,7 +326,7 @@ "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-json-strings": { @@ -335,7 +335,7 @@ "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -344,7 +344,7 @@ "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-syntax-optional-catch-binding": { @@ -353,7 +353,7 @@ "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-arrow-functions": { @@ -362,7 +362,7 @@ "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-async-to-generator": { @@ -371,9 +371,9 @@ "integrity": "sha512-YiqW2Li8TXmzgbXw+STsSqPBPFnGviiaSp6CYOq55X8GQ2SGVLrXB6pNid8HkqkZAzOH6knbai3snhP7v0fNwA==", "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-remap-async-to-generator": "7.1.0" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" } }, "@babel/plugin-transform-block-scoped-functions": { @@ -382,7 +382,7 @@ "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-block-scoping": { @@ -391,8 +391,8 @@ "integrity": "sha512-jkTUyWZcTrwxu5DD4rWz6rDB5Cjdmgz6z7M7RLXOJyCUkFBawssDGcGh8M/0FTSB87avyJI1HsTwUXp9nKA1PA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "lodash": "4.17.11" + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.11" } }, "@babel/plugin-transform-classes": { @@ -401,14 +401,14 @@ "integrity": "sha512-/e44eFLImEGIpL9qPxSRat13I5QNRgBLu2hOQJCF7VLy/otSM/sypV1+XaIw5+502RX/+6YaSAPmldk+nhHDPw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-define-map": "7.4.4", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-optimise-call-expression": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.4.4", - "@babel/helper-split-export-declaration": "7.4.4", - "globals": "11.12.0" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.4.4", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { @@ -417,7 +417,7 @@ "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-destructuring": { @@ -426,7 +426,7 @@ "integrity": "sha512-/aOx+nW0w8eHiEHm+BTERB2oJn5D127iye/SUQl7NjHy0lf+j7h4MKMMSOwdazGq9OxgiNADncE+SRJkCxjZpQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-dotall-regex": { @@ -435,9 +435,9 @@ "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4", - "regexpu-core": "4.5.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" } }, "@babel/plugin-transform-duplicate-keys": { @@ -446,7 +446,7 @@ "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-exponentiation-operator": { @@ -455,8 +455,8 @@ "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-for-of": { @@ -465,7 +465,7 @@ "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-function-name": { @@ -474,8 +474,8 @@ "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", "dev": true, "requires": { - "@babel/helper-function-name": "7.1.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-literals": { @@ -484,7 +484,7 @@ "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-member-expression-literals": { @@ -493,7 +493,7 @@ "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-amd": { @@ -502,8 +502,8 @@ "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-commonjs": { @@ -512,9 +512,9 @@ "integrity": "sha512-4sfBOJt58sEo9a2BQXnZq+Q3ZTSAUXyK3E30o36BOGnJ+tvJ6YSxF0PG6kERvbeISgProodWuI9UVG3/FMY6iw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-simple-access": "7.1.0" + "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" } }, "@babel/plugin-transform-modules-systemjs": { @@ -523,8 +523,8 @@ "integrity": "sha512-MSiModfILQc3/oqnG7NrP1jHaSPryO6tA2kOMmAQApz5dayPxWiHqmq4sWH2xF5LcQK56LlbKByCd8Aah/OIkQ==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-modules-umd": { @@ -533,8 +533,8 @@ "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "7.4.4", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-named-capturing-groups-regex": { @@ -543,7 +543,7 @@ "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", "dev": true, "requires": { - "regexp-tree": "0.1.10" + "regexp-tree": "^0.1.6" } }, "@babel/plugin-transform-new-target": { @@ -552,7 +552,7 @@ "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-object-super": { @@ -561,8 +561,8 @@ "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-replace-supers": "7.4.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0" } }, "@babel/plugin-transform-parameters": { @@ -571,9 +571,9 @@ "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", "dev": true, "requires": { - "@babel/helper-call-delegate": "7.4.4", - "@babel/helper-get-function-arity": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-property-literals": { @@ -582,7 +582,7 @@ "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-regenerator": { @@ -591,7 +591,7 @@ "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", "dev": true, "requires": { - "regenerator-transform": "0.14.0" + "regenerator-transform": "^0.14.0" } }, "@babel/plugin-transform-reserved-words": { @@ -600,7 +600,7 @@ "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-shorthand-properties": { @@ -609,7 +609,7 @@ "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-spread": { @@ -618,7 +618,7 @@ "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-sticky-regex": { @@ -627,8 +627,8 @@ "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" } }, "@babel/plugin-transform-template-literals": { @@ -637,8 +637,8 @@ "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-typeof-symbol": { @@ -647,7 +647,7 @@ "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, "@babel/plugin-transform-unicode-regex": { @@ -656,9 +656,9 @@ "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "7.0.0", - "@babel/helper-regex": "7.4.4", - "regexpu-core": "4.5.4" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" } }, "@babel/preset-env": { @@ -667,54 +667,54 @@ "integrity": "sha512-f2yNVXM+FsR5V8UwcFeIHzHWgnhXg3NpRmy0ADvALpnhB0SLbCvrCRr4BLOUYbQNLS+Z0Yer46x9dJXpXewI7w==", "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0", - "@babel/helper-plugin-utils": "7.0.0", - "@babel/plugin-proposal-async-generator-functions": "7.2.0", - "@babel/plugin-proposal-json-strings": "7.2.0", - "@babel/plugin-proposal-object-rest-spread": "7.4.4", - "@babel/plugin-proposal-optional-catch-binding": "7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "7.4.4", - "@babel/plugin-syntax-async-generators": "7.2.0", - "@babel/plugin-syntax-json-strings": "7.2.0", - "@babel/plugin-syntax-object-rest-spread": "7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "7.2.0", - "@babel/plugin-transform-arrow-functions": "7.2.0", - "@babel/plugin-transform-async-to-generator": "7.4.4", - "@babel/plugin-transform-block-scoped-functions": "7.2.0", - "@babel/plugin-transform-block-scoping": "7.4.4", - "@babel/plugin-transform-classes": "7.4.4", - "@babel/plugin-transform-computed-properties": "7.2.0", - "@babel/plugin-transform-destructuring": "7.4.4", - "@babel/plugin-transform-dotall-regex": "7.4.4", - "@babel/plugin-transform-duplicate-keys": "7.2.0", - "@babel/plugin-transform-exponentiation-operator": "7.2.0", - "@babel/plugin-transform-for-of": "7.4.4", - "@babel/plugin-transform-function-name": "7.4.4", - "@babel/plugin-transform-literals": "7.2.0", - "@babel/plugin-transform-member-expression-literals": "7.2.0", - "@babel/plugin-transform-modules-amd": "7.2.0", - "@babel/plugin-transform-modules-commonjs": "7.4.4", - "@babel/plugin-transform-modules-systemjs": "7.4.4", - "@babel/plugin-transform-modules-umd": "7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "7.4.5", - "@babel/plugin-transform-new-target": "7.4.4", - "@babel/plugin-transform-object-super": "7.2.0", - "@babel/plugin-transform-parameters": "7.4.4", - "@babel/plugin-transform-property-literals": "7.2.0", - "@babel/plugin-transform-regenerator": "7.4.5", - "@babel/plugin-transform-reserved-words": "7.2.0", - "@babel/plugin-transform-shorthand-properties": "7.2.0", - "@babel/plugin-transform-spread": "7.2.2", - "@babel/plugin-transform-sticky-regex": "7.2.0", - "@babel/plugin-transform-template-literals": "7.4.4", - "@babel/plugin-transform-typeof-symbol": "7.2.0", - "@babel/plugin-transform-unicode-regex": "7.4.4", - "@babel/types": "7.4.4", - "browserslist": "4.6.2", - "core-js-compat": "3.1.3", - "invariant": "2.2.4", - "js-levenshtein": "1.1.6", - "semver": "5.7.0" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.4.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.4.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.4.4", + "@babel/plugin-transform-classes": "^7.4.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.4.4", + "@babel/plugin-transform-modules-systemjs": "^7.4.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" } }, "@babel/template": { @@ -723,9 +723,9 @@ "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "@babel/parser": "7.4.5", - "@babel/types": "7.4.4" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" } }, "@babel/traverse": { @@ -734,15 +734,15 @@ "integrity": "sha512-Vc+qjynwkjRmIFGxy0KYoPj4FdVDxLej89kMHFsWScq999uX+pwcX4v9mWRjW0KcAYTPAuVQl2LKP1wEVLsp+A==", "dev": true, "requires": { - "@babel/code-frame": "7.0.0", - "@babel/generator": "7.4.4", - "@babel/helper-function-name": "7.1.0", - "@babel/helper-split-export-declaration": "7.4.4", - "@babel/parser": "7.4.5", - "@babel/types": "7.4.4", - "debug": "4.1.1", - "globals": "11.12.0", - "lodash": "4.17.11" + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.4.4", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.4.5", + "@babel/types": "^7.4.4", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.11" } }, "@babel/types": { @@ -751,9 +751,9 @@ "integrity": "sha512-dOllgYdnEFOebhkKCjzSVFqw/PmmB8pH6RGOWkY4GsboQNd47b1fBThBSwlHAq9alF9vc1M3+6oqR47R50L0tQ==", "dev": true, "requires": { - "esutils": "2.0.2", - "lodash": "4.17.11", - "to-fast-properties": "2.0.0" + "esutils": "^2.0.2", + "lodash": "^4.17.11", + "to-fast-properties": "^2.0.0" } }, "@types/estree": { @@ -774,14 +774,14 @@ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "mime-types": "2.1.24", + "mime-types": "~2.1.24", "negotiator": "0.6.2" } }, "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, "after": { @@ -808,7 +808,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -817,8 +817,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" }, "dependencies": { "normalize-path": { @@ -827,7 +827,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } } } @@ -838,7 +838,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -889,7 +889,7 @@ "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", "dev": true, "requires": { - "lodash": "4.17.11" + "lodash": "^4.17.11" } }, "async-each": { @@ -928,13 +928,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -943,7 +943,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -952,7 +952,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -961,7 +961,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -970,15 +970,14 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "resolved": "", "dev": true } } @@ -1029,15 +1028,15 @@ "dev": true, "requires": { "bytes": "3.1.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", + "depd": "~1.1.2", "http-errors": "1.7.2", "iconv-lite": "0.4.24", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", - "type-is": "1.6.18" + "type-is": "~1.6.17" }, "dependencies": { "debug": { @@ -1063,7 +1062,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1073,16 +1072,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" } }, "browser-stdout": { @@ -1097,9 +1096,9 @@ "integrity": "sha512-2neU/V0giQy9h3XMPwLhEY3+Ao0uHSwHvU8Q1Ea6AgLVL1sXbX3dzPrJ8NWe5Hi4PoTkCYXOtVR9rfRLI0J/8Q==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000974", - "electron-to-chromium": "1.3.155", - "node-releases": "1.1.23" + "caniuse-lite": "^1.0.30000974", + "electron-to-chromium": "^1.3.150", + "node-releases": "^1.1.23" } }, "buffer-alloc": { @@ -1108,8 +1107,8 @@ "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, "requires": { - "buffer-alloc-unsafe": "1.1.0", - "buffer-fill": "1.0.0" + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" } }, "buffer-alloc-unsafe": { @@ -1136,15 +1135,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" } }, "callsite": { @@ -1171,12 +1170,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "1.1.0", - "check-error": "1.0.2", - "deep-eql": "3.0.1", - "get-func-name": "2.0.0", - "pathval": "1.1.0", - "type-detect": "4.0.8" + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" } }, "chalk": { @@ -1185,9 +1184,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "check-error": { @@ -1202,18 +1201,18 @@ "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "fsevents": "1.2.9", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.1.2" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "class-utils": { @@ -1222,10 +1221,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" } }, "cliui": { @@ -1234,9 +1233,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" } }, "code-point-at": { @@ -1251,8 +1250,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { @@ -1314,7 +1313,7 @@ "requires": { "debug": "2.6.9", "finalhandler": "1.1.2", - "parseurl": "1.3.3", + "parseurl": "~1.3.3", "utils-merge": "1.0.1" }, "dependencies": { @@ -1347,7 +1346,7 @@ "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -1374,9 +1373,9 @@ "integrity": "sha512-EP018pVhgwsKHz3YoN1hTq49aRe+h017Kjz0NQz3nXV0cCRMvH3fLQl+vEPGr4r4J5sk4sU3tUC7U1aqTCeJeA==", "dev": true, "requires": { - "browserslist": "4.6.2", + "browserslist": "^4.6.0", "core-js-pure": "3.1.3", - "semver": "6.1.1" + "semver": "^6.1.0" }, "dependencies": { "semver": { @@ -1405,11 +1404,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.0", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "custom-event": { @@ -1430,7 +1429,7 @@ "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "decamelize": { @@ -1451,7 +1450,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "4.0.8" + "type-detect": "^4.0.0" } }, "define-properties": { @@ -1460,7 +1459,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "1.1.1" + "object-keys": "^1.0.12" } }, "define-property": { @@ -1469,7 +1468,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "depd": { @@ -1496,10 +1495,10 @@ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.2", - "void-elements": "2.0.1" + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" } }, "ee-first": { @@ -1532,7 +1531,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "engine.io": { @@ -1541,12 +1540,12 @@ "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", "dev": true, "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" }, "dependencies": { "debug": { @@ -1574,14 +1573,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" }, "dependencies": { @@ -1615,10 +1614,10 @@ "dev": true, "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.5", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "ent": { @@ -1633,12 +1632,12 @@ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", "dev": true, "requires": { - "es-to-primitive": "1.2.0", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.4", - "is-regex": "1.0.4", - "object-keys": "1.1.1" + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" } }, "es-to-primitive": { @@ -1647,9 +1646,9 @@ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "1.1.4", - "is-date-object": "1.0.1", - "is-symbol": "1.0.2" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "escape-html": { @@ -1683,9 +1682,9 @@ "dev": true }, "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "execa": { @@ -1694,13 +1693,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "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" } }, "expand-brackets": { @@ -1709,13 +1708,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -1747,7 +1746,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "extglob": { @@ -1756,14 +1755,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -1772,7 +1771,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1781,7 +1780,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1790,7 +1789,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1799,15 +1798,14 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "resolved": "", "dev": true } } @@ -1818,10 +1816,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" } }, "finalhandler": { @@ -1831,12 +1829,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.3", - "statuses": "1.5.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -1862,7 +1860,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "flat": { @@ -1871,7 +1869,7 @@ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "is-buffer": "2.0.3" + "is-buffer": "~2.0.3" }, "dependencies": { "is-buffer": { @@ -1889,24 +1887,10 @@ "dev": true }, "follow-redirects": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz", - "integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==", - "dev": true, - "requires": { - "debug": "3.2.6" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - } - } + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", + "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", + "dev": true }, "for-in": { "version": "1.0.2", @@ -1920,7 +1904,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fs-access": { @@ -1929,7 +1913,7 @@ "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { - "null-check": "1.0.0" + "null-check": "^1.0.0" } }, "fs-extra": { @@ -1938,9 +1922,9 @@ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs.realpath": { @@ -1956,8 +1940,8 @@ "dev": true, "optional": true, "requires": { - "nan": "2.14.0", - "node-pre-gyp": "0.12.0" + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" }, "dependencies": { "abbrev": { @@ -1969,7 +1953,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -1983,21 +1968,23 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2010,17 +1997,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2034,7 +2024,7 @@ "dev": true, "optional": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "deep-extend": { @@ -2061,7 +2051,7 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.3.5" + "minipass": "^2.2.1" } }, "fs.realpath": { @@ -2076,14 +2066,14 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -2092,12 +2082,12 @@ "dev": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-unicode": { @@ -2112,7 +2102,7 @@ "dev": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -2121,7 +2111,7 @@ "dev": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -2130,14 +2120,15 @@ "dev": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -2149,8 +2140,9 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -2163,22 +2155,25 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { @@ -2187,13 +2182,14 @@ "dev": true, "optional": true, "requires": { - "minipass": "2.3.5" + "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2210,9 +2206,9 @@ "dev": true, "optional": true, "requires": { - "debug": "4.1.1", - "iconv-lite": "0.4.24", - "sax": "1.2.4" + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -2221,16 +2217,16 @@ "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.1", - "needle": "2.3.0", - "nopt": "4.0.1", - "npm-packlist": "1.4.1", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.6.3", - "semver": "5.7.0", - "tar": "4.4.8" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { @@ -2239,8 +2235,8 @@ "dev": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -2255,8 +2251,8 @@ "dev": true, "optional": true, "requires": { - "ignore-walk": "3.0.1", - "npm-bundled": "1.0.6" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { @@ -2265,16 +2261,17 @@ "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -2286,8 +2283,9 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -2308,8 +2306,8 @@ "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -2330,10 +2328,10 @@ "dev": true, "optional": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -2350,13 +2348,13 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" } }, "rimraf": { @@ -2365,13 +2363,14 @@ "dev": true, "optional": true, "requires": { - "glob": "7.1.3" + "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2407,10 +2406,11 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -2419,15 +2419,16 @@ "dev": true, "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -2442,13 +2443,13 @@ "dev": true, "optional": true, "requires": { - "chownr": "1.1.1", - "fs-minipass": "1.2.5", - "minipass": "2.3.5", - "minizlib": "1.2.1", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.2", - "yallist": "3.0.3" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" } }, "util-deprecate": { @@ -2463,18 +2464,20 @@ "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -2502,7 +2505,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "get-value": { @@ -2517,12 +2520,12 @@ "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-parent": { @@ -2531,8 +2534,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -2541,7 +2544,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -2570,7 +2573,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-binary2": { @@ -2614,9 +2617,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -2625,8 +2628,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -2635,7 +2638,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -2652,22 +2655,22 @@ "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", - "statuses": "1.5.0", + "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" } }, "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { - "eventemitter3": "3.1.2", - "follow-redirects": "1.7.0", - "requires-port": "1.0.0" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "iconv-lite": { @@ -2676,7 +2679,7 @@ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "indexof": { @@ -2691,8 +2694,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2707,7 +2710,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -2722,7 +2725,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-binary-path": { @@ -2731,7 +2734,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.13.1" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -2752,7 +2755,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -2767,9 +2770,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -2804,7 +2807,7 @@ "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -2813,7 +2816,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-plain-object": { @@ -2822,7 +2825,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-regex": { @@ -2831,7 +2834,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-stream": { @@ -2846,7 +2849,7 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "has-symbols": "1.0.0" + "has-symbols": "^1.0.0" } }, "is-windows": { @@ -2867,7 +2870,7 @@ "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "dev": true, "requires": { - "buffer-alloc": "1.2.0" + "buffer-alloc": "^1.2.0" } }, "isexe": { @@ -2900,8 +2903,8 @@ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsesc": { @@ -2916,7 +2919,7 @@ "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", "dev": true, "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "jsonfile": { @@ -2925,7 +2928,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.15" + "graceful-fs": "^4.1.6" } }, "karma": { @@ -2934,31 +2937,31 @@ "integrity": "sha512-xckiDqyNi512U4dXGOOSyLKPwek6X/vUizSy2f3geYevbLj+UIdvNwbn7IwfUIL2g1GXEPWt/87qFD1fBbl/Uw==", "dev": true, "requires": { - "bluebird": "3.5.5", - "body-parser": "1.19.0", - "braces": "2.3.2", - "chokidar": "2.1.6", - "colors": "1.3.3", - "connect": "3.7.0", - "core-js": "2.6.9", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "flatted": "2.0.0", - "glob": "7.1.4", - "graceful-fs": "4.1.15", - "http-proxy": "1.17.0", - "isbinaryfile": "3.0.3", - "lodash": "4.17.11", - "log4js": "4.3.1", - "mime": "2.4.4", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.2.0", - "range-parser": "1.2.1", - "rimraf": "2.6.3", - "safe-buffer": "5.1.2", + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "braces": "^2.3.2", + "chokidar": "^2.0.3", + "colors": "^1.1.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "flatted": "^2.0.0", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^4.17.11", + "log4js": "^4.0.0", + "mime": "^2.3.1", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", "socket.io": "2.1.1", - "source-map": "0.6.1", + "source-map": "^0.6.1", "tmp": "0.0.33", "useragent": "2.3.0" }, @@ -2983,8 +2986,8 @@ "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", "dev": true, "requires": { - "fs-access": "1.0.1", - "which": "1.3.1" + "fs-access": "^1.0.0", + "which": "^1.2.1" } }, "karma-mocha": { @@ -3010,9 +3013,9 @@ "integrity": "sha1-FRIAlejtgZGG5HoLAS8810GJVWA=", "dev": true, "requires": { - "chalk": "2.4.1", - "log-symbols": "2.2.0", - "strip-ansi": "4.0.0" + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "strip-ansi": "^4.0.0" } }, "kind-of": { @@ -3021,7 +3024,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -3030,7 +3033,7 @@ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "2.0.0" + "invert-kv": "^2.0.0" } }, "locate-path": { @@ -3039,14 +3042,14 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "log-symbols": { @@ -3055,7 +3058,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.4.1" + "chalk": "^2.0.1" } }, "log4js": { @@ -3064,11 +3067,11 @@ "integrity": "sha512-nPGS7w7kBnzNm1j8JycFxwLCbIMae8tHCo0cCdx/khB20Tcod8SZThYEB9E0c27ObcTGA1mlPowaf3hantQ/FA==", "dev": true, "requires": { - "date-format": "2.0.0", - "debug": "4.1.1", - "flatted": "2.0.0", - "rfdc": "1.1.4", - "streamroller": "1.0.5" + "date-format": "^2.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.0", + "rfdc": "^1.1.2", + "streamroller": "^1.0.5" } }, "loose-envify": { @@ -3077,7 +3080,7 @@ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "requires": { - "js-tokens": "4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lru-cache": { @@ -3086,8 +3089,8 @@ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "map-age-cleaner": { @@ -3096,7 +3099,7 @@ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { - "p-defer": "1.0.0" + "p-defer": "^1.0.0" } }, "map-cache": { @@ -3111,7 +3114,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "media-typer": { @@ -3126,9 +3129,9 @@ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "dev": true, "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "2.1.0", - "p-is-promise": "2.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" } }, "micromatch": { @@ -3137,19 +3140,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "define-property": { @@ -3158,8 +3161,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" } }, "extend-shallow": { @@ -3168,8 +3171,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } }, "is-accessor-descriptor": { @@ -3178,7 +3181,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3187,7 +3190,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3196,9 +3199,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extendable": { @@ -3207,13 +3210,13 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -3251,23 +3254,23 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3276,7 +3279,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3335,7 +3338,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.1" + "ms": "^2.1.1" } }, "glob": { @@ -3344,12 +3347,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "ms": { @@ -3364,7 +3367,17 @@ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" + } + }, + "yargs-parser": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", + "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -3388,17 +3401,17 @@ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -3407,8 +3420,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" } }, "extend-shallow": { @@ -3417,8 +3430,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } }, "is-accessor-descriptor": { @@ -3427,7 +3440,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3436,7 +3449,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3445,9 +3458,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extendable": { @@ -3456,13 +3469,13 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } }, "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true } } @@ -3485,8 +3498,8 @@ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", "dev": true, "requires": { - "object.getownpropertydescriptors": "2.0.3", - "semver": "5.7.0" + "object.getownpropertydescriptors": "^2.0.3", + "semver": "^5.7.0" } }, "node-releases": { @@ -3495,7 +3508,7 @@ "integrity": "sha512-uq1iL79YjfYC0WXoHbC/z28q/9pOl8kSHaXdWmAAc8No+bDwqkZbzIJz55g/MUsPgSGm9LZ7QSUbzTcH5tz47w==", "dev": true, "requires": { - "semver": "5.7.0" + "semver": "^5.3.0" } }, "normalize-path": { @@ -3510,7 +3523,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "null-check": { @@ -3537,9 +3550,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" } }, "object-keys": { @@ -3554,7 +3567,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.assign": { @@ -3563,10 +3576,10 @@ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.0", - "object-keys": "1.1.1" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.getownpropertydescriptors": { @@ -3575,8 +3588,8 @@ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.13.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" } }, "object.pick": { @@ -3585,7 +3598,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "on-finished": { @@ -3603,7 +3616,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "optimist": { @@ -3612,8 +3625,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "minimist": { @@ -3630,9 +3643,9 @@ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.3.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "os-tmpdir": { @@ -3665,7 +3678,7 @@ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -3674,7 +3687,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "2.2.0" + "p-limit": "^2.0.0" } }, "p-try": { @@ -3689,7 +3702,7 @@ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -3698,7 +3711,7 @@ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "dev": true, "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -3779,8 +3792,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "qjobs": { @@ -3819,13 +3832,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "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" } }, "readdirp": { @@ -3834,9 +3847,9 @@ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { - "graceful-fs": "4.1.15", - "micromatch": "3.1.10", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "regenerate": { @@ -3851,7 +3864,7 @@ "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", "dev": true, "requires": { - "regenerate": "1.4.0" + "regenerate": "^1.4.0" } }, "regenerator-transform": { @@ -3860,7 +3873,7 @@ "integrity": "sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==", "dev": true, "requires": { - "private": "0.1.8" + "private": "^0.1.6" } }, "regex-not": { @@ -3869,8 +3882,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" }, "dependencies": { "extend-shallow": { @@ -3879,8 +3892,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } }, "is-extendable": { @@ -3889,7 +3902,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3906,12 +3919,12 @@ "integrity": "sha512-BtizvGtFQKGPUcTy56o3nk1bGRp4SZOTYrDtGNlqCQufptV5IkkLN6Emw+yunAJjzf+C9FQFtvq7IoA3+oMYHQ==", "dev": true, "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "8.1.0", - "regjsgen": "0.5.0", - "regjsparser": "0.6.0", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.1.0" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.0.2", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" } }, "regjsgen": { @@ -3926,7 +3939,7 @@ "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -3979,7 +3992,7 @@ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-url": { @@ -4006,7 +4019,7 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "7.1.4" + "glob": "^7.1.3" } }, "rollup": { @@ -4016,8 +4029,8 @@ "dev": true, "requires": { "@types/estree": "0.0.39", - "@types/node": "12.0.7", - "acorn": "6.1.1" + "@types/node": "^12.0.7", + "acorn": "^6.1.1" } }, "rollup-plugin-babel": { @@ -4026,8 +4039,8 @@ "integrity": "sha512-KfnizE258L/4enADKX61ozfwGHoqYauvoofghFJBhFnpH9Sb9dNPpWg8QHOaAfVASUYV8w0mCx430i9z0LJoJg==", "dev": true, "requires": { - "@babel/helper-module-imports": "7.0.0", - "rollup-pluginutils": "2.8.1" + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.3.0" } }, "rollup-pluginutils": { @@ -4036,7 +4049,7 @@ "integrity": "sha512-J5oAoysWar6GuZo0s+3bZ6sVZAC0pfqKz68De7ZgDi5z63jOVZn1uJL/+z1jeKHNbGII8kAyHF5q8LnxSX5lQg==", "dev": true, "requires": { - "estree-walker": "0.6.1" + "estree-walker": "^0.6.1" } }, "safe-buffer": { @@ -4051,7 +4064,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -4073,15 +4086,15 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" } }, "setprototypeof": { @@ -4096,7 +4109,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -4117,14 +4130,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -4150,9 +4163,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -4161,7 +4174,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -4170,7 +4183,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4179,7 +4192,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4188,15 +4201,14 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "resolved": "", "dev": true } } @@ -4207,7 +4219,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "socket.io": { @@ -4216,12 +4228,12 @@ "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "dev": true, "requires": { - "debug": "3.1.0", - "engine.io": "3.2.1", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" }, "dependencies": { "debug": { @@ -4257,15 +4269,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" }, "dependencies": { @@ -4299,7 +4311,7 @@ "dev": true, "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -4344,11 +4356,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-url": { @@ -4363,7 +4375,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" }, "dependencies": { "extend-shallow": { @@ -4372,8 +4384,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } }, "is-extendable": { @@ -4382,7 +4394,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4399,8 +4411,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" } }, "statuses": { @@ -4415,11 +4427,11 @@ "integrity": "sha512-iGVaMcyF5PcUY0cPbW3xFQUXnr9O4RZXNBBjhuLZgrjLO4XCLLGfx4T2sGqygSeylUjwgWRsnNbT9aV0Zb8AYw==", "dev": true, "requires": { - "async": "2.6.2", - "date-format": "2.0.0", - "debug": "3.2.6", - "fs-extra": "7.0.1", - "lodash": "4.17.11" + "async": "^2.6.2", + "date-format": "^2.0.0", + "debug": "^3.2.6", + "fs-extra": "^7.0.1", + "lodash": "^4.17.11" }, "dependencies": { "debug": { @@ -4428,7 +4440,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -4439,8 +4451,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "string_decoder": { @@ -4449,7 +4461,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -4458,7 +4470,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "strip-eof": { @@ -4479,7 +4491,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "tmp": { @@ -4488,7 +4500,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -4509,7 +4521,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -4518,10 +4530,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" }, "dependencies": { "define-property": { @@ -4530,8 +4542,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" } }, "extend-shallow": { @@ -4540,8 +4552,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" } }, "is-accessor-descriptor": { @@ -4550,7 +4562,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4559,7 +4571,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4568,9 +4580,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extendable": { @@ -4579,13 +4591,12 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } }, "kind-of": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "resolved": "", "dev": true } } @@ -4596,8 +4607,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "toidentifier": { @@ -4625,7 +4636,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.24" + "mime-types": "~2.1.24" } }, "typescript": { @@ -4640,8 +4651,8 @@ "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", "dev": true, "requires": { - "commander": "2.20.0", - "source-map": "0.6.1" + "commander": "~2.20.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -4670,8 +4681,8 @@ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "dev": true, "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.0.5" + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, "unicode-match-property-value-ecmascript": { @@ -4687,29 +4698,15 @@ "dev": true }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" - }, - "dependencies": { - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" - } - } + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "universalify": { @@ -4730,8 +4727,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -4740,9 +4737,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -4788,8 +4785,8 @@ "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, "requires": { - "lru-cache": "4.1.5", - "tmp": "0.0.33" + "lru-cache": "4.1.x", + "tmp": "0.0.x" } }, "util-deprecate": { @@ -4816,7 +4813,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -4831,7 +4828,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^1.0.2 || 2" } }, "wordwrap": { @@ -4846,8 +4843,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "ansi-regex": { @@ -4862,7 +4859,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -4871,9 +4868,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -4882,7 +4879,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -4899,9 +4896,9 @@ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xmlhttprequest-ssl": { @@ -4911,9 +4908,9 @@ "dev": true }, "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { @@ -4928,17 +4925,17 @@ "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", "dev": true, "requires": { - "cliui": "4.1.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.0.0" + "cliui": "^4.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.0.0" }, "dependencies": { "ansi-regex": { @@ -4953,9 +4950,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { @@ -4964,19 +4961,19 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } }, "yargs-parser": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz", - "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "yargs-unparser": { @@ -4985,9 +4982,9 @@ "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", "dev": true, "requires": { - "flat": "4.1.0", - "lodash": "4.17.11", - "yargs": "12.0.5" + "flat": "^4.1.0", + "lodash": "^4.17.11", + "yargs": "^12.0.5" }, "dependencies": { "get-caller-file": { @@ -5008,18 +5005,18 @@ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "11.1.1" + "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" } }, "yargs-parser": { @@ -5028,8 +5025,8 @@ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } diff --git a/src/idb-cache.ts b/src/idb-cache.ts index 8d2f422..e440ed9 100644 --- a/src/idb-cache.ts +++ b/src/idb-cache.ts @@ -1,55 +1,62 @@ /** * @author Drecom Co.,Ltd. http://www.drecom.co.jp/ + * + * Modified by Swisscom (Schweiz) AG (David Rupp) + * -> Forked and enhanced with CryptoKeyCacheEntry */ import canUseBlob from './utils/canUseBlob'; +import CryptoKeyCacheEntry from "./utils/cryptoKeyCacheEntry"; const VERSION = 1; const STORE_NAME = { - META : 'metastore', - DATA : 'datastore', + META: 'metastore', + DATA: 'datastore', } const DATA_TYPE = { - STRING : 1, - ARRAYBUFFER : 2, - BLOB : 3, + STRING: 1, + ARRAYBUFFER: 2, + BLOB: 3, + CRYPTO_KEY: 4 } + + const useBlob = canUseBlob(); export default class IDBCache { public static ERROR = { - INVALID_ARGUMENT : 1, - CANNOT_OPEN : 2, - REQUEST_FAILED : 3, - GET_EMPTY : 4, - NOT_SUPPORT_IDB : 5, - UNKNOWN : 6, + INVALID_ARGUMENT: 1, + CANNOT_OPEN: 2, + REQUEST_FAILED: 3, + GET_EMPTY: 4, + NOT_SUPPORT_IDB: 5, + UNKNOWN: 6, } - private _indexedDB : IDBFactory; - private _dbName : string; - private _maxSize : number = 52428800; // 50MB - private _maxCount : number = 100; // 100files - private _defaultAge : number = 86400; // 1day - private _nowSize : number = 0; + private _indexedDB: IDBFactory; + private _dbName: string; + private _maxSize: number = 52428800; // 50MB + private _maxCount: number = 100; // 100files + private _defaultAge: number = 86400; // 1day + private _nowSize: number = 0; private _metaCache = new Map(); - constructor(dbName:string, strageLimit?:{size?:number, count?:number, defaultAge?:number}) { + constructor(dbName: string, storageLimit?: { size?: number, count?: number, defaultAge?: number }) { this._indexedDB = (window as any).indexedDB || (window as any).webkitIndexedDB || (window as any).mozIndexedDB || (window as any).OIndexedDB || (window as any).msIndexedDB; this._dbName = dbName; - if(!this._indexedDB){ + if (!this._indexedDB) { console.error('IndexedDB is not supported'); return; } - if(strageLimit){ - if(strageLimit.size) this._maxSize = strageLimit.size; - if(strageLimit.count) this._maxCount = strageLimit.count; - if(strageLimit.defaultAge) this._defaultAge = strageLimit.defaultAge; + if (storageLimit) { + if (storageLimit.size) this._maxSize = storageLimit.size; + if (storageLimit.count) this._maxCount = storageLimit.count; + if (storageLimit.defaultAge) this._defaultAge = storageLimit.defaultAge; } this._initialize(); @@ -62,10 +69,10 @@ export default class IDBCache { * @param value * @param maxAge Number of seconds to keep */ - public set(key:string, value:string | ArrayBuffer | Blob, maxAge:number = this._defaultAge){ - return new Promise((resolve:Function, reject:Function) => { + public set(key: string, value: string | ArrayBuffer | Blob | CryptoKeyCacheEntry, maxAge: number = this._defaultAge) { + return new Promise((resolve: Function, reject: Function) => { this._serializeData(value, (data, meta) => { - if(meta.size === 0){ + if (meta.size === 0) { reject(IDBCache.ERROR.INVALID_ARGUMENT); return; } @@ -81,14 +88,14 @@ export default class IDBCache { transaction.onerror = null; transaction.onabort = null; const cacheMeta = this._metaCache.get(key); - if(cacheMeta){ + if (cacheMeta) { this._metaCache.delete(key); this._nowSize -= cacheMeta.size; } this._metaCache.set(key, meta); this._nowSize += meta.size; - if(this._maxCount < this._metaCache.size || this._maxSize < this._nowSize){ + if (this._maxCount < this._metaCache.size || this._maxSize < this._nowSize) { this._cleanup(); } resolve(); @@ -108,10 +115,10 @@ export default class IDBCache { reject(IDBCache.ERROR.REQUEST_FAILED); } - try{ + try { dataStore.put(data, key); metaStore.put(meta, key); - }catch(e){ + } catch (e) { console.error(e); transaction.abort(); } @@ -127,37 +134,37 @@ export default class IDBCache { * Get value from IndexedDB * @param key */ - public get(key:string){ - return new Promise((resolve:Function, reject:Function) => { + public get(key: string) { + return new Promise((resolve: Function, reject: Function) => { this._open((db) => { - const transaction = db.transaction(STORE_NAME.DATA, 'readonly'); - const dataStore = transaction.objectStore(STORE_NAME.DATA); - const request = dataStore.get(key); - request.onsuccess = () => { - request.onsuccess = null; - request.onerror = null; - const nowSeconds = Math.floor(Date.now() / 1000); - const cacheMeta = this._metaCache.get(key); - if(request.result && cacheMeta && nowSeconds < cacheMeta.expire){ - this._deserializeData(request.result, cacheMeta, (data) => { - resolve(data); - }); - }else{ - // Can not find or expired - reject(IDBCache.ERROR.GET_EMPTY); - } - }; - - request.onerror = () => { - request.onsuccess = null; - request.onerror = null; - reject(IDBCache.ERROR.REQUEST_FAILED); - }; - }, - (errorCode) => { - // Open error - reject(errorCode); - }); + const transaction = db.transaction(STORE_NAME.DATA, 'readonly'); + const dataStore = transaction.objectStore(STORE_NAME.DATA); + const request = dataStore.get(key); + request.onsuccess = () => { + request.onsuccess = null; + request.onerror = null; + const nowSeconds = Math.floor(Date.now() / 1000); + const cacheMeta = this._metaCache.get(key); + if (request.result && cacheMeta && nowSeconds < cacheMeta.expire) { + this._deserializeData(request.result, cacheMeta, (data) => { + resolve(data); + }); + } else { + // Can not find or expired + reject(IDBCache.ERROR.GET_EMPTY); + } + }; + + request.onerror = () => { + request.onsuccess = null; + request.onerror = null; + reject(IDBCache.ERROR.REQUEST_FAILED); + }; + }, + (errorCode) => { + // Open error + reject(errorCode); + }); }); } @@ -165,55 +172,55 @@ export default class IDBCache { * Delete one value of IndexedDB * @param key */ - public delete(key:string) { - return new Promise((resolve:Function, reject:Function) => { + public delete(key: string) { + return new Promise((resolve: Function, reject: Function) => { this._open((db) => { - const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite'); - const metaStore = transaction.objectStore(STORE_NAME.META); - const dataStore = transaction.objectStore(STORE_NAME.DATA); - - transaction.oncomplete = () => { - transaction.oncomplete = null; - transaction.onerror = null; - transaction.onabort = null; - const cacheMeta = this._metaCache.get(key); - if(cacheMeta){ - this._metaCache.delete(key); - this._nowSize -= cacheMeta.size; - } - resolve(); - }; - - transaction.onerror = () => { - transaction.oncomplete = null; - transaction.onerror = null; - transaction.onabort = null; - reject(IDBCache.ERROR.REQUEST_FAILED); - }; - - transaction.onabort = () => { - transaction.oncomplete = null; - transaction.onerror = null; - transaction.onabort = null; - reject(IDBCache.ERROR.REQUEST_FAILED); - } + const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite'); + const metaStore = transaction.objectStore(STORE_NAME.META); + const dataStore = transaction.objectStore(STORE_NAME.DATA); + + transaction.oncomplete = () => { + transaction.oncomplete = null; + transaction.onerror = null; + transaction.onabort = null; + const cacheMeta = this._metaCache.get(key); + if (cacheMeta) { + this._metaCache.delete(key); + this._nowSize -= cacheMeta.size; + } + resolve(); + }; + + transaction.onerror = () => { + transaction.oncomplete = null; + transaction.onerror = null; + transaction.onabort = null; + reject(IDBCache.ERROR.REQUEST_FAILED); + }; + + transaction.onabort = () => { + transaction.oncomplete = null; + transaction.onerror = null; + transaction.onabort = null; + reject(IDBCache.ERROR.REQUEST_FAILED); + } - try{ - dataStore.delete(key); - metaStore.delete(key); - }catch(e){ - console.error(e); - transaction.abort(); - } - }, - (errorCode) => { - // Open error - reject(errorCode); - }); + try { + dataStore.delete(key); + metaStore.delete(key); + } catch (e) { + console.error(e); + transaction.abort(); + } + }, + (errorCode) => { + // Open error + reject(errorCode); + }); }); } - private _initialize(){ + private _initialize() { this._open((db) => { const transaction = db.transaction(STORE_NAME.META, 'readonly'); const metaStore = transaction.objectStore(STORE_NAME.META); @@ -221,19 +228,19 @@ export default class IDBCache { this._nowSize = 0; let canGetAll = false; - if((metaStore as any).getAllKeys && (metaStore as any).getAll){ + if ((metaStore as any).getAllKeys && (metaStore as any).getAll) { canGetAll = true; - }else{ + } else { console.warn('This device does not support getAll'); } - let allKeys : Array; - let allValues : Array; + let allKeys: Array; + let allValues: Array; transaction.oncomplete = () => { transaction.oncomplete = null; transaction.onerror = null; - if(canGetAll){ + if (canGetAll) { for (var i = 0; i < allKeys.length; i++) { const key = allKeys[i]; const val = allValues[i]; @@ -246,11 +253,11 @@ export default class IDBCache { const sortArray = []; const itelator = this._metaCache.entries(); let iteratorResult = itelator.next(); - while(!iteratorResult.done){ + while (!iteratorResult.done) { sortArray.push(iteratorResult.value); iteratorResult = itelator.next(); } - sortArray.sort(function(a:any, b:any) { + sortArray.sort(function (a: any, b: any) { if (a[1].expire < b[1].expire) return -1; if (a[1].expire > b[1].expire) return 1; return 0; @@ -266,41 +273,43 @@ export default class IDBCache { } // referencing argument's event.target of openCursor() causes memory leak on Safari - if(canGetAll){ + if (canGetAll) { (metaStore as any).getAllKeys().onsuccess = (event: any) => { allKeys = event.target.result; }; (metaStore as any).getAll().onsuccess = (event: any) => { allValues = event.target.result; }; - }else{ - metaStore.openCursor().onsuccess = (event:any) => { + } else { + metaStore.openCursor().onsuccess = (event: any) => { const cursor = event.target.result; if (cursor) { this._metaCache.set(cursor.key, cursor.value); this._nowSize += cursor.value.size; cursor.continue(); - }; + } + ; }; - }; + } + ; }, () => { // Ignore open error }); } - private _cleanup(){ + private _cleanup() { this._open((db) => { const removeKeys = new Set(); const nowSeconds = Math.floor(Date.now() / 1000); let tmpNowCount = this._metaCache.size; this._metaCache.forEach((meta, key) => { - if(meta.expire < nowSeconds || this._maxSize < this._nowSize || this._maxCount < tmpNowCount){ + if (meta.expire < nowSeconds || this._maxSize < this._nowSize || this._maxCount < tmpNowCount) { removeKeys.add(key); this._nowSize -= meta.size; tmpNowCount--; } }); - if(0 < removeKeys.size){ + if (0 < removeKeys.size) { const transaction = db.transaction([STORE_NAME.META, STORE_NAME.DATA], 'readwrite'); const metaStore = transaction.objectStore(STORE_NAME.META); const dataStore = transaction.objectStore(STORE_NAME.DATA); @@ -309,7 +318,7 @@ export default class IDBCache { transaction.onerror = null; transaction.onabort = null; removeKeys.forEach((key) => { - if(this._metaCache.has(key)) this._metaCache.delete(key); + if (this._metaCache.has(key)) this._metaCache.delete(key); }); }; transaction.onerror = () => { @@ -334,10 +343,10 @@ export default class IDBCache { }; removeKeys.forEach((key) => { - try{ + try { dataStore.delete(key); metaStore.delete(key); - }catch(e){ + } catch (e) { transaction.abort(); } }); @@ -347,16 +356,16 @@ export default class IDBCache { }); } - private _createObjectStore(db:IDBDatabase ,oldVersion:number){ - if(oldVersion < 1){ + private _createObjectStore(db: IDBDatabase, oldVersion: number) { + if (oldVersion < 1) { // Structure of first edition db.createObjectStore(STORE_NAME.META); db.createObjectStore(STORE_NAME.DATA); } } - private _open(success:(db:IDBDatabase) => void, error:(errorCode:number) => void){ - if(!this._indexedDB){ + private _open(success: (db: IDBDatabase) => void, error: (errorCode: number) => void) { + if (!this._indexedDB) { error(IDBCache.ERROR.NOT_SUPPORT_IDB); return; } @@ -375,9 +384,9 @@ export default class IDBCache { request.onblocked = null; request.onsuccess = null; request.onerror = null; - try{ + try { success(request.result); - }catch(e){ + } catch (e) { console.error(e); error(IDBCache.ERROR.UNKNOWN); } @@ -392,25 +401,28 @@ export default class IDBCache { } } - private _serializeData(data:string | ArrayBuffer | Blob, cb:(data:any, meta:any) => void){ + private _serializeData(data: string | ArrayBuffer | Blob | CryptoKeyCacheEntry, cb: (data: any, meta: any) => void) { const meta = { - type:0, - size:0, + type: 0, + size: 0, } - if(typeof data === 'string'){ + if (typeof data === 'string') { meta.type = DATA_TYPE.STRING; meta.size = (data as string).length; - }else if(data instanceof ArrayBuffer){ + } else if (data instanceof ArrayBuffer) { meta.type = DATA_TYPE.ARRAYBUFFER; meta.size = (data as ArrayBuffer).byteLength; - }else if(data instanceof Blob){ + } else if (data instanceof Blob) { meta.type = DATA_TYPE.BLOB; meta.size = (data as Blob).size; - }else{ + } else if (data instanceof CryptoKeyCacheEntry) { + meta.type = DATA_TYPE.CRYPTO_KEY; + meta.size = data.length; + } else { console.warn('Is not supported type of value'); } - if(!useBlob && meta.type === DATA_TYPE.BLOB){ + if (!useBlob && meta.type === DATA_TYPE.BLOB) { const reader = new FileReader(); reader.onload = () => { reader.onload = null; @@ -424,25 +436,27 @@ export default class IDBCache { cb(null, meta); } reader.readAsArrayBuffer(data as Blob); - }else{ + } else { cb(data, meta); } } - private _deserializeData(data:string | ArrayBuffer | Blob, meta:any, cb:(data:any) => void){ + private _deserializeData(data: any, meta: any, cb: (data: any) => void) { let type = 0; - if(typeof data === 'string'){ + if (typeof data === 'string') { type = DATA_TYPE.STRING; - }else if(data instanceof ArrayBuffer){ + } else if (data instanceof ArrayBuffer) { type = DATA_TYPE.ARRAYBUFFER; - }else if(data instanceof Blob){ + } else if (data instanceof Blob) { type = DATA_TYPE.BLOB; + } else if (data instanceof CryptoKeyCacheEntry) { + type = DATA_TYPE.CRYPTO_KEY; } - if(meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER){ - const blob = new Blob([data], {type:meta.mime}); + if (meta && meta.type === DATA_TYPE.BLOB && type === DATA_TYPE.ARRAYBUFFER) { + const blob = new Blob([data], {type: meta.mime}); cb(blob); - }else{ + } else { cb(data); } } diff --git a/src/utils/cryptoKeyCacheEntry.ts b/src/utils/cryptoKeyCacheEntry.ts new file mode 100644 index 0000000..5f2e619 --- /dev/null +++ b/src/utils/cryptoKeyCacheEntry.ts @@ -0,0 +1,23 @@ +export default class CryptoKeyCacheEntry { + get length(): number { + return this._length; + } + + get key(): CryptoKey { + return this._key; + } + + get id(): string { + return this._id; + } + + private readonly _id: string; + private readonly _key: CryptoKey; + private readonly _length: number; + + constructor(id: string, key: CryptoKey, length: number) { + this._id = id; + this._key = key; + this._length = length; + } +} \ No newline at end of file From b014d941a39edc94ebe4383f72a7ac2a22d9b03f Mon Sep 17 00:00:00 2001 From: Dave Rupp Date: Mon, 3 May 2021 22:43:19 +0200 Subject: [PATCH 2/2] ignore idea folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c934246..e1b633c 100755 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules/ tsc/idb-cache.js +.idea/ \ No newline at end of file