From bca591b119018af9f97ff453f1884b091f39a541 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Tue, 22 Oct 2019 07:13:12 +0700 Subject: [PATCH 01/69] Fix #577 - v3.1.0 break search bar --- app/views/collections/BaseCollectionPane.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/collections/BaseCollectionPane.js b/app/views/collections/BaseCollectionPane.js index 9019fb04..635f5f97 100644 --- a/app/views/collections/BaseCollectionPane.js +++ b/app/views/collections/BaseCollectionPane.js @@ -224,12 +224,13 @@ BaseCollectionPane.prototype.reload = function (selectedCollectionId) { BaseCollectionPane.prototype.filterCollections = function () { var filter = this.searchInput.value; this.clearTextButton.style.display = filter != null && filter.length > 0 ? "block" : "none" - var collectionNodes = Dom.getList(".//*[@class='Item']", this.selectorPane); + var collectionNodes = this.selectorPane.querySelectorAll(".Item"); var hasLast = false; var firstNode = null; for (var i in collectionNodes) { var collectionNode = collectionNodes[i]; var collection = collectionNodes[i]._collection; + if (!collection) continue; collection._shapeCount = 0; collection._filteredShapes = []; if (!filter) { @@ -244,6 +245,7 @@ BaseCollectionPane.prototype.filterCollections = function () { collection._filteredShapes.push(def); } } + if (collection._shapeCount <= 0) { collectionNode.setAttribute("_hidden", true); collectionNode.style.display = "none"; @@ -256,7 +258,7 @@ BaseCollectionPane.prototype.filterCollections = function () { collectionNode.style.visibility = "visible"; } } - + if (hasLast) { this.openCollection(this.last); } else if (firstNode != null){ From b89034812edfdb8b0fed1247e6709493b358670a Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Thu, 19 Dec 2019 21:09:03 +0700 Subject: [PATCH 02/69] Add configuration to enable hardware acceleration in Linux --- app/index.js | 16 ++++++++++++++-- app/package-lock.json | 25 ++++++++++++++++++++++++- app/pencil-core/common/config.js | 1 + package.json | 2 +- 4 files changed, 40 insertions(+), 4 deletions(-) diff --git a/app/index.js b/app/index.js index 4e0ac9e4..5b5ea1ec 100644 --- a/app/index.js +++ b/app/index.js @@ -4,6 +4,7 @@ const {app, protocol, shell, BrowserWindow} = require("electron"); const pkg = require("./package.json"); const fs = require("fs"); const path = require("path"); +const os = require("os"); app.commandLine.appendSwitch("allow-file-access-from-files"); app.commandLine.appendSwitch("allow-file-access"); @@ -13,14 +14,25 @@ app.commandLine.appendSwitch("disable-site-isolation-trials"); // Disable hardware acceleration by default for Linux // TODO: implement a setting for this one and requires a restart after changing that value if (process.platform.trim().toLowerCase() == "linux" && app.disableHardwareAcceleration) { - if (process.argv.indexOf("--with-hwa") < 0) { + var useHWAConfig = getAppConfig("core.useHardwareAcceleration"); + console.log("useHWAConfig: ", useHWAConfig); + if (process.argv.indexOf("--with-hwa") < 0 && !useHWAConfig) { console.log("Hardware acceleration disabled for Linux."); app.disableHardwareAcceleration(); } else { console.log("Hardware acceleration forcibly enabled."); } } - +function getAppConfig(name) { + var p = path.join(path.join(os.homedir(), ".pencil"), "config.json"); + try { + var json = fs.readFileSync(p, "utf8"); + var data = JSON.parse(json); + return data[name]; + } catch (e) { + return undefined; + } +} global.sharedObject = { appArguments: process.argv }; var handleRedirect = (e, url) => { diff --git a/app/package-lock.json b/app/package-lock.json index f0027446..d5c13068 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,6 +1,6 @@ { "name": "Pencil", - "version": "3.0.5", + "version": "3.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3235,6 +3235,29 @@ "version": "2.11.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + }, + "dependencies": { + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + } + } } } }, diff --git a/app/pencil-core/common/config.js b/app/pencil-core/common/config.js index 5e14de7d..ca91c8c1 100644 --- a/app/pencil-core/common/config.js +++ b/app/pencil-core/common/config.js @@ -73,3 +73,4 @@ Config.DEVICE_ADB_PATH = Config.define("device.adb_path", "adb"); Config.EXPORT_CROP_FOR_CLIPBOARD = Config.define("export.crop_for_clipboard", false); Config.EXPORT_DEFAULT_SCALE = Config.define("export.default_scale", 1); Config.EXPORT_DEFAULT_BACKGROUND_COLOR = Config.define("export.default_background_color", ""); +Config.CORE_USE_HWA = Config.define("core.useHardwareAcceleration", false); diff --git a/package.json b/package.json index db31c3bf..82077b70 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "postinstall": "install-app-deps", "install-app-deps": "node ./node_modules/electron-builder/out/install-app-deps.js", "start": "./node_modules/.bin/electron ./app", - "start:dev": "./node_modules/.bin/electron ./app --enable-dev --enable-transparent-visuals --disable-gpu", + "start:dev": "./node_modules/.bin/electron ./app --enable-dev --enable-transparent-visuals", "start:mac": "./node_modules/.bin/electron ./app --enable-dev", "clean": "rimraf dist", "pack": "build", From f9ab262ca02d44c3470ba13aac56bfe63fbf4846 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 20 Dec 2019 10:23:47 +0700 Subject: [PATCH 03/69] Add support for specifying custom UI font --- app/lib/widget/Common.js | 7 +++++++ app/views/ApplicationPane.js | 13 ++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/lib/widget/Common.js b/app/lib/widget/Common.js index c8b208c3..88d64a3e 100644 --- a/app/lib/widget/Common.js +++ b/app/lib/widget/Common.js @@ -597,6 +597,13 @@ widget.reloadDesktopFont = function() { } document.body.style.fontSize = size; } + + var family = Config.get(Config.UI_CUSTOM_FONT_FAMILY); + if (family) document.body.style.fontFamily = family; + + var size = Config.get(Config.UI_CUSTOM_FONT_SIZE); + if (size) document.body.style.fontSize = size; + resolve(config); }); }); diff --git a/app/views/ApplicationPane.js b/app/views/ApplicationPane.js index 704fbacd..0acf6f0f 100644 --- a/app/views/ApplicationPane.js +++ b/app/views/ApplicationPane.js @@ -128,10 +128,21 @@ ApplicationPane.prototype.onAttached = function () { }; + +Config.UI_CUSTOM_FONT_FAMILY = Config.define("ui.customUIFontFamily", ""); +Config.UI_CUSTOM_FONT_SIZE = Config.define("ui.customUIFontSize", ""); + ApplicationPane.prototype.invalidateUIForConfig = function () { debug("BOOT: invalidating UI using configuration"); var useCompactLayout = Config.get("view.useCompactLayout", false); document.body.setAttribute("compact-layout", useCompactLayout); + + var family = Config.get(Config.UI_CUSTOM_FONT_FAMILY); + if (family) document.body.style.fontFamily = family; + + var size = Config.get(Config.UI_CUSTOM_FONT_SIZE); + if (size) document.body.style.fontSize = size; + this.toolBarSrollView.invalidate(); }; ApplicationPane.prototype.invalidateUIForControllerStatus = function () { @@ -288,7 +299,7 @@ ApplicationPane.prototype.showStartupPane = function () { const NO_CONTENT_VALUE = 22; ApplicationPane.prototype.getNoContentValue = function () { var compact = Config.get("view.useCompactLayout", false); - return compact ? 0 : NO_CONTENT_VALUE; + return compact ? 10 : NO_CONTENT_VALUE; } ApplicationPane.prototype.getCanvasToolbarHeight = function () { return StencilCollectionBuilder.isDocumentConfiguredAsStencilCollection() ? Math.round(3 * Util.em()) : 0; From e1c98b079096593184d5f244830bf5c109c42e27 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 8 Jan 2020 06:23:54 +0700 Subject: [PATCH 04/69] Remove error log when no private collection was found --- app/pencil-core/privateCollection/privateCollectionManager.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/pencil-core/privateCollection/privateCollectionManager.js b/app/pencil-core/privateCollection/privateCollectionManager.js index b4aaa6b0..fed0dbd6 100644 --- a/app/pencil-core/privateCollection/privateCollectionManager.js +++ b/app/pencil-core/privateCollection/privateCollectionManager.js @@ -11,8 +11,7 @@ PrivateCollectionManager.loadPrivateCollections = function () { var privateCollectionXmlLocation = path.join(PrivateCollectionManager.getPrivateCollectionDirectory(), "PrivateCollection.xml"); // privateCollectionXmlLocation.append("PrivateCollection.xml"); - var stat = fs.statSync(privateCollectionXmlLocation); - if (!stat) return; + if (!fs.existsSync(privateCollectionXmlLocation)) return; // var fileContents = FileIO.read(privateCollectionXmlLocation, ShapeDefCollectionParser.CHARSET); var fileContents = fs.readFileSync(privateCollectionXmlLocation, ShapeDefCollectionParser.CHARSET); From c1ae766cc69f0ba31490a437d5fd5bc2c74c1249 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 8 Jan 2020 06:24:28 +0700 Subject: [PATCH 05/69] Fix clickable prototype export template --- .../HTML/prototype.HTML/Resources/expand.png | Bin 0 -> 658 bytes .../HTML/prototype.HTML/Resources/fit.png | Bin 0 -> 616 bytes .../HTML/prototype.HTML/Resources/script.js | 59 ++++++++++---- .../HTML/prototype.HTML/Resources/style.css | 72 ++++++++++++++---- 4 files changed, 102 insertions(+), 29 deletions(-) create mode 100644 app/pencil-core/templates/HTML/prototype.HTML/Resources/expand.png create mode 100644 app/pencil-core/templates/HTML/prototype.HTML/Resources/fit.png diff --git a/app/pencil-core/templates/HTML/prototype.HTML/Resources/expand.png b/app/pencil-core/templates/HTML/prototype.HTML/Resources/expand.png new file mode 100644 index 0000000000000000000000000000000000000000..a9063294461e9cf38ca7ce9f8c3856f81e9105fd GIT binary patch literal 658 zcmV;D0&V??P)Px%Oi4sRRCt{2nypgAFc8Ood?;#ogF6cXb-HLYjv3HA10RY5Ug0#%;P6;bJONlv z9~KM-alM(+X_K_sO^50JW@?h=WB+ZM-EF`y48t&tp|Tcm&x6od@4!{yy_dj_(6~pg z%5|YZ{w*dz-xKJY!3(e{)Xz(Cx%g_)-yM*7?#YWQ3Mm0{;0?bBq09rui#8r)m%u4P zlk$)kV~HUB4bT=r)OhGFfa_J)62WJDr{xzTz|2uEErQSZ8HojebRwu35AojsZ4p$B z2bqtcmI&&`gWN74EkY9GL3SII5+RxKAnymnijdTJ&ON5O2xjNB^ z27MvzQ^z`$Y_qfgvGIKBY_q5UQpt>@B1j1!oykcif`kBCX{;n7#0sFD!&4U_=J$B2 z1ZGoujY|1vm(D{x!NZp2AfLvXv-Aij4fU(?YAzAr(baL+CE$APv~qa9<vZQg;ZfZP*mBe_iZS;C`)fo>fPMUvX>(Ne1i7QK sP6mHY&;;mv0(~=h0Sv=148s^Mzse?o=X229R{#J207*qoM6N<$f;crUWB>pF literal 0 HcmV?d00001 diff --git a/app/pencil-core/templates/HTML/prototype.HTML/Resources/fit.png b/app/pencil-core/templates/HTML/prototype.HTML/Resources/fit.png new file mode 100644 index 0000000000000000000000000000000000000000..497b3fc6f22c130f6fba002aedb76e4424392e78 GIT binary patch literal 616 zcmV-u0+;=XP)Px%B1uF+RCt{2nmtwmF%(9xKb7u5YT1Dnvk+InBD9i4SWvqVmSBN3wpJEUTMX|U z&XAdTnR!V@dAAIZ0nflA@C|HZ2FgGM zEPw~#1NhN==t9}Kgugv%djr;r&)x^xzJOh$?H0HTy!TTvhJ+V(z!Jrmq!ADbFK8sZ z2ilgvrqMP(jML<)r~hVnK_%g`r*o(Ugu-(exa6MD79Q$3_wEN80c+}Sx{Xp2y269< zC#n$u)01El9`piWIugvnL!1C8FTpfC#0!9O63oNHFaeNXLXz+R*Mp{0BLlWgtZTwC zBnuD2SAd{d31dkX9>xoRehH}<9Ug21Kz<1(;lWM-0=Yh7Ex`5_nr@2b^z$?c0 znPIN17 literal 0 HcmV?d00001 diff --git a/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js b/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js index 1c1fed00..b7a68624 100644 --- a/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js +++ b/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js @@ -18,15 +18,18 @@ function scaleMap(page, r) { area.setAttribute("coords", coords.join(",")); var a = document.createElement("a"); - a.style.left = coords[0] + "px"; - a.style.top = coords[1] + "px"; - a.style.width = (coords[2] - coords[0]) + "px"; - a.style.height = (coords[3] - coords[1]) + "px"; + a.style.left = convertRatio(coords[0]) + "px"; + a.style.top = convertRatio(coords[1]) + "px"; + a.style.width = convertRatio(coords[2] - coords[0]) + "px"; + a.style.height = convertRatio(coords[3] - coords[1]) + "px"; a.setAttribute("href", area.getAttribute("href")); container.appendChild(a); }); } +function convertRatio(value) { + return parseFloat(value) * window.devicePixelRatio; +} function fitImages() { var pages = document.querySelectorAll("body > div.Page"); @@ -38,21 +41,28 @@ function fitImages() { pages.forEach(function (page) { if (page.offsetWidth == 0 || page.offsetHeight == 0) return; - W = page.offsetWidth - 30; - H = page.offsetHeight - 30; + W = page.offsetWidth - (window.useExpandedMode ? 200 : 40); + H = page.offsetHeight - 40; activePage = page; }); if (activePage && window.lastActivePage != activePage) { - document.querySelectorAll(".TOC > div").forEach(function (item) { + window.useExpandedMode = false; + invalidateExpandMode("dontFit"); + window.lastSize = null; + + document.body.querySelectorAll(".TOC > div").forEach(function (item) { var matched = item.classList.contains("Page_" + activePage.id); if (matched) { + document.title = item._name + " - " + window.originalTitle; item.classList.add("Focused"); item.focus(); } else { item.classList.remove("Focused"); } }); + + window.lastActivePage = activePage; } @@ -61,9 +71,9 @@ function fitImages() { var imgs = document.querySelectorAll("body > div.Page img"); imgs.forEach(function (img) { - var r = Math.max(img.naturalWidth / W, img.naturalHeight / H); + var r = window.useExpandedMode ? Math.min(img.naturalWidth / W, img.naturalHeight / H) : Math.max(img.naturalWidth / W, img.naturalHeight / H); - if (r < 1) r = 1; + if (r < 1 && !window.useExpandedMode) r = 1; var w = Math.round(img.naturalWidth / r); var h = Math.round(img.naturalHeight / r); @@ -167,15 +177,13 @@ function generateTOC() { item.classList.add("Page_" + page.id); item.setAttribute("tabindex", 0); - - imageWrapper.style.width = THUMB_DISPLAY_SIZE + "px"; + item._name = title.textContent; imageWrapper.setAttribute("href", "#" + page.id); item.appendChild(imageWrapper); var name = document.createElement("strong"); name.innerHTML = title.innerHTML; - item.appendChild(name); toc.appendChild(item); @@ -187,20 +195,45 @@ function generateTOC() { itemImage.style.width = w + "px"; itemImage.style.height = h + "px"; itemImage.src = dataUrl; + + imageWrapper.appendChild(name); }); }); document.body.appendChild(toc); } +function invalidateExpandMode(dontFit) { + if (window.useExpandedMode) { + document.body.classList.add("ExpandMode"); + } else { + document.body.classList.remove("ExpandMode"); + } + + if (!dontFit) fitImages(); +} + function boot() { + window.originalTitle = document.title; document.addEventListener("mousemove", handleMouseMove); var style = document.createElement("link"); style.setAttribute("rel", "stylesheet"); style.setAttribute("href", "Resources/style.css"); document.querySelector("head").appendChild(style); - workingThreadFunction(); generateTOC(); + workingThreadFunction(); + + + window.zoomToggleButton = document.createElement("button"); + window.zoomToggleButton.classList.add("ToggleZoomButton"); + window.zoomToggleButton.setAttribute("title", "Toggle expand/fit mode"); + document.body.appendChild(window.zoomToggleButton); + + window.zoomToggleButton.addEventListener("click", function () { + window.useExpandedMode = window.useExpandedMode ? false : true; + window.lastSize = null; + invalidateExpandMode(); + }, false); } window.onload = boot; diff --git a/app/pencil-core/templates/HTML/prototype.HTML/Resources/style.css b/app/pencil-core/templates/HTML/prototype.HTML/Resources/style.css index 1419b770..ab9db18d 100644 --- a/app/pencil-core/templates/HTML/prototype.HTML/Resources/style.css +++ b/app/pencil-core/templates/HTML/prototype.HTML/Resources/style.css @@ -20,14 +20,22 @@ body, html { top: 0px; right: 0px; bottom: 0px; - - display: flex; + background: #00000077; + text-align: center; +} +body:not(.ExpandMode) .Page { + display: flex; + flex-direction: column; align-items: center; justify-content: center; - background: #00000077; +} +body.ExpandMode .Page { + overflow: auto; + padding: 20px; + text-align: center; } .Page:not(:target) { - display: none; + display: none !important; } .Page > h2 { @@ -36,7 +44,10 @@ body, html { .Page .ImageContainer { box-shadow: 0px 0px 1em #00000077; } - +body.ExpandMode .Page .ImageContainer { + display: inline-block; + margin-bottom: 20px; +} .Page .ImageContainer { position: relative; } @@ -69,28 +80,36 @@ body.Active .Page .ImageContainer > .Links > a { .TOC > div { display: flex; flex-direction: column; - align-items: center; - padding: 1em; - background: transparent; - transition: background 0.2s ease; } -.TOC > div.Focused { +.TOC > div.Focused > a { background: #5294E2; } -.TOC > div:not(.Focused):hover { +.TOC > div:not(.Focused):hover > a { background: #5294E266; } +.TOC > div:not(.Focused):not(:hover) { + opacity: 0.7; +} .TOC > div + div { margin-top: 1em; } .TOC > div > a { + flex: 1 1 auto; + display: flex; + flex-direction: column; + align-items: center; + padding: 1em; + background: transparent; + transition: background 0.2s ease; + text-decoration: none; +} +.TOC > div > a > img { display: block; border: solid 2px #FFF; box-shadow: 0px 0px 5px #000; } - -.TOC > div > strong { +.TOC > div > a > strong { display: block; text-align: center; color: #FFF; @@ -98,9 +117,30 @@ body.Active .Page .ImageContainer > .Links > a { margin-top: 0.3em; } - - - +.ToggleZoomButton { + position: fixed; + top: 0.5em; + right: 0.5em; + width: 1.5em; + height: 1.5em; + padding: 0.3em; + box-sizing: content-box; + background: url(expand.png) 50% 50% no-repeat #CCCCCC; + background-origin: content-box; + background-size: contain; + + border: solid 1px #777; +} +.ToggleZoomButton:active { + margin-top: 1px; + margin-left: 1px; +} +.ToggleZoomButton:not(:hover) { + opacity: 0.3; +} +body.ExpandMode .ToggleZoomButton { + background-image: url(fit.png) +} From 917cda7bcd1569fd14681880e1def900b33c8841 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 8 Jan 2020 06:25:51 +0700 Subject: [PATCH 06/69] Fix wrong image size when pasting from clipboard in hidpi screens --- app/pencil-core/xferHelper/pngImageXferHelper.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/pencil-core/xferHelper/pngImageXferHelper.js b/app/pencil-core/xferHelper/pngImageXferHelper.js index 5b04db6d..68793910 100644 --- a/app/pencil-core/xferHelper/pngImageXferHelper.js +++ b/app/pencil-core/xferHelper/pngImageXferHelper.js @@ -32,7 +32,8 @@ PNGImageXferHelper.prototype.handleDataImpl = function (imageData, shapeId) { this.canvas.insertShape(bitmapDef, this.canvas.lastMouse || {x: 10, y: 10}); if (this.canvas.currentController) { - var dim = new Dimension(imageData.w, imageData.h); + var ratio = window.devicePixelRatio || 1; + var dim = new Dimension(Math.round(imageData.w / ratio), Math.round(imageData.h / ratio)); this.canvas.currentController.setProperty("imageData", imageData); this.canvas.currentController.setProperty("box", dim); this.canvas.invalidateEditors(); @@ -67,7 +68,8 @@ JPGGIFImageXferHelper.prototype.handleData = function (url) { var thiz = this; var handler = function (imageData) { - var dim = new Dimension(imageData.w, imageData.h); + var ratio = window.devicePixelRatio || 1; + var dim = new Dimension(Math.round(imageData.w / ratio), Math.round(imageData.h / ratio)); thiz.canvas.currentController.setProperty("imageData", imageData); thiz.canvas.currentController.setProperty("box", dim); thiz.canvas.invalidateEditors(); From 34f088681149250da28e0417f120cfc392c32a5a Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 8 Jan 2020 07:41:08 +0700 Subject: [PATCH 07/69] Adding support for property change mask to partially change a property in a group of targets --- app/pencil-core/common/util.js | 27 +++++++++++++++++++++++++++ app/pencil-core/propertyType/font.js | 8 ++++++++ app/pencil-core/target/group.js | 4 ++-- app/pencil-core/target/shape.js | 5 ++++- app/pencil-core/target/targetSet.js | 4 ++-- app/views/editors/SharedFontEditor.js | 18 +++++++++--------- 6 files changed, 52 insertions(+), 14 deletions(-) diff --git a/app/pencil-core/common/util.js b/app/pencil-core/common/util.js index a6c761ee..342a8fbc 100644 --- a/app/pencil-core/common/util.js +++ b/app/pencil-core/common/util.js @@ -2466,6 +2466,33 @@ function copyFolderRecursiveSync(source, target) { } } +function PropertyMask(names) { + this.names = (typeof(names) == "string") ? [names] : names; +} +PropertyMask.prototype.and = function (other) { + return new PropertyMask(this.names.concat.other.names); +}; +PropertyMask.prototype.contains = function (name) { + return this.names.indexOf(name) >= 0; +}; +PropertyMask.prototype.apply = function (original, newValue) { + if (!original || !newValue) return original; + var value = new original.constructor(); + for (var name in original) { + if (original.hasOwnProperty(name)) { + value[name] = original[name]; + } + } + + for (var name of this.names) { + if (newValue.hasOwnProperty(name)) { + value[name] = newValue[name]; + } + } + + return value; +}; + function getStaticFilePath(subPath) { var filePath = __dirname; if (!subPath) return filePath; diff --git a/app/pencil-core/propertyType/font.js b/app/pencil-core/propertyType/font.js index 7b6d42e6..971b0f48 100644 --- a/app/pencil-core/propertyType/font.js +++ b/app/pencil-core/propertyType/font.js @@ -9,6 +9,14 @@ function Font() { Font.REG_EX = /^([^\|]+)\|([^\|]+)\|([^\|]+)\|([0-9]+[a-z]+)$/i; Font.REG_EX_2 = /^([^\|]+)\|([^\|]+)\|([^\|]+)\|([0-9]+[a-z]+)\|([^\|]+)$/i; Font.REG_EX_3 = /^([^\|]+)\|([^\|]+)\|([^\|]+)\|([0-9]+[a-z]+)\|([^\|]+)\|([0-9\.]+)$/i; + +Font.FAMILY = new PropertyMask("family"); +Font.STYLE = new PropertyMask("style"); +Font.WEIGHT = new PropertyMask("weight"); +Font.SIZE = new PropertyMask("size"); +Font.DECOR = new PropertyMask("decor"); +Font.LINE_HEIGHT = new PropertyMask("lineHeight"); + Font.fromString = function (literal) { var font = new Font(); font.decor = "none"; diff --git a/app/pencil-core/target/group.js b/app/pencil-core/target/group.js index 2a38d9d1..1f411f69 100644 --- a/app/pencil-core/target/group.js +++ b/app/pencil-core/target/group.js @@ -75,9 +75,9 @@ Group.prototype.getProperties = function () { Group.prototype.getPropertyGroups = function () { return [this.propertyGroup]; }; -Group.prototype.setProperty = function (name, value) { +Group.prototype.setProperty = function (name, value, nested, mask) { for (t in this.targets) { - this.targets[t].setProperty(name, value); + this.targets[t].setProperty(name, value, nested, mask); } }; Group.prototype.getProperty = function (name) { diff --git a/app/pencil-core/target/shape.js b/app/pencil-core/target/shape.js index 25807d71..3cc41119 100644 --- a/app/pencil-core/target/shape.js +++ b/app/pencil-core/target/shape.js @@ -362,7 +362,10 @@ Shape.prototype.evalExpression = function (expression, value) { return defaultValue; } }; -Shape.prototype.setProperty = function (name, value, nested) { +Shape.prototype.setProperty = function (name, value, nested, mask) { + if (mask) { + value = mask.apply(this.getProperty(name), value); + } if (!nested) { this._appliedTargets = []; this.canvas.run( function () { diff --git a/app/pencil-core/target/targetSet.js b/app/pencil-core/target/targetSet.js index 5194cc9b..b3eaa3c7 100644 --- a/app/pencil-core/target/targetSet.js +++ b/app/pencil-core/target/targetSet.js @@ -64,9 +64,9 @@ TargetSet.prototype.applyBehaviorForProperty = function (name) { TargetSet.prototype.getPropertyGroups = function () { return [this.propertyGroup]; }; -TargetSet.prototype.setProperty = function (name, value) { +TargetSet.prototype.setProperty = function (name, value, nested, mask) { for (t in this.targets) { - this.targets[t].setProperty(name, value); + this.targets[t].setProperty(name, value, nested, mask); } }; TargetSet.prototype.getProperty = function (name, any) { diff --git a/app/views/editors/SharedFontEditor.js b/app/views/editors/SharedFontEditor.js index b9f493ee..d5df4af7 100644 --- a/app/views/editors/SharedFontEditor.js +++ b/app/views/editors/SharedFontEditor.js @@ -20,7 +20,7 @@ SharedFontEditor.prototype.setup = function () { FontEditor._setupFontCombo(this.fontCombo, function(event) { if (!thiz.target || !thiz.font || OnScreenTextEditor.isEditing) return; thiz.font.family = thiz.fontCombo.getSelectedItem().family; - thiz._applyValue(); + thiz._applyValue(Font.FAMILY); }); this.bind("p:ItemSelected", this.invalidateWeightCombo, this.fontCombo); @@ -28,20 +28,20 @@ SharedFontEditor.prototype.setup = function () { this.pixelFontSize.addEventListener("input", function(event) { if (!thiz.target || !thiz.font || OnScreenTextEditor.isEditing || thiz.pixelFontSize.value == "" || thiz.pixelFontSize.value == "0") return; thiz.font.size = thiz.pixelFontSize.value + "px"; - thiz._applyValue(); + thiz._applyValue(Font.SIZE); }, false); this.pixelFontSize.addEventListener("wheel", function(event) { if (!thiz.target || !thiz.font || OnScreenTextEditor.isEditing || thiz.pixelFontSize.value == "") return; thiz.font.size = thiz.pixelFontSize.value + "px"; - thiz._applyValue(); + thiz._applyValue(Font.SIZE); }); this.pixelFontSize.addEventListener("keyup", function(event) { if (event.keyCode == 13 || event.keyCode == 10) { if (!thiz.target || !thiz.font || OnScreenTextEditor.isEditing || thiz.pixelFontSize.value == "") return; thiz.pixelFontSize.value = Math.max(5, parseInt(thiz.pixelFontSize.value, 10)); thiz.font.size = thiz.pixelFontSize.value + "px"; - thiz._applyValue(); + thiz._applyValue(Font.SIZE); } }, false); this.pixelFontSize.addEventListener("change", function(event) { @@ -60,13 +60,13 @@ SharedFontEditor.prototype.setup = function () { checked = true; } thiz.font.weight = checked ? "bold" : "normal"; - thiz._applyValue(); + thiz._applyValue(Font.WEIGHT); }, false); this.bind("p:ItemSelected", function () { if (!thiz.target || !thiz.font || OnScreenTextEditor.isEditing) return; thiz.font.weight = thiz.weightCombo.getSelectedItem(); - thiz._applyValue(); + thiz._applyValue(Font.WEIGHT); }, this.weightCombo); @@ -82,7 +82,7 @@ SharedFontEditor.prototype.setup = function () { } thiz.font.style = checked ? "italic" : "normal"; - thiz._applyValue(); + thiz._applyValue(Font.STYLE); }, false); this.formatPainterButton.addEventListener("click", function (event) { @@ -139,10 +139,10 @@ SharedFontEditor.prototype.beginFormatPainter = function () { SharedFontEditor.prototype.isDisabled = function () { return this.disabledEditor; }; -SharedFontEditor.prototype._applyValue = function () { +SharedFontEditor.prototype._applyValue = function (attrMask) { var thiz = this; Pencil.activeCanvas.run(function() { - this.setProperty(SharedFontEditor.PROPERTY_NAME, thiz.font); + this.setProperty(SharedFontEditor.PROPERTY_NAME, thiz.font, false, attrMask); }, this.target, Util.getMessage("action.apply.properties.value")) }; SharedFontEditor.prototype.attach = function (target) { From 2c29b4b202d96b85f417a85d065b35fcd491caa0 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 8 Jan 2020 16:20:58 +0700 Subject: [PATCH 08/69] Disable dev tool auto open in dev mode --- app/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/index.js b/app/index.js index 5b5ea1ec..cb09c411 100644 --- a/app/index.js +++ b/app/index.js @@ -72,7 +72,7 @@ function createWindow() { mainWindow.maximize(); if (devEnable) { - mainWindow.webContents.openDevTools(); + //mainWindow.webContents.openDevTools(); } else { mainWindow.setMenu(null); } From 80eb31de91f57208ba46305c9c80b9c6f1a961b9 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 8 Jan 2020 16:21:17 +0700 Subject: [PATCH 09/69] Implement partial property changes for all remaining types --- app/pencil-core/common/Canvas.js | 2 +- app/pencil-core/propertyType/alignment.js | 4 ++++ app/pencil-core/propertyType/shadowStyle.js | 6 ++++++ app/pencil-core/propertyType/strokeStyle.js | 4 ++++ app/pencil-core/target/shape.js | 5 ++++- app/views/editors/AlignEditor.js | 2 +- app/views/editors/FontEditor.js | 22 ++++++++++---------- app/views/editors/PropertyEditor.js | 4 ++-- app/views/editors/ShadowStyleEditor.js | 15 ++++++++++--- app/views/editors/SharedBorderStyleEditor.js | 8 +++---- app/views/editors/SharedPropertyEditor.js | 2 +- app/views/editors/StrokeEditor.js | 4 ++-- 12 files changed, 52 insertions(+), 26 deletions(-) diff --git a/app/pencil-core/common/Canvas.js b/app/pencil-core/common/Canvas.js index 95f85bdf..f7c1874b 100644 --- a/app/pencil-core/common/Canvas.js +++ b/app/pencil-core/common/Canvas.js @@ -1925,7 +1925,7 @@ Canvas.prototype.invalidateEditors = function (source) { e.invalidate(); } - // Pencil.invalidateSharedEditor(); + Pencil.invalidateSharedEditor(); // invalidates all selections for (var i = 0; i < this.selectionContainer.childNodes.length; i++) { var rect = this.selectionContainer.childNodes[i]; diff --git a/app/pencil-core/propertyType/alignment.js b/app/pencil-core/propertyType/alignment.js index 2adca1cc..a7a49a01 100644 --- a/app/pencil-core/propertyType/alignment.js +++ b/app/pencil-core/propertyType/alignment.js @@ -2,6 +2,10 @@ function Alignment(h, v) { this.h = h ? h : 0; this.v = v ? v : 0; } + +Alignment.H = new PropertyMask("h"); +Alignment.V = new PropertyMask("v"); + Alignment.REG_EX = /^([0-9]+)\,([0-9]+)$/; Alignment.fromString = function(literal) { var align = new Alignment(0, 0); diff --git a/app/pencil-core/propertyType/shadowStyle.js b/app/pencil-core/propertyType/shadowStyle.js index 26c48072..289b3f4b 100644 --- a/app/pencil-core/propertyType/shadowStyle.js +++ b/app/pencil-core/propertyType/shadowStyle.js @@ -8,6 +8,12 @@ function ShadowStyle() { ShadowStyle.DEFAULT_COLOR = "#000000"; +ShadowStyle.DX = new PropertyMask("family"); +ShadowStyle.DY = new PropertyMask("dy"); +ShadowStyle.SIZE = new PropertyMask("size"); +ShadowStyle.OPACITY = new PropertyMask("opacity"); +ShadowStyle.COLOR = new PropertyMask("color"); + ShadowStyle.REG_EX = /^([^\|]+)\|([^\|]+)\|([^\|]+)(\|([^\|]+))?(\|([^\|]+))?$/i; ShadowStyle.fromString = function (literal) { var shadowStyle = new ShadowStyle(); diff --git a/app/pencil-core/propertyType/strokeStyle.js b/app/pencil-core/propertyType/strokeStyle.js index 350e92db..de574ac7 100644 --- a/app/pencil-core/propertyType/strokeStyle.js +++ b/app/pencil-core/propertyType/strokeStyle.js @@ -2,6 +2,10 @@ function StrokeStyle(w, array) { this.w = (typeof(w) == "number") ? w : 1; this.array = typeof(array) != "undefined" ? array : null; } + +StrokeStyle.W = new PropertyMask("w"); +StrokeStyle.ARRAY = new PropertyMask("array"); + StrokeStyle.REG_EX = /^([0-9]+)\|([0-9 \,]*)$/; StrokeStyle.fromString = function(literal) { var style = new StrokeStyle(); diff --git a/app/pencil-core/target/shape.js b/app/pencil-core/target/shape.js index 3cc41119..e9b97e01 100644 --- a/app/pencil-core/target/shape.js +++ b/app/pencil-core/target/shape.js @@ -364,7 +364,10 @@ Shape.prototype.evalExpression = function (expression, value) { }; Shape.prototype.setProperty = function (name, value, nested, mask) { if (mask) { - value = mask.apply(this.getProperty(name), value); + try { + value = mask.apply(this.getProperty(name), value); + } catch (e) { + } } if (!nested) { this._appliedTargets = []; diff --git a/app/views/editors/AlignEditor.js b/app/views/editors/AlignEditor.js index 88132c29..b51e9033 100644 --- a/app/views/editors/AlignEditor.js +++ b/app/views/editors/AlignEditor.js @@ -15,7 +15,7 @@ AlignEditor.prototype._handleClick = function (event) { b.setAttribute("checked", b == button); }); - this.fireChangeEvent(); + this.fireChangeEvent(button.parentNode == this.horizontalGroup ? Alignment.H : Alignment.V); }; AlignEditor.prototype.setValue = function (alignment) { this.horizontalGroup.querySelectorAll("button").forEach(function (button) { diff --git a/app/views/editors/FontEditor.js b/app/views/editors/FontEditor.js index f0fdfc6e..52fb49e1 100644 --- a/app/views/editors/FontEditor.js +++ b/app/views/editors/FontEditor.js @@ -37,14 +37,14 @@ FontEditor._loadFontItems = function (fontCombo, withNullValue) { FontEditor.prototype.setup = function () { var thiz = this; FontEditor._setupFontCombo(this.fontCombo, function () { - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.FAMILY); }); this.bind("p:ItemSelected", this.invalidateWeightCombo, this.fontCombo); this.pixelFontSize.addEventListener("input", function(event) { if (!thiz.font || OnScreenTextEditor.isEditing || thiz.pixelFontSize.value == "" || thiz.pixelFontSize.value < 5) return; - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.SIZE); }, false); this.pixelFontSize.addEventListener("keyup", function(event) { if (event.keyCode == 13 || event.keyCode == 10) { @@ -52,19 +52,19 @@ FontEditor.prototype.setup = function () { if (thiz.pixelFontSize.value == "" || thiz.pixelFontSize.value < 5) { thiz.pixelFontSize.value = 5; } - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.SIZE); } }, false); this.pixelFontSize.addEventListener("wheel", function(event) { if (!thiz.font || OnScreenTextEditor.isEditing || thiz.pixelFontSize.value == "" || thiz.pixelFontSize.value < 5) return; - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.SIZE); }); this.pixelFontSize.addEventListener("change", function(event) { if (!thiz.font || OnScreenTextEditor.isEditing) return; if (thiz.pixelFontSize.value == "" || thiz.pixelFontSize.value < 5) { thiz.pixelFontSize.value = 5; } - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.SIZE); }, false); this.boldButton.addEventListener("click", function(event) { @@ -76,12 +76,12 @@ FontEditor.prototype.setup = function () { thiz.boldButton.setAttribute("checked", "true"); checked = true; } - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.WEIGHT); }, false); this.bind("p:ItemSelected", function () { if (!thiz.font || OnScreenTextEditor.isEditing) return; - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.WEIGHT); }, this.weightCombo); this.italicButton.addEventListener("click", function(event) { @@ -94,7 +94,7 @@ FontEditor.prototype.setup = function () { checked = true; } - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.STYLE); }, false); this.lineHeight.addEventListener("keyup", function(event) { @@ -103,19 +103,19 @@ FontEditor.prototype.setup = function () { if (thiz.lineHeight.value == "" || thiz.lineHeight.value < 0) { thiz.lineHeight.value = 0; } - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.WEIGHT); } }, false); this.lineHeight.addEventListener("wheel", function(event) { if (!thiz.font || OnScreenTextEditor.isEditing || thiz.lineHeight.value == "" || thiz.lineHeight.value < 0) return; - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.LINE_HEIGHT); }); this.lineHeight.addEventListener("change", function(event) { if (!thiz.font || OnScreenTextEditor.isEditing) return; if (thiz.lineHeight.value == "" || thiz.lineHeight.value < 0) { thiz.lineHeight.value = 0; } - thiz.fireChangeEvent(); + thiz.fireChangeEvent(Font.LINE_HEIGHT); }, false); diff --git a/app/views/editors/PropertyEditor.js b/app/views/editors/PropertyEditor.js index 9e831824..0a762647 100644 --- a/app/views/editors/PropertyEditor.js +++ b/app/views/editors/PropertyEditor.js @@ -4,7 +4,7 @@ function PropertyEditor() { } __extend(BaseTemplatedWidget, PropertyEditor); -PropertyEditor.prototype.fireChangeEvent = function () { +PropertyEditor.prototype.fireChangeEvent = function (mask) { this.modified = true; - Dom.emitEvent("p:ValueChanged", this.node(), {}); + Dom.emitEvent("p:ValueChanged", this.node(), {mask: mask}); }; diff --git a/app/views/editors/ShadowStyleEditor.js b/app/views/editors/ShadowStyleEditor.js index 2fc5512b..000fc7be 100644 --- a/app/views/editors/ShadowStyleEditor.js +++ b/app/views/editors/ShadowStyleEditor.js @@ -27,7 +27,7 @@ ShadowStyleEditor.prototype.setup = function () { this.selector.addEventListener("ValueChange", function (event) { thiz.color = thiz.selector.getColor().toRGBString(); thiz.invalidateColorDisplay(); - thiz.fireChangeEvent(); + thiz.fireChangeEvent(ShadowStyle.COLOR); }, false); this.selector.addEventListener("p:CloseColorSelector", function (event) { @@ -37,8 +37,17 @@ ShadowStyleEditor.prototype.setup = function () { } }, false); - this.node().addEventListener("change", function (event) { - thiz.fireChangeEvent(); + this.dx.addEventListener("change", function (event) { + thiz.fireChangeEvent(ShadowStyle.DX); + }, false); + this.dy.addEventListener("change", function (event) { + thiz.fireChangeEvent(ShadowStyle.DY); + }, false); + this.size.addEventListener("change", function (event) { + thiz.fireChangeEvent(ShadowStyle.SIZE); + }, false); + this.opacity.addEventListener("change", function (event) { + thiz.fireChangeEvent(ShadowStyle.OPACITY); }, false); }; ShadowStyleEditor.prototype.setValue = function (shadowStyle) { diff --git a/app/views/editors/SharedBorderStyleEditor.js b/app/views/editors/SharedBorderStyleEditor.js index ccc5c726..8af60819 100644 --- a/app/views/editors/SharedBorderStyleEditor.js +++ b/app/views/editors/SharedBorderStyleEditor.js @@ -14,10 +14,10 @@ SharedBorderStyleEditor.prototype.setup = function () { var thiz = this; this.editor.addEventListener("p:ItemSelected", function (event) { - thiz.handleCommandEvent(); + thiz.handleCommandEvent(StrokeStyle.ARRAY); }, false); this.editor.addEventListener("input", function (event) { - thiz.handleCommandEvent(); + thiz.handleCommandEvent(StrokeStyle.W); }, false); this.editor.addEventListener("keypress", function (event) { @@ -27,11 +27,11 @@ SharedBorderStyleEditor.prototype.setup = function () { }, false); }; -SharedBorderStyleEditor.prototype.handleCommandEvent = function () { +SharedBorderStyleEditor.prototype.handleCommandEvent = function (mask) { var thiz = this; var style = thiz.editor.getValue(); Pencil.activeCanvas.run(function () { - this.setProperty(SharedBorderStyleEditor.PROPERTY_NAME, thiz.editor.getValue()); + this.setProperty(SharedBorderStyleEditor.PROPERTY_NAME, thiz.editor.getValue(), false, mask); Pencil.activeCanvas.snappingHelper.updateSnappingGuide(this); thiz.invalidate(); Pencil.activeCanvas.invalidateEditors(thiz); diff --git a/app/views/editors/SharedPropertyEditor.js b/app/views/editors/SharedPropertyEditor.js index 81226ecf..62b8388e 100644 --- a/app/views/editors/SharedPropertyEditor.js +++ b/app/views/editors/SharedPropertyEditor.js @@ -18,7 +18,7 @@ SharedPropertyEditor.prototype.setup = function () { if (!editor) return; var propertyName = editor._property.name; - thiz.target.setProperty(propertyName, thiz.propertyEditor[propertyName].getValue()); + thiz.target.setProperty(propertyName, thiz.propertyEditor[propertyName].getValue(), false, event.mask); thiz.validationEditorUI(); }, false); diff --git a/app/views/editors/StrokeEditor.js b/app/views/editors/StrokeEditor.js index 69179d0e..7a034972 100644 --- a/app/views/editors/StrokeEditor.js +++ b/app/views/editors/StrokeEditor.js @@ -61,11 +61,11 @@ StrokeEditor.prototype.setup = function () { this.styleCombo.setItems(strokeItems); var thiz = this; this.styleCombo.addEventListener("p:ItemSelected", function (event) { - thiz.fireChangeEvent(); + thiz.fireChangeEvent(StrokeStyle.ARRAY); }, false); this.strokeWidth.addEventListener("input", function (event) { if (thiz.strokeWidth.value == "") thiz.strokeWidth.value = 1; - thiz.fireChangeEvent(); + thiz.fireChangeEvent(StrokeStyle.W); }, false); }; From 57b5e26ad7b4f3e1040f786161e407dca290fe06 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 15 Jan 2020 12:45:03 +0700 Subject: [PATCH 10/69] Refactor how snapping was calculated and handled --- .../canvasHelper/snappingHelper.js | 302 ++++++------------ app/pencil-core/common/Canvas.js | 100 +----- app/pencil-core/editor/geometryEditor.js | 101 ++---- 3 files changed, 128 insertions(+), 375 deletions(-) diff --git a/app/pencil-core/canvasHelper/snappingHelper.js b/app/pencil-core/canvasHelper/snappingHelper.js index 5d2f2f87..05eaf696 100644 --- a/app/pencil-core/canvasHelper/snappingHelper.js +++ b/app/pencil-core/canvasHelper/snappingHelper.js @@ -113,20 +113,21 @@ SnappingHelper.prototype.rebuildSnappingGuide = function () { } var margin = (Pencil.controller && !this.canvas.options.ignorePageMarging) ? Pencil.controller.getDocumentPageMargin() : 0; - if (margin) { - var uid = Util.newUUID(); - this.snappingGuide[uid] = { - vertical: [ - new SnappingData("MarginSnap", margin, "Left", true, uid), - new SnappingData("MarginSnap", this.canvas.width - margin, "Right", true, uid) - ], - horizontal: [ - new SnappingData("MarginSnap", margin, "Top", false, uid), - new SnappingData("MarginSnap", this.canvas.height - margin, "Bottom", false, uid) - ] - }; - - } + margin = parseInt(margin, 10); + if (isNaN(margin) || margin < 0) margin = 0; + var uid = Util.newUUID(); + var snap = { + vertical: [ + new SnappingData("MarginSnap", margin, "Left", true, uid), + new SnappingData("MarginSnap", this.canvas.width - margin, "Right", true, uid) + ], + horizontal: [ + new SnappingData("MarginSnap", margin, "Top", false, uid), + new SnappingData("MarginSnap", this.canvas.height - margin, "Bottom", false, uid) + ] + }; + this.snappingGuide[uid] = snap; + console.log("Margin snap", snap); this.sortData(); }; @@ -148,6 +149,9 @@ SnappingHelper.prototype.updateSnappingGuide = function (controller, remove) { this.sortData(); } }; +SnappingHelper.prototype.onControllerSnapshot = function (controller) { + this.lastSnappingGuideSnapshot = (controller && controller.getSnappingGuide) ? controller.getSnappingGuide() : null; +}; SnappingHelper.prototype.sortData = function () { var x = []; var y = []; @@ -162,105 +166,94 @@ SnappingHelper.prototype.sortData = function () { this.snappedX = false; this.snappedY = false; }; -SnappingHelper.prototype.findSnapping = function (drawX, drawY, ghost, snap, shift, grid) { - if (!this.isSnappingEnabled()) return; - try { - if (drawX && !grid) { - this.clearSnappingGuideX(); - } - if (drawY && !grid) { - this.clearSnappingGuideY(); - } - - //debug("start ***"); - if (!ghost && (!this.canvas.controllerHeld || !this.canvas.currentController || !this.canvas.currentController.getSnappingGuide)) return null; - - var _snap = snap ? snap : Pencil.SNAP; - if (shift) { - _snap = 1; - } - - var b = !ghost ? this.canvas.currentController.getSnappingGuide() : ghost; - - var snappingData = this.findSnappingImpl(this.canvas.currentController, b, _snap, grid); - var currentDx = Pencil.SNAP + 10; - var currentDy = Pencil.SNAP + 10; - if (grid) { - currentDx = Pencil.getGridSize().w; - currentDy = Pencil.getGridSize().h; - } - - var snapDelta = { - dx: 0, dy: 0 - }; - - if (snappingData.bestVertical) { - if (Math.abs(snappingData.bestVertical.dx) < Math.abs(currentDx)) { - currentDx = snappingData.bestVertical.dx; - } - - if (Math.abs(currentDx) < _snap) { - if (drawX && !grid) { - for (var l = 0; l < snappingData.verticals.length; l++) { - var verticalGuide = document.createElementNS(PencilNamespaces.svg, "line"); +SnappingHelper.prototype.applySnapping = function (dx, dy, controller) { + if (!this.isSnappingEnabled()) return null; + if (!this.lastSnappingGuideSnapshot) return null; + var currentControllerId = controller.id; + + var xsnap = this.applySnappingValue(dx, this.lastSnappingGuideSnapshot.vertical, this.lastXData, controller); + var ysnap = this.applySnappingValue(dy, this.lastSnappingGuideSnapshot.horizontal, this.lastYData, controller); + + this.drawSnaps(xsnap, ysnap); + + return { + xsnap: xsnap, + ysnap: ysnap + }; +}; +SnappingHelper.prototype.drawSnaps = function (xsnap, ysnap) { + var thiz = this; - verticalGuide.setAttribute("class", snappingData.verticals[l].x.type); - verticalGuide.setAttribute("x1", Math.round(snappingData.verticals[l].x.pos) * this.canvas.zoom); - verticalGuide.setAttribute("y1", 0); - verticalGuide.setAttribute("x2", Math.round(snappingData.verticals[l].x.pos) * this.canvas.zoom); - verticalGuide.setAttribute("y2", this.canvas.height * this.canvas.zoom); + this.clearSnappingGuideX(); + if (xsnap && xsnap.matchingGuides) { + xsnap.matchingGuides.forEach(function (guide) { + var verticalGuide = document.createElementNS(PencilNamespaces.svg, "line"); - this.snappingGuideContainerX.appendChild(verticalGuide); + verticalGuide.setAttribute("class", guide.type); + verticalGuide.setAttribute("x1", Math.round(guide.pos) * thiz.canvas.zoom); + verticalGuide.setAttribute("y1", 0); + verticalGuide.setAttribute("x2", Math.round(guide.pos) * thiz.canvas.zoom); + verticalGuide.setAttribute("y2", thiz.canvas.height * thiz.canvas.zoom); - this._snappingGuideContainerXEmpty = false; - } - } - if (grid) { - this.unsnapX = (Pencil.getGridSize().w / 2) + 3; - } else { - this.unsnapX = Pencil.UNSNAP; - } - snapDelta.dx = currentDx; - } - } + thiz.snappingGuideContainerX.appendChild(verticalGuide); - if (snappingData.bestHorizontal) { - if (Math.abs(snappingData.bestHorizontal.dy) < Math.abs(currentDy)) { - currentDy = snappingData.bestHorizontal.dy; - } - if (Math.abs(currentDy) < _snap) { - if (drawY && !grid) { - for (var l = 0; l < snappingData.horizontals.length; l++) { - var horizontalGuide = document.createElementNS(PencilNamespaces.svg, "line"); + thiz._snappingGuideContainerXEmpty = false; + }); + } + + this.clearSnappingGuideY(); + if (ysnap && ysnap.matchingGuides) { + ysnap.matchingGuides.forEach(function (guide) { + var horizontalGuide = document.createElementNS(PencilNamespaces.svg, "line"); - horizontalGuide.setAttribute("class", snappingData.horizontals[l].y.type); - horizontalGuide.setAttribute("x1", 0 * this.canvas.zoom); - horizontalGuide.setAttribute("y1", Math.round(snappingData.horizontals[l].y.pos) * this.canvas.zoom); - horizontalGuide.setAttribute("x2", this.canvas.width * this.canvas.zoom); - horizontalGuide.setAttribute("y2", Math.round(snappingData.horizontals[l].y.pos) * this.canvas.zoom); + horizontalGuide.setAttribute("class", guide.type); + horizontalGuide.setAttribute("x1", 0 * thiz.canvas.zoom); + horizontalGuide.setAttribute("y1", Math.round(guide.pos) * thiz.canvas.zoom); + horizontalGuide.setAttribute("x2", thiz.canvas.width * thiz.canvas.zoom); + horizontalGuide.setAttribute("y2", Math.round(guide.pos) * thiz.canvas.zoom); - this.snappingGuideContainerY.appendChild(horizontalGuide); + thiz.snappingGuideContainerY.appendChild(horizontalGuide); - this._snappingGuideContainerYEmpty = false; - } - } - if (grid) { - this.unsnapY = (Pencil.getGridSize().h / 2) + 3; - } else { - this.unsnapY = Pencil.UNSNAP; - } - snapDelta.dy = currentDy; + thiz._snappingGuideContainerYEmpty = false; + }); + } +}; +SnappingHelper.prototype.applySnappingValue = function (d, controllerPositions, canvasPositions, controller) { + var currentControllerId = controller.id; + var closestDistance = Number.MAX_VALUE; + var closestDelta = undefined; + var closestGuide = undefined; + var matchingGuides = []; + canvasPositions.forEach(function (canvasGuide) { + if (!canvasGuide || canvasGuide.id == currentControllerId || canvasGuide.disabled) return; + if (controller.containsControllerId && controller.containsControllerId(canvasGuide.id)) return; + + controllerPositions.forEach(function (controllerGuide) { + if (!controllerGuide || controllerGuide.disabled) return; + + var delta = canvasGuide.pos - (controllerGuide.pos + d); + var distance = Math.abs(delta); + if (distance < closestDistance) { + closestDistance = distance; + closestDelta = delta; + closestGuide = canvasGuide; + matchingGuides = [canvasGuide]; + } else if (delta == closestDelta) { + matchingGuides.push(canvasGuide); } + }); + }); + + if (closestDistance <= Pencil.SNAP) { + return { + d: d + closestDelta, + matchingGuides: matchingGuides } - - //debug("end ***"); - return snapDelta; - } catch(e) { - error(e); + } else { + return null; } - - return null; }; + SnappingHelper.prototype.sort = function(d) { for (var i = 0; i < d.length - 1; i++) { for (var j = i + 1; j < d.length; j++) { @@ -283,107 +276,4 @@ SnappingHelper.prototype.allowSnapping = function (v, x) { } return false; -}; -SnappingHelper.prototype.findSnappingImpl = function(controller, ghost, snap, grid) { - - try { - var c = !ghost ? controller.getSnappingGuide() : ghost; - var currentControllerId = controller.id; - - var verticals = []; - var horizontals = []; - - var x = this.lastXData; - var y = this.lastYData; - - var _minsnap = snap ? snap : Pencil.SNAP; - - var bestV = null; - for (var v = 0; v < c.vertical.length; v++) { - var vertical = { }; - for (var i = 0; i < x.length; i++) { - if (!x[i].disabled - && !c.vertical[v].disabled - && x[i].id != currentControllerId - && (!controller.containsControllerId || !controller.containsControllerId(x[i].id)) - && this.allowSnapping(c.vertical[v], x[i])) { - if ((grid && x[i].type == "GridSnap" && Math.abs(x[i].pos - c.vertical[v].pos) <= _minsnap) - || (!grid && x[i].type != "GridSnap" && Math.abs(x[i].pos - c.vertical[v].pos) <= _minsnap)) { - - _minsnap = Math.abs(x[i].pos - c.vertical[v].pos); - vertical.x = x[i]; - vertical.dx = x[i].pos - c.vertical[v].pos; - - if (!bestV || Math.abs(bestV.dx > vertical.dx)) { - bestV = vertical; - } - } - } - } - if (vertical.x) { - verticals.push(vertical); - } - } - - //debug("found: " + verticals.length); - //for (var v = 0; v < verticals.length; v++) { - // debug(verticals[v].toSource()); - //} - - // if (verticals.length > 0) { - // while (Math.abs(verticals[0].dx) != Math.abs(verticals[verticals.length - 1].dx)) { - // //debug("delete"); - // verticals.splice(0, 1); - // } - // } - - var _minsnap = snap ? snap : Pencil.SNAP; - - var bestH = null; - for (var v = 0; v < c.horizontal.length; v++) { - var horizontal = { }; - for (var i = 0; i < y.length; i++) { - if (!y[i].disabled - && !c.horizontal[v].disabled - && y[i].id != currentControllerId - && (!controller.containsControllerId || !controller.containsControllerId(y[i].id)) - && this.allowSnapping(c.horizontal[v], y[i])) { - if ((grid && y[i].type == "GridSnap" && Math.abs(y[i].pos - c.horizontal[v].pos) <= _minsnap) - || (!grid && y[i].type != "GridSnap" && Math.abs(y[i].pos - c.horizontal[v].pos) <= _minsnap)) { - - _minsnap = Math.abs(y[i].pos - c.horizontal[v].pos); - horizontal.y = y[i]; - horizontal.dy = y[i].pos - c.horizontal[v].pos; - - if (!bestH || Math.abs(bestH.dy > horizontal.dy)) { - bestH = horizontal; - } - } - } - } - if (horizontal.y) { - horizontals.push(horizontal); - } - } - - //debug("found: " + horizontals.length); - //for (var v = 0; v < horizontals.length; v++) { - // debug(horizontals[v].toSource()); - //} - - // if (horizontals.length > 0) { - // while (Math.abs(horizontals[0].dy) != Math.abs(horizontals[horizontals.length - 1].dy)) { - // horizontals.splice(0, 1); - // } - // } - - return { - verticals: verticals.sort(function (a, b) { return Math.abs(a.dx) - Math.abs(b.dx)}), - horizontals: horizontals.sort(function (a, b) { return Math.abs(a.dy) - Math.abs(b.dy)}), - bestVertical: bestV, - bestHorizontal: bestH - }; - } catch(e) { - Console.dumpError(e); - } -}; +}; \ No newline at end of file diff --git a/app/pencil-core/common/Canvas.js b/app/pencil-core/common/Canvas.js index f7c1874b..381578dc 100644 --- a/app/pencil-core/common/Canvas.js +++ b/app/pencil-core/common/Canvas.js @@ -1296,93 +1296,16 @@ Canvas.prototype.handleMouseMove = function (event, fake) { // this.oY = newY; this.hasMoved = true; - - var gridSize = Pencil.getGridSize(); - var snap = null; - if (Config.get("object.snapping.enabled", true) == true) { - snap = this.snappingHelper.findSnapping(accX - && !this.snappingHelper.snappedX, accY - && !this.snappingHelper.snappedY, null, null, - event.shiftKey); - } - if (Config.get("edit.snap.grid", false) == true) { - var snapGrid = this.snappingHelper.findSnapping(accX - && !this.snappingHelper.snappedX, accY - && !this.snappingHelper.snappedY, null, gridSize.w / 2, - event.shiftKey, true); - if (snap && snapGrid) { - if (snap.dx == 0) { - snap.dx = snapGrid.dx; - } - if (snap.dy == 0) { - snap.dy = snapGrid.dy; - } - } else { - snap = snapGrid; - } - // debug("snap grid: " + [snapGrid.dx, snapGrid.dy]); - } - // debug("snap: " + [snap.dx, snap.dy, this.snappedX, - // this.snappedY]); - if (!event.shiftKey - && snap - && ((snap.dx != 0 && !this.snappingHelper.snappedX && accX) - || (snap.dy != 0 && !this.snappingHelper.snappedY && accY) - )) { - if (snap.dx != 0 && !this.snappingHelper.snappedX) { - this.snappingHelper.snappedX = true; - this.snappingHelper.snapX = newX; - this.currentController._pSnapshot.lastDX += snap.dx; - // debug("snapX"); - } - if (snap.dy != 0 && !this.snappingHelper.snappedY) { - this.snappingHelper.snappedY = true; - this.snappingHelper.snapY = newY; - this.currentController._pSnapshot.lastDY += snap.dy; - // debug("snapY"); - } - this.currentController.moveBy(snap.dx * hdr, snap.dy * vdr); - } else { - var unsnapX = event.shiftKey - || (this.snappingHelper.snapX != 0 && (Math - .abs(this.snappingHelper.snapX - newX) > this.snappingHelper.unsnapX)); - var unsnapY = event.shiftKey - || (this.snappingHelper.snapY != 0 && (Math - .abs(this.snappingHelper.snapY - newY) > this.snappingHelper.unsnapY)); - // debug("unsnap: " + [unsnapX, unsnapY]); - - if (!this.snappingHelper.snappedX - && !this.snappingHelper.snappedY) { - this.currentController.moveFromSnapshot(dx * hdr, dy * vdr); - } else { - if (unsnapX || !this.snappingHelper.snappedX) { - this.currentController - .moveFromSnapshot( - dx * hdr, - this.snappingHelper.snappedY ? this.currentController._pSnapshot.lastDY * vdr - : dy * vdr); - } - if (unsnapY || !this.snappingHelper.snappedY) { - this.currentController - .moveFromSnapshot( - this.snappingHelper.snappedX ? this.currentController._pSnapshot.lastDX * hdr - : dx * hdr, dy * vdr); - this.snappingHelper.snapY = 0; - this.snappingHelper.snappedY = false; - } - if (unsnapX || !this.snappingHelper.snappedX) { - this.snappingHelper.snapX = 0; - this.snappingHelper.snappedX = false; - } - - if (unsnapX) { - this.snappingHelper.clearSnappingGuideX(); - } - if (unsnapY) { - this.snappingHelper.clearSnappingGuideY(); - } - } - } + + dx = dx * hdr; + dy = dy * vdr; + + var snapResult = this.snappingHelper.applySnapping(dx, dy, this.currentController); + if (snapResult && snapResult.xsnap) dx = snapResult.xsnap.d; + if (snapResult && snapResult.ysnap) dy = snapResult.ysnap.d; + + this.currentController.moveFromSnapshot(dx, dy); + if (this.currentController.dockingManager) { this.currentController.dockingManager.altKey = event.altKey; } @@ -2289,6 +2212,7 @@ Canvas.prototype.handleMouseDown = function (event) { tick("before setPositionSnapshot"); thiz.currentController.setPositionSnapshot(); + thiz.snappingHelper.onControllerSnapshot(this.currentController); tick("after setPositionSnapshot"); thiz.duplicateFunc = null; @@ -2332,6 +2256,7 @@ Canvas.prototype.handleMouseDown = function (event) { tick("before setPositionSnapshot"); this.currentController.setPositionSnapshot(); + this.snappingHelper.onControllerSnapshot(this.currentController); tick("after setPositionSnapshot"); if (event.button == 0) @@ -2923,6 +2848,7 @@ Canvas.prototype.startFakeMove = function (event) { this.oldPos = this.currentController.getGeometry(); this.currentController.setPositionSnapshot(); + this.snappingHelper.onControllerSnapshot(this.currentController); // OnScreenTextEditor._hide(); diff --git a/app/pencil-core/editor/geometryEditor.js b/app/pencil-core/editor/geometryEditor.js index 13ab8b2c..167b281f 100644 --- a/app/pencil-core/editor/geometryEditor.js +++ b/app/pencil-core/editor/geometryEditor.js @@ -407,25 +407,10 @@ GeometryEditor.prototype.handleMouseMove = function (event) { if (!locking.ratio) { var snapping = this._lastGuides.left ? this._lastGuides.left.clone() : new SnappingData("Left", bound.x, "Left", true, Util.newUUID()); - snapping.pos += dx; - var snap = this.canvas.snappingHelper.findSnapping(true, false, { - vertical: [ snapping ], horizontal: [] - }, (grid.w / 2) - 1); - - if (snap && (snap.dx != 0 && !this.canvas.snappingHelper.snappedX)) { - this.canvas.snappingHelper.snappedX = true; - this.canvas.snappingHelper.snapX = newX; - delta = snap.dx; - } else { - var unsnapX = (this.canvas.snappingHelper.snapX != 0 && (Math.abs(this.canvas.snappingHelper.snapX - newX) > grid.w / 2)); - if (unsnapX || !this.canvas.snappingHelper.snappedX) { - this.canvas.snappingHelper.snapX = 0; - this.canvas.snappingHelper.snappedX = false; - this.canvas.snappingHelper.clearSnappingGuideX(); - } else { - delta = snap.dx; - } - } + + var xsnap = this.canvas.snappingHelper.applySnappingValue(dx, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); + if (xsnap) delta = xsnap.d - dx; + this.canvas.snappingHelper.drawSnaps(xsnap, null); } dx += delta; @@ -440,26 +425,11 @@ GeometryEditor.prototype.handleMouseMove = function (event) { if (!locking.ratio) { var snapping = this._lastGuides.right ? this._lastGuides.right.clone() : - new SnappingData("Right", bound.x + bound.width, "Right", true, Util.newUUID()); - snapping.pos += dw; - - var snap = this.canvas.snappingHelper.findSnapping(true, false, { - vertical: [snapping], horizontal: [] - }, (grid.w / 2) - 1); - if (snap && (snap.dx != 0 && !this.canvas.snappingHelper.snappedX)) { - this.canvas.snappingHelper.snappedX = true; - this.canvas.snappingHelper.snapX = newX2; - delta = snap.dx; - } else { - var unsnapX = (this.canvas.snappingHelper.snapX != 0 && (Math.abs(this.canvas.snappingHelper.snapX - newX2) > grid.w / 2)); - if (unsnapX || !this.canvas.snappingHelper.snappedX) { - this.canvas.snappingHelper.snapX = 0; - this.canvas.snappingHelper.snappedX = false; - this.canvas.snappingHelper.clearSnappingGuideX(); - } else { - delta = snap.dx; - } - } + new SnappingData("Right", bound.x + bound.width, "Right", true, Util.newUUID()); + + var xsnap = this.canvas.snappingHelper.applySnappingValue(dw, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); + if (xsnap) delta = xsnap.d - dw; + this.canvas.snappingHelper.drawSnaps(xsnap, null); } dw += delta; @@ -483,27 +453,11 @@ GeometryEditor.prototype.handleMouseMove = function (event) { if (!locking.ratio) { var snapping = this._lastGuides.top ? this._lastGuides.top.clone() : - new SnappingData("Top", bound.y, "Top", true, Util.newUUID()); - snapping.pos += dy; - - var snap = this.canvas.snappingHelper.findSnapping(false, true, { - vertical: [], - horizontal: [snapping] - }, (grid.w / 2) - 1); - if (snap && (snap.dy != 0 && !this.canvas.snappingHelper.snappedY)) { - this.canvas.snappingHelper.snappedY = true; - this.canvas.snappingHelper.snapY = newY; - delta = snap.dy; - } else { - var unsnapY = (this.canvas.snappingHelper.snapY != 0 && (Math.abs(this.canvas.snappingHelper.snapY - newY) > grid.w / 2)); - if (unsnapY || !this.canvas.snappingHelper.snappedY) { - this.canvas.snappingHelper.snapY = 0; - this.canvas.snappingHelper.snappedY = false; - this.canvas.snappingHelper.clearSnappingGuideY(); - } else { - delta = snap.dy; - } - } + new SnappingData("Top", bound.y, "Top", true, Util.newUUID()); + + var ysnap = this.canvas.snappingHelper.applySnappingValue(dy, [snapping], this.canvas.snappingHelper.lastYData, this.canvas.currentController); + if (ysnap) delta = ysnap.d - dy; + this.canvas.snappingHelper.drawSnaps(null, ysnap); } dy += delta; @@ -517,28 +471,11 @@ GeometryEditor.prototype.handleMouseMove = function (event) { if (!locking.ratio) { var snapping = this._lastGuides.bottom ? this._lastGuides.bottom.clone() : - new SnappingData("Bottom", bound.y + bound.height, "Bottom", true, Util.newUUID()); - snapping.pos += dh; - - - var snap = this.canvas.snappingHelper.findSnapping(false, true, { - vertical: [], - horizontal: [snapping] - }, (grid.w / 2) - 1); - if (snap && (snap.dy != 0 && !this.canvas.snappingHelper.snappedY)) { - this.canvas.snappingHelper.snappedY = true; - this.canvas.snappingHelper.snapY = newY2; - delta = snap.dy; - } else { - var unsnapY = (this.canvas.snappingHelper.snapY != 0 && (Math.abs(this.canvas.snappingHelper.snapY - newY2) > grid.w / 2)); - if (unsnapY || !this.canvas.snappingHelper.snappedY) { - this.canvas.snappingHelper.snapY = 0; - this.canvas.snappingHelper.snappedY = false; - this.canvas.snappingHelper.clearSnappingGuideY(); - } else { - delta = snap.dy; - } - } + new SnappingData("Bottom", bound.y + bound.height, "Bottom", true, Util.newUUID()); + + var ysnap = this.canvas.snappingHelper.applySnappingValue(dh, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); + if (ysnap) delta = ysnap.d - dh; + this.canvas.snappingHelper.drawSnaps(null, ysnap); } dh += delta; From a4ea2136977fe9145c7423505b2ca2557038ac72 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Tue, 11 Feb 2020 12:55:46 +0700 Subject: [PATCH 11/69] fix snapping and prototype export --- app/app.xhtml | 3 +- app/css/theme.css | 6 +-- app/lib/widget/Tree.js | 4 +- app/pencil-core/canvasHelper/GestureHelper.js | 41 +++++++++++++++++++ .../canvasHelper/snappingHelper.js | 25 ++++++----- app/pencil-core/common/Canvas.js | 9 ++-- app/pencil-core/editor/geometryEditor.js | 12 +++--- .../exporter/documentExportManager.js | 3 +- .../HTML/prototype.HTML/Resources/script.js | 13 ++++-- app/views/common/Dialog.xhtml | 12 +++--- app/views/common/Tree.js | 2 +- app/views/editors/OnMenuEditor.js | 3 +- 12 files changed, 99 insertions(+), 34 deletions(-) create mode 100644 app/pencil-core/canvasHelper/GestureHelper.js diff --git a/app/app.xhtml b/app/app.xhtml index fa1f556f..4ba48a28 100644 --- a/app/app.xhtml +++ b/app/app.xhtml @@ -4,7 +4,7 @@ Pencil - + @@ -46,6 +46,7 @@ + diff --git a/app/css/theme.css b/app/css/theme.css index 8db875fa..bccd7c3f 100644 --- a/app/css/theme.css +++ b/app/css/theme.css @@ -18,7 +18,7 @@ button { white-space: nowrap; vertical-align: middle; cursor: pointer; - border: 1px solid #CCC; + border: none; border-radius: 4px; line-height: 2.4em; @@ -27,11 +27,11 @@ button { border-radius: 0.3ex; - background: #FFF; + background: #FEFEFE; + color: #000000DD; outline: none; text-shadow: 0px 1px 0px #FFF; - background-image: linear-gradient(to bottom, #FFF 0px, #E0E0E0 100%); background-repeat: repeat-x; display: inline-flex; align-items: center; diff --git a/app/lib/widget/Tree.js b/app/lib/widget/Tree.js index 266bf363..9f338c74 100644 --- a/app/lib/widget/Tree.js +++ b/app/lib/widget/Tree.js @@ -89,6 +89,8 @@ widget.Tree = function() { var target = Dom.getTarget(event); if (!target || !Dom.hasClass(target, "Checkbox") || target.nodeName.toLowerCase() != "input") return; if (target.disabled) return; + + if (event.which == 2) target.checked = !target.checked; var treeContainer = Dom.findUpward(target, { eval: function(n) { @@ -102,7 +104,7 @@ widget.Tree = function() { if ((target.checked && tree.options.propagateCheckActionDownwards) || (!target.checked && tree.options.propagateUncheckActionDownwards)) { var itemNode = target.parentNode.parentNode; - setItemsCheckedRecursivelyFromNodes(getChildrenContainerFromItemNode(itemNode).childNodes, target.checked); + if (event.which != 2) setItemsCheckedRecursivelyFromNodes(getChildrenContainerFromItemNode(itemNode).childNodes, target.checked); } Dom.emitEvent("blur", treeContainer, {}); diff --git a/app/pencil-core/canvasHelper/GestureHelper.js b/app/pencil-core/canvasHelper/GestureHelper.js new file mode 100644 index 00000000..0a0ec3a4 --- /dev/null +++ b/app/pencil-core/canvasHelper/GestureHelper.js @@ -0,0 +1,41 @@ +function GestureHelper(canvas) { + this.canvas = canvas; + this.canvas.gestureHelper = this; + + this.init(); +} + +GestureHelper.prototype.init = function () { + var thiz = this; + this.heldKeyCodes = []; + + this.canvas.focusableBox.addEventListener("keydown", function (event) { + if (thiz.heldKeyCodes.indexOf(event.keyCode) >= 0) return; + + thiz.heldKeyCodes.push(event.keyCode); + thiz.showKeyCodes(); + }, false); + + this.canvas.focusableBox.addEventListener("keyup", function (event) { + var index = thiz.heldKeyCodes.indexOf(event.keyCode); + if (index < 0) return; + + thiz.heldKeyCodes.splice(index, 1); + thiz.showKeyCodes(); + }, false); + + this.canvas.focusableBox.addEventListener("blur", function (event) { + thiz.heldKeyCodes.length = 0; + thiz.showKeyCodes(); + }, false); +}; + +GestureHelper.prototype.showKeyCodes = function () { + return; + if (!GestureHelper._output) { + GestureHelper._output = document.createElement("div"); + ApplicationPane._instance.contentHeader.appendChild(GestureHelper._output); + } + + GestureHelper._output.innerHTML = this.heldKeyCodes.join(", "); +}; \ No newline at end of file diff --git a/app/pencil-core/canvasHelper/snappingHelper.js b/app/pencil-core/canvasHelper/snappingHelper.js index 05eaf696..4a2cbe16 100644 --- a/app/pencil-core/canvasHelper/snappingHelper.js +++ b/app/pencil-core/canvasHelper/snappingHelper.js @@ -4,8 +4,6 @@ function SnappingHelper(canvas) { Config.set("object.snapping.enabled", true); } this.init(); - - //var this = new SnappingHelper }; SnappingHelper.prototype.isGridSnappingEnabled = function () { return Config.get("edit.snap.grid") == true; @@ -127,7 +125,6 @@ SnappingHelper.prototype.rebuildSnappingGuide = function () { ] }; this.snappingGuide[uid] = snap; - console.log("Margin snap", snap); this.sortData(); }; @@ -190,10 +187,10 @@ SnappingHelper.prototype.drawSnaps = function (xsnap, ysnap) { var verticalGuide = document.createElementNS(PencilNamespaces.svg, "line"); verticalGuide.setAttribute("class", guide.type); - verticalGuide.setAttribute("x1", Math.round(guide.pos) * thiz.canvas.zoom); + verticalGuide.setAttribute("x1", Math.round(guide.pos * thiz.canvas.zoom)); verticalGuide.setAttribute("y1", 0); - verticalGuide.setAttribute("x2", Math.round(guide.pos) * thiz.canvas.zoom); - verticalGuide.setAttribute("y2", thiz.canvas.height * thiz.canvas.zoom); + verticalGuide.setAttribute("x2", Math.round(guide.pos * thiz.canvas.zoom)); + verticalGuide.setAttribute("y2", Math.round(thiz.canvas.height * thiz.canvas.zoom)); thiz.snappingGuideContainerX.appendChild(verticalGuide); @@ -207,10 +204,10 @@ SnappingHelper.prototype.drawSnaps = function (xsnap, ysnap) { var horizontalGuide = document.createElementNS(PencilNamespaces.svg, "line"); horizontalGuide.setAttribute("class", guide.type); - horizontalGuide.setAttribute("x1", 0 * thiz.canvas.zoom); - horizontalGuide.setAttribute("y1", Math.round(guide.pos) * thiz.canvas.zoom); - horizontalGuide.setAttribute("x2", thiz.canvas.width * thiz.canvas.zoom); - horizontalGuide.setAttribute("y2", Math.round(guide.pos) * thiz.canvas.zoom); + horizontalGuide.setAttribute("x1", 0); + horizontalGuide.setAttribute("y1", Math.round(guide.pos * thiz.canvas.zoom)); + horizontalGuide.setAttribute("x2", Math.round(thiz.canvas.width * thiz.canvas.zoom)); + horizontalGuide.setAttribute("y2", Math.round(guide.pos * thiz.canvas.zoom)); thiz.snappingGuideContainerY.appendChild(horizontalGuide); @@ -255,6 +252,14 @@ SnappingHelper.prototype.applySnappingValue = function (d, controllerPositions, }; SnappingHelper.prototype.sort = function(d) { + // var d2 = []; + // var positions = []; + // d.forEach(function (v) { + // if (positions.indexOf(v.pos) >= 0) return; + // d2.push(v); + // positions.push(v.pos); + // }); + // d = d2; for (var i = 0; i < d.length - 1; i++) { for (var j = i + 1; j < d.length; j++) { if (d[j].pos < d[i].pos) { diff --git a/app/pencil-core/common/Canvas.js b/app/pencil-core/common/Canvas.js index 381578dc..95d076d9 100644 --- a/app/pencil-core/common/Canvas.js +++ b/app/pencil-core/common/Canvas.js @@ -171,6 +171,7 @@ function Canvas(element, options, containerScrollPane) { "RangeBound"); this.snappingHelper = new SnappingHelper(this); + new GestureHelper(this); this.idSeed = 1; @@ -1300,9 +1301,11 @@ Canvas.prototype.handleMouseMove = function (event, fake) { dx = dx * hdr; dy = dy * vdr; - var snapResult = this.snappingHelper.applySnapping(dx, dy, this.currentController); - if (snapResult && snapResult.xsnap) dx = snapResult.xsnap.d; - if (snapResult && snapResult.ysnap) dy = snapResult.ysnap.d; + if (!event.shiftKey) { + var snapResult = this.snappingHelper.applySnapping(dx, dy, this.currentController); + if (snapResult && snapResult.xsnap) dx = snapResult.xsnap.d; + if (snapResult && snapResult.ysnap) dy = snapResult.ysnap.d; + } this.currentController.moveFromSnapshot(dx, dy); diff --git a/app/pencil-core/editor/geometryEditor.js b/app/pencil-core/editor/geometryEditor.js index 167b281f..cc131a82 100644 --- a/app/pencil-core/editor/geometryEditor.js +++ b/app/pencil-core/editor/geometryEditor.js @@ -389,6 +389,8 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var controller = this.canvas.currentController; var bound = controller.getBounding(); + + var xsnap = null; //HORIZONTAL if (!locking.width) { @@ -408,7 +410,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var snapping = this._lastGuides.left ? this._lastGuides.left.clone() : new SnappingData("Left", bound.x, "Left", true, Util.newUUID()); - var xsnap = this.canvas.snappingHelper.applySnappingValue(dx, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); + xsnap = this.canvas.snappingHelper.applySnappingValue(dx, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); if (xsnap) delta = xsnap.d - dx; this.canvas.snappingHelper.drawSnaps(xsnap, null); } @@ -427,7 +429,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var snapping = this._lastGuides.right ? this._lastGuides.right.clone() : new SnappingData("Right", bound.x + bound.width, "Right", true, Util.newUUID()); - var xsnap = this.canvas.snappingHelper.applySnappingValue(dw, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); + xsnap = this.canvas.snappingHelper.applySnappingValue(dw, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); if (xsnap) delta = xsnap.d - dw; this.canvas.snappingHelper.drawSnaps(xsnap, null); } @@ -457,7 +459,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var ysnap = this.canvas.snappingHelper.applySnappingValue(dy, [snapping], this.canvas.snappingHelper.lastYData, this.canvas.currentController); if (ysnap) delta = ysnap.d - dy; - this.canvas.snappingHelper.drawSnaps(null, ysnap); + this.canvas.snappingHelper.drawSnaps(xsnap, ysnap); } dy += delta; @@ -473,9 +475,9 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var snapping = this._lastGuides.bottom ? this._lastGuides.bottom.clone() : new SnappingData("Bottom", bound.y + bound.height, "Bottom", true, Util.newUUID()); - var ysnap = this.canvas.snappingHelper.applySnappingValue(dh, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); + var ysnap = this.canvas.snappingHelper.applySnappingValue(dh, [snapping], this.canvas.snappingHelper.lastYData, this.canvas.currentController); if (ysnap) delta = ysnap.d - dh; - this.canvas.snappingHelper.drawSnaps(null, ysnap); + this.canvas.snappingHelper.drawSnaps(xsnap, ysnap); } dh += delta; diff --git a/app/pencil-core/exporter/documentExportManager.js b/app/pencil-core/exporter/documentExportManager.js index 872a0e5c..b2e1763e 100644 --- a/app/pencil-core/exporter/documentExportManager.js +++ b/app/pencil-core/exporter/documentExportManager.js @@ -407,7 +407,8 @@ DocumentExportManager.prototype._exportDocumentToXML = function (doc, pages, pag try { exporter.export(this.doc, exportSelection, destFile, xmlFile.name, function () { - xmlFile.removeCallback(); + console.log("xmlFile:" + xmlFile.name); + //xmlFile.removeCallback(); callback(); }); } catch (e) { diff --git a/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js b/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js index b7a68624..5040fa04 100644 --- a/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js +++ b/app/pencil-core/templates/HTML/prototype.HTML/Resources/script.js @@ -28,7 +28,7 @@ function scaleMap(page, r) { }); } function convertRatio(value) { - return parseFloat(value) * window.devicePixelRatio; + return parseFloat(value); // * window.devicePixelRatio; } function fitImages() { @@ -86,7 +86,7 @@ function fitImages() { var page = img; while (!page.classList.contains("Page")) page = page.parentNode; - scaleMap(page, r); + scaleMap(page, r * (img._originalWidth / img.naturalWidth)); }); window.lastSize = {W: W, H: H}; @@ -220,6 +220,14 @@ function boot() { style.setAttribute("rel", "stylesheet"); style.setAttribute("href", "Resources/style.css"); document.querySelector("head").appendChild(style); + + var imgs = document.querySelectorAll("body > div.Page img"); + imgs.forEach(function (img) { + img._originalWidth = parseInt(img.getAttribute("width"), 10); + img._originalHeight = parseInt(img.getAttribute("height"), 10); + }); + + generateTOC(); workingThreadFunction(); @@ -254,4 +262,3 @@ window.onload = boot; - diff --git a/app/views/common/Dialog.xhtml b/app/views/common/Dialog.xhtml index fd43ad32..9acee3c8 100644 --- a/app/views/common/Dialog.xhtml +++ b/app/views/common/Dialog.xhtml @@ -52,8 +52,8 @@ background: rgba(0, 0, 0, 0.05); } body @dialogFrame @dialogTitle { - color: #555555; - font-size: 1em; + color: #567ab4; + font-size: 1.3em; display: block; } body @dialogFrame @dialogSubTitle { @@ -63,18 +63,18 @@ display: none; } body @dialogFrame @dialogTitleContainer { - padding: 0.5em; } body @dialogFrame @dialogHeaderPane { margin-bottom: 0em; - background: #d3d3d3; } body @dialogFrame @dialogBody { padding: 1.2em; overflow: hidden; } body @dialogFrame @dialogHeaderPane { - padding: 0.4em 0.7em; + padding: 1.2em; + padding-bottom: 0.2em; + align-items: center; } body @dialogFrame @dialogBody { padding-bottom: 0em; @@ -96,6 +96,8 @@ min-width: 6em; text-align: center; display: inline-block; + font-weight: bold; + text-transform: capitalize; } body @dialogFooter > hbox > button[mode='accept'] { diff --git a/app/views/common/Tree.js b/app/views/common/Tree.js index 2b7ae54d..7ac27fab 100644 --- a/app/views/common/Tree.js +++ b/app/views/common/Tree.js @@ -96,7 +96,7 @@ var Tree = function() { if ((target.checked && tree.options.propagateCheckActionDownwards) || (!target.checked && tree.options.propagateUncheckActionDownwards)) { var itemNode = target.parentNode.parentNode; - setItemsCheckedRecursivelyFromNodes(getChildrenContainerFromItemNode(itemNode).childNodes, target.checked); + if (!event.shiftKey) setItemsCheckedRecursivelyFromNodes(getChildrenContainerFromItemNode(itemNode).childNodes, target.checked); } Dom.emitEvent("blur", treeContainer, {}); diff --git a/app/views/editors/OnMenuEditor.js b/app/views/editors/OnMenuEditor.js index 3b1a3078..19fde9eb 100644 --- a/app/views/editors/OnMenuEditor.js +++ b/app/views/editors/OnMenuEditor.js @@ -132,7 +132,8 @@ OnMenuEditor.prototype.generateMenuItems = function () { onDone: function (newImageData, options) { thiz.targetObject.setProperty(propName, newImageData); if (options && options.updateBox) { - var dim = new Dimension(newImageData.w, newImageData.h); + var ratio = window.devicePixelRatio || 1; + var dim = new Dimension(Math.round(newImageData.w / ratio), Math.round(newImageData.h / ratio)); thiz.targetObject.setProperty("box", dim); } } From 70fd2809dd3b0cffef72443628ea39b1fc76c491 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 20 Mar 2020 15:16:54 +0700 Subject: [PATCH 12/69] Fix: changing shadow dx has no effect --- app/pencil-core/propertyType/shadowStyle.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pencil-core/propertyType/shadowStyle.js b/app/pencil-core/propertyType/shadowStyle.js index 289b3f4b..87c09f57 100644 --- a/app/pencil-core/propertyType/shadowStyle.js +++ b/app/pencil-core/propertyType/shadowStyle.js @@ -8,7 +8,7 @@ function ShadowStyle() { ShadowStyle.DEFAULT_COLOR = "#000000"; -ShadowStyle.DX = new PropertyMask("family"); +ShadowStyle.DX = new PropertyMask("dx"); ShadowStyle.DY = new PropertyMask("dy"); ShadowStyle.SIZE = new PropertyMask("size"); ShadowStyle.OPACITY = new PropertyMask("opacity"); From 031951b36c0605e03d92a1e963a16154234509d6 Mon Sep 17 00:00:00 2001 From: Marcus Weseloh Date: Mon, 18 May 2020 16:04:35 +0200 Subject: [PATCH 13/69] Fix error during save if document contains font which is not installed --- app/pencil-core/common/FontLoader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pencil-core/common/FontLoader.js b/app/pencil-core/common/FontLoader.js index 11efd5d8..0d566fa0 100644 --- a/app/pencil-core/common/FontLoader.js +++ b/app/pencil-core/common/FontLoader.js @@ -151,7 +151,7 @@ FontLoader.prototype.embedToDocumentRepo = function (faces) { var font = this.userRepo.getFont(f); var userFont = this.documentRepo.getFont(f); if (userFont) { - if (!font.autoEmbed) { + if (font && !font.autoEmbed) { this.documentRepo.removeFont(userFont); } return; From fb9d6a76db2d09b51ff27b63c7f595bde1fac353 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 14 Sep 2020 17:16:31 +0700 Subject: [PATCH 14/69] Migrate to electron 9.3.0 --- .../common/canvas-external-renderer.js | 2 +- app/pencil-core/common/controller.js | 6 +- app/pencil-core/common/renderer.js | 2 +- app/pencil-core/common/shared-util.js | 2 +- app/pencil-core/common/svgRasterizer.js | 6 +- package-lock.json | 938 ++++++++++-------- package.json | 2 +- 7 files changed, 520 insertions(+), 438 deletions(-) diff --git a/app/pencil-core/common/canvas-external-renderer.js b/app/pencil-core/common/canvas-external-renderer.js index 2f5f6ded..86439f15 100644 --- a/app/pencil-core/common/canvas-external-renderer.js +++ b/app/pencil-core/common/canvas-external-renderer.js @@ -94,7 +94,7 @@ function init() { if (ext == ".png") mine = "image/png"; fs.readFile(sourcePath, function (error, bitmap) { - var url = "data:" + mime + ";base64," + new Buffer(bitmap).toString("base64"); + var url = "data:" + mime + ";base64," + Buffer.from(bitmap).toString("base64"); image.setAttributeNS(xlink, "href", url); totalImageLength += url.length; diff --git a/app/pencil-core/common/controller.js b/app/pencil-core/common/controller.js index 8a6e2c2c..4639c40a 100644 --- a/app/pencil-core/common/controller.js +++ b/app/pencil-core/common/controller.js @@ -1204,7 +1204,8 @@ Controller.prototype.copyPageBitmap = function (targetPage) { var filePath = tmp.tmpNameSync(); thiz.applicationPane.rasterizer.rasterizePageToFile(page, filePath, function (p, error) { if (!error) { - clipboard.writeImage(filePath); + var image = nativeImage.createFromPath(filePath); + var result = clipboard.writeImage(image); fs.unlinkSync(filePath); NotificationPopup.show("Page bitmap copied into clipboard."); } @@ -1232,7 +1233,8 @@ Controller.prototype.rasterizeSelection = function (options) { this.applicationPane.rasterizer.rasterizeSelectionToFile(target, filePath, function (p, error) { if (!error) { - clipboard.writeImage(filePath); + var image = nativeImage.createFromPath(filePath); + clipboard.writeImage(image); fs.unlinkSync(filePath); NotificationPopup.show("Page bitmap copied into clipboard."); } diff --git a/app/pencil-core/common/renderer.js b/app/pencil-core/common/renderer.js index 7cbc1822..e765fa0c 100644 --- a/app/pencil-core/common/renderer.js +++ b/app/pencil-core/common/renderer.js @@ -141,7 +141,7 @@ module.exports = function () { event.sender.send(data.id, {url: "", objectsWithLinking: renderedData.objectsWithLinking}); __callback(); } else { - rendererWindow.capturePage(function (nativeImage) { + rendererWindow.capturePage().then(function (nativeImage) { var dataURL = nativeImage.toDataURL(); cleanupCallback(); diff --git a/app/pencil-core/common/shared-util.js b/app/pencil-core/common/shared-util.js index 3e8864a3..3bae7f01 100644 --- a/app/pencil-core/common/shared-util.js +++ b/app/pencil-core/common/shared-util.js @@ -51,7 +51,7 @@ module.exports = function () { var format = FORMAT_MAP[ext]; if (!format) format = "truetype"; - var url = "data:" + mime + ";base64," + new Buffer(bytes).toString("base64"); + var url = "data:" + mime + ";base64," + Buffer.from(bytes).toString("base64"); combinedCSS += "@font-face {\n" + " font-family: '" + installedFace.name + "';\n" diff --git a/app/pencil-core/common/svgRasterizer.js b/app/pencil-core/common/svgRasterizer.js index 977c8c7e..c30b028a 100644 --- a/app/pencil-core/common/svgRasterizer.js +++ b/app/pencil-core/common/svgRasterizer.js @@ -125,7 +125,7 @@ Rasterizer.inProcessCanvasBasedBackend = { if (ext == ".png") mine = "image/png"; fs.readFile(sourcePath, function (error, bitmap) { - var url = "data:" + mime + ";base64," + new Buffer(bitmap).toString("base64"); + var url = "data:" + mime + ";base64," + Buffer.from(bitmap).toString("base64"); image.setAttributeNS(PencilNamespaces.xlink, "href", url); totalImageLength += url.length; @@ -281,7 +281,7 @@ Rasterizer.prototype.rasterizePageToFile = function (page, filePath, callback, s var base64Data = dataURI; if (base64Data.startsWith(prefix)) base64Data = base64Data.substring(prefix.length); - var buffer = new Buffer(base64Data, "base64"); + var buffer = Buffer.from(base64Data, "base64"); fs.writeFile(actualPath, buffer, "utf8", function (err) { console.log("Finish rasterizing page: ", page.name, actualPath); callback(parseLinks ? {actualPath: actualPath, objectsWithLinking: data.objectsWithLinking} : actualPath, err); @@ -347,7 +347,7 @@ Rasterizer.prototype.rasterizeSelectionToFile = function (target, filePath, call var base64Data = dataURI; if (base64Data.startsWith(prefix)) base64Data = base64Data.substring(prefix.length); - var buffer = new Buffer(base64Data, "base64"); + var buffer = Buffer.from(base64Data, "base64"); fs.writeFile(actualPath, buffer, {}, function (err) { callback(actualPath, err); }); diff --git a/package-lock.json b/package-lock.json index d07ef397..85f4ef97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,96 @@ "integrity": "sha512-XtGk+IF57pr852UK1AhQJXqmm1WmSgS5uISL+LPs0z/iAxXouMvdlLJrHPeukP6gd7yR2rDTMSMkHNODgwIq7A==", "dev": true }, + "@electron/get": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", + "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^2.0.2", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "sanitize-filename": "^1.6.2", + "sumchecker": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + } + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, "@types/node": { - "version": "10.14.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.15.tgz", - "integrity": "sha512-CBR5avlLcu0YCILJiDIXeU2pTw7UK/NIxfC63m7d7CVamho1qDEzXKkOtEauQRPMy6MI8mLozth+JJkas7HY6g==", + "version": "12.12.58", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.58.tgz", + "integrity": "sha512-Be46CNIHWAagEfINOjmriSxuv7IVcqbGe+sDSg2SYCEz/0CRBy7LRASGfRbD8KZkqoePU73Wsx3UvOSFcq/9hA==", "dev": true }, "abbrev": { @@ -208,12 +294,6 @@ "sprintf-js": "~1.0.2" } }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true - }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -289,6 +369,13 @@ "bluebird": "^3.5.5" } }, + "boolean": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", + "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", + "dev": true, + "optional": true + }, "boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", @@ -369,6 +456,12 @@ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -437,20 +530,36 @@ } } }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + } } }, "capture-stack-trace": { @@ -566,6 +675,15 @@ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", @@ -617,51 +735,24 @@ "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, "configstore": { @@ -684,6 +775,13 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "dev": true, + "optional": true + }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -734,15 +832,6 @@ "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, - "requires": { - "array-find-index": "^1.0.1" - } - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -775,6 +864,15 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", @@ -790,6 +888,22 @@ "clone": "^1.0.2" } }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "requires": { + "object-keys": "^1.0.12" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -808,6 +922,13 @@ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true, + "optional": true + }, "dmg-builder": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-5.3.1.tgz", @@ -868,13 +989,13 @@ "dev": true }, "electron": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-6.0.1.tgz", - "integrity": "sha512-XY69rI5IThIxsOS2BD+1ZkHE9hqkm4xN5a3WQFSmFRr2by4q5CnIe9vXmptlouGPTLs3tb7ySX/+K9CvH3szvg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-9.3.0.tgz", + "integrity": "sha512-7zPLEZ+kOjVJqfawMQ0vVuZZRqvZIeiID3tbjjbVybbxXIlFMpZ2jogoh7PV3rLrtm+dKRfu7Qc4E7ob1d0FqQ==", "dev": true, "requires": { - "@types/node": "^10.12.18", - "electron-download": "^4.1.0", + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", "extract-zip": "^1.0.3" } }, @@ -1047,34 +1168,6 @@ } } }, - "electron-download": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/electron-download/-/electron-download-4.1.1.tgz", - "integrity": "sha512-FjEWG9Jb/ppK/2zToP+U5dds114fM1ZOJqMAR4aXXL5CvyPE9fiqBK/9YcwC9poIFQTEJk/EM/zyRwziziRZrg==", - "dev": true, - "requires": { - "debug": "^3.0.0", - "env-paths": "^1.0.0", - "fs-extra": "^4.0.1", - "minimist": "^1.2.0", - "nugget": "^2.0.1", - "path-exists": "^3.0.0", - "rc": "^1.2.1", - "semver": "^5.4.1", - "sumchecker": "^2.0.2" - }, - "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.1" - } - } - } - }, "electron-osx-sign": { "version": "0.4.10", "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.10.tgz", @@ -1162,6 +1255,13 @@ "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", "dev": true }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -1172,19 +1272,17 @@ } }, "env-paths": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } + "optional": true }, "escape-string-regexp": { "version": "1.0.5", @@ -1220,15 +1318,32 @@ "dev": true }, "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } } }, "extsprintf": { @@ -1250,35 +1365,14 @@ "dev": true }, "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dev": true, "requires": { "pend": "~1.2.0" } }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - } - } - }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -1297,12 +1391,12 @@ } }, "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", + "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } @@ -1367,12 +1461,6 @@ "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", "dev": true }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -1402,6 +1490,31 @@ "path-is-absolute": "^1.0.0" } }, + "global-agent": { + "version": "2.1.12", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", + "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "core-js": "^3.6.5", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "optional": true + } + } + }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -1411,6 +1524,29 @@ "ini": "^1.3.4" } }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", + "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "dev": true, + "optional": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", @@ -1473,6 +1609,12 @@ "lru-cache": "^5.1.1" } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", @@ -1505,15 +1647,6 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "requires": { - "repeating": "^2.0.0" - } - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -1542,12 +1675,6 @@ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, "is-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", @@ -1557,15 +1684,6 @@ "ci-info": "^1.5.0" } }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -1630,16 +1748,10 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isbinaryfile": { @@ -1679,6 +1791,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -1727,6 +1845,15 @@ "verror": "1.10.0" } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", @@ -1751,19 +1878,6 @@ "invert-kv": "^2.0.0" } }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -1774,6 +1888,13 @@ "path-exists": "^3.0.0" } }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true, + "optional": true + }, "lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", @@ -1789,16 +1910,6 @@ "chalk": "^2.0.1" } }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -1840,11 +1951,24 @@ "p-defer": "^1.0.0" } }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true + } + } }, "mem": { "version": "4.3.0", @@ -1865,24 +1989,6 @@ } } }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - } - }, "mime": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", @@ -1910,6 +2016,12 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -2030,6 +2142,23 @@ "validate-npm-package-license": "^3.0.1" } }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -2051,21 +2180,6 @@ "set-blocking": "~2.0.0" } }, - "nugget": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", - "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", - "dev": true, - "requires": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^1.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - } - }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -2085,10 +2199,11 @@ "dev": true }, "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "optional": true }, "once": { "version": "1.4.0", @@ -2211,6 +2326,12 @@ "os-tmpdir": "^1.0.0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -2282,15 +2403,6 @@ } } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -2321,17 +2433,6 @@ "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", "dev": true }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -2345,25 +2446,11 @@ "dev": true }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, - "requires": { - "pinkie": "^2.0.0" - } + "optional": true }, "plist": { "version": "3.0.1", @@ -2396,31 +2483,24 @@ "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, - "pretty-bytes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", - "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1", - "meow": "^3.1.0" - } - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", "dev": true }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", "dev": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } + "optional": true }, "pseudomap": { "version": "1.0.2", @@ -2485,47 +2565,27 @@ "lazy-val": "^1.0.3" } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } } }, "registry-auth-token": { @@ -2547,15 +2607,6 @@ "rc": "^1.0.1" } }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, - "requires": { - "is-finite": "^1.0.0" - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -2605,6 +2656,15 @@ "path-parse": "^1.0.6" } }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -2624,6 +2684,30 @@ "glob": "^7.0.5" } }, + "roarr": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", + "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.0", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + } + } + }, "rxjs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", @@ -2666,6 +2750,13 @@ "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", "dev": true }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, "semver-diff": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", @@ -2675,6 +2766,16 @@ "semver": "^5.0.3" } }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "requires": { + "type-fest": "^0.13.1" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -2702,15 +2803,6 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", - "dev": true, - "requires": { - "string-width": "^1.0.1" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -2787,12 +2879,6 @@ "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", "dev": true }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=", - "dev": true - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -2834,10 +2920,21 @@ } }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } }, "strip-ansi": { "version": "3.0.1", @@ -2848,30 +2945,12 @@ "ansi-regex": "^2.0.0" } }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "requires": { - "get-stdin": "^4.0.1" - } - }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2879,12 +2958,23 @@ "dev": true }, "sumchecker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-2.0.2.tgz", - "integrity": "sha1-D0LBDl0F2l1C7qPlbDOZo31sWz4=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", "dev": true, "requires": { - "debug": "^2.2.0" + "debug": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } } }, "supports-color": { @@ -2943,28 +3033,18 @@ "execa": "^0.7.0" } }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=", - "dev": true - }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", - "dev": true, - "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "tough-cookie": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", @@ -2983,12 +3063,6 @@ } } }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true - }, "truncate-utf8-bytes": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", @@ -3004,6 +3078,13 @@ "integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo=", "dev": true }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -3019,6 +3100,13 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true + }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -3276,15 +3364,6 @@ "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", "dev": true }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - }, "y18n": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", @@ -3377,12 +3456,13 @@ } }, "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dev": true, "requires": { - "fd-slicer": "~1.0.1" + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" } } } diff --git a/package.json b/package.json index 82077b70..a85c1018 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "6.0.1", + "electron": "9.3.0", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" From 89e88ce876080a4e02a71acb28f425e18bf81940 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 14 Sep 2020 17:17:05 +0700 Subject: [PATCH 15/69] New gesture and experimental clipart search --- app/app.xhtml | 2 +- app/index.js | 7 +- app/pencil-core/canvasHelper/GestureHelper.js | 55 ++- .../clipartBrowser/newOpenClipartSearch.js | 450 ++++-------------- app/pencil-core/common/Canvas.js | 11 +- app/pencil-core/editor/geometryEditor.js | 11 +- app/views/menus/MainMenu.js | 18 +- app/views/tools/OpenClipartPane.js | 2 +- app/views/tools/StencilGeneratorDialog.js | 2 +- 9 files changed, 164 insertions(+), 394 deletions(-) diff --git a/app/app.xhtml b/app/app.xhtml index 4ba48a28..010af649 100644 --- a/app/app.xhtml +++ b/app/app.xhtml @@ -148,7 +148,7 @@ - + diff --git a/app/index.js b/app/index.js index cb09c411..f3f82e0c 100644 --- a/app/index.js +++ b/app/index.js @@ -50,7 +50,8 @@ function createWindow() { allowRunningInsecureContent: true, allowDisplayingInsecureContent: true, defaultEncoding: "UTF-8", - nodeIntegration: true + nodeIntegration: true, + enableRemoteModule: true }, }; @@ -118,9 +119,9 @@ app.on('ready', function() { fs.readFile(path, function (err, data) { if (err) { - callback({mimeType: "text/html", data: new Buffer("Not found")}); + callback({mimeType: "text/html", data: Buffer.from("Not found")}); } else { - callback({mimeType: "image/jpeg", data: new Buffer(data)}); + callback({mimeType: "image/jpeg", data: Buffer.from(data)}); } }); diff --git a/app/pencil-core/canvasHelper/GestureHelper.js b/app/pencil-core/canvasHelper/GestureHelper.js index 0a0ec3a4..965fcb57 100644 --- a/app/pencil-core/canvasHelper/GestureHelper.js +++ b/app/pencil-core/canvasHelper/GestureHelper.js @@ -13,7 +13,7 @@ GestureHelper.prototype.init = function () { if (thiz.heldKeyCodes.indexOf(event.keyCode) >= 0) return; thiz.heldKeyCodes.push(event.keyCode); - thiz.showKeyCodes(); + thiz.updateKeyCodes(); }, false); this.canvas.focusableBox.addEventListener("keyup", function (event) { @@ -21,21 +21,66 @@ GestureHelper.prototype.init = function () { if (index < 0) return; thiz.heldKeyCodes.splice(index, 1); - thiz.showKeyCodes(); + thiz.updateKeyCodes(); }, false); this.canvas.focusableBox.addEventListener("blur", function (event) { thiz.heldKeyCodes.length = 0; - thiz.showKeyCodes(); + thiz.updateKeyCodes(); }, false); + + // sample registry + this.gestureRegistry = { + keys: { + "R": { + type: "Shape", + defId: "dgthanhan.MaterialDesktopMockup:rectangle" + } + } + }; }; -GestureHelper.prototype.showKeyCodes = function () { - return; +GestureHelper.prototype.handleMouseDown = function (event) { + if (!this.activeGestureDef) return false; + if (this.activeGestureDef.type == "Shape") { + var def = CollectionManager.shapeDefinition.locateDefinition(this.activeGestureDef.defId); + if (!def) return; + + var loc = this.canvas.getEventLocation(event); + this.canvas.insertShape(def); + + var controller = this.canvas.currentController; + var bbox = controller.getBoundingRect(); + controller.moveBy(loc.x, loc.y, true); + controller.setProperty("box", new Dimension(0, 0)); + + this.canvas.selectShape(controller.svg); + window.setTimeout(function () { + this.canvas.geometryEditor.handleMouseDown(event); + this.canvas.geometryEditor.currentAnchor = this.canvas.geometryEditor.anchor4; + }.bind(this), 10); + + return true; + } + + return false; +}; +GestureHelper.prototype.handleMouseUp = function (event) { + return false; +}; +GestureHelper.prototype.updateKeyCodes = function () { if (!GestureHelper._output) { GestureHelper._output = document.createElement("div"); ApplicationPane._instance.contentHeader.appendChild(GestureHelper._output); } + this.activeGestureDef = null; + + for (var code of this.heldKeyCodes) { + var c = String.fromCharCode(code); + this.activeGestureDef = this.gestureRegistry.keys[c]; + if (this.activeGestureDef) break; + } + GestureHelper._output.innerHTML = this.heldKeyCodes.join(", "); }; \ No newline at end of file diff --git a/app/pencil-core/clipartBrowser/newOpenClipartSearch.js b/app/pencil-core/clipartBrowser/newOpenClipartSearch.js index 57f317c2..7f5fe1bb 100644 --- a/app/pencil-core/clipartBrowser/newOpenClipartSearch.js +++ b/app/pencil-core/clipartBrowser/newOpenClipartSearch.js @@ -1,275 +1,80 @@ function OpenClipartSearch2() { - this.title = "OpenClipart.org (API)"; - this.name = "OpenClipart.org (API)"; + this.title = "OpenClipart.org (cchost)"; + this.name = "OpenClipart.org (cchost)"; this.uri = "http://openclipart.org/"; this.icon = "data:image/png;base64," + - "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" + - "OcJp9XCvYoAsH/B//9k="; - - - this.baseUri = "http://openclipart.org/api/search/"; + "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" + + "/xX/BwSxr+GgTUkRAAAAAElFTkSuQmCC"; + + + this.baseUri = "http://www.openclipart.org/cchost/media/api/search"; this.options = { - page: 1 + offset: this.offset, + limit: this.limit, + f: "js" }; this.req = []; @@ -313,7 +118,7 @@ OpenClipartSearch2.prototype.searchImpl = function(query, options, callback) { var thiz = this; debug("OpenClipart: searching '" + query + "'"); - debug("url: " + url); + //debug("url: " + url); WebUtil.get(url, function(response) { var r = thiz.parseSearchResult(response); if (callback) { @@ -321,114 +126,25 @@ OpenClipartSearch2.prototype.searchImpl = function(query, options, callback) { } }, this.req); }; + OpenClipartSearch2.prototype.parseSearchResult = function (response) { var r = {result: [], resultCount: 0}; if (!response) return r; try { - var dom = Dom.parseDocument(response); - - Dom.workOn("//*/item", dom, function (itemNode) { - var item = { - name: Dom.getSingleValue("./title/text()", itemNode), - des: Dom.getSingleValue("./description/text()", itemNode), - src: Dom.getSingleValue("./enclosure/@url", itemNode), - type: Dom.getSingleValue("./enclosure/@type", itemNode), - length: Dom.getSingleValue("./enclosure/@length", itemNode), - thumb: Dom.getSingleValue("./media:thumbnail/@url", itemNode), - creator: Dom.getSingleValue("./dc:creator/text()", itemNode), - license: Dom.getSingleValue("./rcc:license/text()", itemNode), - pubDate: Dom.getSingleValue("./pubDate/text()", itemNode), - link: Dom.getSingleValue("./link/text()", itemNode) - }; + // FIXME: should use JSON parser + response = JSON.parse(response); + r.resultCount = response.length; + for (var i = 0; i < response.length; i++) { + var item = {name: response[i].upload_name, author: response[i].user_real_name, desc: response[i].upload_description, images: []}; + for (var j = 0; j < response[i].files.length; j++) { + item.images.push({src: response[i].files[j].download_url, type: response[i].files[j].file_format_info.mime_type, typeName: this.formatType(response[i].files[j].file_format_info.mime_type), size: response[i].files[j].file_rawsize}); + } r.result.push(item); - }); + } } catch (e) { - error("error: " + e); + Console.dumpError(e); } return r; }; -function OpenClipartHandler() { - this.items = []; - this.currentItem = null; - this.currentState = OpenClipartHandler.STATE_CHANNEL; -} - -OpenClipartHandler.prototype.startDocument = function() { -} - -OpenClipartHandler.prototype.endDocument = function() { -} - -OpenClipartHandler.prototype.startElement = function(name, attribs) { - if (!name || name === "") return; - if (name === "item") { - this.currentState = OpenClipartHandler.STATE_ITEM; - this.currentItem = {images: [{type: "image/svg+xml", typeName: "SVG"}]}; - } else if (name === "title") { - if (this.currentState >= OpenClipartHandler.STATE_ITEM) { - this.currentState = OpenClipartHandler.STATE_TITLE; - } - } else if (name === "dc:creator") { - if (this.currentState >= OpenClipartHandler.STATE_ITEM) { - this.currentState = OpenClipartHandler.STATE_AUTHOR; - } - } else if (name === "description") { - if (this.currentState >= OpenClipartHandler.STATE_ITEM) { - this.currentState = OpenClipartHandler.STATE_DESC; - } - } else if (name === "enclosure") { - if (this.currentState >= OpenClipartHandler.STATE_ITEM) { - this.currentItem.images[0].src = attribs["url"]; - this.currentState = OpenClipartHandler.STATE_URL; - } - } else if (name === "media:thumbnail") { - if (this.currentState >= OpenClipartHandler.STATE_ITEM) { - this.currentItem.images[0].thumbnail = attribs["url"]; - this.currentState = OpenClipartHandler.STATE_THUMBNAIL; - } - } -} -OpenClipartHandler.prototype.endElement = function(name) { - if (!name || name === "") return; - if (name === "item") { - this.currentState = OpenClipartHandler.STATE_CHANNEL; - this.items.push(this.currentItem); - } else if (name === "title") { - if (this.currentState == OpenClipartHandler.STATE_TITLE) { - this.currentItem.name = this.currentText; - this.currentState = OpenClipartHandler.STATE_ITEM; - } - } else if (name === "dc:creator") { - if (this.currentState == OpenClipartHandler.STATE_AUTHOR) { - this.currentItem.author = this.currentText; - this.currentState = OpenClipartHandler.STATE_ITEM; - } - } else if (name === "description") { - if (this.currentState == OpenClipartHandler.STATE_DESC) { - this.currentItem.desc = this.currentText; - this.currentState = OpenClipartHandler.STATE_ITEM; - } - } else if (name === "enclosure ") { - if (this.currentState == OpenClipartHandler.STATE_URL) { - this.currentState = OpenClipartHandler.STATE_ITEM; - } - } else if (name === "media:thumbnail ") { - if (this.currentState == OpenClipartHandler.STATE_THUMBNAIL) { - this.currentState = OpenClipartHandler.STATE_ITEM; - } - } -} -OpenClipartHandler.prototype.characters = function(data) { - this.currentText = data; -} - -OpenClipartHandler.STATE_CHANNEL = 0; -OpenClipartHandler.STATE_ITEM = 2; -OpenClipartHandler.STATE_TITLE = 21; -OpenClipartHandler.STATE_DESC = 22; -OpenClipartHandler.STATE_AUTHOR = 23; -OpenClipartHandler.STATE_URL = 24; -OpenClipartHandler.STATE_THUMBNAIL = 25; - -// SearchManager.registerSearchEngine(OpenClipartSearch2, true); +SearchManager.registerSearchEngine(OpenClipartSearch2, true); diff --git a/app/pencil-core/common/Canvas.js b/app/pencil-core/common/Canvas.js index 95d076d9..7f7a9574 100644 --- a/app/pencil-core/common/Canvas.js +++ b/app/pencil-core/common/Canvas.js @@ -961,6 +961,8 @@ Canvas.prototype.handleScrollPane = function(event) { } Canvas.prototype.handleMouseUp = function (event) { + if (this.gestureHelper && this.gestureHelper.handleMouseUp(event)) return; + if (this.resizing) { this.commitResize(event); this.isSelectingRange = false; @@ -2079,7 +2081,9 @@ Canvas.prototype.handleMouseDown = function (event) { tick("begin"); Dom.emitEvent("p:CanvasMouseDown", this.element, {}); - + + if (this.gestureHelper && this.gestureHelper.handleMouseDown(event)) return; + var canvasList = Pencil.getCanvasList(); for (var i = 0; i < canvasList.length; i++) { if (canvasList[i] != this) { @@ -2908,6 +2912,9 @@ Canvas.prototype.__dragenter = function (event) { }; Canvas.prototype.__dragleave = function (event) { // this.element.removeAttribute("p:selection"); + this.element.removeAttribute("is-dragover"); + this.element.removeAttribute("p:holding"); + if (!this.currentDragObserver) return; try { @@ -2915,8 +2922,6 @@ Canvas.prototype.__dragleave = function (event) { } catch (e) { Console.dumpError(e); } - this.element.removeAttribute("is-dragover"); - this.element.removeAttribute("p:holding"); }; Canvas.prototype.__dragend = function (event) { this.element.removeAttribute("is-dragover"); diff --git a/app/pencil-core/editor/geometryEditor.js b/app/pencil-core/editor/geometryEditor.js index cc131a82..365bf177 100644 --- a/app/pencil-core/editor/geometryEditor.js +++ b/app/pencil-core/editor/geometryEditor.js @@ -16,6 +16,7 @@ GeometryEditor.prototype.resetAccomulatedChanges = function () { }; GeometryEditor.prototype.install = function (canvas) { this.canvas = canvas; + this.canvas.geometryEditor = this; this.canvas.onScreenEditors.push(this); this.svgElement = canvas.ownerDocument.importNode(Dom.getSingle("/p:Config/svg:g", GeometryEditor.configDoc), true); @@ -314,6 +315,7 @@ GeometryEditor.prototype.handleMouseUp = function (event) { }, this, Util.getMessage("action.move.shape")); } } finally { + console.log("Setting currentAnchor = null"); this.currentAnchor = null; } }; @@ -360,6 +362,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var uPoint1 = Svg.vectorInCTM(new Point(this.oX, this.oY), this.geo.ctm); var uPoint2 = Svg.vectorInCTM(new Point(event.clientX, event.clientY), this.geo.ctm); + var matrix = this.currentAnchor._matrix; var t = event.shiftKey ? {x: 1, y: 1} : this.getGridSize(); //Svg.vectorInCTM(this.getGridSize(), this.geo.ctm, true); @@ -406,7 +409,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var delta = newXNormalized - newX; - if (!locking.ratio) { + if (!locking.ratio && !event.shiftKey) { var snapping = this._lastGuides.left ? this._lastGuides.left.clone() : new SnappingData("Left", bound.x, "Left", true, Util.newUUID()); @@ -425,7 +428,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var delta = newX2Normalized - newX2; - if (!locking.ratio) { + if (!locking.ratio && !event.shiftKey) { var snapping = this._lastGuides.right ? this._lastGuides.right.clone() : new SnappingData("Right", bound.x + bound.width, "Right", true, Util.newUUID()); @@ -453,7 +456,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var delta = newYNormalized - newY; - if (!locking.ratio) { + if (!locking.ratio && !event.shiftKey) { var snapping = this._lastGuides.top ? this._lastGuides.top.clone() : new SnappingData("Top", bound.y, "Top", true, Util.newUUID()); @@ -471,7 +474,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var delta = newY2Normalized - newY2; - if (!locking.ratio) { + if (!locking.ratio && !event.shiftKey) { var snapping = this._lastGuides.bottom ? this._lastGuides.bottom.clone() : new SnappingData("Bottom", bound.y + bound.height, "Bottom", true, Util.newUUID()); diff --git a/app/views/menus/MainMenu.js b/app/views/menus/MainMenu.js index 6caddec1..8007da24 100644 --- a/app/views/menus/MainMenu.js +++ b/app/views/menus/MainMenu.js @@ -194,15 +194,15 @@ MainMenu.prototype.setup = function () { } })); - // developerToolSubItems.push(UICommandManager.register({ - // key: "deployStencilCollection", - // label: "Deploy Stencil Collection...", - // shortcut: "Ctrl+Shift+D", - // isAvailable: function () { return Pencil.controller && Pencil.controller.doc; }, - // run: function () { - // new StencilCollectionBuilder(Pencil.controller).deploy(); - // } - // })); + developerToolSubItems.push(UICommandManager.register({ + key: "deployStencilCollection", + label: "Deploy Stencil Collection...", + shortcut: "Ctrl+Shift+D", + isAvailable: function () { return Pencil.controller && Pencil.controller.doc; }, + run: function () { + new StencilCollectionBuilder(Pencil.controller).deploy(); + } + })); developerToolSubItems.push(UICommandManager.register({ key: "checkMissingResources", diff --git a/app/views/tools/OpenClipartPane.js b/app/views/tools/OpenClipartPane.js index 9e34d54e..3a2683ae 100644 --- a/app/views/tools/OpenClipartPane.js +++ b/app/views/tools/OpenClipartPane.js @@ -1,7 +1,7 @@ function OpenClipartPane() { BaseTemplatedWidget.call(this); var thiz = this; - this.backend = new OpenClipartSearch(); + this.backend = new OpenClipartSearch2(); function injectSvgInfo (svg) { try { diff --git a/app/views/tools/StencilGeneratorDialog.js b/app/views/tools/StencilGeneratorDialog.js index 6610dab7..aff5834d 100644 --- a/app/views/tools/StencilGeneratorDialog.js +++ b/app/views/tools/StencilGeneratorDialog.js @@ -241,7 +241,7 @@ StencilGeneratorDialog.prototype.loadStencil = function (result, stencils, index try { var readOnDone = function (fileData) { //var data = Base64.encode(fileData, true); - var data = new Buffer(fileData).toString("base64"); + var data = Buffer.from(fileData).toString("base64"); var st = { id: "img_" + _index, label: _stencils[_index]._label, From a98fa2831daa9f1ff3f212ef36ace36fd3a69d4b Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 14 Sep 2020 19:06:51 +0700 Subject: [PATCH 16/69] Fix file dialog API when saving and loading --- app/pencil-core/common/DocumentHandler.js | 15 ++++++++------- app/pencil-core/exporter/documentExportManager.js | 2 ++ app/views/ExportDialog.js | 14 +++++++------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/app/pencil-core/common/DocumentHandler.js b/app/pencil-core/common/DocumentHandler.js index 747206b3..8cb7b9c1 100644 --- a/app/pencil-core/common/DocumentHandler.js +++ b/app/pencil-core/common/DocumentHandler.js @@ -46,11 +46,11 @@ DocumentHandler.prototype.openDocument = function (callback) { filters: [ { name: "Pencil Documents", extensions: thiz.getAllSupportedExtensions(false) } ] - }, function (filenames) { - if (!filenames || filenames.length <= 0) return; - Config.set("document.open.recentlyDirPath", path.dirname(filenames[0])); + }).then(function (res) { + if (!res || !res.filePaths || res.filePaths.length <= 0) return; + Config.set("document.open.recentlyDirPath", path.dirname(res.filePaths[0])); - thiz.loadDocument(filenames[0], callback); + thiz.loadDocument(res.filePaths[0], callback); }); }; @@ -146,8 +146,9 @@ DocumentHandler.prototype.pickupTargetFileToSave = function (callback) { title: "Save as", defaultPath: defaultPath, filters: filters - }, function (filePath) { - if (filePath) { + }).then(function (res) { + if (res && res.filePath) { + var filePath = res.filePath; var ext = path.extname(filePath); if (ext != defaultFileType && fs.existsSync(filePath)) { Dialog.confirm("Are you sure you want to overwrite the existing file?", filePath, @@ -166,7 +167,7 @@ DocumentHandler.prototype.pickupTargetFileToSave = function (callback) { Config.set("document.save.recentlyDirPath", path.dirname(filePath)); } if (callback) { - callback(filePath); + callback(res.filePath); } }); }; diff --git a/app/pencil-core/exporter/documentExportManager.js b/app/pencil-core/exporter/documentExportManager.js index b2e1763e..676fe53b 100644 --- a/app/pencil-core/exporter/documentExportManager.js +++ b/app/pencil-core/exporter/documentExportManager.js @@ -36,6 +36,7 @@ DocumentExportManager.prototype.generateFriendlyId = function (page, usedFriendl return name; }; DocumentExportManager.prototype._exportDocumentWithParamsImpl = function (doc, forcedExporterId, params) { + console.log("Export requested..."); var exporter = Pencil.getDocumentExporterById(params.exporterId); if (!exporter) return; @@ -147,6 +148,7 @@ DocumentExportManager.prototype._exportDocumentWithParamsImpl = function (doc, f return; } var page = pages[pageIndex]; + console.log("Rasiterizing " + page.name); //signal progress var task = Util.getMessage("exporting.page.no.prefix", page.name); diff --git a/app/views/ExportDialog.js b/app/views/ExportDialog.js index 9e9dcb4d..34b66798 100644 --- a/app/views/ExportDialog.js +++ b/app/views/ExportDialog.js @@ -243,10 +243,10 @@ ExportDialog.prototype.getDialogActions = function () { } dialogOptions.filters = filters; - console.log("dialogOptions", dialogOptions); - dialog.showSaveDialog(dialogOptions, function (filename) { - if (!filename) return; - result.targetPath = filename; + dialog.showSaveDialog(dialogOptions).then(function (res) { + if (!res || !res.filePath) return; + result.targetPath = res.filePath; + console.log("Selected", res.filePath); this.close(result); @@ -262,9 +262,9 @@ ExportDialog.prototype.getDialogActions = function () { } } - dialog.showOpenDialog(dialogOptions, function (filenames) { - if (!filenames || filenames.length <= 0) return; - result.targetPath = filenames[0]; + dialog.showOpenDialog(dialogOptions).then(function (res) { + if (!res || !res.filePaths || res.filePaths.length <= 0) return; + result.targetPath = res.filePaths[0]; this.close(result); From d331951e98e1c83f8bfd89bf17787a1b953f61d6 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 14 Sep 2020 19:21:39 +0700 Subject: [PATCH 17/69] Additional API fix for electron 9.3.0 that affects export --- app/pencil-core/common/controller.js | 2 +- app/pencil-core/common/webPrinter.js | 18 +++++++----------- .../exporter/documentExportManager.js | 4 ++-- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/app/pencil-core/common/controller.js b/app/pencil-core/common/controller.js index 4639c40a..70b0e694 100644 --- a/app/pencil-core/common/controller.js +++ b/app/pencil-core/common/controller.js @@ -1163,7 +1163,7 @@ Controller.prototype.rasterizeCurrentPage = function (targetPage) { this.applicationPane.rasterizer.rasterizePageToFile(page, filePath, function (p, error) { if (!error) { NotificationPopup.show("Page exprted as '" + path.basename(filePath) + "'.", "View", function () { - shell.openItem(filePath); + shell.showItemInFolder(filePath); }); } }, undefined, false, options); diff --git a/app/pencil-core/common/webPrinter.js b/app/pencil-core/common/webPrinter.js index f9db73a3..27184d2c 100644 --- a/app/pencil-core/common/webPrinter.js +++ b/app/pencil-core/common/webPrinter.js @@ -38,17 +38,7 @@ module.exports = function () { // } // } // }); - browserWindow.webContents.printToPDF(options, function(error, pdfBuffer) { - if (error) { - try { - global.mainWindow.webContents.send(data.id, {success: false, message: error.message}); - } finally { - __callback(); - } - - return; - } - + browserWindow.webContents.printToPDF(options).then(function(pdfBuffer) { fs.writeFile(data.targetFilePath, pdfBuffer, function(error) { try { if (error) { @@ -60,6 +50,12 @@ module.exports = function () { } finally { __callback(); } + }).catch (function (error) { + try { + global.mainWindow.webContents.send(data.id, {success: false, message: error.message}); + } finally { + __callback(); + } }) }); } else { diff --git a/app/pencil-core/exporter/documentExportManager.js b/app/pencil-core/exporter/documentExportManager.js index 676fe53b..ae6bf1c2 100644 --- a/app/pencil-core/exporter/documentExportManager.js +++ b/app/pencil-core/exporter/documentExportManager.js @@ -141,7 +141,7 @@ DocumentExportManager.prototype._exportDocumentWithParamsImpl = function (doc, f thiz._exportDocumentToXML(doc, pages, pageExtraInfos, destFile, params, function () { listener.onTaskDone(); NotificationPopup.show(Util.getMessage("document.has.been.exported", destFile), "View", function () { - shell.openItem(destFile); + shell.openPath(destFile); }); }); }) @@ -186,7 +186,7 @@ DocumentExportManager.prototype._exportDocumentWithParamsImpl = function (doc, f listener.onTaskDone(); if (destFile) { NotificationPopup.show(Util.getMessage("document.has.been.exported", destFile), "View", function () { - shell.openItem(destFile); + shell.openPath(destFile); }); } else { NotificationPopup.show("Document has been exported."); From 3502abaa8c0e987d2aae4b167f96c54171d49805 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Tue, 15 Sep 2020 21:47:00 +0700 Subject: [PATCH 18/69] Improve recent document and page thumbnail views --- app/pencil-core/common/util.js | 19 +++++++++---- app/views/StartUpDocumentView.js | 2 +- app/views/StartUpDocumentView.xhtml | 2 +- app/views/common/PageThumbnailView.js | 40 +++++++++++++-------------- 4 files changed, 35 insertions(+), 28 deletions(-) diff --git a/app/pencil-core/common/util.js b/app/pencil-core/common/util.js index 342a8fbc..36032406 100644 --- a/app/pencil-core/common/util.js +++ b/app/pencil-core/common/util.js @@ -2154,13 +2154,20 @@ Util.imageOnloadListener = function (event) { }; Util.setupImage = function (image, src, mode, allowUpscale) { - image.onload = Util.imageOnloadListener; - image.style.visibility = "hidden"; - image.style.width = "0px"; - image.style.height = "0px"; - image._mode = mode; - image._allowUpscale = allowUpscale; + // image.onload = Util.imageOnloadListener; + // image.style.visibility = "hidden"; + image.style.width = "100%"; + image.style.height = "100%"; + image.style.opacity = "0"; image.src = src; + + mode = mode || "center-crop"; + + var hp = (mode.indexOf("left") >= 0) ? "left" : ((mode.indexOf("right") >= 0) ? "right" : " center"); + var vp = (mode.indexOf("top") >= 0) ? "top" : ((mode.indexOf("bottom") >= 0) ? "bottom" : " center"); + image.parentNode.style.backgroundImage = "url('" + src + "')"; + image.parentNode.style.backgroundPosition = hp + " " + vp; + image.parentNode.style.backgroundSize = (mode.indexOf("crop") >= 0) ? "cover" : "contain"; }; Util.isDev = function() { diff --git a/app/views/StartUpDocumentView.js b/app/views/StartUpDocumentView.js index 8e02e230..93bf9980 100644 --- a/app/views/StartUpDocumentView.js +++ b/app/views/StartUpDocumentView.js @@ -24,7 +24,7 @@ function StartUpDocumentView() { if (pinDocs && pinDocs.indexOf(filePath) >= 0) Dom.addClass(binding.pin, "Unpin"); if (thumbPath) { window.setTimeout(function () { - Util.setupImage(binding.thumbnailImage, ImageData.filePathToURL(thumbPath), "center-crop", "allowUpscale"); + Util.setupImage(binding.thumbnailImage, ImageData.filePathToURL(thumbPath), "center-top-crop", "allowUpscale"); }, 10); } binding._node._filePath = filePath; diff --git a/app/views/StartUpDocumentView.xhtml b/app/views/StartUpDocumentView.xhtml index 05e6eeb7..3f136f93 100644 --- a/app/views/StartUpDocumentView.xhtml +++ b/app/views/StartUpDocumentView.xhtml @@ -44,7 +44,7 @@ } @recentDocumentPane .Repeater-Document vbox[role="item"] .ImageContainer { width: 22ex; - height: 25ex; + height: 14ex; background: #FFF; } @recentDocumentPane .Repeater-Document vbox[role="item"] .InfoPane { diff --git a/app/views/common/PageThumbnailView.js b/app/views/common/PageThumbnailView.js index 46cadd91..9b22366c 100644 --- a/app/views/common/PageThumbnailView.js +++ b/app/views/common/PageThumbnailView.js @@ -1,24 +1,24 @@ function PageThumbnailView() { BaseTemplatedWidget.call(this); - this.bind("load", function (event) { - var W = this.pageThumbnailContainer.offsetWidth - 2; - var H = this.pageThumbnailContainer.offsetHeight - 2; - var w = this.pageThumbnail.naturalWidth; - var h = this.pageThumbnail.naturalHeight; - - var r = Math.min(w/W, h/H); - - w /= r; - h /= r; - - this.pageThumbnail.style.width = w + "px"; - this.pageThumbnail.style.height = h + "px"; - - this.pageThumbnail.style.left = (W - w) / 2 + "px"; - this.pageThumbnail.style.top = (H - h) / 2 + "px"; - - this.pageThumbnail.style.visibility = "visible"; - }, this.pageThumbnail); + // this.bind("load", function (event) { + // var W = this.pageThumbnailContainer.offsetWidth - 2; + // var H = this.pageThumbnailContainer.offsetHeight - 2; + // var w = this.pageThumbnail.naturalWidth; + // var h = this.pageThumbnail.naturalHeight; + // + // var r = Math.min(w/W, h/H); + // + // w /= r; + // h /= r; + // + // this.pageThumbnail.style.width = w + "px"; + // this.pageThumbnail.style.height = h + "px"; + // + // this.pageThumbnail.style.left = (W - w) / 2 + "px"; + // this.pageThumbnail.style.top = (H - h) / 2 + "px"; + // + // this.pageThumbnail.style.visibility = "visible"; + // }, this.pageThumbnail); this.pageThumbnail.style.visibility = "hidden"; @@ -47,7 +47,7 @@ PageThumbnailView.prototype.setPage = function (page, childMenu) { PageThumbnailView.prototype._updateUI = function () { this.pageThumbnail.style.visibility = "hidden"; if (!this.page.children || this.page.children.length == 0) this.pageActionButton.style.visibility = "hidden"; - if (this.page.thumbPath) this.pageThumbnail.src = this.page.thumbPath + "?time=" + (new Date().getTime()); + if (this.page.thumbPath) Util.setupImage(this.pageThumbnail, this.page.thumbPath + "?time=" + (new Date().getTime()), "center-top-crop", "allowUpscale"); // this.pageTitle.appendChild(document.createTextNode(this.page.name)); this.pageTitle.innerHTML = Dom.htmlEncode(this.page.name); this.node().setAttribute("title", this.page.name); From a611761e7c885fa4202d1b1ffee579c579ccd67f Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 2 Oct 2020 10:04:17 +0700 Subject: [PATCH 19/69] Add xml syntax for code editor --- app/app.xhtml | 1 + app/index.js | 5 +++-- app/pencil-core/target/shape.js | 8 ++++++-- app/views/tools/ScriptEditorDialog.js | 6 +++++- app/views/tools/ScriptEditorDialog.xhtml | 4 ++++ 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/app.xhtml b/app/app.xhtml index 010af649..869a5f60 100644 --- a/app/app.xhtml +++ b/app/app.xhtml @@ -15,6 +15,7 @@ + diff --git a/app/index.js b/app/index.js index f3f82e0c..79fec6a7 100644 --- a/app/index.js +++ b/app/index.js @@ -6,8 +6,9 @@ const fs = require("fs"); const path = require("path"); const os = require("os"); -app.commandLine.appendSwitch("allow-file-access-from-files"); -app.commandLine.appendSwitch("allow-file-access"); +app.commandLine.appendSwitch("no-sandbox"); +app.commandLine.appendSwitch("allow-file-access-from-files", "1"); +app.commandLine.appendSwitch("allow-file-access", "1"); app.commandLine.appendSwitch("disable-smooth-scrolling"); app.commandLine.appendSwitch("disable-site-isolation-trials"); diff --git a/app/pencil-core/target/shape.js b/app/pencil-core/target/shape.js index e9b97e01..fa7a2b25 100644 --- a/app/pencil-core/target/shape.js +++ b/app/pencil-core/target/shape.js @@ -1137,6 +1137,10 @@ Shape.prototype.getSnappingGuide = function () { var customSnappingData = this.performAction("getSnappingGuide"); if (customSnappingData) { + if (customSnappingData._ignoreBuiltIns) { + vertical.length = 0; + horizontal.length = 0; + } for (var i = 0; i < customSnappingData.length; i++) { var data = customSnappingData[i]; var m = this.svg.getTransformToElement(this.canvas.drawingLayer); @@ -1152,7 +1156,7 @@ Shape.prototype.getSnappingGuide = function () { ik = k; } } - if (ik != -1) { + if (ik != -1 && !customSnappingData._allowTypeDuplications) { vertical[ik] = data; } else { vertical.push(data); @@ -1167,7 +1171,7 @@ Shape.prototype.getSnappingGuide = function () { ik = k; } } - if (ik != -1) { + if (ik != -1 && !customSnappingData._allowTypeDuplications) { horizontal[ik] = data; } else { horizontal.push(data); diff --git a/app/views/tools/ScriptEditorDialog.js b/app/views/tools/ScriptEditorDialog.js index 591d79c3..36bead08 100644 --- a/app/views/tools/ScriptEditorDialog.js +++ b/app/views/tools/ScriptEditorDialog.js @@ -1,6 +1,10 @@ -function ScriptEditorDialog() { +function ScriptEditorDialog(large) { Dialog.call(this); this.title = "Script Editor"; + + if (large) { + Dom.addClass(this.scriptInputContainer, "Large"); + } } __extend(Dialog, ScriptEditorDialog); diff --git a/app/views/tools/ScriptEditorDialog.xhtml b/app/views/tools/ScriptEditorDialog.xhtml index 82765282..4b617e3f 100644 --- a/app/views/tools/ScriptEditorDialog.xhtml +++ b/app/views/tools/ScriptEditorDialog.xhtml @@ -17,6 +17,10 @@ height: 40em; width: 60em; } + @scriptInputContainer.Large { + height: 55em; + width: 100em; + } From 22a090d118e477d496c066fa0b5afd1cb778685c Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 2 Oct 2020 10:06:25 +0700 Subject: [PATCH 20/69] Add xml syntax for code editor --- app/lib/codemirror/xml.js | 413 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 413 insertions(+) create mode 100644 app/lib/codemirror/xml.js diff --git a/app/lib/codemirror/xml.js b/app/lib/codemirror/xml.js new file mode 100644 index 00000000..73c6e0e0 --- /dev/null +++ b/app/lib/codemirror/xml.js @@ -0,0 +1,413 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +var htmlConfig = { + autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true, + 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true, + 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true, + 'track': true, 'wbr': true, 'menuitem': true}, + implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true, + 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true, + 'th': true, 'tr': true}, + contextGrabbers: { + 'dd': {'dd': true, 'dt': true}, + 'dt': {'dd': true, 'dt': true}, + 'li': {'li': true}, + 'option': {'option': true, 'optgroup': true}, + 'optgroup': {'optgroup': true}, + 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true, + 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true, + 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true, + 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true, + 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true}, + 'rp': {'rp': true, 'rt': true}, + 'rt': {'rp': true, 'rt': true}, + 'tbody': {'tbody': true, 'tfoot': true}, + 'td': {'td': true, 'th': true}, + 'tfoot': {'tbody': true}, + 'th': {'td': true, 'th': true}, + 'thead': {'tbody': true, 'tfoot': true}, + 'tr': {'tr': true} + }, + doNotIndent: {"pre": true}, + allowUnquoted: true, + allowMissing: true, + caseFold: true +} + +var xmlConfig = { + autoSelfClosers: {}, + implicitlyClosed: {}, + contextGrabbers: {}, + doNotIndent: {}, + allowUnquoted: false, + allowMissing: false, + allowMissingTagName: false, + caseFold: false +} + +CodeMirror.defineMode("xml", function(editorConf, config_) { + var indentUnit = editorConf.indentUnit + var config = {} + var defaults = config_.htmlMode ? htmlConfig : xmlConfig + for (var prop in defaults) config[prop] = defaults[prop] + for (var prop in config_) config[prop] = config_[prop] + + // Return variables for tokenizers + var type, setStyle; + + function inText(stream, state) { + function chain(parser) { + state.tokenize = parser; + return parser(stream, state); + } + + var ch = stream.next(); + if (ch == "<") { + if (stream.eat("!")) { + if (stream.eat("[")) { + if (stream.match("CDATA[")) return chain(inBlock("atom", "]]>")); + else return null; + } else if (stream.match("--")) { + return chain(inBlock("comment", "-->")); + } else if (stream.match("DOCTYPE", true, true)) { + stream.eatWhile(/[\w\._\-]/); + return chain(doctype(1)); + } else { + return null; + } + } else if (stream.eat("?")) { + stream.eatWhile(/[\w\._\-]/); + state.tokenize = inBlock("meta", "?>"); + return "meta"; + } else { + type = stream.eat("/") ? "closeTag" : "openTag"; + state.tokenize = inTag; + return "tag bracket"; + } + } else if (ch == "&") { + var ok; + if (stream.eat("#")) { + if (stream.eat("x")) { + ok = stream.eatWhile(/[a-fA-F\d]/) && stream.eat(";"); + } else { + ok = stream.eatWhile(/[\d]/) && stream.eat(";"); + } + } else { + ok = stream.eatWhile(/[\w\.\-:]/) && stream.eat(";"); + } + return ok ? "atom" : "error"; + } else { + stream.eatWhile(/[^&<]/); + return null; + } + } + inText.isInText = true; + + function inTag(stream, state) { + var ch = stream.next(); + if (ch == ">" || (ch == "/" && stream.eat(">"))) { + state.tokenize = inText; + type = ch == ">" ? "endTag" : "selfcloseTag"; + return "tag bracket"; + } else if (ch == "=") { + type = "equals"; + return null; + } else if (ch == "<") { + state.tokenize = inText; + state.state = baseState; + state.tagName = state.tagStart = null; + var next = state.tokenize(stream, state); + return next ? next + " tag error" : "tag error"; + } else if (/[\'\"]/.test(ch)) { + state.tokenize = inAttribute(ch); + state.stringStartCol = stream.column(); + return state.tokenize(stream, state); + } else { + stream.match(/^[^\s\u00a0=<>\"\']*[^\s\u00a0=<>\"\'\/]/); + return "word"; + } + } + + function inAttribute(quote) { + var closure = function(stream, state) { + while (!stream.eol()) { + if (stream.next() == quote) { + state.tokenize = inTag; + break; + } + } + return "string"; + }; + closure.isInAttribute = true; + return closure; + } + + function inBlock(style, terminator) { + return function(stream, state) { + while (!stream.eol()) { + if (stream.match(terminator)) { + state.tokenize = inText; + break; + } + stream.next(); + } + return style; + } + } + + function doctype(depth) { + return function(stream, state) { + var ch; + while ((ch = stream.next()) != null) { + if (ch == "<") { + state.tokenize = doctype(depth + 1); + return state.tokenize(stream, state); + } else if (ch == ">") { + if (depth == 1) { + state.tokenize = inText; + break; + } else { + state.tokenize = doctype(depth - 1); + return state.tokenize(stream, state); + } + } + } + return "meta"; + }; + } + + function Context(state, tagName, startOfLine) { + this.prev = state.context; + this.tagName = tagName; + this.indent = state.indented; + this.startOfLine = startOfLine; + if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent)) + this.noIndent = true; + } + function popContext(state) { + if (state.context) state.context = state.context.prev; + } + function maybePopContext(state, nextTagName) { + var parentTagName; + while (true) { + if (!state.context) { + return; + } + parentTagName = state.context.tagName; + if (!config.contextGrabbers.hasOwnProperty(parentTagName) || + !config.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)) { + return; + } + popContext(state); + } + } + + function baseState(type, stream, state) { + if (type == "openTag") { + state.tagStart = stream.column(); + return tagNameState; + } else if (type == "closeTag") { + return closeTagNameState; + } else { + return baseState; + } + } + function tagNameState(type, stream, state) { + if (type == "word") { + state.tagName = stream.current(); + setStyle = "tag"; + return attrState; + } else if (config.allowMissingTagName && type == "endTag") { + setStyle = "tag bracket"; + return attrState(type, stream, state); + } else { + setStyle = "error"; + return tagNameState; + } + } + function closeTagNameState(type, stream, state) { + if (type == "word") { + var tagName = stream.current(); + if (state.context && state.context.tagName != tagName && + config.implicitlyClosed.hasOwnProperty(state.context.tagName)) + popContext(state); + if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) { + setStyle = "tag"; + return closeState; + } else { + setStyle = "tag error"; + return closeStateErr; + } + } else if (config.allowMissingTagName && type == "endTag") { + setStyle = "tag bracket"; + return closeState(type, stream, state); + } else { + setStyle = "error"; + return closeStateErr; + } + } + + function closeState(type, _stream, state) { + if (type != "endTag") { + setStyle = "error"; + return closeState; + } + popContext(state); + return baseState; + } + function closeStateErr(type, stream, state) { + setStyle = "error"; + return closeState(type, stream, state); + } + + function attrState(type, _stream, state) { + if (type == "word") { + setStyle = "attribute"; + return attrEqState; + } else if (type == "endTag" || type == "selfcloseTag") { + var tagName = state.tagName, tagStart = state.tagStart; + state.tagName = state.tagStart = null; + if (type == "selfcloseTag" || + config.autoSelfClosers.hasOwnProperty(tagName)) { + maybePopContext(state, tagName); + } else { + maybePopContext(state, tagName); + state.context = new Context(state, tagName, tagStart == state.indented); + } + return baseState; + } + setStyle = "error"; + return attrState; + } + function attrEqState(type, stream, state) { + if (type == "equals") return attrValueState; + if (!config.allowMissing) setStyle = "error"; + return attrState(type, stream, state); + } + function attrValueState(type, stream, state) { + if (type == "string") return attrContinuedState; + if (type == "word" && config.allowUnquoted) {setStyle = "string"; return attrState;} + setStyle = "error"; + return attrState(type, stream, state); + } + function attrContinuedState(type, stream, state) { + if (type == "string") return attrContinuedState; + return attrState(type, stream, state); + } + + return { + startState: function(baseIndent) { + var state = {tokenize: inText, + state: baseState, + indented: baseIndent || 0, + tagName: null, tagStart: null, + context: null} + if (baseIndent != null) state.baseIndent = baseIndent + return state + }, + + token: function(stream, state) { + if (!state.tagName && stream.sol()) + state.indented = stream.indentation(); + + if (stream.eatSpace()) return null; + type = null; + var style = state.tokenize(stream, state); + if ((style || type) && style != "comment") { + setStyle = null; + state.state = state.state(type || style, stream, state); + if (setStyle) + style = setStyle == "error" ? style + " error" : setStyle; + } + return style; + }, + + indent: function(state, textAfter, fullLine) { + var context = state.context; + // Indent multi-line strings (e.g. css). + if (state.tokenize.isInAttribute) { + if (state.tagStart == state.indented) + return state.stringStartCol + 1; + else + return state.indented + indentUnit; + } + if (context && context.noIndent) return CodeMirror.Pass; + if (state.tokenize != inTag && state.tokenize != inText) + return fullLine ? fullLine.match(/^(\s*)/)[0].length : 0; + // Indent the starts of attribute names. + if (state.tagName) { + if (config.multilineTagIndentPastTag !== false) + return state.tagStart + state.tagName.length + 2; + else + return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1); + } + if (config.alignCDATA && /$/, + blockCommentStart: "", + + configuration: config.htmlMode ? "html" : "xml", + helperType: config.htmlMode ? "html" : "xml", + + skipAttribute: function(state) { + if (state.state == attrValueState) + state.state = attrState + }, + + xmlCurrentTag: function(state) { + return state.tagName ? {name: state.tagName, close: state.type == "closeTag"} : null + }, + + xmlCurrentContext: function(state) { + var context = [] + for (var cx = state.context; cx; cx = cx.prev) + if (cx.tagName) context.push(cx.tagName) + return context.reverse() + } + }; +}); + +CodeMirror.defineMIME("text/xml", "xml"); +CodeMirror.defineMIME("application/xml", "xml"); +if (!CodeMirror.mimeModes.hasOwnProperty("text/html")) + CodeMirror.defineMIME("text/html", {name: "xml", htmlMode: true}); + +}); From 98f09659612d91c6f4229c5e419f4efd69d08648 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 5 Oct 2020 10:46:05 +0700 Subject: [PATCH 21/69] Upgrade to Electron 10.1.3 --- app/pencil-core/common/controller.js | 30 +++++++------ app/pencil-core/common/svgRasterizer.js | 58 +++++++++++++++++++++++++ package-lock.json | 36 +++++++-------- package.json | 2 +- 4 files changed, 93 insertions(+), 33 deletions(-) diff --git a/app/pencil-core/common/controller.js b/app/pencil-core/common/controller.js index 70b0e694..7f92fdba 100644 --- a/app/pencil-core/common/controller.js +++ b/app/pencil-core/common/controller.js @@ -1158,12 +1158,13 @@ Controller.prototype.rasterizeCurrentPage = function (targetPage) { filters: [ { name: "PNG Image (*.png)", extensions: ["png"] } ] - }, function (filePath) { - if (!filePath) return; + }).then(function (res) { + if (!res || !res.filePath) return; + var filePath = res.filePath; this.applicationPane.rasterizer.rasterizePageToFile(page, filePath, function (p, error) { if (!error) { NotificationPopup.show("Page exprted as '" + path.basename(filePath) + "'.", "View", function () { - shell.showItemInFolder(filePath); + shell.openPath(filePath); }); } }, undefined, false, options); @@ -1246,12 +1247,13 @@ Controller.prototype.rasterizeSelection = function (options) { filters: [ { name: "PNG Image (*.png)", extensions: ["png"] } ] - }, function (filePath) { - if (!filePath) return; + }).then(function (res) { + if (!res || !res.filePath) return; + var filePath = res.filePath; this.applicationPane.rasterizer.rasterizeSelectionToFile(target, filePath, function (p, error) { if (!error) { NotificationPopup.show("Selection exprted as '" + path.basename(filePath) + "'.", "View", function () { - shell.openItem(filePath); + shell.openPath(filePath); }); } }, undefined, options); @@ -1686,14 +1688,14 @@ Controller.prototype.exportAsLayout = function () { title: "Export Layout", defaultPath: defaultPath, filters: [{name: 'XHTML Layout', extensions: ["xhtml"]}] - }, function (filePath) { - if (filePath) { - outputPath = filePath; - outputImage = path.join(path.dirname(outputPath), IMAGE_FILE); - Pencil.rasterizer.rasterizePageToFile(thiz.activePage, outputImage, function (p, error) { - done(); - }); - } + }).then(function (res) { + if (!res || !res.filePath) return; + var filePath = res.filePath; + outputPath = filePath; + outputImage = path.join(path.dirname(outputPath), IMAGE_FILE); + Pencil.rasterizer.rasterizePageToFile(thiz.activePage, outputImage, function (p, error) { + done(); + }); }); }; diff --git a/app/pencil-core/common/svgRasterizer.js b/app/pencil-core/common/svgRasterizer.js index c30b028a..f7a5b1a2 100644 --- a/app/pencil-core/common/svgRasterizer.js +++ b/app/pencil-core/common/svgRasterizer.js @@ -167,9 +167,67 @@ Rasterizer.inProcessCanvasBasedBackend = { convertNext(); } }; +Rasterizer.inProcessFileCanvasBasedBackend = { + init: function () { + //the in-process rasterize requires basicly nothing to init :) + }, + rasterize: function (svgNode, width, height, s, callback, parseLinks, options) { + console.log("rasterize() called", [svgNode, width, height, s, callback, parseLinks, options]); + var images = svgNode.querySelectorAll("image"); + var totalImageLength = 0; + for (var i = 0; i < images.length; i ++) { + var image = images[i]; + var href = image.getAttributeNS(PencilNamespaces.xlink, "href"); + if (href && href.match("^file://(.+)$")) { + var sourcePath = decodeURI(RegExp.$1); + try { + fs.accessSync(sourcePath, fs.R_OK); + image.setAttribute("crossorigin", "anonymous"); + } catch (e) { + image.setAttributeNS(PencilNamespaces.xlink, "href", ""); + } + } + } + + var tempFile = tmp.fileSync({postfix: ".svg" }); + fs.writeFileSync(tempFile.name, Controller.serializer.serializeToString(svgNode), XMLDocumentPersister.CHARSET); + + var delay = 500; + + var canvas = document.createElement("canvas"); + canvas.setAttribute("style", "display: none;"); + canvas.setAttribute("width", width * s); + canvas.setAttribute("height", height * s); + document.body.appendChild(canvas); + var ctx = canvas.getContext("2d"); + + var img = document.createElement("img"); + + img.onload = function () { + ctx.save(); + ctx.scale(s, s); + ctx.drawImage(img, 0, 0); + ctx.setTransform(1, 0, 0, 1, 0, 0); + + setTimeout(function () { + callback(canvas.toDataURL()); + ctx.restore(); + img.onload = null; + img.src = ""; + }, delay); + }; + + img.setAttribute("crossorigin", "anonymous"); + img.setAttribute("style", "display: none;"); + document.body.appendChild(img); + + img.setAttribute("src", "file://" + tempFile.name); + } +}; Rasterizer.prototype.getBackend = function () { //TODO: options or condition? + // return Rasterizer.inProcessFileCanvasBasedBackend; return Rasterizer.ipcBasedBackend; // return Rasterizer.outProcessCanvasBasedBackend; }; diff --git a/package-lock.json b/package-lock.json index 85f4ef97..327d3ed8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,12 +27,12 @@ }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "get-stream": { @@ -96,9 +96,9 @@ } }, "@types/node": { - "version": "12.12.58", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.58.tgz", - "integrity": "sha512-Be46CNIHWAagEfINOjmriSxuv7IVcqbGe+sDSg2SYCEz/0CRBy7LRASGfRbD8KZkqoePU73Wsx3UvOSFcq/9hA==", + "version": "12.12.62", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.62.tgz", + "integrity": "sha512-qAfo81CsD7yQIM9mVyh6B/U47li5g7cfpVQEDMfQeF8pSZVwzbhwU3crc0qG4DmpsebpJPR49AKOExQyJ05Cpg==", "dev": true }, "abbrev": { @@ -989,9 +989,9 @@ "dev": true }, "electron": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-9.3.0.tgz", - "integrity": "sha512-7zPLEZ+kOjVJqfawMQ0vVuZZRqvZIeiID3tbjjbVybbxXIlFMpZ2jogoh7PV3rLrtm+dKRfu7Qc4E7ob1d0FqQ==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.3.tgz", + "integrity": "sha512-CR8LrlG47MdAp317SQ3vGYa2o2cIMdMSMPYH46OVitFLk35dwE9fn3VqvhUIXhCHYcNWIAPzMhkVHpkoFdKWuw==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -2685,13 +2685,13 @@ } }, "roarr": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", - "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "dev": true, "optional": true, "requires": { - "boolean": "^3.0.0", + "boolean": "^3.0.1", "detect-node": "^2.0.4", "globalthis": "^1.0.1", "json-stringify-safe": "^5.0.1", @@ -2967,12 +2967,12 @@ }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } diff --git a/package.json b/package.json index a85c1018..5b44d6fe 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "9.3.0", + "electron": "10.1.3", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" From fa2a8698041150c231cbad44faac868236409534 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 5 Oct 2020 13:36:02 +0700 Subject: [PATCH 22/69] Fix progress dialog annoying text jump --- app/views/common/ProgressiveJobDialog.xhtml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/common/ProgressiveJobDialog.xhtml b/app/views/common/ProgressiveJobDialog.xhtml index ba92c733..c233dc29 100644 --- a/app/views/common/ProgressiveJobDialog.xhtml +++ b/app/views/common/ProgressiveJobDialog.xhtml @@ -7,7 +7,7 @@ } @progressBar, @statusLabel { - width: 18em; + width: 24em; overflow: hidden; text-overflow: ellipsis; } @@ -15,6 +15,9 @@ height: 100%; background: @selected_bg; } + @statusLabel { + white-space: nowrap; + } @container { padding: 1em; } From 8a7a96b11a45edf971e89eda4eb32b02d5fcb42d Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 7 Oct 2020 14:16:51 +0700 Subject: [PATCH 23/69] Allow external editor for unlisted extensions --- app/pencil-core/common/externalEditorSupports.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/pencil-core/common/externalEditorSupports.js b/app/pencil-core/common/externalEditorSupports.js index e55d6009..4afae110 100644 --- a/app/pencil-core/common/externalEditorSupports.js +++ b/app/pencil-core/common/externalEditorSupports.js @@ -6,6 +6,15 @@ ExternalEditorSupports.getEditorPath = function (extension) { || extension == "gif" || extension == "png") return Config.get("external.editor.bitmap.path", "/usr/bin/gimp -n %f"); + var configName = "external.editor." + extension + ".path"; + var p = Config.get(configName, null); + + if (p) { + return p; + } else if (p == null) { + Config.define(configName, ""); + } + throw Util.getMessage("unsupported.type", extension); }; ExternalEditorSupports.queue = []; @@ -46,7 +55,9 @@ ExternalEditorSupports.handleEditRequest = function (contentProvider, contentRec try { contentReceiver.update(tmpFile.name); if (timeOutId) window.clearTimeout(timeOutId); - tmpFile.removeCallback(); + window.setTimeout(function () { + tmpFile.removeCallback(); + }, 3000); } catch (e) { console.error(e); } From 5a3d2749e3edce2d0c14018ca6c3f30fa2f12f00 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 7 Oct 2020 16:22:40 +0700 Subject: [PATCH 24/69] Show error message when editor quits to fast --- app/pencil-core/common/externalEditorSupports.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/pencil-core/common/externalEditorSupports.js b/app/pencil-core/common/externalEditorSupports.js index 4afae110..74f161bf 100644 --- a/app/pencil-core/common/externalEditorSupports.js +++ b/app/pencil-core/common/externalEditorSupports.js @@ -48,10 +48,16 @@ ExternalEditorSupports.handleEditRequest = function (contentProvider, contentRec params.push(tmpFile.name); } + var startedAt = new Date().getTime(); var process = spawn(executablePath, params); var timeOutId = null; process.on("close", function () { + var closedAt = new Date().getTime(); + console.log("Closed: ", closedAt - startedAt); + if (closedAt - startedAt < 2000) { + Dialog.alert("Editor exited almost immediately", "The external edit has exited almost immediately after be launched. This is usually caused by the case where an existing instance of the editor software is running. Please make sure that is not the case."); + } try { contentReceiver.update(tmpFile.name); if (timeOutId) window.clearTimeout(timeOutId); From 92c545de73c1134f2a28c94d1674912f0bf780e9 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Thu, 15 Oct 2020 13:14:02 +0700 Subject: [PATCH 25/69] Fix collection installer open dialog API changes caused by Electron 10 --- app/pencil-core/definition/collectionManager.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/pencil-core/definition/collectionManager.js b/app/pencil-core/definition/collectionManager.js index d3962ad6..2435b5de 100644 --- a/app/pencil-core/definition/collectionManager.js +++ b/app/pencil-core/definition/collectionManager.js @@ -313,10 +313,10 @@ CollectionManager.installNewCollection = function (callback) { { name: "Stencil files", extensions: ["zip", "epc"] } ] - }, function (filenames) { - if (!filenames || filenames.length <= 0) return; - Config.set("collection.install.recentlyDirPath", path.dirname(filenames[0])); - CollectionManager.installCollectionFromFilePath(filenames[0], callback); + }).then(function (res) { + if (!res || !res.filePaths || res.filePaths.length <= 0) return; + Config.set("collection.install.recentlyDirPath", path.dirname(res.filePaths[0])); + CollectionManager.installCollectionFromFilePath(res.filePaths[0], callback); }); }; From d7c9948b631d321feebf0067e966adea448e9cce Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 28 Oct 2020 09:49:49 +0700 Subject: [PATCH 26/69] Add delay to renderer --- app/pencil-core/common/renderer.js | 8 +++--- app/views/editors/ColorSelector.js | 39 ++++++++++++++++++++++++++- app/views/editors/ColorSelector.xhtml | 3 ++- package-lock.json | 12 ++++----- package.json | 2 +- 5 files changed, 52 insertions(+), 12 deletions(-) diff --git a/app/pencil-core/common/renderer.js b/app/pencil-core/common/renderer.js index e765fa0c..5e13b2ea 100644 --- a/app/pencil-core/common/renderer.js +++ b/app/pencil-core/common/renderer.js @@ -78,7 +78,7 @@ module.exports = function () { if (err) throw err; var svg = data.svg; - var delay = 10; + var delay = 500; console.log("data.scale", data.scale); var scale = typeof(data.scale) == "number" ? data.scale : 1; @@ -112,8 +112,10 @@ module.exports = function () { + ' window.setTimeout(function () {\n' + ' window.requestAnimationFrame(function () {\n' + ' window.requestAnimationFrame(function () {\n' - + ' ipcRenderer.send("render-rendered", {objectsWithLinking: window.objectsWithLinking});\n' - + ' console.log("Rendered signaled");\n' + + ' window.setTimeout(function () {\n' + + ' ipcRenderer.send("render-rendered", {objectsWithLinking: window.objectsWithLinking});\n' + + ' console.log("Rendered signaled");\n' + + ' }, 500);\n' + ' });\n' + ' });\n' + ' }, ' + delay + ');\n' diff --git a/app/views/editors/ColorSelector.js b/app/views/editors/ColorSelector.js index 39f93f1d..51998f62 100644 --- a/app/views/editors/ColorSelector.js +++ b/app/views/editors/ColorSelector.js @@ -611,12 +611,14 @@ ColorSelector.installGlobalListeners = function () { }; ColorSelector.prototype.onColorPickingCanceled = function () { document.body.removeAttribute("color-picker-active"); + document.body.removeAttribute("color-picker-active-external"); BaseWidget.closableProcessingDisabled = false; ColorSelector.currentPickerInstance = null; BaseWidget.unregisterClosable(ColorSelector._pickerClosable); }; ColorSelector.prototype.onColorPicked = function (color) { document.body.removeAttribute("color-picker-active"); + document.body.removeAttribute("color-picker-active-external"); BaseWidget.closableProcessingDisabled = false; BaseWidget.unregisterClosable(ColorSelector._pickerClosable); @@ -633,7 +635,42 @@ ColorSelector._pickerClosable = { } }; -ColorSelector.prototype.pickColor = function () { +ColorSelector.CONFIG_EXTERNAL_COLOR_PICKER_PATH = Config.define("color.external_picker_path", ""); + +ColorSelector.prototype.pickColor = function (event) { + var externalPickerPath = Config.get(ColorSelector.CONFIG_EXTERNAL_COLOR_PICKER_PATH, ""); + if (!externalPickerPath) { + this.pickColorUsingElectronCapture(); + return; + } + + var thiz = this; + + if (event && event.shiftKey) { + window.setTimeout(function () { + thiz.pickColorUsingExternalTool(externalPickerPath); + }, 2000); + } else { + thiz.pickColorUsingExternalTool(externalPickerPath); + } +}; +ColorSelector.prototype.pickColorUsingExternalTool = function (externalPickerPath) { + var thiz = this; + + document.body.setAttribute("color-picker-active-external", true); + var exec = require("child_process").exec; + exec(externalPickerPath, function (error, stdout, stderr) { + var color = stdout; + console.log("Color: " + color); + if (color) { + thiz.onColorPicked(color.replace(/[^0-9#A-F]+/gi, "")); + } else { + thiz.onColorPickingCanceled(); + } + }); +} + +ColorSelector.prototype.pickColorUsingElectronCapture = function () { ColorSelector.installGlobalListeners(); document.body.setAttribute("color-picker-active", true); diff --git a/app/views/editors/ColorSelector.xhtml b/app/views/editors/ColorSelector.xhtml index e46c0c7f..51afcb35 100644 --- a/app/views/editors/ColorSelector.xhtml +++ b/app/views/editors/ColorSelector.xhtml @@ -147,7 +147,8 @@ margin-left: 0.2ex; } - body[color-picker-active] .ColorPopup { + body[color-picker-active] .ColorPopup, + body[color-picker-active-external] .ColorPopup { visibility: hidden !important; } body[color-picker-active="true"], diff --git a/package-lock.json b/package-lock.json index 327d3ed8..89df0d2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -96,9 +96,9 @@ } }, "@types/node": { - "version": "12.12.62", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.62.tgz", - "integrity": "sha512-qAfo81CsD7yQIM9mVyh6B/U47li5g7cfpVQEDMfQeF8pSZVwzbhwU3crc0qG4DmpsebpJPR49AKOExQyJ05Cpg==", + "version": "12.19.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.2.tgz", + "integrity": "sha512-SRH6QM0IMOBBFmDiJ75vlhcbUEYEquvSuhsVW9ijG20JvdFTfOrB1p6ddZxz5y/JNnbf+9HoHhjhOVSX2hsJyA==", "dev": true }, "abbrev": { @@ -989,9 +989,9 @@ "dev": true }, "electron": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.3.tgz", - "integrity": "sha512-CR8LrlG47MdAp317SQ3vGYa2o2cIMdMSMPYH46OVitFLk35dwE9fn3VqvhUIXhCHYcNWIAPzMhkVHpkoFdKWuw==", + "version": "10.1.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.5.tgz", + "integrity": "sha512-fys/KnEfJq05TtMij+lFvLuKkuVH030CHYx03iZrW5DNNLwjE6cW3pysJ420lB0FRSfPjTHBMu2eVCf5TG71zQ==", "dev": true, "requires": { "@electron/get": "^1.0.1", diff --git a/package.json b/package.json index 5b44d6fe..9c2d20ca 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "10.1.3", + "electron": "10.1.5", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" From 205761a6bed368358fdb10c944be714d8792d854 Mon Sep 17 00:00:00 2001 From: Le Quang Thanh Date: Tue, 30 Mar 2021 17:41:03 +0700 Subject: [PATCH 27/69] Fixed load file for image data prompt --- app/pencil-core/propertyType/imageData.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/pencil-core/propertyType/imageData.js b/app/pencil-core/propertyType/imageData.js index a696b732..c520658e 100644 --- a/app/pencil-core/propertyType/imageData.js +++ b/app/pencil-core/propertyType/imageData.js @@ -70,7 +70,7 @@ ImageData.invalidateValue = function (oldData, callback) { } catch (e) { console.e(e); } - + if (!image) { callback(null); return; @@ -149,17 +149,16 @@ ImageData.refStringToUrl = function (refString) { }; ImageData.prompt = function (callback, ext) { - dialog.showOpenDialog(remote.getCurrentWindow(), { + var filenames = dialog.showOpenDialogSync(remote.getCurrentWindow(), { title: "Select Image", defaultPath: os.homedir(), filters: [ { name: "Image files", extensions: ext || ["png", "jpg", "jpeg", "gif", "bmp", "svg"] } ] - }, function (filenames) { - if (!filenames || filenames.length <= 0) return; - ImageData.fromExternalToImageData(filenames[0], callback); }); + if (!filenames || filenames.length <= 0) return; + ImageData.fromExternalToImageData(filenames[0], callback); }; ImageData.fromExternalToImageData = function (filePath, callback) { @@ -383,7 +382,7 @@ ImageData.fromScreenshot = function (callback, providedOptions) { imageData.w = Math.round(imageData.w / ratio); imageData.h = Math.round(imageData.h / ratio); } - + var fs = require("fs"); fs.unlinkSync(localPath); callback(imageData, options); From 9687bd0772876c21cacb1e08a6cbb6841ebfb3bf Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 5 May 2021 14:02:31 +0700 Subject: [PATCH 28/69] Add support for generic external commandline-based screenshooter --- app/pencil-core/common/DocumentHandler.js | 12 +++-- app/pencil-core/common/controller.js | 36 ++++++++++++++ app/pencil-core/common/pencil.js | 14 ++++-- app/pencil-core/common/renderer.js | 4 +- app/pencil-core/target/targetSet.js | 8 ++++ app/tools/capture-services.js | 58 +++++++++++++++++++++++ app/views/tools/FontDetailDialog.js | 9 ++-- package-lock.json | 6 +-- package.json | 2 +- 9 files changed, 133 insertions(+), 16 deletions(-) diff --git a/app/pencil-core/common/DocumentHandler.js b/app/pencil-core/common/DocumentHandler.js index 8cb7b9c1..50828928 100644 --- a/app/pencil-core/common/DocumentHandler.js +++ b/app/pencil-core/common/DocumentHandler.js @@ -106,9 +106,15 @@ DocumentHandler.prototype.loadDocument = function(filePath, callback){ DocumentHandler.prototype.loadDocumentFromArguments = function (filePath) { - console.log("Loading file from argument: " + filePath); - this.loadDocument(filePath, function () { - }); + if (filePath.match(/^.*\.(ep|epgz)$/)) { + this.loadDocument(filePath, function () { }); + } else if (filePath.match(/^.*\.(png|jpg|jpeg|gif|bmp)$/)) { + this.resetDocument(); + this.controller.sayControllerStatusChanged(); + FontLoader.instance.loadFonts(); + this.controller.handleNewDocumentFromImage(filePath); + } + } DocumentHandler.prototype.pickupTargetFileToSave = function (callback) { diff --git a/app/pencil-core/common/controller.js b/app/pencil-core/common/controller.js index 7f92fdba..a04e2935 100644 --- a/app/pencil-core/common/controller.js +++ b/app/pencil-core/common/controller.js @@ -1718,6 +1718,42 @@ Controller.prototype.logShapeReparationRequest = function (shapeNode) { Config.CAPTURE_INSERT_BITMAP_AS_DEFID = Config.define("capture.insert_bitmap_shape_id", "Evolus.Common:Bitmap"); +Controller.prototype.handleNewDocumentFromImage = function (filePath) { + ImageData.fromExternalToImageData(filePath, function (imageData) { + if (!imageData) return; + + var ratio = window.devicePixelRatio || 1; + var dim = new Dimension(Math.round(imageData.w / ratio), Math.round(imageData.h / ratio)); + + var options = { + name: path.basename(filePath), + width: dim.w, + height: dim.h, + backgroundPageId: null, + backgroundColor: Color.fromString("#FFFFFFFF"), + note: "", + parentPageId: null, + activateAfterCreate: true + }; + + this.newPage(options); + + var page = this.activePage; + + var def = CollectionManager.shapeDefinition.locateDefinition(Config.get(Config.CAPTURE_INSERT_BITMAP_AS_DEFID)); + if (!def) return; + + page.canvas.insertShape(def, null); + if (!page.canvas.currentController) return; + + var controller = page.canvas.currentController; + + page.canvas.currentController.setProperty("imageData", imageData); + page.canvas.currentController.setProperty("box", dim); + page.canvas.invalidateEditors(); + }.bind(this)); +}; + Controller.prototype.handleGlobalScreencapture = function (mode) { var newDocumentCreated = false; if (!this.doc) { diff --git a/app/pencil-core/common/pencil.js b/app/pencil-core/common/pencil.js index 7d5cc7cf..32021efa 100644 --- a/app/pencil-core/common/pencil.js +++ b/app/pencil-core/common/pencil.js @@ -180,10 +180,18 @@ Pencil.boot = function (event) { Pencil.handleArguments = function() { var remote = require('electron').remote; var appArguments = remote.getGlobal('sharedObject').appArguments; + console.log("appArguments", appArguments); if (appArguments && appArguments.length > 1) { - var arg = appArguments[1]; - if (arg != "app" && arg != "./app") { - Pencil.documentHandler.loadDocumentFromArguments(arg); + var filePath = null; + for (var i = 1; i < appArguments.length; i ++) { + var arg = appArguments[i]; + if (arg.match(/^.*\.(ep|epgz|png|jpg|jpeg|gif|bmp)$/)) { + filePath = arg; + break; + } + } + if (filePath) { + Pencil.documentHandler.loadDocumentFromArguments(filePath); } } }; diff --git a/app/pencil-core/common/renderer.js b/app/pencil-core/common/renderer.js index 5e13b2ea..32d4e433 100644 --- a/app/pencil-core/common/renderer.js +++ b/app/pencil-core/common/renderer.js @@ -78,7 +78,7 @@ module.exports = function () { if (err) throw err; var svg = data.svg; - var delay = 500; + var delay = 50; console.log("data.scale", data.scale); var scale = typeof(data.scale) == "number" ? data.scale : 1; @@ -115,7 +115,7 @@ module.exports = function () { + ' window.setTimeout(function () {\n' + ' ipcRenderer.send("render-rendered", {objectsWithLinking: window.objectsWithLinking});\n' + ' console.log("Rendered signaled");\n' - + ' }, 500);\n' + + ' }, 10);\n' + ' });\n' + ' });\n' + ' }, ' + delay + ');\n' diff --git a/app/pencil-core/target/targetSet.js b/app/pencil-core/target/targetSet.js index b3eaa3c7..48cdaa32 100644 --- a/app/pencil-core/target/targetSet.js +++ b/app/pencil-core/target/targetSet.js @@ -69,6 +69,14 @@ TargetSet.prototype.setProperty = function (name, value, nested, mask) { this.targets[t].setProperty(name, value, nested, mask); } }; +TargetSet.prototype.setMetadata = function (name, value) { + for (var t in this.targets) { + this.targets[t].setMetadata(name, value); + } +}; +TargetSet.prototype.getMetadata = function (name) { + return null; +}; TargetSet.prototype.getProperty = function (name, any) { if (name == "box") return null; var firstValue = this.targets[0].getProperty(name); diff --git a/app/tools/capture-services.js b/app/tools/capture-services.js index fce69596..d908be98 100644 --- a/app/tools/capture-services.js +++ b/app/tools/capture-services.js @@ -154,6 +154,63 @@ WindowsSnippingToolScreenshotService.prototype.isSupported = function (options) return process.platform == "win32" && fs.existsSync(this.getExecPath()); }; +function GenericCmdCaptureService() { + BaseCmdCaptureService.call(this); + + this.id = "GenericScreenshotService"; + this.supportPointerHiding = false; +} + +GenericCmdCaptureService.prototype = new BaseCmdCaptureService(); + +Config.CAPTURE_GENERIC_TOOL_EXEC_PATH = Config.define("capture.generic_capture.exec_path", ""); +Config.CAPTURE_GENERIC_TOOL_AREA_MODE_OPTION = Config.define("capture.generic_capture.options.area_mode", ""); +Config.CAPTURE_GENERIC_TOOL_WINDOW_MODE_OPTION = Config.define("capture.generic_capture.options.window_mode", ""); +Config.CAPTURE_GENERIC_TOOL_FULLSCREEN_MODE_OPTION = Config.define("capture.generic_capture.options.fullscreen_mode", ""); +Config.CAPTURE_GENERIC_TOOL_CLIPBOARD_OUTPUT_OPTION = Config.define("capture.generic_capture.options.clipboard_output", ""); +Config.CAPTURE_GENERIC_TOOL_FILE_OUTPUT_OPTION = Config.define("capture.generic_capture.options.file_output", ""); + +GenericCmdCaptureService.prototype.buildCommandLine = function (options) { + var cmd = { + path: this.getExecPath(), + args: [] + }; + var opt = Config.get(Config.CAPTURE_GENERIC_TOOL_FULLSCREEN_MODE_OPTION); + + if (options.mode == BaseCaptureService.MODE_AREA) { + opt = Config.get(Config.CAPTURE_GENERIC_TOOL_AREA_MODE_OPTION); + } else if (options.mode == BaseCaptureService.MODE_WINDOW) { + opt = Config.get(Config.CAPTURE_GENERIC_TOOL_WINDOW_MODE_OPTION); + } + + if (opt) cmd.args.push(opt); + + if (options.outputType == BaseCaptureService.OUTPUT_CLIPBOARD) { + opt = Config.get(Config.CAPTURE_GENERIC_TOOL_CLIPBOARD_OUTPUT_OPTION); + if (opt) cmd.args.push(opt); + } else { + opt = Config.get(Config.CAPTURE_GENERIC_TOOL_FILE_OUTPUT_OPTION); + if (opt) { + opt.split(/[ ]+/gi).forEach(function (p) { + if (p == "%f") { + cmd.args.push(options.outputPath); + } else { + cmd.args.push(p); + } + }); + } + } + + return cmd; +}; +GenericCmdCaptureService.prototype.getExecPath = function () { + return Config.get(Config.CAPTURE_GENERIC_TOOL_EXEC_PATH); +}; +GenericCmdCaptureService.prototype.isSupported = function (options) { + return true; +}; + + function ElectronScreenshotService() { BaseCmdCaptureService.call(this); @@ -475,3 +532,4 @@ ScreenCaptureProvider.getActiveProvider = function () { ScreenCaptureProvider.register(new GnomeScreenshotService()); ScreenCaptureProvider.register(new WindowsSnippingToolScreenshotService()); ScreenCaptureProvider.register(new MacScreenshotService()); +ScreenCaptureProvider.register(new GenericCmdCaptureService()); diff --git a/app/views/tools/FontDetailDialog.js b/app/views/tools/FontDetailDialog.js index f2ea0eee..35cf7606 100644 --- a/app/views/tools/FontDetailDialog.js +++ b/app/views/tools/FontDetailDialog.js @@ -156,12 +156,13 @@ FontDetailDialog.prototype.handleClick = function (event) { filters: [ { name: "Fonts", extensions: ["ttf", "otf", "woff"] } ] - }, function (filePaths) { - if (!filePaths || filePaths.length <= 0) { + }).then(function (res) { + console.log(res); + if (!res || !res.filePaths || res.filePaths.length <= 0) { this.setPathToInput(input, ""); } else { - Config.set("document.open.recentlyDirPath", path.dirname(filePaths[0])); - this.setPathToInput(input, filePaths[0]); + Config.set("document.open.recentlyDirPath", path.dirname(res.filePaths[0])); + this.setPathToInput(input, res.filePaths[0]); } }.bind(this)); }; diff --git a/package-lock.json b/package-lock.json index 89df0d2b..fc28397f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -989,9 +989,9 @@ "dev": true }, "electron": { - "version": "10.1.5", - "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.5.tgz", - "integrity": "sha512-fys/KnEfJq05TtMij+lFvLuKkuVH030CHYx03iZrW5DNNLwjE6cW3pysJ420lB0FRSfPjTHBMu2eVCf5TG71zQ==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-8.5.2.tgz", + "integrity": "sha512-VU+zZnmCzxoZ5UfBg2UGVm+nyxlNlQOQkotMLfk7FCtnkIOhX+sosl618OCxUWjOvPc+Mpg5MEkEmxPU5ziW4Q==", "dev": true, "requires": { "@electron/get": "^1.0.1", diff --git a/package.json b/package.json index 9c2d20ca..eaa50695 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "10.1.5", + "electron": "8.5.2", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" From ee45a1afad28bcf0c17da321323b5f02b2a246ca Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 5 May 2021 14:22:59 +0700 Subject: [PATCH 29/69] Update to electron 11.4.4 --- app/index.js | 1 + app/lib/codemirror/htmlmixed.js | 152 ++++++++++++++++++++++++++++++++ package-lock.json | 106 +++++++++++++--------- package.json | 2 +- 4 files changed, 220 insertions(+), 41 deletions(-) create mode 100644 app/lib/codemirror/htmlmixed.js diff --git a/app/index.js b/app/index.js index 79fec6a7..740e928b 100644 --- a/app/index.js +++ b/app/index.js @@ -52,6 +52,7 @@ function createWindow() { allowDisplayingInsecureContent: true, defaultEncoding: "UTF-8", nodeIntegration: true, + contextIsolation: false, enableRemoteModule: true }, }; diff --git a/app/lib/codemirror/htmlmixed.js b/app/lib/codemirror/htmlmixed.js new file mode 100644 index 00000000..8341ac82 --- /dev/null +++ b/app/lib/codemirror/htmlmixed.js @@ -0,0 +1,152 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror"), require("../xml/xml"), require("../javascript/javascript"), require("../css/css")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror", "../xml/xml", "../javascript/javascript", "../css/css"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + "use strict"; + + var defaultTags = { + script: [ + ["lang", /(javascript|babel)/i, "javascript"], + ["type", /^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, "javascript"], + ["type", /./, "text/plain"], + [null, null, "javascript"] + ], + style: [ + ["lang", /^css$/i, "css"], + ["type", /^(text\/)?(x-)?(stylesheet|css)$/i, "css"], + ["type", /./, "text/plain"], + [null, null, "css"] + ] + }; + + function maybeBackup(stream, pat, style) { + var cur = stream.current(), close = cur.search(pat); + if (close > -1) { + stream.backUp(cur.length - close); + } else if (cur.match(/<\/?$/)) { + stream.backUp(cur.length); + if (!stream.match(pat, false)) stream.match(cur); + } + return style; + } + + var attrRegexpCache = {}; + function getAttrRegexp(attr) { + var regexp = attrRegexpCache[attr]; + if (regexp) return regexp; + return attrRegexpCache[attr] = new RegExp("\\s+" + attr + "\\s*=\\s*('|\")?([^'\"]+)('|\")?\\s*"); + } + + function getAttrValue(text, attr) { + var match = text.match(getAttrRegexp(attr)) + return match ? /^\s*(.*?)\s*$/.exec(match[2])[1] : "" + } + + function getTagRegexp(tagName, anchored) { + return new RegExp((anchored ? "^" : "") + "<\/\s*" + tagName + "\s*>", "i"); + } + + function addTags(from, to) { + for (var tag in from) { + var dest = to[tag] || (to[tag] = []); + var source = from[tag]; + for (var i = source.length - 1; i >= 0; i--) + dest.unshift(source[i]) + } + } + + function findMatchingMode(tagInfo, tagText) { + for (var i = 0; i < tagInfo.length; i++) { + var spec = tagInfo[i]; + if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2]; + } + } + + CodeMirror.defineMode("htmlmixed", function (config, parserConfig) { + var htmlMode = CodeMirror.getMode(config, { + name: "xml", + htmlMode: true, + multilineTagIndentFactor: parserConfig.multilineTagIndentFactor, + multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag + }); + + var tags = {}; + var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes; + addTags(defaultTags, tags); + if (configTags) addTags(configTags, tags); + if (configScript) for (var i = configScript.length - 1; i >= 0; i--) + tags.script.unshift(["type", configScript[i].matches, configScript[i].mode]) + + function html(stream, state) { + var style = htmlMode.token(stream, state.htmlState), tag = /\btag\b/.test(style), tagName + if (tag && !/[<>\s\/]/.test(stream.current()) && + (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) && + tags.hasOwnProperty(tagName)) { + state.inTag = tagName + " " + } else if (state.inTag && tag && />$/.test(stream.current())) { + var inTag = /^([\S]+) (.*)/.exec(state.inTag) + state.inTag = null + var modeSpec = stream.current() == ">" && findMatchingMode(tags[inTag[1]], inTag[2]) + var mode = CodeMirror.getMode(config, modeSpec) + var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false); + state.token = function (stream, state) { + if (stream.match(endTagA, false)) { + state.token = html; + state.localState = state.localMode = null; + return null; + } + return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState)); + }; + state.localMode = mode; + state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, "", "")); + } else if (state.inTag) { + state.inTag += stream.current() + if (stream.eol()) state.inTag += " " + } + return style; + }; + + return { + startState: function () { + var state = CodeMirror.startState(htmlMode); + return {token: html, inTag: null, localMode: null, localState: null, htmlState: state}; + }, + + copyState: function (state) { + var local; + if (state.localState) { + local = CodeMirror.copyState(state.localMode, state.localState); + } + return {token: state.token, inTag: state.inTag, + localMode: state.localMode, localState: local, + htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; + }, + + token: function (stream, state) { + return state.token(stream, state); + }, + + indent: function (state, textAfter, line) { + if (!state.localMode || /^\s*<\//.test(textAfter)) + return htmlMode.indent(state.htmlState, textAfter, line); + else if (state.localMode.indent) + return state.localMode.indent(state.localState, textAfter, line); + else + return CodeMirror.Pass; + }, + + innerMode: function (state) { + return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode}; + } + }; + }, "xml", "javascript", "css"); + + CodeMirror.defineMIME("text/html", "htmlmixed"); +}); diff --git a/package-lock.json b/package-lock.json index fc28397f..be4b30cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,9 +10,9 @@ "dev": true }, "@electron/get": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", - "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.4.tgz", + "integrity": "sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==", "dev": true, "requires": { "debug": "^4.1.1", @@ -22,14 +22,14 @@ "global-tunnel-ng": "^2.7.1", "got": "^9.6.0", "progress": "^2.0.3", - "sanitize-filename": "^1.6.2", + "semver": "^6.2.0", "sumchecker": "^3.0.1" }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -69,6 +69,12 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -96,9 +102,9 @@ } }, "@types/node": { - "version": "12.19.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.2.tgz", - "integrity": "sha512-SRH6QM0IMOBBFmDiJ75vlhcbUEYEquvSuhsVW9ijG20JvdFTfOrB1p6ddZxz5y/JNnbf+9HoHhjhOVSX2hsJyA==", + "version": "12.20.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.12.tgz", + "integrity": "sha512-KQZ1al2hKOONAs2MFv+yTQP1LkDWMrRJ9YCVRalXltOfXsBmH5IownLxQaiq0lnAHwAViLnh2aTYqrPcRGEbgg==", "dev": true }, "abbrev": { @@ -370,9 +376,9 @@ } }, "boolean": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", - "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.3.tgz", + "integrity": "sha512-EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA==", "dev": true, "optional": true }, @@ -776,9 +782,9 @@ "dev": true }, "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz", + "integrity": "sha512-3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==", "dev": true, "optional": true }, @@ -923,9 +929,9 @@ "dev": true }, "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", + "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", "dev": true, "optional": true }, @@ -989,9 +995,9 @@ "dev": true }, "electron": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-8.5.2.tgz", - "integrity": "sha512-VU+zZnmCzxoZ5UfBg2UGVm+nyxlNlQOQkotMLfk7FCtnkIOhX+sosl618OCxUWjOvPc+Mpg5MEkEmxPU5ziW4Q==", + "version": "11.4.4", + "resolved": "https://registry.npmjs.org/electron/-/electron-11.4.4.tgz", + "integrity": "sha512-m52nF85VADCmL9DpzJfgmkvc9fNiGZPYwptv/4fTYrYhAMiO+hmClGMXncCoSAzoULQjl+f+0b9CY4yd6nRFlQ==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -1272,9 +1278,9 @@ } }, "env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true }, "es6-error": { @@ -1491,9 +1497,9 @@ } }, "global-agent": { - "version": "2.1.12", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz", - "integrity": "sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz", + "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==", "dev": true, "optional": true, "requires": { @@ -1506,10 +1512,30 @@ "serialize-error": "^7.0.1" }, "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, "semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "optional": true } @@ -1538,9 +1564,9 @@ } }, "globalthis": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", - "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", "dev": true, "optional": true, "requires": { @@ -1889,9 +1915,9 @@ } }, "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true, "optional": true }, @@ -2967,9 +2993,9 @@ }, "dependencies": { "debug": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", - "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" diff --git a/package.json b/package.json index eaa50695..48928e72 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "8.5.2", + "electron": "11.4.4", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" From 043ca48d89149449f3856cb890a8444bc413fa23 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 5 May 2021 15:01:54 +0700 Subject: [PATCH 30/69] Explicitly use .png for screenshot tmp file --- app/pencil-core/propertyType/imageData.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/pencil-core/propertyType/imageData.js b/app/pencil-core/propertyType/imageData.js index c520658e..2112a958 100644 --- a/app/pencil-core/propertyType/imageData.js +++ b/app/pencil-core/propertyType/imageData.js @@ -361,7 +361,9 @@ ImageData.fromScreenshot = function (callback, providedOptions) { var executer = function (options) { var tmp = require("tmp"); - var localPath = tmp.tmpNameSync(); + var localPath = tmp.tmpNameSync({postfix: ".png"}); + + console.log("Requested local path: ", localPath); var win = require("electron").remote.getCurrentWindow(); From 8eb4b9113e36517ff66901797784c0785c07c25a Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Sun, 24 Oct 2021 18:38:41 +0700 Subject: [PATCH 31/69] Fix psating of bitmap when clipboard containing also HTML content enriched by browser --- app/index.js | 2 +- app/package-lock.json | 4520 ++++++++++++++++++- app/pencil-core/common/Canvas.js | 42 +- app/pencil-core/common/util.js | 2 +- app/pencil-core/xferHelper/dragObservers.js | 2 + app/yarn.lock | 3820 ++++++++++------ package-lock.json | 4297 +++++++++++++++++- package.json | 2 +- yarn.lock | 4015 ++++++++++------ 9 files changed, 13736 insertions(+), 2966 deletions(-) diff --git a/app/index.js b/app/index.js index 740e928b..b31120d7 100644 --- a/app/index.js +++ b/app/index.js @@ -84,7 +84,7 @@ function createWindow() { mainWindow.loadURL(mainUrl); mainWindow.show(); - //mainWindow.webContents.openDevTools(); + if (devEnable) mainWindow.webContents.openDevTools(); mainWindow.on("closed", function() { mainWindow = null; diff --git a/app/package-lock.json b/app/package-lock.json index d5c13068..ee5690e4 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -1,8 +1,4494 @@ { "name": "Pencil", "version": "3.1.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "Pencil", + "version": "3.1.0", + "license": "GPL2", + "dependencies": { + "adm-zip": "^0.4.7", + "archive-type": "^4.0.0", + "archiver": "^3.0.0", + "decompress": "^4.0.0", + "decompress-targz": "^4.0.0", + "easy-zip2": "^3.0.0", + "electron-log": "^2.2.17", + "electron-updater": "^3.1.2", + "jimp": "^0.6.4", + "less": "~3.8.1", + "lodash": "^4.13.1", + "md5": "^2.2.1", + "moment": "^2.13.0", + "nugget": "^2.0.0", + "q": "^1.4.1", + "rimraf": "^2.5.4", + "tar": "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz", + "tar-fs": "^1.15.2", + "tar.gz": "https://github.com/dgthanhan/node-tar.gz/archive/e1a5ee27a620aa1bc1a421a8d797c843609e88eb.tar.gz", + "tmp": "0.0.33" + }, + "devDependencies": { + "electron-rebuild": "^1.8.5" + } + }, + "node_modules/@babel/polyfill": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz", + "integrity": "sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg==", + "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", + "dependencies": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.2" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz", + "integrity": "sha512-dhKM7Cjw4XoOefx3/we2+vWyTP6hQPpM7mEsziGjtsrK2f/e3/+hhHbEsQNgO9BOA1FPJRXAOiYHts9IlMH1mg==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "bmp-js": "^0.1.0", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.6.4.tgz", + "integrity": "sha512-nyiAXI8/uU54fGO53KrRB8pdn1s+IODZ+rj0jG2owsNJlTlagFrsZAy8IVTUCOiiXjh9TbwFo7D5XMrmi4KUww==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "core-js": "^2.5.7", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/core/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "node_modules/@jimp/core/node_modules/buffer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.0.tgz", + "integrity": "sha512-Xpgy0IwHK2N01ncykXTy6FpCWuM+CJSHoPVBLyNqyrWxsedpLvwsYUhf0ME3WRFNUhos0dMamz9cOS/xRDtU5g==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/@jimp/core/node_modules/file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@jimp/custom": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.6.4.tgz", + "integrity": "sha512-sdBHrBoVr1+PFx4dlUAgXvvu4dG0esQobhg7qhpSLRje1ScavIgE2iXdJKpycgzrqwAOL8vW4/E5w2/rONlaoQ==", + "dependencies": { + "@jimp/core": "^0.6.4", + "core-js": "^2.5.7" + } + }, + "node_modules/@jimp/gif": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.6.4.tgz", + "integrity": "sha512-14mLoyG0UrYJsGNRoXBFvSJdFtBD0BSBwQ1zCNeW+HpQqdl+Kh5E1Pz4nqT2KNylJe1jypyR51Q2yndgcfGVyg==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.6.4.tgz", + "integrity": "sha512-NrFla9fZC/Bhw1Aa9vJ6cBOqpB5ylEPb9jD+yZ0fzcAw5HwILguS//oXv9EWLApIY1XsOMFFe0XWpY653rv8hw==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7", + "jpeg-js": "^0.3.4" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blit": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.6.4.tgz", + "integrity": "sha512-suVznd4XozkQIuECX0u8kMl+cAQpZN3WcbWXUcJaVxRi+VBvHIetG1Qs5qGLzuEg9627+kE7ppv0UgZ5mkE6lg==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.6.4.tgz", + "integrity": "sha512-M2fDMYUUtEKVNnCJZk5J0KSMzzISobmWfnG88RdHXJCkOn98kdawQFwTsYOfJJfCM8jWfhIxwZLFhC/2lkTN2w==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.6.4.tgz", + "integrity": "sha512-6Nfr2l9KSb6zH2fij8G6fQOw85TTkyRaBlqMvDmsQp/I1IlaDbXzA2C2Eh9jkQYZQDPu61B1MkmlEhJp/TUx6Q==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.6.4.tgz", + "integrity": "sha512-qI1MxU1noS6NbEPu/bDDeP405aMviuIsfpOz8J3En8IwIwrJV22qt6QIHmF+eyng8CYgivwIPjEPzFzLR566Nw==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.6.4.tgz", + "integrity": "sha512-z6eafPonj3LJY8cTEfRkXmOfCDi1+f0tbYaNvmiu+OrWJ3Ojw2hMt+BVVvJ8pKe1dWIFkCjxOjyjZWj1gEkaLw==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.6.4.tgz", + "integrity": "sha512-w9TR+pn+GeWbznscGe2HRkPxInge0whAF3TLPWhPwBVjZChTT8dSDXsUpUlxQqvI4SfzuKp8z3/0SBqYDCzxxA==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.6.4.tgz", + "integrity": "sha512-MEvtBXOAio/3iGJkKBrTtFs3Q38ez2Wy/wTD0Ruas+L8fjJR7l4mDgV+zjRr57CqB5mpY+L48VEoa2/gNXh9cg==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.6.4.tgz", + "integrity": "sha512-w+AGLcIMUeJZ4CI0FvFomahgKLcW+ICsLidUNOqyLzceluPAfug4X7vDhQ41pNkzKg0M1+Q1j0aWV8bdyF+LhA==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.6.4.tgz", + "integrity": "sha512-ukINMegMUM9KYjyDCiyYKYdSsbhNRLHDwOJN0xVRalmOKqNaZmjNbiMbaVxKlYt6sHW76RhSMOekw9f6GQB9tQ==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-gaussian": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.6.4.tgz", + "integrity": "sha512-C1P6ohzIddpNb7CX5X+ygbp+ow8Fpt64ZLoIgdjYPs/42HxKluvY62fVfMhY6m5zUGKIMbg0uYeAtz/9LRJPyw==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-invert": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.6.4.tgz", + "integrity": "sha512-sleGz1jXaNEsP/5Ayqw8oez/6KesWcyCqovIuK4Z4kDmMc2ncuhsXIJQXDWtIF4tTQVzNEgrxUDNA4bi9xpCUA==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.6.4.tgz", + "integrity": "sha512-3D4FbRxnpO9nzwa6cF8AImgO1aVReYbfRRO4I4bku4/iZ+kuU3fBLV+SRhB4c7di3ejG5u+rGsIfaNc94iYYvw==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-normalize": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.6.4.tgz", + "integrity": "sha512-nOFMwOaVkOKArHkD/T6/1HKAPj3jlW6l0JduVDn1A5eIPCtlnyhlE9zdjgi5Q9IBR/gRjwW6tTzBKuJenS51kg==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.6.4.tgz", + "integrity": "sha512-3z5DLVCKg0NfZhHATEaYH/4XanIboPP1pOUoxIUeF++qOnGiGgH2giFJlRprHmx2l3E3DukR1v8pt54PGvfrFw==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7", + "load-bmfont": "^1.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.6.4.tgz", + "integrity": "sha512-fk2+KheUNClrOWj6aDNWj1r4byVQb6Qxy4aT1UHX5GXPHDA+nhlej7ghaYdzeWZYodeM3lpasYtByu1XE2qScQ==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.6.4.tgz", + "integrity": "sha512-44VgV5D4xQIYInJAVevdW9J3SOhGKyz0OEr2ciA8Q3ktonKx0O5Q1g2kbruiqxFSkK/u2CKPLeKXZzYCFrmJGQ==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-scale": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.6.4.tgz", + "integrity": "sha512-RAQRaDiCHmEz+A8QS5d/Z38EnlNsQizz3Mu3NsjA8uFtJsv1yMKWXZSQuzniofZw8tlMV6oI3VdM0eQVE07/5w==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugins": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.6.4.tgz", + "integrity": "sha512-NpO/87CKnF4Q9r8gMl6w+jPKOM/C089qExkViD9cPvcFZEnyVOu7ucGzcMmTcabWOU62iQTOkRViPYr6XaK0LQ==", + "dependencies": { + "@jimp/plugin-blit": "^0.6.4", + "@jimp/plugin-blur": "^0.6.4", + "@jimp/plugin-color": "^0.6.4", + "@jimp/plugin-contain": "^0.6.4", + "@jimp/plugin-cover": "^0.6.4", + "@jimp/plugin-crop": "^0.6.4", + "@jimp/plugin-displace": "^0.6.4", + "@jimp/plugin-dither": "^0.6.4", + "@jimp/plugin-flip": "^0.6.4", + "@jimp/plugin-gaussian": "^0.6.4", + "@jimp/plugin-invert": "^0.6.4", + "@jimp/plugin-mask": "^0.6.4", + "@jimp/plugin-normalize": "^0.6.4", + "@jimp/plugin-print": "^0.6.4", + "@jimp/plugin-resize": "^0.6.4", + "@jimp/plugin-rotate": "^0.6.4", + "@jimp/plugin-scale": "^0.6.4", + "core-js": "^2.5.7", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.6.4.tgz", + "integrity": "sha512-qv3oo6ll3XWVIToBwVC1wQX0MFKwpxbe2o+1ld9B4ZDavqvAHzalzcmTd/iyooI85CVDAcC3RRDo66oiizGZCQ==", + "dependencies": { + "@jimp/utils": "^0.6.4", + "core-js": "^2.5.7", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.6.4.tgz", + "integrity": "sha512-8/vD4qleexmhPdppiu6fSstj/n/kGNTn8iIlf1emiqOuMN2PL9q5GOPDWU0xWdGNyJMMIDXJPgUFUkKfqXdg7w==", + "dependencies": { + "core-js": "^2.5.7", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.6.4.tgz", + "integrity": "sha512-/EMbipQDg5U6DnBAgcSiydlMBRYoKhnaK7MJRImeTzhDJ6xfgNOF7lYq66o0kmaezKdG/cIwZ1CLecn2y3D8SQ==", + "dependencies": { + "@jimp/bmp": "^0.6.4", + "@jimp/gif": "^0.6.4", + "@jimp/jpeg": "^0.6.4", + "@jimp/png": "^0.6.4", + "@jimp/tiff": "^0.6.4", + "core-js": "^2.5.7", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.6.4.tgz", + "integrity": "sha512-EFQurCyEnZLSM2Q1BYDTUmsOJPSOYEQd18Fvq8bGo8hnBHoGLWLWWyNi2l4cYhtpKmIXyhvQqa6/WaEpKPzvqA==", + "dependencies": { + "core-js": "^2.5.7" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/adm-zip": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", + "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", + "engines": { + "node": ">=0.3.0" + } + }, + "node_modules/ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dependencies": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "dependencies": { + "file-type": "^4.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/archiver": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", + "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^2.6.3", + "buffer-crc32": "^0.2.1", + "glob": "^7.1.4", + "readable-stream": "^3.4.0", + "tar-stream": "^2.1.0", + "zip-stream": "^2.1.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver-utils/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/archiver-utils/node_modules/graceful-fs": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", + "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" + }, + "node_modules/archiver/node_modules/bl": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", + "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", + "dependencies": { + "readable-stream": "^3.0.1" + } + }, + "node_modules/archiver/node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/archiver/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/archiver/node_modules/readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "node_modules/archiver/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/archiver/node_modules/tar-stream": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz", + "integrity": "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==", + "dependencies": { + "bl": "^3.0.0", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "optional": true + }, + "node_modules/asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "node_modules/assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async/node_modules/lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dependencies": { + "readable-stream": "^2.0.5" + } + }, + "node_modules/block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, + "node_modules/bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=" + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=", + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + }, + "node_modules/boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", + "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", + "deprecated": "This version of 'buffer' is out-of-date. You must update to v3.6.2 or newer", + "dependencies": { + "base64-js": "0.0.8", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + }, + "node_modules/builder-util-runtime": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-7.1.0.tgz", + "integrity": "sha512-TAsx651+q6bXYry21SzQblYQBUlfu4ixbDa6k2Nvts+kHO9ajyr0gDuHJsamxBaAyUUi5EldPABqsFERDEK3Hg==", + "dependencies": { + "bluebird-lst": "^1.0.6", + "debug": "^4.1.0", + "fs-extra-p": "^7.0.0", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/builder-util-runtime/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/builder-util-runtime/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dependencies": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "engines": { + "node": "*" + } + }, + "node_modules/chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", + "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", + "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/compress-commons": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", + "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^3.0.1", + "normalize-path": "^3.0.0", + "readable-stream": "^2.3.6" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/compress-commons/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", + "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha1-rWAmnCyFb4wpnixMwN5FVpFAVsY=", + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "node_modules/crc/node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/crc32-stream": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", + "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", + "dependencies": { + "crc": "^3.4.4", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/crc32-stream/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "node_modules/crc32-stream/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "engines": { + "node": "*" + } + }, + "node_modules/cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dependencies": { + "boom": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dependencies": { + "array-find-index": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dashdash/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha1-wJvDXE0R894J8tLaU+neI+fOHu4=", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties/node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, + "node_modules/easy-zip2": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/easy-zip2/-/easy-zip2-3.0.0.tgz", + "integrity": "sha512-dGEPoJJcVUiVw0LZXBKLvuaUF+lU5N7bK1tzhhQiYLYFLfGE0XpV8xhWKw956kLwBNBC0dw7RTJLdR8Ehpf52A==", + "dependencies": { + "async": "^3.1.0", + "graceful-fs": "^4.1.15", + "jszip": "^3.2.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/easy-zip2/node_modules/async": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", + "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==" + }, + "node_modules/easy-zip2/node_modules/graceful-fs": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", + "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "dependencies": { + "jsbn": "~0.1.0" + } + }, + "node_modules/electron-is-dev": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz", + "integrity": "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=" + }, + "node_modules/electron-log": { + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz", + "integrity": "sha1-5x4uu5SfyW3tfNuZ7u5yAuSJgdI=" + }, + "node_modules/electron-rebuild": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz", + "integrity": "sha512-gDwRA3utfiPnFwBZ1z8M4SEMwsdsy6Bg4VGO2ohelMOIO0vxiCrDQ/FVdLk3h2g7fLb06QFUsQU+86jiTSmZxw==", + "dev": true, + "dependencies": { + "colors": "^1.3.3", + "debug": "^4.1.1", + "detect-libc": "^1.0.3", + "fs-extra": "^7.0.1", + "node-abi": "^2.8.0", + "node-gyp": "^4.0.0", + "ora": "^3.4.0", + "spawn-rx": "^3.0.0", + "yargs": "^13.2.2" + }, + "bin": { + "electron-rebuild": "lib/src/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/electron-rebuild/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/electron-updater": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz", + "integrity": "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==", + "dependencies": { + "bluebird-lst": "^1.0.6", + "builder-util-runtime": "~7.1.0", + "electron-is-dev": "^0.3.0", + "fs-extra-p": "^7.0.0", + "js-yaml": "^3.12.0", + "lazy-val": "^1.0.3", + "lodash.isequal": "^4.5.0", + "pako": "^1.0.6", + "semver": "^5.6.0", + "source-map-support": "^0.5.9" + } + }, + "node_modules/electron-updater/node_modules/semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dependencies": { + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-abstract/node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + }, + "node_modules/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "devOptional": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "devOptional": true + }, + "node_modules/fd-slicer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", + "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra-p": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz", + "integrity": "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==", + "dependencies": { + "bluebird-lst": "^1.0.7", + "fs-extra": "^7.0.1" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", + "integrity": "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==", + "dev": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/getpass/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dependencies": { + "min-document": "^2.19.0", + "process": "~0.5.1" + } + }, + "node_modules/graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + }, + "node_modules/har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dependencies": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + }, + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + }, + "node_modules/http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dependencies": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + }, + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + }, + "node_modules/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dependencies": { + "has-symbols": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/jimp": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.6.4.tgz", + "integrity": "sha512-WQVMoNhkcq/fgthZOWeMdIguCVPg+t4PDFfSxvbNcrECwl8eq3/Ou2whcFWWjyW45m43yAJEY2UT7acDKl6uSQ==", + "dependencies": { + "@babel/polyfill": "^7.0.0", + "@jimp/custom": "^0.6.4", + "@jimp/plugins": "^0.6.4", + "@jimp/types": "^0.6.4", + "core-js": "^2.5.7" + } + }, + "node_modules/jpeg-js": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.6.tgz", + "integrity": "sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw==" + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "devOptional": true + }, + "node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jsprim/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/jszip": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", + "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/lazy-val": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", + "integrity": "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=" + }, + "node_modules/lazystream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", + "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/less": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/less/-/less-3.8.1.tgz", + "integrity": "sha1-8xdYWY71oZMN1MrvqeQ0BkHnHh0=", + "dependencies": { + "clone": "^2.1.2" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less/node_modules/ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "optional": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/less/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/less/node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/less/node_modules/aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "optional": true + }, + "node_modules/less/node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "optional": true + }, + "node_modules/less/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/less/node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "deprecated": "this library is no longer supported", + "optional": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/less/node_modules/mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/less/node_modules/mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "optional": true, + "dependencies": { + "mime-db": "1.40.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/less/node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/less/node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "optional": true + }, + "node_modules/less/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/less/node_modules/request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "optional": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/less/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "optional": true + }, + "node_modules/less/node_modules/tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "optional": true, + "dependencies": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/less/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "optional": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/load-bmfont": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz", + "integrity": "sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "node_modules/lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dependencies": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-dir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", + "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "engines": { + "node": ">=4" + } + }, + "node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", + "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", + "dependencies": { + "charenc": "~0.0.1", + "crypt": "~0.0.1", + "is-buffer": "~1.1.1" + } + }, + "node_modules/meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dependencies": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/meow/node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "node_modules/minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minipass/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "dev": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", + "integrity": "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==", + "engines": { + "node": "*" + } + }, + "node_modules/mout": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz", + "integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/node-abi": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.10.0.tgz", + "integrity": "sha512-OT0WepUvYHXdki6DU8LWhEkuo3M44i2paWBYtH9qXtPb9YiKlYEKa5WUII20XEcOv7UJPzfB0kZfPZdW46zdkw==", + "dev": true, + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/node-gyp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==", + "dev": true, + "dependencies": { + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^4.4.8", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/node-gyp/node_modules/ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/node-gyp/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/node-gyp/node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/node-gyp/node_modules/aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", + "dev": true + }, + "node_modules/node-gyp/node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/node-gyp/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/node-gyp/node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/node-gyp/node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/node-gyp/node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/node-gyp/node_modules/mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-gyp/node_modules/mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "dependencies": { + "mime-db": "1.40.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-gyp/node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/node-gyp/node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/node-gyp/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/node-gyp/node_modules/request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/node-gyp/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-gyp/node_modules/tar": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", + "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.5", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/node-gyp/node_modules/tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "dependencies": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/node-gyp/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/nugget": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz", + "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=", + "dependencies": { + "debug": "^2.1.3", + "minimist": "^1.1.0", + "pretty-bytes": "^1.0.2", + "progress-stream": "^1.1.0", + "request": "^2.45.0", + "single-line-log": "^1.1.2", + "throttleit": "0.0.2" + }, + "bin": { + "nugget": "bin.js" + } + }, + "node_modules/nugget/node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", + "integrity": "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=" + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", + "dependencies": { + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" + } + }, + "node_modules/parse-headers": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", + "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", + "dependencies": { + "for-each": "^0.3.3", + "string.prototype.trim": "^1.1.2" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "node_modules/performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, + "node_modules/pngjs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", + "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", + "integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=", + "dependencies": { + "get-stdin": "^4.0.1", + "meow": "^3.1.0" + }, + "bin": { + "pretty-bytes": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + }, + "node_modules/progress-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", + "integrity": "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=", + "dependencies": { + "speedometer": "~0.1.2", + "through2": "~0.2.3" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "optional": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "optional": true + }, + "node_modules/psl": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", + "integrity": "sha1-4ev2o7VWT6g3bz2iJ12nbYdcob0=", + "devOptional": true + }, + "node_modules/pump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", + "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz", + "integrity": "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.0.3", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dependencies": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rxjs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" + }, + "node_modules/seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "dependencies": { + "commander": "~2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, + "node_modules/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "node_modules/single-line-log": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", + "integrity": "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=", + "dependencies": { + "string-width": "^1.0.1" + } + }, + "node_modules/sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawn-rx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz", + "integrity": "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==", + "dev": true, + "dependencies": { + "debug": "^2.5.1", + "lodash.assign": "^4.2.0", + "rxjs": "^6.3.1" + } + }, + "node_modules/spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dependencies": { + "spdx-license-ids": "^1.0.2" + } + }, + "node_modules/spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "node_modules/spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "node_modules/speedometer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", + "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "dashdash": "^1.12.0", + "getpass": "^0.1.1" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + }, + "optionalDependencies": { + "bcrypt-pbkdf": "^1.0.0", + "ecc-jsbn": "~0.1.1", + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0" + } + }, + "node_modules/sshpk/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz", + "integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.13.0", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dependencies": { + "is-natural-number": "^4.0.1" + } + }, + "node_modules/strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dependencies": { + "get-stdin": "^4.0.1" + }, + "bin": { + "strip-indent": "cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tar": { + "version": "2.2.1", + "resolved": "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz", + "integrity": "sha1-IO+OBChbRx10V28tpdj9xTokIwE=", + "license": "ISC", + "dependencies": { + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" + } + }, + "node_modules/tar-fs": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", + "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", + "dependencies": { + "chownr": "^1.0.1", + "mkdirp": "^0.5.1", + "pump": "^1.0.0", + "tar-stream": "^1.1.2" + } + }, + "node_modules/tar-stream": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz", + "integrity": "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==", + "dependencies": { + "bl": "^1.0.0", + "end-of-stream": "^1.0.0", + "readable-stream": "^2.0.0", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tar.gz": { + "version": "1.0.5", + "resolved": "https://github.com/dgthanhan/node-tar.gz/archive/e1a5ee27a620aa1bc1a421a8d797c843609e88eb.tar.gz", + "integrity": "sha1-XbIDgt0VqMbkn4yNAbgBVWPmhlM=", + "license": "ISC", + "dependencies": { + "bluebird": "^2.9.34", + "commander": "^2.8.1", + "fstream": "^1.0.8", + "mout": "^0.11.0", + "tar": "^2.1.1" + }, + "bin": { + "targz": "bin/targz" + } + }, + "node_modules/tar.gz/node_modules/bluebird": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + }, + "node_modules/tar.gz/node_modules/tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", + "dependencies": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "node_modules/tar.gz/node_modules/tar/node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/throttleit": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", + "integrity": "sha1-z+34jmDADdlpe2H90qg0OptoDq8=" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", + "integrity": "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=", + "dependencies": { + "readable-stream": "~1.1.9", + "xtend": "~2.1.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/through2/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/timm": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz", + "integrity": "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" + }, + "node_modules/tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "engines": { + "node": "*" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", + "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "node_modules/unbzip2-stream": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", + "integrity": "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==", + "dependencies": { + "buffer": "^3.0.1", + "through": "^2.3.6" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "devOptional": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", + "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dependencies": { + "spdx-correct": "~1.0.0", + "spdx-expression-parse": "~1.0.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xhr": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", + "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "dependencies": { + "global": "~4.3.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + }, + "node_modules/xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" + } + }, + "node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yauzl": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", + "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.0.1" + } + }, + "node_modules/zip-stream": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.2.tgz", + "integrity": "sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg==", + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^2.1.1", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/zip-stream/node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + }, + "node_modules/zip-stream/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + } + }, "dependencies": { "@babel/polyfill": { "version": "7.4.4", @@ -1322,12 +5808,14 @@ "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "devOptional": true }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "devOptional": true }, "fd-slicer": { "version": "1.0.1", @@ -1760,7 +6248,8 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "devOptional": true }, "json-stable-stringify": { "version": "1.0.1", @@ -2836,7 +7325,8 @@ "psl": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", - "integrity": "sha1-4ev2o7VWT6g3bz2iJ12nbYdcob0=" + "integrity": "sha1-4ev2o7VWT6g3bz2iJ12nbYdcob0=", + "devOptional": true }, "pump": { "version": "1.0.2", @@ -3115,6 +7605,14 @@ } } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", @@ -3135,14 +7633,6 @@ "function-bind": "^1.1.1" } }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -3380,6 +7870,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "devOptional": true, "requires": { "punycode": "^2.1.0" }, @@ -3387,7 +7878,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "devOptional": true } } }, diff --git a/app/pencil-core/common/Canvas.js b/app/pencil-core/common/Canvas.js index 7f7a9574..97fd4480 100644 --- a/app/pencil-core/common/Canvas.js +++ b/app/pencil-core/common/Canvas.js @@ -962,7 +962,7 @@ Canvas.prototype.handleScrollPane = function(event) { Canvas.prototype.handleMouseUp = function (event) { if (this.gestureHelper && this.gestureHelper.handleMouseUp(event)) return; - + if (this.resizing) { this.commitResize(event); this.isSelectingRange = false; @@ -984,7 +984,7 @@ Canvas.prototype.handleMouseUp = function (event) { setter : null }); } - + Connector.prepareInvalidation(this); if (this.currentController.invalidateOutboundConnections) { @@ -993,7 +993,7 @@ Canvas.prototype.handleMouseUp = function (event) { if (this.currentController.invalidateInboundConnections) { this.currentController.invalidateInboundConnections(); } - + Connector.finishInvalidation(); } if (this.controllerHeld && this.hasMoved) { @@ -1008,7 +1008,7 @@ Canvas.prototype.handleMouseUp = function (event) { this.hasMoved = true; this.controllerHeld = false; - + if (this.isSelectingRange) { this.setRangeBoundVisibility(false); this.isSelectingRange = false; @@ -1159,7 +1159,7 @@ Canvas.prototype.handleResizeMouseMove = function (event) { var dw = Math.round((event.clientX - this.resizeInfo.ox) / this.zoom); var dh = Math.round((event.clientY - this.resizeInfo.oy) / this.zoom); - + if (event.shiftKey) dw = 0; var newW = this.resizeInfo.ow + dw; @@ -1280,7 +1280,7 @@ Canvas.prototype.handleMouseMove = function (event, fake) { var dx = newX - this.oX; var dy = newY - this.oY; - + //direction ratios var hdr = event.ctrlKey && Math.abs(dx) < Math.abs(dy) ? 0 : 1; var vdr = event.ctrlKey && Math.abs(dx) >= Math.abs(dy) ? 0 : 1; @@ -1299,18 +1299,18 @@ Canvas.prototype.handleMouseMove = function (event, fake) { // this.oY = newY; this.hasMoved = true; - + dx = dx * hdr; dy = dy * vdr; - + if (!event.shiftKey) { var snapResult = this.snappingHelper.applySnapping(dx, dy, this.currentController); if (snapResult && snapResult.xsnap) dx = snapResult.xsnap.d; if (snapResult && snapResult.ysnap) dy = snapResult.ysnap.d; } - + this.currentController.moveFromSnapshot(dx, dy); - + if (this.currentController.dockingManager) { this.currentController.dockingManager.altKey = event.altKey; } @@ -1402,7 +1402,7 @@ Canvas.prototype.handleKeyPress = function (event) { this.run(function () { // this.currentController.moveBy(dx, dy); this.currentController.moveBy(dx, dy, false, true); - + Connector.prepareInvalidation(this); if (this.currentController.invalidateOutboundConnections) { this.currentController.invalidateOutboundConnections(); @@ -1936,6 +1936,8 @@ Canvas.prototype.doPaste = function (withAlternative) { var formats = clipboard.availableFormats(); if (!formats) return; + console.log("Available formats: ", formats); + var contents = []; //the following implementation is electron-specific @@ -2043,11 +2045,11 @@ Canvas.prototype.doPaste = function (withAlternative) { if (image) { var id = Pencil.controller.nativeImageToRefSync(image); var size = image.getSize(); - - contents.push({ + + contents = [{ type: PNGImageXferHelper.MIME_TYPE, data: new ImageData(size.width, size.height, ImageData.idToRefString(id)) - }); + }]; } } @@ -2081,9 +2083,9 @@ Canvas.prototype.handleMouseDown = function (event) { tick("begin"); Dom.emitEvent("p:CanvasMouseDown", this.element, {}); - + if (this.gestureHelper && this.gestureHelper.handleMouseDown(event)) return; - + var canvasList = Pencil.getCanvasList(); for (var i = 0; i < canvasList.length; i++) { if (canvasList[i] != this) { @@ -2105,9 +2107,9 @@ Canvas.prototype.handleMouseDown = function (event) { return node.hasAttributeNS && node.hasAttributeNS(PencilNamespaces.p, "type"); }); - + if (top && this.isShapeLocked(top)) top = null; - + if (!top) { this.lastTop = null; // this.clearSelection(); @@ -2126,7 +2128,7 @@ Canvas.prototype.handleMouseDown = function (event) { width : 0, height : 0 }; - + this._sayTargetChanged(); this.endFormatPainter(); @@ -2914,7 +2916,7 @@ Canvas.prototype.__dragleave = function (event) { // this.element.removeAttribute("p:selection"); this.element.removeAttribute("is-dragover"); this.element.removeAttribute("p:holding"); - + if (!this.currentDragObserver) return; try { diff --git a/app/pencil-core/common/util.js b/app/pencil-core/common/util.js index 36032406..be9ad483 100644 --- a/app/pencil-core/common/util.js +++ b/app/pencil-core/common/util.js @@ -1759,7 +1759,7 @@ if (typeof(console) == "undefined") { const DEV_ENABLED = require("electron").remote.app.devEnable ? true : false; function debug() { - //if (DEV_ENABLED) console.log.apply(console, ["DEBUG>"].concat(Array.prototype.slice.call(arguments))); + if (DEV_ENABLED) console.log.apply(console, ["DEBUG>"].concat(Array.prototype.slice.call(arguments))); } function stackTrace() { //DEBUG_BEGIN diff --git a/app/pencil-core/xferHelper/dragObservers.js b/app/pencil-core/xferHelper/dragObservers.js index 398ff1bb..329fd615 100644 --- a/app/pencil-core/xferHelper/dragObservers.js +++ b/app/pencil-core/xferHelper/dragObservers.js @@ -392,10 +392,12 @@ function FileDragObserver(canvas) { } FileDragObserver.prototype = { acceptsDataTransfer : function (dataTransfer) { + console.log("accept checking: ", dataTransfer); return dataTransfer && dataTransfer.files && dataTransfer.files.length > 0; }, onDragOver: function (evt, flavour, session){}, onDrop: function (evt, dataTransfer, session) { + console.log("OnDrop, dataTransfer = ", dataTransfer); for (var i = 0; i < dataTransfer.files.length; i ++) { var file = dataTransfer.files[i]; diff --git a/app/yarn.lock b/app/yarn.lock index 534f91c6..8252c2ec 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -2,1384 +2,2452 @@ # yarn lockfile v1 -adm-zip@^0.4.7: - version "0.4.7" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -archive-type@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-3.2.0.tgz#9cd9c006957ebe95fadad5bd6098942a813737f6" - dependencies: - file-type "^3.1.0" - -archiver-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-1.3.0.tgz#e50b4c09c70bf3d680e32ff1b7994e9f9d895174" - dependencies: - glob "^7.0.0" - graceful-fs "^4.1.0" - lazystream "^1.0.0" - lodash "^4.8.0" - normalize-path "^2.0.0" - readable-stream "^2.0.0" - -archiver@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/archiver/-/archiver-1.3.0.tgz#4f2194d6d8f99df3f531e6881f14f15d55faaf22" - dependencies: - archiver-utils "^1.3.0" - async "^2.0.0" - buffer-crc32 "^0.2.1" - glob "^7.0.0" - lodash "^4.8.0" - readable-stream "^2.0.0" - tar-stream "^1.5.0" - walkdir "^0.0.11" - zip-stream "^1.1.0" - -argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -asap@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -async@^2.0.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.1.4.tgz#2d2160c7788032e4dd6cbe2502f1f9a2c8f6cde4" - dependencies: - lodash "^4.14.0" - -async@~0.9.0: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" - -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -base64-js@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" - -bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" - dependencies: - tweetnacl "^0.14.3" - -binary@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" - dependencies: - buffers "~0.1.1" - chainsaw "~0.1.0" - -bl@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.0.tgz#1397e7ec42c5f5dc387470c500e34a9f6be9ea98" - dependencies: - readable-stream "^2.0.5" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird-lst-c@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/bluebird-lst-c/-/bluebird-lst-c-1.0.6.tgz#81f881d13f9df700f67d577f13480bc32d84bba9" - dependencies: - bluebird "^3.4.7" - -bluebird@^2.9.34: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" - -bluebird@^3.4.7: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -buffer-crc32@^0.2.1, buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - -buffer-shims@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" - -buffer@^3.0.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-3.6.0.tgz#a72c936f77b96bf52f5f7e7b467180628551defb" - dependencies: - base64-js "0.0.8" - ieee754 "^1.1.4" - isarray "^1.0.0" - -buffers@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -chainsaw@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" - dependencies: - traverse ">=0.3.0 <0.4" - -chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -charenc@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" - -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@^2.8.1, commander@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -commander@~2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" - dependencies: - graceful-readlink ">= 1.0.0" - -compress-commons@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-1.1.0.tgz#9f4460bb1288564c7473916e0298aa3c320dcadb" - dependencies: - buffer-crc32 "^0.2.1" - crc32-stream "^1.0.0" - normalize-path "^2.0.0" - readable-stream "^2.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -crc32-stream@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-1.0.1.tgz#ce2c5dc3bd8ffb3830f9cb47f540222c63c90fab" - dependencies: - crc "^3.4.4" - readable-stream "^2.0.0" - -crc@^3.4.4: - version "3.4.4" - resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.4.tgz#9da1e980e3bd44fc5c93bf5ab3da3378d85e466b" - -crypt@~0.0.1: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -debug@2.6.0, debug@^2.1.3: - version "2.6.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" - dependencies: - ms "0.7.2" - -decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -decompress-tar@^4.0.0, decompress-tar@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.0.tgz#1f092ab698440558c72fc78e77d246d3ecb453b0" - dependencies: - file-type "^3.8.0" - is-stream "^1.1.0" - tar-stream "^1.5.2" - -decompress-tarbz2@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/decompress-tarbz2/-/decompress-tarbz2-4.1.0.tgz#fbab58d5de73f3fd213cac3af1c18334f51cb891" - dependencies: - decompress-tar "^4.1.0" - file-type "^3.8.0" - is-stream "^1.1.0" - pify "^2.3.0" - seek-bzip "^1.0.5" - unbzip2-stream "^1.0.9" - -decompress-targz@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/decompress-targz/-/decompress-targz-4.1.0.tgz#475b9c406be621ae836274802d9b25f9913ead59" - dependencies: - decompress-tar "^4.0.0" - file-type "^4.3.0" - is-stream "^1.1.0" - -decompress-unzip@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/decompress-unzip/-/decompress-unzip-4.0.1.tgz#deaaccdfd14aeaf85578f733ae8210f9b4848f69" - dependencies: - file-type "^3.8.0" - get-stream "^2.2.0" - pify "^2.3.0" - yauzl "^2.4.2" - -decompress@^4.0.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/decompress/-/decompress-4.2.0.tgz#7aedd85427e5a92dacfe55674a7c505e96d01f9d" - dependencies: - decompress-tar "^4.0.0" - decompress-tarbz2 "^4.0.0" - decompress-targz "^4.0.0" - decompress-unzip "^4.0.1" - graceful-fs "^4.1.10" - make-dir "^1.0.0" - pify "^2.3.0" - strip-dirs "^2.0.0" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -easy-zip2@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/easy-zip2/-/easy-zip2-1.0.0.tgz#fc4800182ba7cbf6e3f8912c86d6994369cd3fd5" - dependencies: - async "~0.9.0" - graceful-fs "~3.0.2" - jszip "~2.6.0" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -electron-builder-http@12.3.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-12.3.0.tgz#5a75e3683e4c1a8ef093f353d3298342c875d2c0" - dependencies: - debug "2.6.0" - fs-extra-p "^3.1.0" - -electron-log@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/electron-log/-/electron-log-1.3.0.tgz#d05544114b971a16c86739c79d0d236103ad0a16" - -electron-updater@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-1.4.1.tgz#4c3f2b0792ad7d0163af66de3dd3ab10256d09ff" - dependencies: - bluebird-lst-c "^1.0.6" - electron-builder-http "12.3.0" - fs-extra-p "^3.1.0" - js-yaml "^3.7.0" - semver "^5.3.0" - source-map-support "^0.4.11" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" - dependencies: - once "~1.3.0" - -errno@^0.1.1: - version "0.1.4" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" - dependencies: - prr "~0.0.0" - -error-ex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" - dependencies: - is-arrayish "^0.2.1" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - -file-type@^3.1.0, file-type@^3.8.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" - -file-type@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/file-type/-/file-type-4.3.0.tgz#b26f0a35e03f6857848d18b8a27238448caa79a5" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -fs-extra-p@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-3.1.0.tgz#eddf7bb8d9385d79014decb21f45b1d0c57900d3" - dependencies: - bluebird-lst-c "^1.0.6" - fs-extra "^2.0.0" - -fs-extra@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -fstream@^1.0.2, fstream@^1.0.8: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - -fstream@~0.1.21: - version "0.1.31" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz#7337f058fbbbbefa8c9f561a28cab0849202c988" - dependencies: - graceful-fs "~3.0.2" - inherits "~2.0.0" - mkdirp "0.5" - rimraf "2" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -get-stream@^2.2.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de" - dependencies: - object-assign "^4.0.1" - pinkie-promise "^2.0.0" - -getpass@^0.1.1: - version "0.1.6" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" - dependencies: - assert-plus "^1.0.0" - -glob@^7.0.0, glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -graceful-fs@^4.1.0, graceful-fs@^4.1.10, graceful-fs@^4.1.2, graceful-fs@^4.1.6: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -graceful-fs@~3.0.2: - version "3.0.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" - dependencies: - natives "^1.1.0" +"@babel/polyfill@^7.0.0": + "integrity" "sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg==" + "resolved" "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz" + "version" "7.4.4" + dependencies: + "core-js" "^2.6.5" + "regenerator-runtime" "^0.13.2" + +"@jimp/bmp@^0.6.4": + "integrity" "sha512-dhKM7Cjw4XoOefx3/we2+vWyTP6hQPpM7mEsziGjtsrK2f/e3/+hhHbEsQNgO9BOA1FPJRXAOiYHts9IlMH1mg==" + "resolved" "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "bmp-js" "^0.1.0" + "core-js" "^2.5.7" + +"@jimp/core@^0.6.4": + "integrity" "sha512-nyiAXI8/uU54fGO53KrRB8pdn1s+IODZ+rj0jG2owsNJlTlagFrsZAy8IVTUCOiiXjh9TbwFo7D5XMrmi4KUww==" + "resolved" "https://registry.npmjs.org/@jimp/core/-/core-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "any-base" "^1.1.0" + "buffer" "^5.2.0" + "core-js" "^2.5.7" + "exif-parser" "^0.1.12" + "file-type" "^9.0.0" + "load-bmfont" "^1.3.1" + "mkdirp" "0.5.1" + "phin" "^2.9.1" + "pixelmatch" "^4.0.2" + "tinycolor2" "^1.4.1" + +"@jimp/custom@^0.6.4", "@jimp/custom@>=0.3.5": + "integrity" "sha512-sdBHrBoVr1+PFx4dlUAgXvvu4dG0esQobhg7qhpSLRje1ScavIgE2iXdJKpycgzrqwAOL8vW4/E5w2/rONlaoQ==" + "resolved" "https://registry.npmjs.org/@jimp/custom/-/custom-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/core" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/gif@^0.6.4": + "integrity" "sha512-14mLoyG0UrYJsGNRoXBFvSJdFtBD0BSBwQ1zCNeW+HpQqdl+Kh5E1Pz4nqT2KNylJe1jypyR51Q2yndgcfGVyg==" + "resolved" "https://registry.npmjs.org/@jimp/gif/-/gif-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + "omggif" "^1.0.9" + +"@jimp/jpeg@^0.6.4": + "integrity" "sha512-NrFla9fZC/Bhw1Aa9vJ6cBOqpB5ylEPb9jD+yZ0fzcAw5HwILguS//oXv9EWLApIY1XsOMFFe0XWpY653rv8hw==" + "resolved" "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + "jpeg-js" "^0.3.4" + +"@jimp/plugin-blit@^0.6.4", "@jimp/plugin-blit@>=0.3.5": + "integrity" "sha512-suVznd4XozkQIuECX0u8kMl+cAQpZN3WcbWXUcJaVxRi+VBvHIetG1Qs5qGLzuEg9627+kE7ppv0UgZ5mkE6lg==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-blur@^0.6.4": + "integrity" "sha512-M2fDMYUUtEKVNnCJZk5J0KSMzzISobmWfnG88RdHXJCkOn98kdawQFwTsYOfJJfCM8jWfhIxwZLFhC/2lkTN2w==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-color@^0.6.4": + "integrity" "sha512-6Nfr2l9KSb6zH2fij8G6fQOw85TTkyRaBlqMvDmsQp/I1IlaDbXzA2C2Eh9jkQYZQDPu61B1MkmlEhJp/TUx6Q==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + "tinycolor2" "^1.4.1" + +"@jimp/plugin-contain@^0.6.4": + "integrity" "sha512-qI1MxU1noS6NbEPu/bDDeP405aMviuIsfpOz8J3En8IwIwrJV22qt6QIHmF+eyng8CYgivwIPjEPzFzLR566Nw==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-cover@^0.6.4": + "integrity" "sha512-z6eafPonj3LJY8cTEfRkXmOfCDi1+f0tbYaNvmiu+OrWJ3Ojw2hMt+BVVvJ8pKe1dWIFkCjxOjyjZWj1gEkaLw==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-crop@^0.6.4", "@jimp/plugin-crop@>=0.3.5": + "integrity" "sha512-w9TR+pn+GeWbznscGe2HRkPxInge0whAF3TLPWhPwBVjZChTT8dSDXsUpUlxQqvI4SfzuKp8z3/0SBqYDCzxxA==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-displace@^0.6.4": + "integrity" "sha512-MEvtBXOAio/3iGJkKBrTtFs3Q38ez2Wy/wTD0Ruas+L8fjJR7l4mDgV+zjRr57CqB5mpY+L48VEoa2/gNXh9cg==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-dither@^0.6.4": + "integrity" "sha512-w+AGLcIMUeJZ4CI0FvFomahgKLcW+ICsLidUNOqyLzceluPAfug4X7vDhQ41pNkzKg0M1+Q1j0aWV8bdyF+LhA==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-flip@^0.6.4": + "integrity" "sha512-ukINMegMUM9KYjyDCiyYKYdSsbhNRLHDwOJN0xVRalmOKqNaZmjNbiMbaVxKlYt6sHW76RhSMOekw9f6GQB9tQ==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-gaussian@^0.6.4": + "integrity" "sha512-C1P6ohzIddpNb7CX5X+ygbp+ow8Fpt64ZLoIgdjYPs/42HxKluvY62fVfMhY6m5zUGKIMbg0uYeAtz/9LRJPyw==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-invert@^0.6.4": + "integrity" "sha512-sleGz1jXaNEsP/5Ayqw8oez/6KesWcyCqovIuK4Z4kDmMc2ncuhsXIJQXDWtIF4tTQVzNEgrxUDNA4bi9xpCUA==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-mask@^0.6.4": + "integrity" "sha512-3D4FbRxnpO9nzwa6cF8AImgO1aVReYbfRRO4I4bku4/iZ+kuU3fBLV+SRhB4c7di3ejG5u+rGsIfaNc94iYYvw==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-normalize@^0.6.4": + "integrity" "sha512-nOFMwOaVkOKArHkD/T6/1HKAPj3jlW6l0JduVDn1A5eIPCtlnyhlE9zdjgi5Q9IBR/gRjwW6tTzBKuJenS51kg==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-print@^0.6.4": + "integrity" "sha512-3z5DLVCKg0NfZhHATEaYH/4XanIboPP1pOUoxIUeF++qOnGiGgH2giFJlRprHmx2l3E3DukR1v8pt54PGvfrFw==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + "load-bmfont" "^1.4.0" + +"@jimp/plugin-resize@^0.6.4", "@jimp/plugin-resize@>=0.3.5": + "integrity" "sha512-fk2+KheUNClrOWj6aDNWj1r4byVQb6Qxy4aT1UHX5GXPHDA+nhlej7ghaYdzeWZYodeM3lpasYtByu1XE2qScQ==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-rotate@^0.6.4", "@jimp/plugin-rotate@>=0.3.5": + "integrity" "sha512-44VgV5D4xQIYInJAVevdW9J3SOhGKyz0OEr2ciA8Q3ktonKx0O5Q1g2kbruiqxFSkK/u2CKPLeKXZzYCFrmJGQ==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugin-scale@^0.6.4", "@jimp/plugin-scale@>=0.3.5": + "integrity" "sha512-RAQRaDiCHmEz+A8QS5d/Z38EnlNsQizz3Mu3NsjA8uFtJsv1yMKWXZSQuzniofZw8tlMV6oI3VdM0eQVE07/5w==" + "resolved" "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + +"@jimp/plugins@^0.6.4": + "integrity" "sha512-NpO/87CKnF4Q9r8gMl6w+jPKOM/C089qExkViD9cPvcFZEnyVOu7ucGzcMmTcabWOU62iQTOkRViPYr6XaK0LQ==" + "resolved" "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/plugin-blit" "^0.6.4" + "@jimp/plugin-blur" "^0.6.4" + "@jimp/plugin-color" "^0.6.4" + "@jimp/plugin-contain" "^0.6.4" + "@jimp/plugin-cover" "^0.6.4" + "@jimp/plugin-crop" "^0.6.4" + "@jimp/plugin-displace" "^0.6.4" + "@jimp/plugin-dither" "^0.6.4" + "@jimp/plugin-flip" "^0.6.4" + "@jimp/plugin-gaussian" "^0.6.4" + "@jimp/plugin-invert" "^0.6.4" + "@jimp/plugin-mask" "^0.6.4" + "@jimp/plugin-normalize" "^0.6.4" + "@jimp/plugin-print" "^0.6.4" + "@jimp/plugin-resize" "^0.6.4" + "@jimp/plugin-rotate" "^0.6.4" + "@jimp/plugin-scale" "^0.6.4" + "core-js" "^2.5.7" + "timm" "^1.6.1" + +"@jimp/png@^0.6.4": + "integrity" "sha512-qv3oo6ll3XWVIToBwVC1wQX0MFKwpxbe2o+1ld9B4ZDavqvAHzalzcmTd/iyooI85CVDAcC3RRDo66oiizGZCQ==" + "resolved" "https://registry.npmjs.org/@jimp/png/-/png-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/utils" "^0.6.4" + "core-js" "^2.5.7" + "pngjs" "^3.3.3" + +"@jimp/tiff@^0.6.4": + "integrity" "sha512-8/vD4qleexmhPdppiu6fSstj/n/kGNTn8iIlf1emiqOuMN2PL9q5GOPDWU0xWdGNyJMMIDXJPgUFUkKfqXdg7w==" + "resolved" "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "core-js" "^2.5.7" + "utif" "^2.0.1" + +"@jimp/types@^0.6.4": + "integrity" "sha512-/EMbipQDg5U6DnBAgcSiydlMBRYoKhnaK7MJRImeTzhDJ6xfgNOF7lYq66o0kmaezKdG/cIwZ1CLecn2y3D8SQ==" + "resolved" "https://registry.npmjs.org/@jimp/types/-/types-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@jimp/bmp" "^0.6.4" + "@jimp/gif" "^0.6.4" + "@jimp/jpeg" "^0.6.4" + "@jimp/png" "^0.6.4" + "@jimp/tiff" "^0.6.4" + "core-js" "^2.5.7" + "timm" "^1.6.1" + +"@jimp/utils@^0.6.4": + "integrity" "sha512-EFQurCyEnZLSM2Q1BYDTUmsOJPSOYEQd18Fvq8bGo8hnBHoGLWLWWyNi2l4cYhtpKmIXyhvQqa6/WaEpKPzvqA==" + "resolved" "https://registry.npmjs.org/@jimp/utils/-/utils-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "core-js" "^2.5.7" + +"adm-zip@^0.4.7": + "integrity" "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=" + "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz" + "version" "0.4.7" + +"ajv@^4.9.1": + "integrity" "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz" + "version" "4.11.8" + dependencies: + "co" "^4.6.0" + "json-stable-stringify" "^1.0.1" + +"ajv@^6.5.5": + "integrity" "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz" + "version" "6.10.2" + dependencies: + "fast-deep-equal" "^2.0.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"ansi-regex@^2.0.0": + "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "version" "2.1.1" + +"any-base@^1.1.0": + "integrity" "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + "resolved" "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" + "version" "1.1.0" + +"archive-type@^4.0.0": + "integrity" "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=" + "resolved" "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "file-type" "^4.2.0" + +"archiver-utils@^2.1.0": + "integrity" "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==" + "resolved" "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "glob" "^7.1.4" + "graceful-fs" "^4.2.0" + "lazystream" "^1.0.0" + "lodash.defaults" "^4.2.0" + "lodash.difference" "^4.5.0" + "lodash.flatten" "^4.4.0" + "lodash.isplainobject" "^4.0.6" + "lodash.union" "^4.6.0" + "normalize-path" "^3.0.0" + "readable-stream" "^2.0.0" + +"archiver@^3.0.0": + "integrity" "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==" + "resolved" "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "archiver-utils" "^2.1.0" + "async" "^2.6.3" + "buffer-crc32" "^0.2.1" + "glob" "^7.1.4" + "readable-stream" "^3.4.0" + "tar-stream" "^2.1.0" + "zip-stream" "^2.1.2" + +"argparse@^1.0.7": + "integrity" "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"array-find-index@^1.0.1": + "integrity" "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" + "resolved" "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" + "version" "1.0.2" + +"asap@~2.0.3": + "integrity" "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + "version" "2.0.6" + +"asn1@~0.2.3": + "integrity" "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + "version" "0.2.3" + +"assert-plus@^0.2.0": + "integrity" "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" + "version" "0.2.0" + +"assert-plus@^1.0.0": + "integrity" "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "version" "1.0.0" + +"assert-plus@1.0.0": + "integrity" "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "version" "1.0.0" + +"async@^2.6.3": + "integrity" "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==" + "resolved" "https://registry.npmjs.org/async/-/async-2.6.3.tgz" + "version" "2.6.3" + dependencies: + "lodash" "^4.17.14" + +"async@^3.1.0": + "integrity" "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==" + "resolved" "https://registry.npmjs.org/async/-/async-3.1.0.tgz" + "version" "3.1.0" + +"asynckit@^0.4.0": + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"aws-sign2@~0.6.0": + "integrity" "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" + "version" "0.6.0" + +"aws-sign2@~0.7.0": + "integrity" "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + "version" "0.7.0" + +"aws4@^1.2.1": + "integrity" "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz" + "version" "1.6.0" + +"aws4@^1.8.0": + "integrity" "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz" + "version" "1.8.0" + +"balanced-match@^1.0.0": + "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + "version" "1.0.0" + +"base64-js@^1.0.2": + "integrity" "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" + "version" "1.3.1" + +"base64-js@0.0.8": + "integrity" "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" + "version" "0.0.8" + +"bcrypt-pbkdf@^1.0.0": + "integrity" "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=" + "resolved" "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "tweetnacl" "^0.14.3" + +"bl@^1.0.0": + "integrity" "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=" + "resolved" "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "readable-stream" "^2.0.5" + +"bl@^3.0.0": + "integrity" "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==" + "resolved" "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "readable-stream" "^3.0.1" + +"block-stream@*": + "integrity" "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=" + "resolved" "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz" + "version" "0.0.9" + dependencies: + "inherits" "~2.0.0" + +"bluebird-lst@^1.0.6", "bluebird-lst@^1.0.7": + "integrity" "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=" + "resolved" "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" + "version" "1.0.9" + dependencies: + "bluebird" "^3.5.5" + +"bluebird@^2.9.34": + "integrity" "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" + "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz" + "version" "2.11.0" + +"bluebird@^3.5.5": + "integrity" "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=" + "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz" + "version" "3.5.5" + +"bmp-js@^0.1.0": + "integrity" "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + "resolved" "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" + "version" "0.1.0" + +"boom@2.x.x": + "integrity" "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + "resolved" "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + "version" "2.10.1" + dependencies: + "hoek" "2.x.x" + +"brace-expansion@^1.1.7": + "integrity" "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"buffer-crc32@^0.2.1", "buffer-crc32@^0.2.13", "buffer-crc32@~0.2.3": + "integrity" "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "resolved" "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + "version" "0.2.13" + +"buffer-equal@0.0.1": + "integrity" "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + "resolved" "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" + "version" "0.0.1" + +"buffer-from@^1.0.0": + "integrity" "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + "version" "1.1.1" + +"buffer@^3.0.1": + "integrity" "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "base64-js" "0.0.8" + "ieee754" "^1.1.4" + "isarray" "^1.0.0" + +"buffer@^5.1.0": + "integrity" "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz" + "version" "5.2.1" + dependencies: + "base64-js" "^1.0.2" + "ieee754" "^1.1.4" + +"buffer@^5.2.0": + "integrity" "sha512-Xpgy0IwHK2N01ncykXTy6FpCWuM+CJSHoPVBLyNqyrWxsedpLvwsYUhf0ME3WRFNUhos0dMamz9cOS/xRDtU5g==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.4.0.tgz" + "version" "5.4.0" + dependencies: + "base64-js" "^1.0.2" + "ieee754" "^1.1.4" + +"builder-util-runtime@~7.1.0": + "integrity" "sha512-TAsx651+q6bXYry21SzQblYQBUlfu4ixbDa6k2Nvts+kHO9ajyr0gDuHJsamxBaAyUUi5EldPABqsFERDEK3Hg==" + "resolved" "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-7.1.0.tgz" + "version" "7.1.0" + dependencies: + "bluebird-lst" "^1.0.6" + "debug" "^4.1.0" + "fs-extra-p" "^7.0.0" + "sax" "^1.2.4" + +"builtin-modules@^1.0.0": + "integrity" "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + "version" "1.1.1" + +"camelcase-keys@^2.0.0": + "integrity" "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=" + "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "camelcase" "^2.0.0" + "map-obj" "^1.0.0" + +"camelcase@^2.0.0": + "integrity" "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" + "version" "2.1.1" + +"caseless@~0.12.0": + "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + "version" "0.12.0" + +"charenc@~0.0.1": + "integrity" "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" + "resolved" "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" + "version" "0.0.2" + +"chownr@^1.0.1": + "integrity" "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz" + "version" "1.0.1" + +"clone@^2.1.2": + "integrity" "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" + "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + "version" "2.1.2" + +"co@^4.6.0": + "integrity" "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + "version" "4.6.0" + +"code-point-at@^1.0.0": + "integrity" "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + "version" "1.1.0" + +"combined-stream@^1.0.5", "combined-stream@^1.0.6", "combined-stream@~1.0.5", "combined-stream@~1.0.6": + "integrity" "sha1-cj599ugBrFYTETp+RFqbactjKBg=" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "delayed-stream" "~1.0.0" + +"commander@^2.8.1", "commander@~2.8.1": + "integrity" "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz" + "version" "2.8.1" + dependencies: + "graceful-readlink" ">= 1.0.0" + +"compress-commons@^2.1.1": + "integrity" "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==" + "resolved" "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "buffer-crc32" "^0.2.13" + "crc32-stream" "^3.0.1" + "normalize-path" "^3.0.0" + "readable-stream" "^2.3.6" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"core-js@^2.5.7", "core-js@^2.6.5": + "integrity" "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz" + "version" "2.6.9" + +"core-util-is@~1.0.0", "core-util-is@1.0.2": + "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + "version" "1.0.2" + +"crc@^3.4.4": + "integrity" "sha1-rWAmnCyFb4wpnixMwN5FVpFAVsY=" + "resolved" "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz" + "version" "3.8.0" + dependencies: + "buffer" "^5.1.0" + +"crc32-stream@^3.0.1": + "integrity" "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==" + "resolved" "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "crc" "^3.4.4" + "readable-stream" "^3.4.0" + +"crypt@~0.0.1": + "integrity" "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" + "resolved" "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" + "version" "0.0.2" + +"cryptiles@2.x.x": + "integrity" "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + "resolved" "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "boom" "2.x.x" + +"currently-unhandled@^0.4.1": + "integrity" "sha1-mI3zP+qxke95mmE2nddsF635V+o=" + "resolved" "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" + "version" "0.4.1" + dependencies: + "array-find-index" "^1.0.1" + +"dashdash@^1.12.0": + "integrity" "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=" + "resolved" "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + "version" "1.14.1" + dependencies: + "assert-plus" "^1.0.0" + +"debug@^2.1.3": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^4.1.0": + "integrity" "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "ms" "^2.1.1" + +"decamelize@^1.1.2": + "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + "version" "1.2.0" + +"decompress-tar@^4.0.0", "decompress-tar@^4.1.0", "decompress-tar@^4.1.1": + "integrity" "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==" + "resolved" "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "file-type" "^5.2.0" + "is-stream" "^1.1.0" + "tar-stream" "^1.5.2" + +"decompress-tarbz2@^4.0.0": + "integrity" "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==" + "resolved" "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "decompress-tar" "^4.1.0" + "file-type" "^6.1.0" + "is-stream" "^1.1.0" + "seek-bzip" "^1.0.5" + "unbzip2-stream" "^1.0.9" + +"decompress-targz@^4.0.0": + "integrity" "sha1-wJvDXE0R894J8tLaU+neI+fOHu4=" + "resolved" "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz" + "version" "4.1.1" + dependencies: + "decompress-tar" "^4.1.1" + "file-type" "^5.2.0" + "is-stream" "^1.1.0" + +"decompress-unzip@^4.0.1": + "integrity" "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=" + "resolved" "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "file-type" "^3.8.0" + "get-stream" "^2.2.0" + "pify" "^2.3.0" + "yauzl" "^2.4.2" + +"decompress@^4.0.0": + "integrity" "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=" + "resolved" "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "decompress-tar" "^4.0.0" + "decompress-tarbz2" "^4.0.0" + "decompress-targz" "^4.0.0" + "decompress-unzip" "^4.0.1" + "graceful-fs" "^4.1.10" + "make-dir" "^1.0.0" + "pify" "^2.3.0" + "strip-dirs" "^2.0.0" + +"define-properties@^1.1.3": + "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "object-keys" "^1.0.12" + +"delayed-stream@~1.0.0": + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"dom-walk@^0.1.0": + "integrity" "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + "resolved" "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" + "version" "0.1.1" + +"easy-zip2@^3.0.0": + "integrity" "sha512-dGEPoJJcVUiVw0LZXBKLvuaUF+lU5N7bK1tzhhQiYLYFLfGE0XpV8xhWKw956kLwBNBC0dw7RTJLdR8Ehpf52A==" + "resolved" "https://registry.npmjs.org/easy-zip2/-/easy-zip2-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "async" "^3.1.0" + "graceful-fs" "^4.1.15" + "jszip" "^3.2.1" + +"ecc-jsbn@~0.1.1": + "integrity" "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=" + "resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "jsbn" "~0.1.0" + +"electron-is-dev@^0.3.0": + "integrity" "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=" + "resolved" "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz" + "version" "0.3.0" + +"electron-log@^2.2.17": + "integrity" "sha1-5x4uu5SfyW3tfNuZ7u5yAuSJgdI=" + "resolved" "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz" + "version" "2.2.17" + +"electron-updater@^3.1.2": + "integrity" "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==" + "resolved" "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz" + "version" "3.2.3" + dependencies: + "bluebird-lst" "^1.0.6" + "builder-util-runtime" "~7.1.0" + "electron-is-dev" "^0.3.0" + "fs-extra-p" "^7.0.0" + "js-yaml" "^3.12.0" + "lazy-val" "^1.0.3" + "lodash.isequal" "^4.5.0" + "pako" "^1.0.6" + "semver" "^5.6.0" + "source-map-support" "^0.5.9" + +"end-of-stream@^1.0.0", "end-of-stream@^1.1.0": + "integrity" "sha1-epDYM+/abPpurA9JSduw+tOmMgY=" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "once" "^1.4.0" + +"end-of-stream@^1.4.1": + "integrity" "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "once" "^1.4.0" + +"errno@^0.1.1": + "integrity" "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=" + "resolved" "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz" + "version" "0.1.7" + dependencies: + "prr" "~1.0.1" + +"error-ex@^1.2.0": + "integrity" "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "is-arrayish" "^0.2.1" + +"es-abstract@^1.13.0": + "integrity" "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==" + "resolved" "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz" + "version" "1.13.0" + dependencies: + "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@^1.2.0": + "integrity" "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==" + "resolved" "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "is-callable" "^1.1.4" + "is-date-object" "^1.0.1" + "is-symbol" "^1.0.2" + +"esprima@^4.0.0": + "integrity" "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"exif-parser@^0.1.12": + "integrity" "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + "resolved" "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" + "version" "0.1.12" + +"extend@~3.0.0": + "integrity" "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz" + "version" "3.0.1" + +"extend@~3.0.2": + "integrity" "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + "version" "3.0.2" + +"extsprintf@^1.2.0", "extsprintf@1.3.0": + "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + "version" "1.3.0" + +"fast-deep-equal@^2.0.1": + "integrity" "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz" + "version" "2.0.1" + +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" + "version" "2.0.0" + +"fd-slicer@~1.0.1": + "integrity" "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=" + "resolved" "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "pend" "~1.2.0" + +"file-type@^3.8.0": + "integrity" "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz" + "version" "3.9.0" + +"file-type@^4.2.0": + "integrity" "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz" + "version" "4.4.0" + +"file-type@^5.2.0": + "integrity" "sha1-LdvqfHP/42No365J3DOMBYwritY=" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz" + "version" "5.2.0" + +"file-type@^6.1.0": + "integrity" "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz" + "version" "6.2.0" + +"file-type@^9.0.0": + "integrity" "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" + "version" "9.0.0" + +"find-up@^1.0.0": + "integrity" "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "path-exists" "^2.0.0" + "pinkie-promise" "^2.0.0" + +"for-each@^0.3.3": + "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" + "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + "version" "0.3.3" + dependencies: + "is-callable" "^1.1.3" + +"forever-agent@~0.6.1": + "integrity" "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + "version" "0.6.1" + +"form-data@~2.1.1": + "integrity" "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz" + "version" "2.1.4" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.5" + "mime-types" "^2.1.12" + +"form-data@~2.3.2": + "integrity" "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.6" + "mime-types" "^2.1.12" + +"fs-constants@^1.0.0": + "integrity" "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "resolved" "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" + "version" "1.0.0" + +"fs-extra-p@^7.0.0": + "integrity" "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==" + "resolved" "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "bluebird-lst" "^1.0.7" + "fs-extra" "^7.0.1" + +"fs-extra@^7.0.1": + "integrity" "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "graceful-fs" "^4.1.2" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"fstream@^1.0.12": + "integrity" "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==" + "resolved" "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" + "version" "1.0.12" + dependencies: + "graceful-fs" "^4.1.2" + "inherits" "~2.0.0" + "mkdirp" ">=0.5 0" + "rimraf" "2" + +"fstream@^1.0.2", "fstream@^1.0.8": + "integrity" "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=" + "resolved" "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "graceful-fs" "^4.1.2" + "inherits" "~2.0.0" + "mkdirp" ">=0.5 0" + "rimraf" "2" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"get-stdin@^4.0.1": + "integrity" "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" + "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" + "version" "4.0.1" + +"get-stream@^2.2.0": + "integrity" "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz" + "version" "2.3.1" + dependencies: + "object-assign" "^4.0.1" + "pinkie-promise" "^2.0.0" + +"getpass@^0.1.1": + "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" + "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + "version" "0.1.7" + dependencies: + "assert-plus" "^1.0.0" + +"glob@^7.0.5": + "integrity" "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" + "version" "7.1.2" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"glob@^7.1.4": + "integrity" "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" + "version" "7.1.4" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"global@~4.3.0": + "integrity" "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=" + "resolved" "https://registry.npmjs.org/global/-/global-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "min-document" "^2.19.0" + "process" "~0.5.1" + +"graceful-fs@^4.1.10", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6": + "integrity" "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" + "version" "4.1.11" + +"graceful-fs@^4.1.15": + "integrity" "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz" + "version" "4.2.1" + +"graceful-fs@^4.2.0": + "integrity" "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz" + "version" "4.2.1" "graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hosted-git-info@^2.1.4: - version "2.1.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -ieee754@^1.1.4: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - -image-size@~0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.1.tgz#28eea8548a4b1443480ddddc1e083ae54652439f" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@~2.0.0, inherits@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-buffer@~1.1.1: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-natural-number@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-natural-number/-/is-natural-number-4.0.1.tgz#ab9d76e1db4ced51e35de0c72ebecf09f734cde8" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-stream@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -js-yaml@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + "integrity" "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" + "resolved" "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + "version" "1.0.1" + +"har-schema@^1.0.5": + "integrity" "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + "resolved" "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz" + "version" "1.0.5" + +"har-schema@^2.0.0": + "integrity" "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "resolved" "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + "version" "2.0.0" + +"har-validator@~4.2.1": + "integrity" "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" + "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "ajv" "^4.9.1" + "har-schema" "^1.0.5" + +"har-validator@~5.1.0": + "integrity" "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==" + "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz" + "version" "5.1.3" + dependencies: + "ajv" "^6.5.5" + "har-schema" "^2.0.0" + +"has-symbols@^1.0.0": + "integrity" "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz" + "version" "1.0.0" + +"has@^1.0.1", "has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"hawk@~3.1.3": + "integrity" "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + "resolved" "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" + "version" "3.1.3" + dependencies: + "boom" "2.x.x" + "cryptiles" "2.x.x" + "hoek" "2.x.x" + "sntp" "1.x.x" + +"hoek@2.x.x": + "integrity" "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "resolved" "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "version" "2.16.3" + +"hosted-git-info@^2.1.4": + "integrity" "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz" + "version" "2.5.0" + +"http-signature@~1.1.0": + "integrity" "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "assert-plus" "^0.2.0" + "jsprim" "^1.2.2" + "sshpk" "^1.7.0" + +"http-signature@~1.2.0": + "integrity" "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" + "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "assert-plus" "^1.0.0" + "jsprim" "^1.2.2" + "sshpk" "^1.7.0" + +"ieee754@^1.1.4": + "integrity" "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz" + "version" "1.1.8" + +"image-size@~0.5.0": + "integrity" "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=" + "resolved" "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz" + "version" "0.5.5" + +"immediate@~3.0.5": + "integrity" "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "resolved" "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" + "version" "3.0.6" + +"indent-string@^2.1.0": + "integrity" "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "repeating" "^2.0.0" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.3", "inherits@~2.0.0", "inherits@~2.0.1", "inherits@~2.0.3", "inherits@2": + "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "version" "2.0.3" + +"is-arrayish@^0.2.1": + "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-buffer@~1.1.1": + "integrity" "sha1-76ouqdqg16suoTqXsritUf776L4=" + "resolved" "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "version" "1.1.6" + +"is-builtin-module@^1.0.0": + "integrity" "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=" + "resolved" "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "builtin-modules" "^1.0.0" + +"is-callable@^1.1.3", "is-callable@^1.1.4": + "integrity" "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" + "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz" + "version" "1.1.4" + +"is-date-object@^1.0.1": + "integrity" "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz" + "version" "1.0.1" + +"is-finite@^1.0.0": + "integrity" "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=" + "resolved" "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "number-is-nan" "^1.0.0" + +"is-fullwidth-code-point@^1.0.0": + "integrity" "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "number-is-nan" "^1.0.0" + +"is-function@^1.0.1": + "integrity" "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + "resolved" "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz" + "version" "1.0.1" + +"is-natural-number@^4.0.1": + "integrity" "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" + "resolved" "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz" + "version" "4.0.1" + +"is-regex@^1.0.4": + "integrity" "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "has" "^1.0.1" + +"is-stream@^1.1.0": + "integrity" "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + "version" "1.1.0" + +"is-symbol@^1.0.2": + "integrity" "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==" + "resolved" "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "has-symbols" "^1.0.0" + +"is-typedarray@~1.0.0": + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + "version" "1.0.0" + +"is-utf8@^0.2.0": + "integrity" "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "resolved" "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" + "version" "0.2.1" + +"isarray@^1.0.0", "isarray@~1.0.0": + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@0.0.1": + "integrity" "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "version" "0.0.1" + +"isstream@~0.1.2": + "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + "version" "0.1.2" + +"jimp@^0.6.4": + "integrity" "sha512-WQVMoNhkcq/fgthZOWeMdIguCVPg+t4PDFfSxvbNcrECwl8eq3/Ou2whcFWWjyW45m43yAJEY2UT7acDKl6uSQ==" + "resolved" "https://registry.npmjs.org/jimp/-/jimp-0.6.4.tgz" + "version" "0.6.4" + dependencies: + "@babel/polyfill" "^7.0.0" + "@jimp/custom" "^0.6.4" + "@jimp/plugins" "^0.6.4" + "@jimp/types" "^0.6.4" + "core-js" "^2.5.7" + +"jpeg-js@^0.3.4": + "integrity" "sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw==" + "resolved" "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.6.tgz" + "version" "0.3.6" + +"js-yaml@^3.12.0": + "integrity" "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + "version" "3.13.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"jsbn@~0.1.0": + "integrity" "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "version" "0.1.1" + +"json-schema-traverse@^0.4.1": + "integrity" "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-schema@0.2.3": + "integrity" "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + "version" "0.2.3" + +"json-stable-stringify@^1.0.1": + "integrity" "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + "resolved" "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "jsonify" "~0.0.0" + +"json-stringify-safe@~5.0.1": + "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + "version" "5.0.1" + +"jsonfile@^4.0.0": + "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" optionalDependencies: - graceful-fs "^4.1.6" - -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - -jsprim@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" - dependencies: - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -jszip@~2.6.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-2.6.1.tgz#b88f3a7b2e67a2a048152982c7a3756d9c4828f0" - dependencies: - pako "~1.0.2" - -lazystream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" - dependencies: - readable-stream "^2.0.5" - -less@~2.7.1: - version "2.7.2" - resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" + "graceful-fs" "^4.1.6" + +"jsonify@~0.0.0": + "integrity" "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "resolved" "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" + "version" "0.0.0" + +"jsprim@^1.2.2": + "integrity" "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=" + "resolved" "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "assert-plus" "1.0.0" + "extsprintf" "1.3.0" + "json-schema" "0.2.3" + "verror" "1.10.0" + +"jszip@^3.2.1": + "integrity" "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==" + "resolved" "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "lie" "~3.3.0" + "pako" "~1.0.2" + "readable-stream" "~2.3.6" + "set-immediate-shim" "~1.0.1" + +"lazy-val@^1.0.3": + "integrity" "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=" + "resolved" "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz" + "version" "1.0.4" + +"lazystream@^1.0.0": + "integrity" "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=" + "resolved" "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "readable-stream" "^2.0.5" + +"less@~3.8.1": + "integrity" "sha1-8xdYWY71oZMN1MrvqeQ0BkHnHh0=" + "resolved" "https://registry.npmjs.org/less/-/less-3.8.1.tgz" + "version" "3.8.1" + dependencies: + "clone" "^2.1.2" optionalDependencies: - errno "^0.1.1" - graceful-fs "^4.1.2" - image-size "~0.5.0" - mime "^1.2.11" - mkdirp "^0.5.0" - promise "^7.1.1" - request "^2.72.0" - source-map "^0.5.3" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -lodash@^4.13.1, lodash@^4.14.0, lodash@^4.8.0: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -make-dir@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" - dependencies: - pify "^2.3.0" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -match-stream@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz#99eb050093b34dffade421b9ac0b410a9cfa17cf" - dependencies: - buffers "~0.1.1" - readable-stream "~1.0.0" - -md5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" - dependencies: - charenc "~0.0.1" - crypt "~0.0.1" - is-buffer "~1.1.1" - -meow@^3.1.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - -mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" - dependencies: - mime-db "~1.26.0" - -mime@^1.2.11: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -minimatch@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -minimist@^1.1.0, minimist@^1.1.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - -mkdirp@0.5, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - dependencies: - minimist "0.0.8" - -moment@^2.13.0: - version "2.17.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" - -mout@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99" - -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -natives@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.3.5" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.0.1.tgz#47886ac1662760d4261b7d979d241709d3ce3f7a" - -nugget@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" - dependencies: - debug "^2.1.3" - minimist "^1.1.0" - pretty-bytes "^1.0.2" - progress-stream "^1.1.0" - request "^2.45.0" - single-line-log "^1.1.2" - throttleit "0.0.2" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - -once@^1.3.0, once@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -os-tmpdir@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -"over@>= 0.0.5 < 1": - version "0.0.5" - resolved "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz#f29852e70fd7e25f360e013a8ec44c82aedb5708" - -pako@~1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.4.tgz#412cc97c3b7ff06dc6c2557fd4f03d06f5e708d4" - -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -pify@^2.0.0, pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -pretty-bytes@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" - dependencies: - get-stdin "^4.0.1" - meow "^3.1.0" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -progress-stream@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" - dependencies: - speedometer "~0.1.2" - through2 "~0.2.3" - -promise@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" - dependencies: - asap "~2.0.3" - -prr@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" - -pullstream@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz#d6fb3bf5aed697e831150eb1002c25a3f8ae1314" - dependencies: - over ">= 0.0.5 < 1" - readable-stream "~1.0.31" - setimmediate ">= 1.0.2 < 2" - slice-stream ">= 1.0.0 < 2" - -pump@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -q@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" - -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -readable-stream@^2.0.0, readable-stream@^2.0.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" - dependencies: - buffer-shims "^1.0.0" - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~1.0.0, readable-stream@~1.0.31: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@^2.45.0, request@^2.72.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -rimraf@2, rimraf@^2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -seek-bzip@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/seek-bzip/-/seek-bzip-1.0.5.tgz#cfe917cb3d274bcffac792758af53173eb1fabdc" - dependencies: - commander "~2.8.1" - -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -"setimmediate@>= 1.0.2 < 2", setimmediate@~1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -single-line-log@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" - dependencies: - string-width "^1.0.1" - -"slice-stream@>= 1.0.0 < 2": - version "1.0.0" - resolved "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz#5b33bd66f013b1a7f86460b03d463dec39ad3ea0" - dependencies: - readable-stream "~1.0.31" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -source-map-support@^0.4.11: - version "0.4.11" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322" - dependencies: - source-map "^0.5.3" - -source-map@^0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -speedometer@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" + "errno" "^0.1.1" + "graceful-fs" "^4.1.2" + "image-size" "~0.5.0" + "mime" "^1.4.1" + "mkdirp" "^0.5.0" + "promise" "^7.1.1" + "request" "^2.83.0" + "source-map" "~0.6.0" + +"lie@~3.3.0": + "integrity" "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==" + "resolved" "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "immediate" "~3.0.5" + +"load-bmfont@^1.3.1", "load-bmfont@^1.4.0": + "integrity" "sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==" + "resolved" "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "buffer-equal" "0.0.1" + "mime" "^1.3.4" + "parse-bmfont-ascii" "^1.0.3" + "parse-bmfont-binary" "^1.0.5" + "parse-bmfont-xml" "^1.1.4" + "phin" "^2.9.1" + "xhr" "^2.0.1" + "xtend" "^4.0.0" + +"load-json-file@^1.0.0": + "integrity" "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=" + "resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "graceful-fs" "^4.1.2" + "parse-json" "^2.2.0" + "pify" "^2.0.0" + "pinkie-promise" "^2.0.0" + "strip-bom" "^2.0.0" + +"lodash.defaults@^4.2.0": + "integrity" "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + "resolved" "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" + "version" "4.2.0" + +"lodash.difference@^4.5.0": + "integrity" "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" + "resolved" "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz" + "version" "4.5.0" + +"lodash.flatten@^4.4.0": + "integrity" "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + "resolved" "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" + "version" "4.4.0" + +"lodash.isequal@^4.5.0": + "integrity" "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + "resolved" "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" + "version" "4.5.0" + +"lodash.isplainobject@^4.0.6": + "integrity" "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + "resolved" "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + "version" "4.0.6" + +"lodash.union@^4.6.0": + "integrity" "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" + "resolved" "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz" + "version" "4.6.0" + +"lodash@^4.13.1": + "integrity" "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" + "version" "4.17.4" + +"lodash@^4.17.14": + "integrity" "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" + "version" "4.17.15" + +"loud-rejection@^1.0.0": + "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" + "resolved" "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" + "version" "1.6.0" + dependencies: + "currently-unhandled" "^0.4.1" + "signal-exit" "^3.0.0" + +"make-dir@^1.0.0": + "integrity" "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "pify" "^3.0.0" + +"map-obj@^1.0.0", "map-obj@^1.0.1": + "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" + "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" + "version" "1.0.1" + +"md5@^2.2.1": + "integrity" "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=" + "resolved" "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz" + "version" "2.2.1" + dependencies: + "charenc" "~0.0.1" + "crypt" "~0.0.1" + "is-buffer" "~1.1.1" + +"meow@^3.1.0": + "integrity" "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=" + "resolved" "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz" + "version" "3.7.0" + dependencies: + "camelcase-keys" "^2.0.0" + "decamelize" "^1.1.2" + "loud-rejection" "^1.0.0" + "map-obj" "^1.0.1" + "minimist" "^1.1.3" + "normalize-package-data" "^2.3.4" + "object-assign" "^4.0.1" + "read-pkg-up" "^1.0.1" + "redent" "^1.0.0" + "trim-newlines" "^1.0.0" + +"mime-db@~1.33.0": + "integrity" "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" + "version" "1.33.0" + +"mime-db@1.40.0": + "integrity" "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz" + "version" "1.40.0" + +"mime-types@^2.1.12", "mime-types@~2.1.7": + "integrity" "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" + "version" "2.1.18" + dependencies: + "mime-db" "~1.33.0" + +"mime-types@~2.1.19": + "integrity" "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz" + "version" "2.1.24" + dependencies: + "mime-db" "1.40.0" + +"mime@^1.3.4", "mime@^1.4.1": + "integrity" "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "version" "1.6.0" + +"min-document@^2.19.0": + "integrity" "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=" + "resolved" "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" + "version" "2.19.0" + dependencies: + "dom-walk" "^0.1.0" + +"minimatch@^3.0.4": + "integrity" "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist@^1.1.0": + "integrity" "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + "version" "1.2.0" + +"minimist@^1.1.3": + "integrity" "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + "version" "1.2.0" + +"minimist@0.0.8": + "integrity" "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "version" "0.0.8" + +"mkdirp@^0.5.0", "mkdirp@^0.5.1", "mkdirp@>=0.5 0", "mkdirp@0.5.1": + "integrity" "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + "version" "0.5.1" + dependencies: + "minimist" "0.0.8" + +"moment@^2.13.0": + "integrity" "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" + "resolved" "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz" + "version" "2.20.1" + +"mout@^0.11.0": + "integrity" "sha1-ujYR318OWx/7/QEWa48C0fX6K5k=" + "resolved" "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz" + "version" "0.11.1" + +"ms@^2.1.1": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4": + "integrity" "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "hosted-git-info" "^2.1.4" + "is-builtin-module" "^1.0.0" + "semver" "2 || 3 || 4 || 5" + "validate-npm-package-license" "^3.0.1" + +"normalize-path@^3.0.0": + "integrity" "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"nugget@^2.0.0": + "integrity" "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=" + "resolved" "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "debug" "^2.1.3" + "minimist" "^1.1.0" + "pretty-bytes" "^1.0.2" + "progress-stream" "^1.1.0" + "request" "^2.45.0" + "single-line-log" "^1.1.2" + "throttleit" "0.0.2" + +"number-is-nan@^1.0.0": + "integrity" "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "resolved" "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "version" "1.0.1" + +"oauth-sign@~0.8.1": + "integrity" "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" + "version" "0.8.2" + +"oauth-sign@~0.9.0": + "integrity" "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + "version" "0.9.0" + +"object-assign@^4.0.1": + "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-keys@^1.0.12": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object-keys@~0.4.0": + "integrity" "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz" + "version" "0.4.0" + +"omggif@^1.0.9": + "integrity" "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" + "resolved" "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz" + "version" "1.0.10" + +"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"os-tmpdir@~1.0.2": + "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" + +"pako@^1.0.5", "pako@^1.0.6", "pako@~1.0.2": + "integrity" "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=" + "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz" + "version" "1.0.10" + +"parse-bmfont-ascii@^1.0.3": + "integrity" "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + "resolved" "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz" + "version" "1.0.6" + +"parse-bmfont-binary@^1.0.5": + "integrity" "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + "resolved" "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz" + "version" "1.0.6" + +"parse-bmfont-xml@^1.1.4": + "integrity" "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==" + "resolved" "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "xml-parse-from-string" "^1.0.0" + "xml2js" "^0.4.5" + +"parse-headers@^2.0.0": + "integrity" "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==" + "resolved" "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "for-each" "^0.3.3" + "string.prototype.trim" "^1.1.2" + +"parse-json@^2.2.0": + "integrity" "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "error-ex" "^1.2.0" + +"path-exists@^2.0.0": + "integrity" "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "pinkie-promise" "^2.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-type@^1.0.0": + "integrity" "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=" + "resolved" "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "graceful-fs" "^4.1.2" + "pify" "^2.0.0" + "pinkie-promise" "^2.0.0" + +"pend@~1.2.0": + "integrity" "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "resolved" "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + "version" "1.2.0" + +"performance-now@^0.2.0": + "integrity" "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz" + "version" "0.2.0" + +"performance-now@^2.1.0": + "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + "version" "2.1.0" + +"phin@^2.9.1": + "integrity" "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" + "resolved" "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz" + "version" "2.9.3" + +"pify@^2.0.0", "pify@^2.3.0": + "integrity" "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "resolved" "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" + "version" "2.3.0" + +"pify@^3.0.0": + "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + "version" "3.0.0" + +"pinkie-promise@^2.0.0": + "integrity" "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + "resolved" "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "pinkie" "^2.0.0" + +"pinkie@^2.0.0": + "integrity" "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "resolved" "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + "version" "2.0.4" + +"pixelmatch@^4.0.2": + "integrity" "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=" + "resolved" "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "pngjs" "^3.0.0" + +"pngjs@^3.0.0", "pngjs@^3.3.3": + "integrity" "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" + "resolved" "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" + "version" "3.4.0" + +"pretty-bytes@^1.0.2": + "integrity" "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=" + "resolved" "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "get-stdin" "^4.0.1" + "meow" "^3.1.0" + +"process-nextick-args@~2.0.0": + "integrity" "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz" + "version" "2.0.0" + +"process@~0.5.1": + "integrity" "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + "resolved" "https://registry.npmjs.org/process/-/process-0.5.2.tgz" + "version" "0.5.2" + +"progress-stream@^1.1.0": + "integrity" "sha1-LNPP6jO6OonJwSHsM0er6asSX3c=" + "resolved" "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "speedometer" "~0.1.2" + "through2" "~0.2.3" + +"promise@^7.1.1": + "integrity" "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=" + "resolved" "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" + "version" "7.3.1" + dependencies: + "asap" "~2.0.3" + +"prr@~1.0.1": + "integrity" "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + "resolved" "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" + "version" "1.0.1" + +"psl@^1.1.24": + "integrity" "sha1-4ev2o7VWT6g3bz2iJ12nbYdcob0=" + "resolved" "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz" + "version" "1.3.0" + +"pump@^1.0.0": + "integrity" "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=" + "resolved" "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"punycode@^1.4.1": + "integrity" "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "version" "1.4.1" + +"punycode@^2.1.0": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"q@^1.4.1": + "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" + "version" "1.5.1" + +"qs@~6.4.0": + "integrity" "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz" + "version" "6.4.0" + +"qs@~6.5.2": + "integrity" "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" + "version" "6.5.2" + +"read-pkg-up@^1.0.1": + "integrity" "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=" + "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "find-up" "^1.0.0" + "read-pkg" "^1.0.0" + +"read-pkg@^1.0.0": + "integrity" "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=" + "resolved" "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "load-json-file" "^1.0.0" + "normalize-package-data" "^2.3.2" + "path-type" "^1.0.0" + +"readable-stream@^2.0.0", "readable-stream@^2.0.5": + "integrity" "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz" + "version" "2.3.4" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.0.3" + "util-deprecate" "~1.0.1" + +"readable-stream@^2.3.6": + "integrity" "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + "version" "2.3.6" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readable-stream@^3.0.1", "readable-stream@^3.1.1", "readable-stream@^3.4.0": + "integrity" "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@~1.1.9": + "integrity" "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + "version" "1.1.14" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.1" + "isarray" "0.0.1" + "string_decoder" "~0.10.x" + +"readable-stream@~2.3.6": + "integrity" "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + "version" "2.3.6" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"redent@^1.0.0": + "integrity" "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=" + "resolved" "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "indent-string" "^2.1.0" + "strip-indent" "^1.0.1" + +"regenerator-runtime@^0.13.2": + "integrity" "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz" + "version" "0.13.3" + +"repeating@^2.0.0": + "integrity" "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" + "resolved" "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "is-finite" "^1.0.0" + +"request@^2.45.0": + "integrity" "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=" + "resolved" "https://registry.npmjs.org/request/-/request-2.81.0.tgz" + "version" "2.81.0" + dependencies: + "aws-sign2" "~0.6.0" + "aws4" "^1.2.1" + "caseless" "~0.12.0" + "combined-stream" "~1.0.5" + "extend" "~3.0.0" + "forever-agent" "~0.6.1" + "form-data" "~2.1.1" + "har-validator" "~4.2.1" + "hawk" "~3.1.3" + "http-signature" "~1.1.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.7" + "oauth-sign" "~0.8.1" + "performance-now" "^0.2.0" + "qs" "~6.4.0" + "safe-buffer" "^5.0.1" + "stringstream" "~0.0.4" + "tough-cookie" "~2.3.0" + "tunnel-agent" "^0.6.0" + "uuid" "^3.0.0" + +"request@^2.83.0": + "integrity" "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==" + "resolved" "https://registry.npmjs.org/request/-/request-2.88.0.tgz" + "version" "2.88.0" + dependencies: + "aws-sign2" "~0.7.0" + "aws4" "^1.8.0" + "caseless" "~0.12.0" + "combined-stream" "~1.0.6" + "extend" "~3.0.2" + "forever-agent" "~0.6.1" + "form-data" "~2.3.2" + "har-validator" "~5.1.0" + "http-signature" "~1.2.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.19" + "oauth-sign" "~0.9.0" + "performance-now" "^2.1.0" + "qs" "~6.5.2" + "safe-buffer" "^5.1.2" + "tough-cookie" "~2.4.3" + "tunnel-agent" "^0.6.0" + "uuid" "^3.3.2" + +"rimraf@^2.5.4", "rimraf@2": + "integrity" "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz" + "version" "2.6.2" + dependencies: + "glob" "^7.0.5" + +"safe-buffer@^5.0.1", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1": + "integrity" "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" + "version" "5.1.1" + +"safe-buffer@^5.1.2": + "integrity" "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz" + "version" "5.2.0" + +"safe-buffer@~5.2.0": + "integrity" "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz" + "version" "5.2.0" + +"sax@^1.2.4", "sax@>=0.6.0": + "integrity" "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + "version" "1.2.4" + +"seek-bzip@^1.0.5": + "integrity" "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=" + "resolved" "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "commander" "~2.8.1" + +"semver@^5.6.0": + "integrity" "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz" + "version" "5.7.0" + +"semver@2 || 3 || 4 || 5": + "integrity" "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" + "version" "5.5.0" + +"set-immediate-shim@~1.0.1": + "integrity" "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" + "resolved" "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" + "version" "1.0.1" + +"signal-exit@^3.0.0": + "integrity" "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" + "version" "3.0.2" + +"single-line-log@^1.1.2": + "integrity" "sha1-wvg/Jzo+GhbtsJlWYdoO1e8DM2Q=" + "resolved" "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "string-width" "^1.0.1" + +"sntp@1.x.x": + "integrity" "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + "resolved" "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + "version" "1.0.9" + dependencies: + "hoek" "2.x.x" + +"source-map-support@^0.5.9": + "integrity" "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + "version" "0.5.13" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.6.0", "source-map@~0.6.0": + "integrity" "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"spdx-correct@~1.0.0": + "integrity" "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" + "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "spdx-license-ids" "^1.0.2" + +"spdx-expression-parse@~1.0.0": + "integrity" "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" + "version" "1.0.4" + +"spdx-license-ids@^1.0.2": + "integrity" "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" + "version" "1.2.2" + +"speedometer@~0.1.2": + "integrity" "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=" + "resolved" "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz" + "version" "0.1.4" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"sshpk@^1.7.0": + "integrity" "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=" + "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz" + "version" "1.13.1" + dependencies: + "asn1" "~0.2.3" + "assert-plus" "^1.0.0" + "dashdash" "^1.12.0" + "getpass" "^0.1.1" optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-dirs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-dirs/-/strip-dirs-2.0.0.tgz#610cdb2928200da0004f41dcb90fc95cd919a0b6" - dependencies: - is-natural-number "^4.0.1" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -tar-fs@^1.15.2: - version "1.15.2" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.2.tgz#761f5b32932c7b39461a60d537faea0d8084830c" - dependencies: - chownr "^1.0.1" - mkdirp "^0.5.1" - pump "^1.0.0" - tar-stream "^1.1.2" - -tar-stream@^1.1.2, tar-stream@^1.5.0, tar-stream@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.2.tgz#fbc6c6e83c1a19d4cb48c7d96171fc248effc7bf" - dependencies: - bl "^1.0.0" - end-of-stream "^1.0.0" - readable-stream "^2.0.0" - xtend "^4.0.0" - -tar.gz@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tar.gz/-/tar.gz-1.0.5.tgz#e1ada7e45ef2241b4b1ee58123c8f40b5d3c1bc4" - dependencies: - bluebird "^2.9.34" - commander "^2.8.1" - fstream "^1.0.8" - mout "^0.11.0" - tar "^2.1.1" - -tar@^2.1.1, "tar@https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz": - version "2.2.1" - resolved "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz#20ef8e04285b471d74576f2da5d8fdc53a242301" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - -throttleit@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" - -through2@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" - dependencies: - readable-stream "~1.1.9" - xtend "~2.1.1" - -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -tmp@0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" - dependencies: - os-tmpdir "~1.0.1" - -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -"traverse@>=0.3.0 <0.4": - version "0.3.9" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -unbzip2-stream@^1.0.9: - version "1.2.4" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.2.4.tgz#8c84c84d5b4cc28fc1f9f577203bbd3cb860a16a" - dependencies: - buffer "^3.0.1" - through "^2.3.6" - -unzip2@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/unzip2/-/unzip2-0.2.5.tgz#4ef7a579a78c15c51f550f6a053db194149c8992" - dependencies: - binary "~0.3.0" - fstream "~0.1.21" - match-stream "~0.0.2" - pullstream "~0.4.0" - readable-stream "~1.0.0" - setimmediate "~1.0.1" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -uuid@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -walkdir@^0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -xtend@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - dependencies: - object-keys "~0.4.0" - -yauzl@^2.4.2: - version "2.8.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.8.0.tgz#79450aff22b2a9c5a41ef54e02db907ccfbf9ee2" - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.0.1" - -zip-stream@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-1.1.1.tgz#5216b48bbb4d2651f64d5c6e6f09eb4a7399d557" - dependencies: - archiver-utils "^1.3.0" - compress-commons "^1.1.0" - lodash "^4.8.0" - readable-stream "^2.0.0" + "bcrypt-pbkdf" "^1.0.0" + "ecc-jsbn" "~0.1.1" + "jsbn" "~0.1.0" + "tweetnacl" "~0.14.0" + +"string_decoder@^1.1.1": + "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "safe-buffer" "~5.2.0" + +"string_decoder@~0.10.x": + "integrity" "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "version" "0.10.31" + +"string_decoder@~1.0.3": + "integrity" "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "safe-buffer" "~5.1.0" + +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string-width@^1.0.1": + "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "code-point-at" "^1.0.0" + "is-fullwidth-code-point" "^1.0.0" + "strip-ansi" "^3.0.0" + +"string.prototype.trim@^1.1.2": + "integrity" "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==" + "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "define-properties" "^1.1.3" + "es-abstract" "^1.13.0" + "function-bind" "^1.1.1" + +"stringstream@~0.0.4": + "integrity" "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "resolved" "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" + "version" "0.0.5" + +"strip-ansi@^3.0.0": + "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "ansi-regex" "^2.0.0" + +"strip-bom@^2.0.0": + "integrity" "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "is-utf8" "^0.2.0" + +"strip-dirs@^2.0.0": + "integrity" "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==" + "resolved" "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "is-natural-number" "^4.0.1" + +"strip-indent@^1.0.1": + "integrity" "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=" + "resolved" "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "get-stdin" "^4.0.1" + +"tar-fs@^1.15.2": + "integrity" "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==" + "resolved" "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz" + "version" "1.16.0" + dependencies: + "chownr" "^1.0.1" + "mkdirp" "^0.5.1" + "pump" "^1.0.0" + "tar-stream" "^1.1.2" + +"tar-stream@^1.1.2", "tar-stream@^1.5.2": + "integrity" "sha512-mQdgLPc/Vjfr3VWqWbfxW8yQNiJCbAZ+Gf6GDu1Cy0bdb33ofyiNGBtAY96jHFhDuivCwgW1H9DgTON+INiXgg==" + "resolved" "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.5.tgz" + "version" "1.5.5" + dependencies: + "bl" "^1.0.0" + "end-of-stream" "^1.0.0" + "readable-stream" "^2.0.0" + "xtend" "^4.0.0" + +"tar-stream@^2.1.0": + "integrity" "sha512-+DAn4Nb4+gz6WZigRzKEZl1QuJVOLtAwwF+WUxy1fJ6X63CaGaUAxJRD2KEn1OMfcbCjySTYpNC6WmfQoIEOdw==" + "resolved" "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "bl" "^3.0.0" + "end-of-stream" "^1.4.1" + "fs-constants" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^3.1.1" + +"tar.gz@https://github.com/dgthanhan/node-tar.gz/archive/e1a5ee27a620aa1bc1a421a8d797c843609e88eb.tar.gz": + "integrity" "sha1-XbIDgt0VqMbkn4yNAbgBVWPmhlM=" + "resolved" "https://github.com/dgthanhan/node-tar.gz/archive/e1a5ee27a620aa1bc1a421a8d797c843609e88eb.tar.gz" + "version" "1.0.5" + dependencies: + "bluebird" "^2.9.34" + "commander" "^2.8.1" + "fstream" "^1.0.8" + "mout" "^0.11.0" + "tar" "^2.1.1" + +"tar@^2.1.1": + "integrity" "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==" + "resolved" "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz" + "version" "2.2.2" + dependencies: + "block-stream" "*" + "fstream" "^1.0.12" + "inherits" "2" + +"tar@https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz": + "integrity" "sha1-IO+OBChbRx10V28tpdj9xTokIwE=" + "resolved" "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz" + "version" "2.2.1" + dependencies: + "block-stream" "*" + "fstream" "^1.0.2" + "inherits" "2" + +"throttleit@0.0.2": + "integrity" "sha1-z+34jmDADdlpe2H90qg0OptoDq8=" + "resolved" "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz" + "version" "0.0.2" + +"through@^2.3.6": + "integrity" "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "resolved" "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "version" "2.3.8" + +"through2@~0.2.3": + "integrity" "sha1-6zKE2k6jEbbMis42U3SKUqvyWj8=" + "resolved" "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz" + "version" "0.2.3" + dependencies: + "readable-stream" "~1.1.9" + "xtend" "~2.1.1" + +"timm@^1.6.1": + "integrity" "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" + "resolved" "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz" + "version" "1.6.2" + +"tinycolor2@^1.4.1": + "integrity" "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + "resolved" "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" + "version" "1.4.1" + +"tmp@0.0.33": + "integrity" "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=" + "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + "version" "0.0.33" + dependencies: + "os-tmpdir" "~1.0.2" + +"tough-cookie@~2.3.0": + "integrity" "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=" + "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "punycode" "^1.4.1" + +"tough-cookie@~2.4.3": + "integrity" "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==" + "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz" + "version" "2.4.3" + dependencies: + "psl" "^1.1.24" + "punycode" "^1.4.1" + +"trim-newlines@^1.0.0": + "integrity" "sha1-WIeWa7WCpFA6QetST301ARgVphM=" + "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" + "version" "1.0.0" + +"tunnel-agent@^0.6.0": + "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "safe-buffer" "^5.0.1" + +"tweetnacl@^0.14.3", "tweetnacl@~0.14.0": + "integrity" "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "version" "0.14.5" + +"unbzip2-stream@^1.0.9": + "integrity" "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==" + "resolved" "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz" + "version" "1.2.5" + dependencies: + "buffer" "^3.0.1" + "through" "^2.3.6" + +"universalify@^0.1.0": + "integrity" "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"uri-js@^4.2.2": + "integrity" "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "punycode" "^2.1.0" + +"utif@^2.0.1": + "integrity" "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==" + "resolved" "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "pako" "^1.0.5" + +"util-deprecate@^1.0.1", "util-deprecate@~1.0.1": + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"uuid@^3.0.0": + "integrity" "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz" + "version" "3.2.1" + +"uuid@^3.3.2": + "integrity" "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + "version" "3.3.2" + +"validate-npm-package-license@^3.0.1": + "integrity" "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=" + "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "spdx-correct" "~1.0.0" + "spdx-expression-parse" "~1.0.0" + +"verror@1.10.0": + "integrity" "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=" + "resolved" "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + "version" "1.10.0" + dependencies: + "assert-plus" "^1.0.0" + "core-util-is" "1.0.2" + "extsprintf" "^1.2.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"xhr@^2.0.1": + "integrity" "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==" + "resolved" "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "global" "~4.3.0" + "is-function" "^1.0.1" + "parse-headers" "^2.0.0" + "xtend" "^4.0.0" + +"xml-parse-from-string@^1.0.0": + "integrity" "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + "resolved" "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz" + "version" "1.0.1" + +"xml2js@^0.4.5": + "integrity" "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==" + "resolved" "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz" + "version" "0.4.19" + dependencies: + "sax" ">=0.6.0" + "xmlbuilder" "~9.0.1" + +"xmlbuilder@~9.0.1": + "integrity" "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" + "version" "9.0.7" + +"xtend@^4.0.0": + "integrity" "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + "version" "4.0.1" + +"xtend@~2.1.1": + "integrity" "sha1-bv7MKk2tjmlixJAbM3znuoe10os=" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "object-keys" "~0.4.0" + +"yauzl@^2.4.2": + "integrity" "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=" + "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz" + "version" "2.9.1" + dependencies: + "buffer-crc32" "~0.2.3" + "fd-slicer" "~1.0.1" + +"zip-stream@^2.1.2": + "integrity" "sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg==" + "resolved" "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "archiver-utils" "^2.1.0" + "compress-commons" "^2.1.1" + "readable-stream" "^3.4.0" diff --git a/package-lock.json b/package-lock.json index be4b30cb..e2dc123d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,4194 @@ { "name": "Pencil", + "lockfileVersion": 2, "requires": true, - "lockfileVersion": 1, - "dependencies": { - "7zip-bin": { + "packages": { + "": { + "name": "Pencil", + "hasInstallScript": true, + "devDependencies": { + "electron": "11.5.0", + "electron-builder": "20.28.4", + "electron-rebuild": "^1.8.5", + "rimraf": "^2.5.4" + } + }, + "node_modules/@electron/get": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz", + "integrity": "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^2.0.2", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@electron/get/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@electron/get/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@electron/get/node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/get/node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/get/node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "12.20.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.33.tgz", + "integrity": "sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw==", + "dev": true + }, + "node_modules/7zip-bin": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-4.0.2.tgz", "integrity": "sha512-XtGk+IF57pr852UK1AhQJXqmm1WmSgS5uISL+LPs0z/iAxXouMvdlLJrHPeukP6gd7yR2rDTMSMkHNODgwIq7A==", "dev": true }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "dev": true + }, + "node_modules/ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha1-086gTWsBeyiUrWkED+yLYj60vVI=", + "dev": true, + "dependencies": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "node_modules/ajv-keywords": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", + "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "dev": true, + "dependencies": { + "string-width": "^2.0.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/app-builder-bin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.1.2.tgz", + "integrity": "sha512-PZJspzAqB0+z60OalXChP9I05BzODd/ffDz6RvTmDG3qclr7YrnpqzvPF+T7vGVtk2nN7syuveTQROJfXcB8xA==", + "dev": true + }, + "node_modules/app-builder-lib": { + "version": "20.28.4", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.28.4.tgz", + "integrity": "sha512-RY4/NJs1HCFWAOpLMivuDzbesU5VyaZVKuQllxgCNZ56+ihgO5aGexla2DVjG/bBQleWfF3DPnEsF3sbZPlpHw==", + "dev": true, + "dependencies": { + "7zip-bin": "~4.0.2", + "app-builder-bin": "2.1.2", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.5", + "builder-util": "6.1.3", + "builder-util-runtime": "4.4.1", + "chromium-pickle-js": "^0.2.0", + "debug": "^3.1.0", + "ejs": "^2.6.1", + "electron-osx-sign": "0.4.10", + "electron-publish": "20.28.3", + "fs-extra-p": "^4.6.1", + "hosted-git-info": "^2.7.1", + "is-ci": "^1.2.0", + "isbinaryfile": "^3.0.3", + "js-yaml": "^3.12.0", + "lazy-val": "^1.0.3", + "minimatch": "^3.0.4", + "normalize-package-data": "^2.4.0", + "plist": "^3.0.1", + "read-config-file": "3.1.2", + "sanitize-filename": "^1.6.1", + "semver": "^5.5.1", + "temp-file": "^3.1.3" + }, + "engines": { + "node": ">=6.11.4" + } + }, + "node_modules/app-builder-lib/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/are-we-there-yet/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/are-we-there-yet/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "node_modules/are-we-there-yet/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha1-i9iwJLDsmxwBzMua+dspvXF9+vM=", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", + "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bluebird": { + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", + "integrity": "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=", + "dev": true + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", + "dev": true, + "optional": true + }, + "node_modules/boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "dev": true, + "dependencies": { + "ansi-align": "^2.0.0", + "camelcase": "^4.0.0", + "chalk": "^2.0.1", + "cli-boxes": "^1.0.0", + "string-width": "^2.0.0", + "term-size": "^1.2.0", + "widest-line": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "dev": true + }, + "node_modules/builder-util": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-6.1.3.tgz", + "integrity": "sha512-MXeARNff9KHlzJYGJcAhLI/tpE57PmUnleaYfL22IE+viRt192Yr3wQL444ztsA+LUHJ8d12moUoG00jh1hfLA==", + "dev": true, + "dependencies": { + "7zip-bin": "~4.0.2", + "app-builder-bin": "2.1.2", + "bluebird-lst": "^1.0.5", + "builder-util-runtime": "^4.4.1", + "chalk": "^2.4.1", + "debug": "^3.1.0", + "fs-extra-p": "^4.6.1", + "is-ci": "^1.2.0", + "js-yaml": "^3.12.0", + "lazy-val": "^1.0.3", + "semver": "^5.5.1", + "source-map-support": "^0.5.9", + "stat-mode": "^0.2.2", + "temp-file": "^3.1.3" + } + }, + "node_modules/builder-util-runtime": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-4.4.1.tgz", + "integrity": "sha512-8L2pbL6D3VdI1f8OMknlZJpw0c7KK15BRz3cY77AOUElc4XlCv2UhVV01jJM7+6Lx7henaQh80ALULp64eFYAQ==", + "dev": true, + "dependencies": { + "bluebird-lst": "^1.0.5", + "debug": "^3.1.0", + "fs-extra-p": "^4.6.1", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/builder-util-runtime/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/builder-util/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/capture-stack-trace": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", + "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chownr": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", + "integrity": "sha1-oY8eCyacimpdPIbrKYvrFMPde/Y=", + "dev": true + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "node_modules/cli-boxes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", + "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", + "integrity": "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/colors": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz", + "integrity": "sha1-OeAF1Uav4B4B+cTKj6UPaGoBIF0=", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "optional": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/configstore": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", + "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", + "dev": true, + "dependencies": { + "dot-prop": "^4.1.0", + "graceful-fs": "^4.1.2", + "make-dir": "^1.0.0", + "unique-string": "^1.0.0", + "write-file-atomic": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/core-js": { + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/create-error-class": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", + "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", + "dev": true, + "dependencies": { + "capture-stack-trace": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/cross-spawn/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "optional": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "optional": true + }, + "node_modules/dmg-builder": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-5.3.1.tgz", + "integrity": "sha512-/+vtqlgvTtha/4Gc76XIRKS2KzYO58sTWXhZ/kgfNr05ZXY6bIw26v7xDu8ZBpTYnfWI09JRZTMv1yIXT/vvfg==", + "dev": true, + "dependencies": { + "app-builder-lib": "~20.28.3", + "bluebird-lst": "^1.0.5", + "builder-util": "~6.1.3", + "fs-extra-p": "^4.6.1", + "iconv-lite": "^0.4.24", + "js-yaml": "^3.12.0", + "parse-color": "^1.0.0", + "sanitize-filename": "^1.6.1" + } + }, + "node_modules/dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=", + "dev": true, + "dependencies": { + "is-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "dev": true + }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ejs": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz", + "integrity": "sha1-OjLGPRzRbREmbNRwOxT+xOdKtPY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/electron-builder": { + "version": "20.28.4", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-20.28.4.tgz", + "integrity": "sha512-JMOzMfx9BrC9SJr6+UacuvQZmuodL02Zua8iFn0l5bv32GkWcNj1D6FwybV33BpsmdQ8sF1SkQj+7L+FEIxang==", + "dev": true, + "dependencies": { + "app-builder-lib": "20.28.4", + "bluebird-lst": "^1.0.5", + "builder-util": "6.1.3", + "builder-util-runtime": "4.4.1", + "chalk": "^2.4.1", + "dmg-builder": "5.3.1", + "fs-extra-p": "^4.6.1", + "is-ci": "^1.2.0", + "lazy-val": "^1.0.3", + "read-config-file": "3.1.2", + "sanitize-filename": "^1.6.1", + "update-notifier": "^2.5.0", + "yargs": "^12.0.1" + }, + "bin": { + "build": "out/cli/cli.js", + "electron-builder": "out/cli/cli.js", + "install-app-deps": "out/cli/install-app-deps.js" + }, + "engines": { + "node": ">=6.11.4" + } + }, + "node_modules/electron-builder/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/electron-builder/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/electron-builder/node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/electron-builder/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/electron-builder/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/electron-builder/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/electron-builder/node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/electron-builder/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/electron-builder/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/electron-builder/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-builder/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-builder/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-builder/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-builder/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-builder/node_modules/yargs": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" + } + }, + "node_modules/electron-builder/node_modules/yargs-parser": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/electron-osx-sign": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.10.tgz", + "integrity": "sha1-vk87ibKnWh3F8eckkIGrKSnKOiY=", + "dev": true, + "dependencies": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^2.1.0" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/plist": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz", + "integrity": "sha1-V8zbeggh3yGDEhejytVOPhRqECU=", + "dev": true, + "dependencies": { + "base64-js": "1.2.0", + "xmlbuilder": "8.2.2", + "xmldom": "0.1.x" + } + }, + "node_modules/electron-publish": { + "version": "20.28.3", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-20.28.3.tgz", + "integrity": "sha512-/2t5zk9EKgH7p7rFZ+ynTKLmpKGF9bktMP2UR6u4bbPz9w4r3WEUbPOeZ1TLqUCAqdfZECcj4ThjrlcAJTghCA==", + "dev": true, + "dependencies": { + "bluebird-lst": "^1.0.5", + "builder-util": "~6.1.3", + "builder-util-runtime": "^4.4.1", + "chalk": "^2.4.1", + "fs-extra-p": "^4.6.1", + "lazy-val": "^1.0.3", + "mime": "^2.3.1" + } + }, + "node_modules/electron-rebuild": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz", + "integrity": "sha1-0V0Kp/IVHrPyk1pZapLANImEulU=", + "dev": true, + "dependencies": { + "colors": "^1.3.3", + "debug": "^4.1.1", + "detect-libc": "^1.0.3", + "fs-extra": "^7.0.1", + "node-abi": "^2.8.0", + "node-gyp": "^4.0.0", + "ora": "^3.4.0", + "spawn-rx": "^3.0.0", + "yargs": "^13.2.2" + }, + "bin": { + "electron-rebuild": "lib/src/cli.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-rebuild/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/electron-rebuild/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.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" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/extract-zip/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-extra-p": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.6.1.tgz", + "integrity": "sha512-IsTMbUS0svZKZTvqF4vDS9c/L7Mw9n8nZQWWeSzAGacOSe+8CzowhUN0tdZEZFIJNP5HC7L9j3MMikz/G4hDeQ==", + "dev": true, + "dependencies": { + "bluebird-lst": "^1.0.5", + "fs-extra": "^6.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/fs-extra-p/node_modules/fs-extra": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", + "integrity": "sha1-LFzDDe2BKCv+ig18fBhT3esQLAc=", + "dev": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz", + "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "core-js": "^3.6.5", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-agent/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "optional": true + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "dev": true, + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "dev": true, + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "dev": true, + "dependencies": { + "create-error-class": "^3.0.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-redirect": "^1.0.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "lowercase-keys": "^1.0.0", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "unzip-response": "^2.0.1", + "url-parse-lax": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", + "integrity": "sha1-HB8MNkiCyGj1v/ZRIUYygzahGx0=", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.2.tgz", + "integrity": "sha1-o1w/NVrBJJ8Qk8DCpUKs6IGMFxo=", + "dev": true, + "dependencies": { + "lru-cache": "^5.1.1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "dev": true, + "dependencies": { + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-npm": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", + "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-redirect": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", + "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "dependencies": { + "buffer-alloc": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "dev": true, + "dependencies": { + "package-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lazy-val": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", + "integrity": "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=", + "dev": true + }, + "node_modules/lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "optional": true + }, + "node_modules/lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mime": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", + "dev": true, + "dependencies": { + "mime-db": "1.40.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "node_modules/minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha1-ys6+SSAiSX9law8PUeJoKp7S2Eg=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha1-3SfqYTYkPHyIBoToZyuzpF/ZthQ=", + "dev": true, + "dependencies": { + "minipass": "^2.2.1" + } + }, + "node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node_modules/node-abi": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.10.0.tgz", + "integrity": "sha1-iUvGYl7gQmJ+2bXpJw2Au2PvUEU=", + "dev": true, + "dependencies": { + "semver": "^5.4.1" + } + }, + "node_modules/node-gyp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha1-lyZUr05d0M0qGQgbS0b+BEK6b0U=", + "dev": true, + "dependencies": { + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^4.4.8", + "which": "1" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-locale/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/os-locale/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-locale/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "dev": true, + "dependencies": { + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-color": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", + "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=", + "dev": true, + "dependencies": { + "color-convert": "~0.5.0" + } + }, + "node_modules/parse-color/node_modules/color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=", + "dev": true + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/plist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", + "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "dev": true, + "dependencies": { + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", + "xmldom": "0.1.x" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "node_modules/plist/node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/psl": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", + "integrity": "sha1-4ev2o7VWT6g3bz2iJ12nbYdcob0=", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/read-config-file": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-3.1.2.tgz", + "integrity": "sha512-QCATYzlYHvmWps/W/eP7rcKuhYRYZg5XKeXFxSJRIXvn+KSw1+Ntz2et1aBz5TrEpawGrxWZ7zBipj+/v0xwWQ==", + "dev": true, + "dependencies": { + "ajv": "^6.5.2", + "ajv-keywords": "^3.2.0", + "bluebird-lst": "^1.0.5", + "dotenv": "^6.0.0", + "dotenv-expand": "^4.2.0", + "fs-extra-p": "^4.6.1", + "js-yaml": "^3.12.0", + "json5": "^1.0.1", + "lazy-val": "^1.0.3" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "dev": true, + "dependencies": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/registry-url": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", + "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", + "dev": true, + "dependencies": { + "rc": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=", + "dev": true, + "dependencies": { + "path-parse": "^1.0.6" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "dependencies": { + "glob": "^7.0.5" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, + "node_modules/rxjs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha1-LjXOgVzUbYTQKiCftOWSHgUdvsc=", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk=", + "dev": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true + }, + "node_modules/sanitize-filename": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.2.tgz", + "integrity": "sha1-AbT8iAnxTp0idh/nA4D+fz+QIYU=", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "dev": true + }, + "node_modules/semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, + "node_modules/semver-diff": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", + "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "dev": true, + "dependencies": { + "semver": "^5.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/spawn-rx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz", + "integrity": "sha1-HTNRHhPsJjN9pR14Yw4IvrV6Z2c=", + "dev": true, + "dependencies": { + "debug": "^2.5.1", + "lodash.assign": "^4.2.0", + "rxjs": "^6.3.1" + } + }, + "node_modules/spawn-rx/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/spawn-rx/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stat-mode": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", + "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/sumchecker/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tar": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", + "integrity": "sha1-lGsoELml4LJhQM94vqawsNaJ66E=", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.5", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/temp-file": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.4.tgz", + "integrity": "sha1-c6+GjNfLdACkTkuwPmU7IoDOKHg=", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^8.1.0" + } + }, + "node_modules/term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "dev": true, + "dependencies": { + "execa": "^0.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", + "dev": true, + "dependencies": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo=", + "dev": true + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "dev": true, + "dependencies": { + "crypto-random-string": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/update-notifier": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", + "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", + "dev": true, + "dependencies": { + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "is-installed-globally": "^0.1.0", + "is-npm": "^1.0.0", + "latest-version": "^3.0.0", + "semver-diff": "^2.0.0", + "xdg-basedir": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "dependencies": { + "prepend-http": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/widest-line": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", + "integrity": "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=", + "dev": true, + "dependencies": { + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/xmlbuilder": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz", + "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", + "dev": true, + "engines": { + "node": ">=0.1" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", + "dev": true + }, + "node_modules/yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=", + "dev": true + }, + "node_modules/yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha1-TGV6VeB+Xyz5R/ijZlZ8BKDe3IM=", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "node_modules/yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha1-0mBYUyqgbTZf4JH2ofwGsvfl7KA=", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + }, + "dependencies": { "@electron/get": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.4.tgz", - "integrity": "sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz", + "integrity": "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==", "dev": true, "requires": { "debug": "^4.1.1", @@ -27,9 +4203,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -102,9 +4278,15 @@ } }, "@types/node": { - "version": "12.20.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.12.tgz", - "integrity": "sha512-KQZ1al2hKOONAs2MFv+yTQP1LkDWMrRJ9YCVRalXltOfXsBmH5IownLxQaiq0lnAHwAViLnh2aTYqrPcRGEbgg==", + "version": "12.20.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.33.tgz", + "integrity": "sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw==", + "dev": true + }, + "7zip-bin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-4.0.2.tgz", + "integrity": "sha512-XtGk+IF57pr852UK1AhQJXqmm1WmSgS5uISL+LPs0z/iAxXouMvdlLJrHPeukP6gd7yR2rDTMSMkHNODgwIq7A==", "dev": true }, "abbrev": { @@ -129,7 +4311,8 @@ "version": "3.4.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", "integrity": "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=", - "dev": true + "dev": true, + "requires": {} }, "ansi-align": { "version": "2.0.0", @@ -376,9 +4559,9 @@ } }, "boolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.3.tgz", - "integrity": "sha512-EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", "dev": true, "optional": true }, @@ -751,9 +4934,9 @@ } }, "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, "optional": true, "requires": { @@ -782,9 +4965,9 @@ "dev": true }, "core-js": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.11.2.tgz", - "integrity": "sha512-3tfrrO1JpJSYGKnd9LKTBPqgUES/UYiCzMKeqwR1+jF16q4kD1BY2NvqkfuzXwQ6+CIWm55V9cjD7PQd+hijdw==", + "version": "3.18.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", + "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==", "dev": true, "optional": true }, @@ -929,9 +5112,9 @@ "dev": true }, "detect-node": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", - "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true, "optional": true }, @@ -995,9 +5178,9 @@ "dev": true }, "electron": { - "version": "11.4.4", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.4.4.tgz", - "integrity": "sha512-m52nF85VADCmL9DpzJfgmkvc9fNiGZPYwptv/4fTYrYhAMiO+hmClGMXncCoSAzoULQjl+f+0b9CY4yd6nRFlQ==", + "version": "11.5.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz", + "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -1958,14 +6141,6 @@ "dev": true, "requires": { "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } } }, "map-age-cleaner": { @@ -2169,9 +6344,9 @@ } }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, "npm-conf": { @@ -2475,8 +6650,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "optional": true + "dev": true }, "plist": { "version": "3.0.1", @@ -2934,17 +7108,6 @@ "integrity": "sha1-5sgLYjEj19gM8TLOU480YokHJQI=", "dev": true }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -2962,6 +7125,17 @@ } } }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -2993,9 +7167,9 @@ }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" @@ -3035,19 +7209,6 @@ "requires": { "async-exit-hook": "^2.0.1", "fs-extra": "^8.1.0" - }, - "dependencies": { - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } } }, "term-size": { diff --git a/package.json b/package.json index 48928e72..2a8e6b05 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "11.4.4", + "electron": "11.5.0", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" diff --git a/yarn.lock b/yarn.lock index d9a5cdf1..ae57d949 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,1512 +2,2557 @@ # yarn lockfile v1 -"7zip-bin-linux@^1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/7zip-bin-linux/-/7zip-bin-linux-1.0.3.tgz#66724d7bb7526381574393888f62566ed537151c" - -"7zip-bin-mac@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/7zip-bin-mac/-/7zip-bin-mac-1.0.1.tgz#3e68778bbf0926adc68159427074505d47555c02" - -"7zip-bin-win@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/7zip-bin-win/-/7zip-bin-win-2.0.2.tgz#4c36399413922f111b8e80df3065a4069cfc0a64" - -"7zip-bin@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-2.0.4.tgz#0cd28ac3301b1302fbd99922bacb8bad98103e12" +"@electron/get@^1.0.1": + "integrity" "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==" + "resolved" "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz" + "version" "1.13.0" + dependencies: + "debug" "^4.1.1" + "env-paths" "^2.2.0" + "fs-extra" "^8.1.0" + "got" "^9.6.0" + "progress" "^2.0.3" + "semver" "^6.2.0" + "sumchecker" "^3.0.1" optionalDependencies: - "7zip-bin-linux" "^1.0.3" - "7zip-bin-mac" "^1.0.1" - "7zip-bin-win" "^2.0.2" - -ansi-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" - dependencies: - string-width "^1.0.1" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - -argparse@^1.0.7: - version "1.0.9" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" - dependencies: - sprintf-js "~1.0.2" - -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - -asar-electron-builder@^0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/asar-electron-builder/-/asar-electron-builder-0.13.5.tgz#4ccd4d11fd7c9d3b3cffc782fde3deed9ef91af6" - dependencies: - chromium-pickle-js "^0.2.0" - commander "^2.9.0" - cuint "^0.2.1" - minimatch "^3.0.2" - mkdirp "^0.5.1" - -asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" - -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - -assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - -aws4@^1.2.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.5.0.tgz#0a29ffb79c31c9e712eeb087e8e7a64b4a56d755" - -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" - -base64-js@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.1.2.tgz#d6400cac1c4c660976d90d07a04351d89395f5e8" - -bcrypt-pbkdf@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz#3ca76b85241c7170bf7d9703e7b9aa74630040d4" - dependencies: - tweetnacl "^0.14.3" - -bluebird-lst-c@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/bluebird-lst-c/-/bluebird-lst-c-1.0.6.tgz#81f881d13f9df700f67d577f13480bc32d84bba9" - dependencies: - bluebird "^3.4.7" - -bluebird@^3.4.7: - version "3.4.7" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.4.7.tgz#f72d760be09b7f76d08ed8fae98b289a8d05fab3" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boxen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" - dependencies: - ansi-align "^1.1.0" - camelcase "^2.1.0" - chalk "^1.1.1" - cli-boxes "^1.0.0" - filled-array "^1.0.0" - object-assign "^4.0.1" - repeating "^2.0.0" - string-width "^1.0.1" - widest-line "^1.0.0" - -brace-expansion@^1.0.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" - dependencies: - balanced-match "^0.4.1" - concat-map "0.0.1" - -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0, camelcase@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - -capture-stack-trace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" - -chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - -ci-info@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" - -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - -color-convert@~0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" - -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" - -commander@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" - dependencies: - graceful-readlink ">= 1.0.0" - -compare-version@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - -concat-stream@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.5.0.tgz#53f7d43c51c5e43f81c8fdd03321c631be68d611" - dependencies: - inherits "~2.0.1" - readable-stream "~2.0.0" - typedarray "~0.0.5" - -configstore@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" - dependencies: - dot-prop "^3.0.0" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" - -core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - -create-error-class@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cuint@^0.2.1, cuint@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - dependencies: - array-find-index "^1.0.1" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - dependencies: - assert-plus "^1.0.0" - -debug@0.7.4: - version "0.7.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-0.7.4.tgz#06e1ea8082c2cb14e39806e22e2f6f757f92af39" - -debug@2.6.0, debug@^2.1.3, debug@^2.2.0, debug@^2.3.2, debug@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" - dependencies: - ms "0.7.2" - -decamelize@^1.1.1, decamelize@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - -deep-extend@~0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" - dependencies: - is-obj "^1.0.0" - -duplexer2@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - -ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" - dependencies: - jsbn "~0.1.0" - -electron-builder-core@11.2.1: - version "11.2.1" - resolved "https://registry.yarnpkg.com/electron-builder-core/-/electron-builder-core-11.2.1.tgz#1dca8c1a1cee8b51750b7708a04913aeffacf8a8" - -electron-builder-http@12.3.0, electron-builder-http@~12.3.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/electron-builder-http/-/electron-builder-http-12.3.0.tgz#5a75e3683e4c1a8ef093f353d3298342c875d2c0" - dependencies: - debug "2.6.0" - fs-extra-p "^3.1.0" - -electron-builder-util@12.3.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/electron-builder-util/-/electron-builder-util-12.3.0.tgz#50c54d1c8c415a0cb1d2722edaa836312535d59d" - dependencies: - "7zip-bin" "^2.0.4" - bluebird-lst-c "^1.0.6" - chalk "^1.1.3" - debug "2.6.0" - electron-builder-http "~12.3.0" - fs-extra-p "^3.1.0" - is-ci "^1.0.10" - node-emoji "^1.5.1" - source-map-support "^0.4.11" - stat-mode "^0.2.2" - -electron-builder@12.3.0: - version "12.3.0" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-12.3.0.tgz#6fb2aef936997e16672e1ef93b9592f37e1250b9" - dependencies: - "7zip-bin" "^2.0.4" - asar-electron-builder "^0.13.5" - bluebird-lst-c "^1.0.6" - chalk "^1.1.3" - chromium-pickle-js "^0.2.0" - cuint "^0.2.2" - electron-builder-core "11.2.1" - electron-builder-http "12.3.0" - electron-builder-util "12.3.0" - electron-download-tf "3.1.0" - electron-macos-sign "~1.5.0" - fs-extra-p "^3.1.0" - hosted-git-info "^2.1.5" - ini "^1.3.4" - is-ci "^1.0.10" - isbinaryfile "^3.0.2" - js-yaml "^3.7.0" - mime "^1.3.4" - minimatch "^3.0.3" - normalize-package-data "^2.3.5" - parse-color "^1.0.0" - plist "^2.0.1" - progress "^1.1.8" - sanitize-filename "^1.6.1" - semver "^5.3.0" - tunnel-agent "^0.4.3" - update-notifier "^1.0.3" - uuid-1345 "^0.99.6" - yargs "^6.6.0" - -electron-download-tf@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/electron-download-tf/-/electron-download-tf-3.1.0.tgz#c6d62c0e0a4c63b67295f57b6b66514c13b8ed8d" - dependencies: - debug "^2.3.2" - fs-extra "^1.0.0" - minimist "^1.2.0" - nugget "^2.0.1" - path-exists "^3.0.0" - rc "^1.1.6" - semver "^5.3.0" - sumchecker "^1.2.0" - -electron-download@^3.0.1: - version "3.2.0" - resolved "https://registry.yarnpkg.com/electron-download/-/electron-download-3.2.0.tgz#d7509b686b77855f2e6fe0014acc9cce6379c4b1" - dependencies: - debug "^2.2.0" - fs-extra "^0.30.0" - home-path "^1.0.1" - minimist "^1.2.0" - nugget "^2.0.0" - path-exists "^2.1.0" - rc "^1.1.2" - semver "^5.3.0" - sumchecker "^1.2.0" - -electron-macos-sign@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/electron-macos-sign/-/electron-macos-sign-1.5.0.tgz#fe3a8acb755b5f568f1fe144e9e66cee44019448" - dependencies: - bluebird "^3.4.7" - compare-version "^0.1.2" - debug "^2.6.0" - isbinaryfile "^3.0.2" - plist "^2.0.1" - -electron@1.4.14: - version "1.4.14" - resolved "https://registry.yarnpkg.com/electron/-/electron-1.4.14.tgz#e374b76ccdc432bccad9bb3ce1add453bf5648b4" - dependencies: - electron-download "^3.0.1" - extract-zip "^1.0.3" - -error-ex@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.0.tgz#e67b43f3e82c96ea3a584ffee0b9fc3325d802d9" - dependencies: - is-arrayish "^0.2.1" - -es6-promise@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.0.5.tgz#7882f30adde5b240ccfa7f7d78c548330951ae42" - -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - -extend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.0.tgz#5a474353b9f3353ddd8176dfd37b91c83a46f1d4" - -extract-zip@^1.0.3: - version "1.6.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.0.tgz#7f400c9607ea866ecab7aa6d54fb978eeb11621a" - dependencies: - concat-stream "1.5.0" - debug "0.7.4" - mkdirp "0.5.0" - yauzl "2.4.1" - -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" - -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - dependencies: - pend "~1.2.0" - -filled-array@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" - -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - -form-data@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.2.tgz#89c3534008b97eada4cbb157d58f6f5df025eae4" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -fs-extra-p@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/fs-extra-p/-/fs-extra-p-3.1.0.tgz#eddf7bb8d9385d79014decb21f45b1d0c57900d3" - dependencies: - bluebird-lst-c "^1.0.6" - fs-extra "^2.0.0" - -fs-extra@^0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - -fs-extra@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - -fs-extra@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.0.0.tgz#337352bded4a0b714f3eb84de8cea765e9d37600" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - -get-caller-file@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" - -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - -getpass@^0.1.1: - version "0.1.6" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.6.tgz#283ffd9fc1256840875311c1b60e8c40187110e6" - dependencies: - assert-plus "^1.0.0" - -glob@^7.0.5: - version "7.1.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.2" - once "^1.3.0" - path-is-absolute "^1.0.0" - -got@^5.0.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" - dependencies: - create-error-class "^3.0.1" - duplexer2 "^0.1.4" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - node-status-codes "^1.0.0" - object-assign "^4.0.1" - parse-json "^2.1.0" - pinkie-promise "^2.0.0" - read-all-stream "^3.0.0" - readable-stream "^2.0.5" - timed-out "^3.0.0" - unzip-response "^1.0.2" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: - version "4.1.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" - -"graceful-readlink@>= 1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" - -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" - dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - dependencies: - ansi-regex "^2.0.0" - -hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -home-path@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/home-path/-/home-path-1.0.3.tgz#9ece59fec3f032e6d10b5434fee264df4c2de32f" - -hosted-git-info@^2.1.4, hosted-git-info@^2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - dependencies: - repeating "^2.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@~2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - -ini@^1.3.4, ini@~1.3.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" - -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - dependencies: - builtin-modules "^1.0.0" - -is-ci@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" - dependencies: - ci-info "^1.0.0" - -is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - dependencies: - number-is-nan "^1.0.0" - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - dependencies: - number-is-nan "^1.0.0" - -is-my-json-valid@^2.12.4: - version "2.15.0" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz#936edda3ca3c211fd98f3b2d3e08da43f7b2915b" - dependencies: - generate-function "^2.0.0" - generate-object-property "^1.1.0" - jsonpointer "^4.0.0" - xtend "^4.0.0" - -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - -is-retry-allowed@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - -is-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - -isbinaryfile@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - -jodid25519@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" - dependencies: - jsbn "~0.1.0" - -js-yaml@^3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - -jsbn@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + "global-agent" "^2.0.2" + "global-tunnel-ng" "^2.7.1" + +"@sindresorhus/is@^0.14.0": + "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + "version" "0.14.0" + +"@szmarczak/http-timer@^1.1.2": + "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" + "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "defer-to-connect" "^1.0.1" + +"@types/node@^12.0.12": + "integrity" "sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-12.20.33.tgz" + "version" "12.20.33" + +"7zip-bin@~4.0.2": + "integrity" "sha512-XtGk+IF57pr852UK1AhQJXqmm1WmSgS5uISL+LPs0z/iAxXouMvdlLJrHPeukP6gd7yR2rDTMSMkHNODgwIq7A==" + "resolved" "https://registry.npmjs.org/7zip-bin/-/7zip-bin-4.0.2.tgz" + "version" "4.0.2" + +"abbrev@1": + "integrity" "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=" + "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "version" "1.1.1" + +"ajv-keywords@^3.2.0": + "integrity" "sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo=" + "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz" + "version" "3.4.1" + +"ajv@^6.5.2", "ajv@^6.5.5", "ajv@^6.9.1": + "integrity" "sha1-086gTWsBeyiUrWkED+yLYj60vVI=" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz" + "version" "6.10.2" + dependencies: + "fast-deep-equal" "^2.0.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + +"ansi-align@^2.0.0": + "integrity" "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=" + "resolved" "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "string-width" "^2.0.0" + +"ansi-regex@^2.0.0": + "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + "version" "2.1.1" + +"ansi-regex@^3.0.0": + "integrity" "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz" + "version" "3.0.0" + +"ansi-regex@^4.1.0": + "integrity" "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + "version" "4.1.0" + +"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": + "integrity" "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"app-builder-bin@2.1.2": + "integrity" "sha512-PZJspzAqB0+z60OalXChP9I05BzODd/ffDz6RvTmDG3qclr7YrnpqzvPF+T7vGVtk2nN7syuveTQROJfXcB8xA==" + "resolved" "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-2.1.2.tgz" + "version" "2.1.2" + +"app-builder-lib@~20.28.3", "app-builder-lib@20.28.4": + "integrity" "sha512-RY4/NJs1HCFWAOpLMivuDzbesU5VyaZVKuQllxgCNZ56+ihgO5aGexla2DVjG/bBQleWfF3DPnEsF3sbZPlpHw==" + "resolved" "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-20.28.4.tgz" + "version" "20.28.4" + dependencies: + "7zip-bin" "~4.0.2" + "app-builder-bin" "2.1.2" + "async-exit-hook" "^2.0.1" + "bluebird-lst" "^1.0.5" + "builder-util" "6.1.3" + "builder-util-runtime" "4.4.1" + "chromium-pickle-js" "^0.2.0" + "debug" "^3.1.0" + "ejs" "^2.6.1" + "electron-osx-sign" "0.4.10" + "electron-publish" "20.28.3" + "fs-extra-p" "^4.6.1" + "hosted-git-info" "^2.7.1" + "is-ci" "^1.2.0" + "isbinaryfile" "^3.0.3" + "js-yaml" "^3.12.0" + "lazy-val" "^1.0.3" + "minimatch" "^3.0.4" + "normalize-package-data" "^2.4.0" + "plist" "^3.0.1" + "read-config-file" "3.1.2" + "sanitize-filename" "^1.6.1" + "semver" "^5.5.1" + "temp-file" "^3.1.3" + +"aproba@^1.0.3": + "integrity" "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=" + "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + "version" "1.2.0" + +"are-we-there-yet@~1.1.2": + "integrity" "sha1-SzXClE8GKov82mZBB2A1D+nd/CE=" + "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "delegates" "^1.0.0" + "readable-stream" "^2.0.6" + +"argparse@^1.0.7": + "integrity" "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"asn1@~0.2.3": + "integrity" "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=" + "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz" + "version" "0.2.4" + dependencies: + "safer-buffer" "~2.1.0" + +"assert-plus@^1.0.0", "assert-plus@1.0.0": + "integrity" "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + "version" "1.0.0" + +"async-exit-hook@^2.0.1": + "integrity" "sha1-i9iwJLDsmxwBzMua+dspvXF9+vM=" + "resolved" "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" + "version" "2.0.1" + +"asynckit@^0.4.0": + "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"aws-sign2@~0.7.0": + "integrity" "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" + "version" "0.7.0" + +"aws4@^1.8.0": + "integrity" "sha1-8OAD2cqef1nHpQiUXXsu+aBKVC8=" + "resolved" "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz" + "version" "1.8.0" + +"balanced-match@^1.0.0": + "integrity" "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz" + "version" "1.0.0" + +"base64-js@^1.2.3": + "integrity" "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" + "version" "1.3.1" + +"base64-js@1.2.0": + "integrity" "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz" + "version" "1.2.0" + +"bcrypt-pbkdf@^1.0.0": + "integrity" "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=" + "resolved" "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "tweetnacl" "^0.14.3" + +"bluebird-lst@^1.0.5": + "integrity" "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=" + "resolved" "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" + "version" "1.0.9" + dependencies: + "bluebird" "^3.5.5" + +"bluebird@^3.5.0", "bluebird@^3.5.5": + "integrity" "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=" + "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz" + "version" "3.5.5" + +"boolean@^3.0.1": + "integrity" "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + "resolved" "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz" + "version" "3.1.4" + +"boxen@^1.2.1": + "integrity" "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==" + "resolved" "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "ansi-align" "^2.0.0" + "camelcase" "^4.0.0" + "chalk" "^2.0.1" + "cli-boxes" "^1.0.0" + "string-width" "^2.0.0" + "term-size" "^1.2.0" + "widest-line" "^2.0.0" + +"brace-expansion@^1.1.7": + "integrity" "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"buffer-alloc-unsafe@^1.1.0": + "integrity" "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + "resolved" "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" + "version" "1.1.0" + +"buffer-alloc@^1.2.0": + "integrity" "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==" + "resolved" "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "buffer-alloc-unsafe" "^1.1.0" + "buffer-fill" "^1.0.0" + +"buffer-crc32@~0.2.3": + "integrity" "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + "resolved" "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" + "version" "0.2.13" + +"buffer-fill@^1.0.0": + "integrity" "sha1-+PeLdniYiO858gXNY39o5wISKyw=" + "resolved" "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" + "version" "1.0.0" + +"buffer-from@^1.0.0": + "integrity" "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" + "version" "1.1.1" + +"builder-util-runtime@^4.4.1", "builder-util-runtime@4.4.1": + "integrity" "sha512-8L2pbL6D3VdI1f8OMknlZJpw0c7KK15BRz3cY77AOUElc4XlCv2UhVV01jJM7+6Lx7henaQh80ALULp64eFYAQ==" + "resolved" "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "bluebird-lst" "^1.0.5" + "debug" "^3.1.0" + "fs-extra-p" "^4.6.1" + "sax" "^1.2.4" + +"builder-util@~6.1.3", "builder-util@6.1.3": + "integrity" "sha512-MXeARNff9KHlzJYGJcAhLI/tpE57PmUnleaYfL22IE+viRt192Yr3wQL444ztsA+LUHJ8d12moUoG00jh1hfLA==" + "resolved" "https://registry.npmjs.org/builder-util/-/builder-util-6.1.3.tgz" + "version" "6.1.3" + dependencies: + "7zip-bin" "~4.0.2" + "app-builder-bin" "2.1.2" + "bluebird-lst" "^1.0.5" + "builder-util-runtime" "^4.4.1" + "chalk" "^2.4.1" + "debug" "^3.1.0" + "fs-extra-p" "^4.6.1" + "is-ci" "^1.2.0" + "js-yaml" "^3.12.0" + "lazy-val" "^1.0.3" + "semver" "^5.5.1" + "source-map-support" "^0.5.9" + "stat-mode" "^0.2.2" + "temp-file" "^3.1.3" + +"cacheable-request@^6.0.0": + "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==" + "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "clone-response" "^1.0.2" + "get-stream" "^5.1.0" + "http-cache-semantics" "^4.0.0" + "keyv" "^3.0.0" + "lowercase-keys" "^2.0.0" + "normalize-url" "^4.1.0" + "responselike" "^1.0.2" + +"camelcase@^4.0.0": + "integrity" "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz" + "version" "4.1.0" + +"camelcase@^5.0.0": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"capture-stack-trace@^1.0.0": + "integrity" "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==" + "resolved" "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz" + "version" "1.0.1" + +"caseless@~0.12.0": + "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" + "version" "0.12.0" + +"chalk@^2.0.1", "chalk@^2.4.1", "chalk@^2.4.2": + "integrity" "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chownr@^1.1.1": + "integrity" "sha1-oY8eCyacimpdPIbrKYvrFMPde/Y=" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz" + "version" "1.1.2" + +"chromium-pickle-js@^0.2.0": + "integrity" "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=" + "resolved" "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" + "version" "0.2.0" + +"ci-info@^1.5.0": + "integrity" "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz" + "version" "1.6.0" + +"cli-boxes@^1.0.0": + "integrity" "sha1-T6kXw+WclKAEzWH47lCdplFocUM=" + "resolved" "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz" + "version" "1.0.0" + +"cli-cursor@^2.1.0": + "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "restore-cursor" "^2.0.0" + +"cli-spinners@^2.0.0": + "integrity" "sha1-6LmI2SBsaSMC2O6DTnqFwBRNj3c=" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz" + "version" "2.2.0" + +"cliui@^4.0.0": + "integrity" "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "string-width" "^2.1.1" + "strip-ansi" "^4.0.0" + "wrap-ansi" "^2.0.0" + +"cliui@^5.0.0": + "integrity" "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "string-width" "^3.1.0" + "strip-ansi" "^5.2.0" + "wrap-ansi" "^5.1.0" + +"clone-response@^1.0.2": + "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" + "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "mimic-response" "^1.0.0" + +"clone@^1.0.2": + "integrity" "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + "version" "1.0.4" + +"code-point-at@^1.0.0": + "integrity" "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" + "version" "1.1.0" + +"color-convert@^1.9.0": + "integrity" "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@~0.5.0": + "integrity" "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz" + "version" "0.5.3" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"colors@^1.3.3": + "integrity" "sha1-OeAF1Uav4B4B+cTKj6UPaGoBIF0=" + "resolved" "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz" + "version" "1.3.3" + +"combined-stream@^1.0.6", "combined-stream@~1.0.6": + "integrity" "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "delayed-stream" "~1.0.0" + +"compare-version@^0.1.2": + "integrity" "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=" + "resolved" "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" + "version" "0.1.2" + +"concat-map@0.0.1": + "integrity" "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"concat-stream@^1.6.2": + "integrity" "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==" + "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + "version" "1.6.2" + dependencies: + "buffer-from" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^2.2.2" + "typedarray" "^0.0.6" + +"config-chain@^1.1.11": + "integrity" "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==" + "resolved" "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" + "version" "1.1.13" + dependencies: + "ini" "^1.3.4" + "proto-list" "~1.2.1" + +"configstore@^3.0.0": + "integrity" "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==" + "resolved" "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "dot-prop" "^4.1.0" + "graceful-fs" "^4.1.2" + "make-dir" "^1.0.0" + "unique-string" "^1.0.0" + "write-file-atomic" "^2.0.0" + "xdg-basedir" "^3.0.0" + +"console-control-strings@^1.0.0", "console-control-strings@~1.1.0": + "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + "version" "1.1.0" + +"core-js@^3.6.5": + "integrity" "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==" + "resolved" "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz" + "version" "3.18.3" + +"core-util-is@~1.0.0", "core-util-is@1.0.2": + "integrity" "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + "version" "1.0.2" + +"create-error-class@^3.0.0": + "integrity" "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=" + "resolved" "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "capture-stack-trace" "^1.0.0" + +"cross-spawn@^5.0.1": + "integrity" "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "lru-cache" "^4.0.1" + "shebang-command" "^1.2.0" + "which" "^1.2.9" + +"cross-spawn@^6.0.0": + "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "nice-try" "^1.0.4" + "path-key" "^2.0.1" + "semver" "^5.5.0" + "shebang-command" "^1.2.0" + "which" "^1.2.9" + +"crypto-random-string@^1.0.0": + "integrity" "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz" + "version" "1.0.0" + +"dashdash@^1.12.0": + "integrity" "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=" + "resolved" "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" + "version" "1.14.1" + dependencies: + "assert-plus" "^1.0.0" + +"debug@^2.5.1": + "integrity" "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^2.6.8", "debug@^2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@^3.1.0": + "integrity" "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz" + "version" "3.2.6" + dependencies: + "ms" "^2.1.1" + +"debug@^4.1.0": + "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "ms" "2.1.2" + +"debug@^4.1.1": + "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "ms" "2.1.2" + +"decamelize@^1.2.0": + "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" + "version" "1.2.0" + +"decompress-response@^3.3.0": + "integrity" "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=" + "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "mimic-response" "^1.0.0" + +"deep-extend@^0.6.0": + "integrity" "sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw=" + "resolved" "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + "version" "0.6.0" + +"defaults@^1.0.3": + "integrity" "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=" + "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "clone" "^1.0.2" + +"defer-to-connect@^1.0.1": + "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + "version" "1.1.3" + +"define-properties@^1.1.3": + "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "object-keys" "^1.0.12" + +"delayed-stream@~1.0.0": + "integrity" "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"delegates@^1.0.0": + "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + "version" "1.0.0" + +"detect-libc@^1.0.3": + "integrity" "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + "version" "1.0.3" + +"detect-node@^2.0.4": + "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + "version" "2.1.0" + +"dmg-builder@5.3.1": + "integrity" "sha512-/+vtqlgvTtha/4Gc76XIRKS2KzYO58sTWXhZ/kgfNr05ZXY6bIw26v7xDu8ZBpTYnfWI09JRZTMv1yIXT/vvfg==" + "resolved" "https://registry.npmjs.org/dmg-builder/-/dmg-builder-5.3.1.tgz" + "version" "5.3.1" + dependencies: + "app-builder-lib" "~20.28.3" + "bluebird-lst" "^1.0.5" + "builder-util" "~6.1.3" + "fs-extra-p" "^4.6.1" + "iconv-lite" "^0.4.24" + "js-yaml" "^3.12.0" + "parse-color" "^1.0.0" + "sanitize-filename" "^1.6.1" + +"dot-prop@^4.1.0": + "integrity" "sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc=" + "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "is-obj" "^1.0.0" + +"dotenv-expand@^4.2.0": + "integrity" "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" + "resolved" "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz" + "version" "4.2.0" + +"dotenv@^6.0.0": + "integrity" "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==" + "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz" + "version" "6.2.0" + +"duplexer3@^0.1.4": + "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + "version" "0.1.4" + +"ecc-jsbn@~0.1.1": + "integrity" "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=" + "resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" + "version" "0.1.2" + dependencies: + "jsbn" "~0.1.0" + "safer-buffer" "^2.1.0" + +"ejs@^2.6.1": + "integrity" "sha1-OjLGPRzRbREmbNRwOxT+xOdKtPY=" + "resolved" "https://registry.npmjs.org/ejs/-/ejs-2.6.2.tgz" + "version" "2.6.2" + +"electron-builder@20.28.4": + "integrity" "sha512-JMOzMfx9BrC9SJr6+UacuvQZmuodL02Zua8iFn0l5bv32GkWcNj1D6FwybV33BpsmdQ8sF1SkQj+7L+FEIxang==" + "resolved" "https://registry.npmjs.org/electron-builder/-/electron-builder-20.28.4.tgz" + "version" "20.28.4" + dependencies: + "app-builder-lib" "20.28.4" + "bluebird-lst" "^1.0.5" + "builder-util" "6.1.3" + "builder-util-runtime" "4.4.1" + "chalk" "^2.4.1" + "dmg-builder" "5.3.1" + "fs-extra-p" "^4.6.1" + "is-ci" "^1.2.0" + "lazy-val" "^1.0.3" + "read-config-file" "3.1.2" + "sanitize-filename" "^1.6.1" + "update-notifier" "^2.5.0" + "yargs" "^12.0.1" + +"electron-osx-sign@0.4.10": + "integrity" "sha1-vk87ibKnWh3F8eckkIGrKSnKOiY=" + "resolved" "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.10.tgz" + "version" "0.4.10" + dependencies: + "bluebird" "^3.5.0" + "compare-version" "^0.1.2" + "debug" "^2.6.8" + "isbinaryfile" "^3.0.2" + "minimist" "^1.2.0" + "plist" "^2.1.0" + +"electron-publish@20.28.3": + "integrity" "sha512-/2t5zk9EKgH7p7rFZ+ynTKLmpKGF9bktMP2UR6u4bbPz9w4r3WEUbPOeZ1TLqUCAqdfZECcj4ThjrlcAJTghCA==" + "resolved" "https://registry.npmjs.org/electron-publish/-/electron-publish-20.28.3.tgz" + "version" "20.28.3" + dependencies: + "bluebird-lst" "^1.0.5" + "builder-util" "~6.1.3" + "builder-util-runtime" "^4.4.1" + "chalk" "^2.4.1" + "fs-extra-p" "^4.6.1" + "lazy-val" "^1.0.3" + "mime" "^2.3.1" + +"electron-rebuild@^1.8.5": + "integrity" "sha1-0V0Kp/IVHrPyk1pZapLANImEulU=" + "resolved" "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz" + "version" "1.8.5" + dependencies: + "colors" "^1.3.3" + "debug" "^4.1.1" + "detect-libc" "^1.0.3" + "fs-extra" "^7.0.1" + "node-abi" "^2.8.0" + "node-gyp" "^4.0.0" + "ora" "^3.4.0" + "spawn-rx" "^3.0.0" + "yargs" "^13.2.2" + +"electron@11.5.0": + "integrity" "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==" + "resolved" "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz" + "version" "11.5.0" + dependencies: + "@electron/get" "^1.0.1" + "@types/node" "^12.0.12" + "extract-zip" "^1.0.3" + +"emoji-regex@^7.0.1": + "integrity" "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + "version" "7.0.3" + +"encodeurl@^1.0.2": + "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"end-of-stream@^1.1.0": + "integrity" "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=" + "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "once" "^1.4.0" + +"env-paths@^2.2.0": + "integrity" "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + "resolved" "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + "version" "2.2.1" + +"es6-error@^4.1.1": + "integrity" "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + "resolved" "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" + "version" "4.1.1" + +"escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + +"esprima@^4.0.0": + "integrity" "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"execa@^0.7.0": + "integrity" "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=" + "resolved" "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz" + "version" "0.7.0" + dependencies: + "cross-spawn" "^5.0.1" + "get-stream" "^3.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" + +"execa@^1.0.0": + "integrity" "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==" + "resolved" "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "cross-spawn" "^6.0.0" + "get-stream" "^4.0.0" + "is-stream" "^1.1.0" + "npm-run-path" "^2.0.0" + "p-finally" "^1.0.0" + "signal-exit" "^3.0.0" + "strip-eof" "^1.0.0" + +"extend@~3.0.2": + "integrity" "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=" + "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" + "version" "3.0.2" + +"extract-zip@^1.0.3": + "integrity" "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==" + "resolved" "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "concat-stream" "^1.6.2" + "debug" "^2.6.9" + "mkdirp" "^0.5.4" + "yauzl" "^2.10.0" + +"extsprintf@^1.2.0", "extsprintf@1.3.0": + "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" + "version" "1.3.0" + +"fast-deep-equal@^2.0.1": + "integrity" "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz" + "version" "2.0.1" + +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" + "version" "2.0.0" + +"fd-slicer@~1.1.0": + "integrity" "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=" + "resolved" "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + "version" "1.1.0" + dependencies: + "pend" "~1.2.0" + +"find-up@^3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + +"forever-agent@~0.6.1": + "integrity" "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + "version" "0.6.1" + +"form-data@~2.3.2": + "integrity" "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.6" + "mime-types" "^2.1.12" + +"fs-extra-p@^4.6.1": + "integrity" "sha512-IsTMbUS0svZKZTvqF4vDS9c/L7Mw9n8nZQWWeSzAGacOSe+8CzowhUN0tdZEZFIJNP5HC7L9j3MMikz/G4hDeQ==" + "resolved" "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-4.6.1.tgz" + "version" "4.6.1" + dependencies: + "bluebird-lst" "^1.0.5" + "fs-extra" "^6.0.1" + +"fs-extra@^6.0.1": + "integrity" "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "graceful-fs" "^4.1.2" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-extra@^7.0.1": + "integrity" "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "graceful-fs" "^4.1.2" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-extra@^8.1.0": + "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-minipass@^1.2.5": + "integrity" "sha1-LFzDDe2BKCv+ig18fBhT3esQLAc=" + "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz" + "version" "1.2.6" + dependencies: + "minipass" "^2.2.1" + +"fs.realpath@^1.0.0": + "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"gauge@~2.7.3": + "integrity" "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" + "resolved" "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" + "version" "2.7.4" + dependencies: + "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" + +"get-caller-file@^1.0.1": + "integrity" "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" + "version" "1.0.3" + +"get-caller-file@^2.0.1": + "integrity" "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-stream@^3.0.0": + "integrity" "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz" + "version" "3.0.0" + +"get-stream@^4.0.0": + "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^4.1.0": + "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^5.1.0": + "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "pump" "^3.0.0" + +"getpass@^0.1.1": + "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" + "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" + "version" "0.1.7" + dependencies: + "assert-plus" "^1.0.0" + +"glob@^7.0.3", "glob@^7.0.5": + "integrity" "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" + "version" "7.1.2" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.0.4" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"global-agent@^2.0.2": + "integrity" "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==" + "resolved" "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "boolean" "^3.0.1" + "core-js" "^3.6.5" + "es6-error" "^4.1.1" + "matcher" "^3.0.0" + "roarr" "^2.15.3" + "semver" "^7.3.2" + "serialize-error" "^7.0.1" + +"global-dirs@^0.1.0": + "integrity" "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=" + "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" + "version" "0.1.1" + dependencies: + "ini" "^1.3.4" + +"global-tunnel-ng@^2.7.1": + "integrity" "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==" + "resolved" "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "encodeurl" "^1.0.2" + "lodash" "^4.17.10" + "npm-conf" "^1.1.3" + "tunnel" "^0.0.6" + +"globalthis@^1.0.1": + "integrity" "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==" + "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "define-properties" "^1.1.3" + +"got@^6.7.1": + "integrity" "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=" + "resolved" "https://registry.npmjs.org/got/-/got-6.7.1.tgz" + "version" "6.7.1" + dependencies: + "create-error-class" "^3.0.0" + "duplexer3" "^0.1.4" + "get-stream" "^3.0.0" + "is-redirect" "^1.0.0" + "is-retry-allowed" "^1.0.0" + "is-stream" "^1.0.0" + "lowercase-keys" "^1.0.0" + "safe-buffer" "^5.0.1" + "timed-out" "^4.0.0" + "unzip-response" "^2.0.1" + "url-parse-lax" "^1.0.0" + +"got@^9.6.0": + "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==" + "resolved" "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + "version" "9.6.0" + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + "cacheable-request" "^6.0.0" + "decompress-response" "^3.3.0" + "duplexer3" "^0.1.4" + "get-stream" "^4.1.0" + "lowercase-keys" "^1.0.1" + "mimic-response" "^1.0.1" + "p-cancelable" "^1.0.0" + "to-readable-stream" "^1.0.0" + "url-parse-lax" "^3.0.0" + +"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0": + "integrity" "sha1-HB8MNkiCyGj1v/ZRIUYygzahGx0=" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz" + "version" "4.2.1" + +"har-schema@^2.0.0": + "integrity" "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "resolved" "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz" + "version" "2.0.0" + +"har-validator@~5.1.0": + "integrity" "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=" + "resolved" "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz" + "version" "5.1.3" + dependencies: + "ajv" "^6.5.5" + "har-schema" "^2.0.0" + +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-unicode@^2.0.0": + "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + "version" "2.0.1" + +"hosted-git-info@^2.1.4", "hosted-git-info@^2.7.1": + "integrity" "sha1-o1w/NVrBJJ8Qk8DCpUKs6IGMFxo=" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.2.tgz" + "version" "2.8.2" + dependencies: + "lru-cache" "^5.1.1" + +"http-cache-semantics@^4.0.0": + "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + "version" "4.1.0" + +"http-signature@~1.2.0": + "integrity" "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=" + "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "assert-plus" "^1.0.0" + "jsprim" "^1.2.2" + "sshpk" "^1.7.0" + +"iconv-lite@^0.4.24": + "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + "version" "0.4.24" + dependencies: + "safer-buffer" ">= 2.1.2 < 3" + +"import-lazy@^2.1.0": + "integrity" "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + "resolved" "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + "version" "2.1.0" + +"imurmurhash@^0.1.4": + "integrity" "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"inflight@^1.0.4": + "integrity" "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.3", "inherits@~2.0.3", "inherits@2": + "integrity" "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" + "version" "2.0.3" + +"ini@^1.3.4", "ini@~1.3.0": + "integrity" "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz" + "version" "1.3.5" + +"invert-kv@^2.0.0": + "integrity" "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + "resolved" "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz" + "version" "2.0.0" + +"is-ci@^1.0.10", "is-ci@^1.2.0": + "integrity" "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==" + "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "ci-info" "^1.5.0" + +"is-fullwidth-code-point@^1.0.0": + "integrity" "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "number-is-nan" "^1.0.0" + +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + +"is-installed-globally@^0.1.0": + "integrity" "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=" + "resolved" "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz" + "version" "0.1.0" + dependencies: + "global-dirs" "^0.1.0" + "is-path-inside" "^1.0.0" + +"is-npm@^1.0.0": + "integrity" "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=" + "resolved" "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz" + "version" "1.0.0" + +"is-obj@^1.0.0": + "integrity" "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz" + "version" "1.0.1" + +"is-path-inside@^1.0.0": + "integrity" "sha1-jvW33lBDej/cprToZe96pVy0gDY=" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "path-is-inside" "^1.0.1" + +"is-redirect@^1.0.0": + "integrity" "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=" + "resolved" "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz" + "version" "1.0.0" + +"is-retry-allowed@^1.0.0": + "integrity" "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=" + "resolved" "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz" + "version" "1.1.0" + +"is-stream@^1.0.0", "is-stream@^1.1.0": + "integrity" "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz" + "version" "1.1.0" + +"is-typedarray@~1.0.0": + "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@~1.0.0": + "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isbinaryfile@^3.0.2", "isbinaryfile@^3.0.3": + "integrity" "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==" + "resolved" "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "buffer-alloc" "^1.2.0" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"isstream@~0.1.2": + "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + "version" "0.1.2" + +"js-yaml@^3.12.0": + "integrity" "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + "version" "3.13.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"jsbn@~0.1.0": + "integrity" "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + "version" "0.1.1" + +"json-buffer@3.0.0": + "integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + "version" "3.0.0" + +"json-schema-traverse@^0.4.1": + "integrity" "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + "version" "0.4.1" + +"json-schema@0.2.3": + "integrity" "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "resolved" "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" + "version" "0.2.3" + +"json-stringify-safe@^5.0.1", "json-stringify-safe@~5.0.1": + "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + "version" "5.0.1" + +"json5@^1.0.1": + "integrity" "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==" + "resolved" "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "minimist" "^1.2.0" + +"jsonfile@^4.0.0": + "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" optionalDependencies: - graceful-fs "^4.1.6" + "graceful-fs" "^4.1.6" -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - -jsprim@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" +"jsprim@^1.2.2": + "integrity" "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=" + "resolved" "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz" + "version" "1.4.1" dependencies: - extsprintf "1.0.2" - json-schema "0.2.3" - verror "1.3.6" - -klaw@^1.0.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" - optionalDependencies: - graceful-fs "^4.1.9" + "assert-plus" "1.0.0" + "extsprintf" "1.3.0" + "json-schema" "0.2.3" + "verror" "1.10.0" -latest-version@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" +"keyv@^3.0.0": + "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==" + "resolved" "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + "version" "3.1.0" dependencies: - package-json "^2.0.0" - -lazy-req@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" + "json-buffer" "3.0.0" -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" +"latest-version@^3.0.0": + "integrity" "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=" + "resolved" "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz" + "version" "3.1.0" dependencies: - invert-kv "^1.0.0" + "package-json" "^4.0.0" -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" +"lazy-val@^1.0.3": + "integrity" "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=" + "resolved" "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz" + "version" "1.0.4" -macaddress@^0.2.7: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - -meow@^3.1.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" +"lcid@^2.0.0": + "integrity" "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==" + "resolved" "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz" + "version" "2.0.0" dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" + "invert-kv" "^2.0.0" -mime-db@~1.26.0: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" - -mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.14" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" +"locate-path@^3.0.0": + "integrity" "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" dependencies: - mime-db "~1.26.0" + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" -mime@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" +"lodash.assign@^4.2.0": + "integrity" "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + "resolved" "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" + "version" "4.2.0" -minimatch@^3.0.2, minimatch@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" - dependencies: - brace-expansion "^1.0.0" +"lodash@^4.17.10": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" + +"log-symbols@^2.2.0": + "integrity" "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "chalk" "^2.0.1" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" +"lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1": + "integrity" "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + "version" "1.0.1" + +"lowercase-keys@^2.0.0": + "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + "version" "2.0.0" + +"lru-cache@^4.0.1": + "integrity" "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + "version" "4.1.5" + dependencies: + "pseudomap" "^1.0.2" + "yallist" "^2.1.2" + +"lru-cache@^5.1.1": + "integrity" "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "yallist" "^3.0.2" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +"make-dir@^1.0.0": + "integrity" "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "pify" "^3.0.0" -mkdirp@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" +"map-age-cleaner@^0.1.1": + "integrity" "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==" + "resolved" "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz" + "version" "0.1.3" dependencies: - minimist "0.0.8" + "p-defer" "^1.0.0" -mkdirp@^0.5.0, mkdirp@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" +"matcher@^3.0.0": + "integrity" "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==" + "resolved" "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" + "version" "3.0.0" dependencies: - minimist "0.0.8" + "escape-string-regexp" "^4.0.0" -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - -node-emoji@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.5.1.tgz#fd918e412769bf8c448051238233840b2aff16a1" - dependencies: - string.prototype.codepointat "^0.2.0" - -node-status-codes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" - dependencies: - hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -nugget@^2.0.0, nugget@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nugget/-/nugget-2.0.1.tgz#201095a487e1ad36081b3432fa3cada4f8d071b0" - dependencies: - debug "^2.1.3" - minimist "^1.1.0" - pretty-bytes "^1.0.2" - progress-stream "^1.1.0" - request "^2.45.0" - single-line-log "^1.1.2" - throttleit "0.0.2" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - -oauth-sign@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" - -object-assign@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - -object-keys@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - dependencies: - wrappy "1" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - dependencies: - lcid "^1.0.0" - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - -osenv@^0.1.0: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -package-json@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" - dependencies: - got "^5.0.0" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -parse-color@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" - dependencies: - color-convert "~0.5.0" - -parse-json@^2.1.0, parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - dependencies: - error-ex "^1.2.0" - -path-exists@^2.0.0, path-exists@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - dependencies: - pinkie-promise "^2.0.0" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" - -plist@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/plist/-/plist-2.0.1.tgz#0a32ca9481b1c364e92e18dc55c876de9d01da8b" - dependencies: - base64-js "1.1.2" - xmlbuilder "8.2.2" - xmldom "0.1.x" - -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -pretty-bytes@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" - dependencies: - get-stdin "^4.0.1" - meow "^3.1.0" - -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - -progress-stream@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/progress-stream/-/progress-stream-1.2.0.tgz#2cd3cfea33ba3a89c9c121ec3347abe9ab125f77" - dependencies: - speedometer "~0.1.2" - through2 "~0.2.3" - -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - -punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" - -rc@^1.0.1, rc@^1.1.2, rc@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.1.6.tgz#43651b76b6ae53b5c802f1151fa3fc3b059969c9" - dependencies: - deep-extend "~0.4.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~1.0.4" - -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@~2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - string_decoder "~0.10.x" - util-deprecate "~1.0.1" - -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - -registry-auth-token@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.1.0.tgz#997c08256e0c7999837b90e944db39d8a790276b" - dependencies: - rc "^1.1.6" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - dependencies: - rc "^1.0.1" - -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - dependencies: - is-finite "^1.0.0" - -request@^2.45.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - -rimraf@^2.2.8, rimraf@^2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" - dependencies: - glob "^7.0.5" - -sanitize-filename@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a" - dependencies: - truncate-utf8-bytes "^1.0.0" - -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - -signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - -single-line-log@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/single-line-log/-/single-line-log-1.1.2.tgz#c2f83f273a3e1a16edb0995661da0ed5ef033364" - dependencies: - string-width "^1.0.1" - -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -source-map-support@^0.4.11: - version "0.4.11" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.11.tgz#647f939978b38535909530885303daf23279f322" - dependencies: - source-map "^0.5.3" - -source-map@^0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -spdx-correct@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" - dependencies: - spdx-license-ids "^1.0.2" - -spdx-expression-parse@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" - -spdx-license-ids@^1.0.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" - -speedometer@~0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/speedometer/-/speedometer-0.1.4.tgz#9876dbd2a169d3115402d48e6ea6329c8816a50d" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - -sshpk@^1.7.0: - version "1.10.2" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: - bcrypt-pbkdf "^1.0.0" - ecc-jsbn "~0.1.1" - jodid25519 "^1.0.0" - jsbn "~0.1.0" - tweetnacl "~0.14.0" - -stat-mode@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" - -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -string.prototype.codepointat@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - -stringstream@~0.0.4: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" - -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - dependencies: - ansi-regex "^2.0.0" - -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - dependencies: - is-utf8 "^0.2.0" - -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - dependencies: - get-stdin "^4.0.1" - -strip-json-comments@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" - -sumchecker@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-1.3.0.tgz#6e3004d7bf3b5ad5567abf13a828946d8a19911b" - dependencies: - debug "^2.2.0" - es6-promise "^4.0.5" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - -throttleit@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-0.0.2.tgz#cfedf88e60c00dd9697b61fdd2a8343a9b680eaf" - -through2@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.2.3.tgz#eb3284da4ea311b6cc8ace3653748a52abf25a3f" - dependencies: - readable-stream "~1.1.9" - xtend "~2.1.1" - -timed-out@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" - -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - dependencies: - utf8-byte-length "^1.0.1" - -tunnel-agent@^0.4.3, tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - -typedarray@~0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -unzip-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" - -update-notifier@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" - dependencies: - boxen "^0.6.0" - chalk "^1.0.0" - configstore "^2.0.0" - is-npm "^1.0.0" - latest-version "^2.0.0" - lazy-req "^1.1.0" - semver-diff "^2.0.0" - xdg-basedir "^2.0.0" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - -util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - -uuid-1345@^0.99.6: - version "0.99.6" - resolved "https://registry.yarnpkg.com/uuid-1345/-/uuid-1345-0.99.6.tgz#b1270ae015a7721c7adec6c46ec169c6098aed40" - dependencies: - macaddress "^0.2.7" - -uuid@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" - -uuid@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" - -validate-npm-package-license@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" - dependencies: - spdx-correct "~1.0.0" - spdx-expression-parse "~1.0.0" - -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" - dependencies: - extsprintf "1.0.2" - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - -widest-line@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" - dependencies: - string-width "^1.0.1" - -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - -write-file-atomic@^1.1.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" - dependencies: - os-homedir "^1.0.0" - -xmlbuilder@8.2.2: - version "8.2.2" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" - -xmldom@0.1.x: - version "0.1.27" - resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" - -xtend@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - -xtend@~2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" - dependencies: - object-keys "~0.4.0" - -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - -yargs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" +"mem@^4.0.0": + "integrity" "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==" + "resolved" "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "map-age-cleaner" "^0.1.1" + "mimic-fn" "^2.0.0" + "p-is-promise" "^2.0.0" + +"mime-db@1.40.0": + "integrity" "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz" + "version" "1.40.0" -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" +"mime-types@^2.1.12", "mime-types@~2.1.19": + "integrity" "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz" + "version" "2.1.24" dependencies: - fd-slicer "~1.0.1" + "mime-db" "1.40.0" + +"mime@^2.3.1": + "integrity" "sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U=" + "resolved" "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz" + "version" "2.4.4" + +"mimic-fn@^1.0.0": + "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + "version" "1.2.0" + +"mimic-fn@^2.0.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"mimic-response@^1.0.0", "mimic-response@^1.0.1": + "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + "version" "1.0.1" + +"minimatch@^3.0.4": + "integrity" "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "brace-expansion" "^1.1.7" + +"minimist@^1.2.0": + "integrity" "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + "version" "1.2.0" + +"minimist@^1.2.5": + "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" + +"minimist@0.0.8": + "integrity" "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + "version" "0.0.8" + +"minipass@^2.2.1", "minipass@^2.3.5": + "integrity" "sha1-ys6+SSAiSX9law8PUeJoKp7S2Eg=" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz" + "version" "2.3.5" + dependencies: + "safe-buffer" "^5.1.2" + "yallist" "^3.0.0" + +"minizlib@^1.2.1": + "integrity" "sha1-3SfqYTYkPHyIBoToZyuzpF/ZthQ=" + "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "minipass" "^2.2.1" + +"mkdirp@^0.5.0": + "integrity" "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + "version" "0.5.1" + dependencies: + "minimist" "0.0.8" + +"mkdirp@^0.5.4": + "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + "version" "0.5.5" + dependencies: + "minimist" "^1.2.5" + +"ms@^2.1.1", "ms@2.1.2": + "integrity" "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"nice-try@^1.0.4": + "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + "version" "1.0.5" + +"node-abi@^2.8.0": + "integrity" "sha1-iUvGYl7gQmJ+2bXpJw2Au2PvUEU=" + "resolved" "https://registry.npmjs.org/node-abi/-/node-abi-2.10.0.tgz" + "version" "2.10.0" + dependencies: + "semver" "^5.4.1" + +"node-gyp@^4.0.0": + "integrity" "sha1-lyZUr05d0M0qGQgbS0b+BEK6b0U=" + "resolved" "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "glob" "^7.0.3" + "graceful-fs" "^4.1.2" + "mkdirp" "^0.5.0" + "nopt" "2 || 3" + "npmlog" "0 || 1 || 2 || 3 || 4" + "osenv" "0" + "request" "^2.87.0" + "rimraf" "2" + "semver" "~5.3.0" + "tar" "^4.4.8" + "which" "1" + +"nopt@2 || 3": + "integrity" "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + "version" "3.0.6" + dependencies: + "abbrev" "1" + +"normalize-package-data@^2.4.0": + "integrity" "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=" + "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "hosted-git-info" "^2.1.4" + "resolve" "^1.10.0" + "semver" "2 || 3 || 4 || 5" + "validate-npm-package-license" "^3.0.1" + +"normalize-url@^4.1.0": + "integrity" "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" + "version" "4.5.1" + +"npm-conf@^1.1.3": + "integrity" "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==" + "resolved" "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "config-chain" "^1.1.11" + "pify" "^3.0.0" + +"npm-run-path@^2.0.0": + "integrity" "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "path-key" "^2.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4": + "integrity" "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=" + "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "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@^1.0.0": + "integrity" "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "resolved" "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + "version" "1.0.1" + +"oauth-sign@~0.9.0": + "integrity" "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=" + "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" + "version" "0.9.0" + +"object-assign@^4.1.0": + "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-keys@^1.0.12": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"once@^1.3.0", "once@^1.3.1", "once@^1.4.0": + "integrity" "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^2.0.0": + "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "mimic-fn" "^1.0.0" + +"ora@^3.4.0": + "integrity" "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=" + "resolved" "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "chalk" "^2.4.2" + "cli-cursor" "^2.1.0" + "cli-spinners" "^2.0.0" + "log-symbols" "^2.2.0" + "strip-ansi" "^5.2.0" + "wcwidth" "^1.0.1" + +"os-homedir@^1.0.0": + "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "version" "1.0.2" + +"os-locale@^3.0.0": + "integrity" "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==" + "resolved" "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "execa" "^1.0.0" + "lcid" "^2.0.0" + "mem" "^4.0.0" + +"os-tmpdir@^1.0.0": + "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" + +"osenv@0": + "integrity" "sha1-hc36+uso6Gd/QW4odZK18/SepBA=" + "resolved" "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" + "version" "0.1.5" + dependencies: + "os-homedir" "^1.0.0" + "os-tmpdir" "^1.0.0" + +"p-cancelable@^1.0.0": + "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + "version" "1.1.0" + +"p-defer@^1.0.0": + "integrity" "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + "resolved" "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz" + "version" "1.0.0" + +"p-finally@^1.0.0": + "integrity" "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "resolved" "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" + "version" "1.0.0" + +"p-is-promise@^2.0.0": + "integrity" "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + "resolved" "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz" + "version" "2.1.0" + +"p-limit@^2.0.0": + "integrity" "sha1-QXyZQeYCepq8ulCS3SkE4lW1+8I=" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "p-try" "^2.0.0" + +"p-locate@^3.0.0": + "integrity" "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-limit" "^2.0.0" + +"p-try@^2.0.0": + "integrity" "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + +"package-json@^4.0.0": + "integrity" "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=" + "resolved" "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "got" "^6.7.1" + "registry-auth-token" "^3.0.1" + "registry-url" "^3.0.3" + "semver" "^5.1.0" + +"parse-color@^1.0.0": + "integrity" "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=" + "resolved" "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "color-convert" "~0.5.0" + +"path-exists@^3.0.0": + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-is-inside@^1.0.1": + "integrity" "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + "resolved" "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + "version" "1.0.2" + +"path-key@^2.0.0", "path-key@^2.0.1": + "integrity" "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + "version" "2.0.1" + +"path-parse@^1.0.6": + "integrity" "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz" + "version" "1.0.6" + +"pend@~1.2.0": + "integrity" "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + "resolved" "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" + "version" "1.2.0" + +"performance-now@^2.1.0": + "integrity" "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" + "version" "2.1.0" + +"pify@^3.0.0": + "integrity" "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + "version" "3.0.0" + +"plist@^2.1.0": + "integrity" "sha1-V8zbeggh3yGDEhejytVOPhRqECU=" + "resolved" "https://registry.npmjs.org/plist/-/plist-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "base64-js" "1.2.0" + "xmlbuilder" "8.2.2" + "xmldom" "0.1.x" + +"plist@^3.0.1": + "integrity" "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==" + "resolved" "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "base64-js" "^1.2.3" + "xmlbuilder" "^9.0.7" + "xmldom" "0.1.x" + +"prepend-http@^1.0.1": + "integrity" "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz" + "version" "1.0.4" + +"prepend-http@^2.0.0": + "integrity" "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + "version" "2.0.0" + +"process-nextick-args@~2.0.0": + "integrity" "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + +"progress@^2.0.3": + "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + "version" "2.0.3" + +"proto-list@~1.2.1": + "integrity" "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + "resolved" "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + "version" "1.2.4" + +"pseudomap@^1.0.2": + "integrity" "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "resolved" "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + "version" "1.0.2" + +"psl@^1.1.24": + "integrity" "sha1-4ev2o7VWT6g3bz2iJ12nbYdcob0=" + "resolved" "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz" + "version" "1.3.0" + +"pump@^3.0.0": + "integrity" "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=" + "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + +"punycode@^1.4.1": + "integrity" "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + "version" "1.4.1" + +"punycode@^2.1.0": + "integrity" "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"qs@~6.5.2": + "integrity" "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" + "version" "6.5.2" + +"rc@^1.0.1", "rc@^1.1.6": + "integrity" "sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=" + "resolved" "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + "version" "1.2.8" + dependencies: + "deep-extend" "^0.6.0" + "ini" "~1.3.0" + "minimist" "^1.2.0" + "strip-json-comments" "~2.0.1" + +"read-config-file@3.1.2": + "integrity" "sha512-QCATYzlYHvmWps/W/eP7rcKuhYRYZg5XKeXFxSJRIXvn+KSw1+Ntz2et1aBz5TrEpawGrxWZ7zBipj+/v0xwWQ==" + "resolved" "https://registry.npmjs.org/read-config-file/-/read-config-file-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "ajv" "^6.5.2" + "ajv-keywords" "^3.2.0" + "bluebird-lst" "^1.0.5" + "dotenv" "^6.0.0" + "dotenv-expand" "^4.2.0" + "fs-extra-p" "^4.6.1" + "js-yaml" "^3.12.0" + "json5" "^1.0.1" + "lazy-val" "^1.0.3" + +"readable-stream@^2.0.6": + "integrity" "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + "version" "2.3.6" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readable-stream@^2.2.2": + "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + "version" "2.3.7" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"registry-auth-token@^3.0.1": + "integrity" "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==" + "resolved" "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "rc" "^1.1.6" + "safe-buffer" "^5.0.1" + +"registry-url@^3.0.3": + "integrity" "sha1-PU74cPc93h138M+aOBQyRE4XSUI=" + "resolved" "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "rc" "^1.0.1" + +"request@^2.87.0": + "integrity" "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=" + "resolved" "https://registry.npmjs.org/request/-/request-2.88.0.tgz" + "version" "2.88.0" + dependencies: + "aws-sign2" "~0.7.0" + "aws4" "^1.8.0" + "caseless" "~0.12.0" + "combined-stream" "~1.0.6" + "extend" "~3.0.2" + "forever-agent" "~0.6.1" + "form-data" "~2.3.2" + "har-validator" "~5.1.0" + "http-signature" "~1.2.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.19" + "oauth-sign" "~0.9.0" + "performance-now" "^2.1.0" + "qs" "~6.5.2" + "safe-buffer" "^5.1.2" + "tough-cookie" "~2.4.3" + "tunnel-agent" "^0.6.0" + "uuid" "^3.3.2" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-main-filename@^1.0.1": + "integrity" "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" + "version" "1.0.1" + +"require-main-filename@^2.0.0": + "integrity" "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + +"resolve@^1.10.0": + "integrity" "sha1-P8ZEo1yEpIVUYJ/ybsUrZvpXffY=" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz" + "version" "1.12.0" + dependencies: + "path-parse" "^1.0.6" + +"responselike@^1.0.2": + "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" + "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "lowercase-keys" "^1.0.0" + +"restore-cursor@^2.0.0": + "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "onetime" "^2.0.0" + "signal-exit" "^3.0.2" + +"rimraf@^2.5.4", "rimraf@2": + "integrity" "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz" + "version" "2.6.2" + dependencies: + "glob" "^7.0.5" + +"roarr@^2.15.3": + "integrity" "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==" + "resolved" "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" + "version" "2.15.4" + dependencies: + "boolean" "^3.0.1" + "detect-node" "^2.0.4" + "globalthis" "^1.0.1" + "json-stringify-safe" "^5.0.1" + "semver-compare" "^1.0.0" + "sprintf-js" "^1.1.2" + +"rxjs@^6.3.1": + "integrity" "sha1-LjXOgVzUbYTQKiCftOWSHgUdvsc=" + "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz" + "version" "6.5.2" + dependencies: + "tslib" "^1.9.0" + +"safe-buffer@^5.0.1", "safe-buffer@^5.1.2": + "integrity" "sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk=" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz" + "version" "5.2.0" + +"safe-buffer@~5.1.0", "safe-buffer@~5.1.1": + "integrity" "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@~2.1.0": + "integrity" "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"sanitize-filename@^1.6.1": + "integrity" "sha1-AbT8iAnxTp0idh/nA4D+fz+QIYU=" + "resolved" "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.2.tgz" + "version" "1.6.2" + dependencies: + "truncate-utf8-bytes" "^1.0.0" + +"sax@^1.2.4": + "integrity" "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + "version" "1.2.4" + +"semver-compare@^1.0.0": + "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + "version" "1.0.0" + +"semver-diff@^2.0.0": + "integrity" "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=" + "resolved" "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "semver" "^5.0.3" + +"semver@^5.0.3", "semver@^5.1.0", "semver@^5.4.1", "semver@^5.5.0", "semver@^5.5.1", "semver@2 || 3 || 4 || 5": + "integrity" "sha1-eQp89v6lRZuslhELKbYEEtyP+Ws=" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz" + "version" "5.7.0" + +"semver@^6.2.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.3.2": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@~5.3.0": + "integrity" "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "version" "5.3.0" + +"serialize-error@^7.0.1": + "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==" + "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "type-fest" "^0.13.1" + +"set-blocking@^2.0.0", "set-blocking@~2.0.0": + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"shebang-command@^1.2.0": + "integrity" "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "shebang-regex" "^1.0.0" + +"shebang-regex@^1.0.0": + "integrity" "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + "version" "1.0.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.2": + "integrity" "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" + "version" "3.0.2" + +"source-map-support@^0.5.9": + "integrity" "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + "version" "0.5.13" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.6.0": + "integrity" "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"spawn-rx@^3.0.0": + "integrity" "sha1-HTNRHhPsJjN9pR14Yw4IvrV6Z2c=" + "resolved" "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "debug" "^2.5.1" + "lodash.assign" "^4.2.0" + "rxjs" "^6.3.1" + +"spdx-correct@^3.0.0": + "integrity" "sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ=" + "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "spdx-expression-parse" "^3.0.0" + "spdx-license-ids" "^3.0.0" + +"spdx-exceptions@^2.1.0": + "integrity" "sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc=" + "resolved" "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz" + "version" "2.2.0" + +"spdx-expression-parse@^3.0.0": + "integrity" "sha1-meEZt6XaAOBUkcn6M4t5BII7QdA=" + "resolved" "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "spdx-exceptions" "^2.1.0" + "spdx-license-ids" "^3.0.0" + +"spdx-license-ids@^3.0.0": + "integrity" "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=" + "resolved" "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz" + "version" "3.0.5" + +"sprintf-js@^1.1.2": + "integrity" "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + "version" "1.1.2" + +"sprintf-js@~1.0.2": + "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"sshpk@^1.7.0": + "integrity" "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=" + "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz" + "version" "1.16.1" + dependencies: + "asn1" "~0.2.3" + "assert-plus" "^1.0.0" + "bcrypt-pbkdf" "^1.0.0" + "dashdash" "^1.12.0" + "ecc-jsbn" "~0.1.1" + "getpass" "^0.1.1" + "jsbn" "~0.1.0" + "safer-buffer" "^2.0.2" + "tweetnacl" "~0.14.0" + +"stat-mode@^0.2.2": + "integrity" "sha1-5sgLYjEj19gM8TLOU480YokHJQI=" + "resolved" "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz" + "version" "0.2.2" + +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string-width@^1.0.1", "string-width@^1.0.2 || 2": + "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "code-point-at" "^1.0.0" + "is-fullwidth-code-point" "^1.0.0" + "strip-ansi" "^3.0.0" + +"string-width@^2.0.0", "string-width@^2.1.1": + "integrity" "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^4.0.0" + +"string-width@^2.1.1": + "integrity" "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^4.0.0" + +"string-width@^3.0.0": + "integrity" "sha1-InZ74htirxCBV0MG9prFG2IgOWE=" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"string-width@^3.1.0": + "integrity" "sha1-InZ74htirxCBV0MG9prFG2IgOWE=" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": + "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "ansi-regex" "^2.0.0" + +"strip-ansi@^4.0.0": + "integrity" "sha1-qEeQIusaw2iocTibY1JixQXuNo8=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "ansi-regex" "^3.0.0" + +"strip-ansi@^5.0.0", "strip-ansi@^5.1.0", "strip-ansi@^5.2.0": + "integrity" "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-eof@^1.0.0": + "integrity" "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "resolved" "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + "version" "1.0.0" + +"strip-json-comments@~2.0.1": + "integrity" "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "version" "2.0.1" + +"sumchecker@^3.0.1": + "integrity" "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==" + "resolved" "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "debug" "^4.1.0" + +"supports-color@^5.3.0": + "integrity" "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"tar@^4.4.8": + "integrity" "sha1-lGsoELml4LJhQM94vqawsNaJ66E=" + "resolved" "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz" + "version" "4.4.10" + dependencies: + "chownr" "^1.1.1" + "fs-minipass" "^1.2.5" + "minipass" "^2.3.5" + "minizlib" "^1.2.1" + "mkdirp" "^0.5.0" + "safe-buffer" "^5.1.2" + "yallist" "^3.0.3" + +"temp-file@^3.1.3": + "integrity" "sha1-c6+GjNfLdACkTkuwPmU7IoDOKHg=" + "resolved" "https://registry.npmjs.org/temp-file/-/temp-file-3.3.4.tgz" + "version" "3.3.4" + dependencies: + "async-exit-hook" "^2.0.1" + "fs-extra" "^8.1.0" + +"term-size@^1.2.0": + "integrity" "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=" + "resolved" "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "execa" "^0.7.0" + +"timed-out@^4.0.0": + "integrity" "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + "resolved" "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz" + "version" "4.0.1" + +"to-readable-stream@^1.0.0": + "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + "version" "1.0.0" + +"tough-cookie@~2.4.3": + "integrity" "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=" + "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz" + "version" "2.4.3" + dependencies: + "psl" "^1.1.24" + "punycode" "^1.4.1" + +"truncate-utf8-bytes@^1.0.0": + "integrity" "sha1-QFkjkJWS1W94pYGENLC3hInKXys=" + "resolved" "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "utf8-byte-length" "^1.0.1" + +"tslib@^1.9.0": + "integrity" "sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo=" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" + "version" "1.10.0" + +"tunnel-agent@^0.6.0": + "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "safe-buffer" "^5.0.1" + +"tunnel@^0.0.6": + "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "resolved" "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + "version" "0.0.6" + +"tweetnacl@^0.14.3", "tweetnacl@~0.14.0": + "integrity" "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" + "version" "0.14.5" + +"type-fest@^0.13.1": + "integrity" "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" + "version" "0.13.1" + +"typedarray@^0.0.6": + "integrity" "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + "version" "0.0.6" + +"unique-string@^1.0.0": + "integrity" "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=" + "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "crypto-random-string" "^1.0.0" + +"universalify@^0.1.0": + "integrity" "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"unzip-response@^2.0.1": + "integrity" "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + "resolved" "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz" + "version" "2.0.1" + +"update-notifier@^2.5.0": + "integrity" "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==" + "resolved" "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz" + "version" "2.5.0" + dependencies: + "boxen" "^1.2.1" + "chalk" "^2.0.1" + "configstore" "^3.0.0" + "import-lazy" "^2.1.0" + "is-ci" "^1.0.10" + "is-installed-globally" "^0.1.0" + "is-npm" "^1.0.0" + "latest-version" "^3.0.0" + "semver-diff" "^2.0.0" + "xdg-basedir" "^3.0.0" + +"uri-js@^4.2.2": + "integrity" "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "punycode" "^2.1.0" + +"url-parse-lax@^1.0.0": + "integrity" "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=" + "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "prepend-http" "^1.0.1" + +"url-parse-lax@^3.0.0": + "integrity" "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=" + "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "prepend-http" "^2.0.0" + +"utf8-byte-length@^1.0.1": + "integrity" "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" + "resolved" "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" + "version" "1.0.4" + +"util-deprecate@~1.0.1": + "integrity" "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"uuid@^3.3.2": + "integrity" "sha1-G0r0lV6zB3xQHCOHL8ZROBFYcTE=" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz" + "version" "3.3.2" + +"validate-npm-package-license@^3.0.1": + "integrity" "sha1-/JH2uce6FchX9MssXe/uw51PQQo=" + "resolved" "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" + "version" "3.0.4" + dependencies: + "spdx-correct" "^3.0.0" + "spdx-expression-parse" "^3.0.0" + +"verror@1.10.0": + "integrity" "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=" + "resolved" "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" + "version" "1.10.0" + dependencies: + "assert-plus" "^1.0.0" + "core-util-is" "1.0.2" + "extsprintf" "^1.2.0" + +"wcwidth@^1.0.1": + "integrity" "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=" + "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "defaults" "^1.0.3" + +"which-module@^2.0.0": + "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + "version" "2.0.0" + +"which@^1.2.9", "which@1": + "integrity" "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"wide-align@^1.1.0": + "integrity" "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=" + "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "string-width" "^1.0.2 || 2" + +"widest-line@^2.0.0": + "integrity" "sha1-dDh2RzDsfvQ4HOTfgvuYpTFCo/w=" + "resolved" "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "string-width" "^2.1.1" + +"wrap-ansi@^2.0.0": + "integrity" "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "string-width" "^1.0.1" + "strip-ansi" "^3.0.1" + +"wrap-ansi@^5.1.0": + "integrity" "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "ansi-styles" "^3.2.0" + "string-width" "^3.0.0" + "strip-ansi" "^5.0.0" + +"wrappy@1": + "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^2.0.0": + "integrity" "sha1-H9Lprh3z51uNjDZ0Q8aS1MqB9IE=" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz" + "version" "2.4.3" + dependencies: + "graceful-fs" "^4.1.11" + "imurmurhash" "^0.1.4" + "signal-exit" "^3.0.2" + +"xdg-basedir@^3.0.0": + "integrity" "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz" + "version" "3.0.0" + +"xmlbuilder@^9.0.7": + "integrity" "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" + "version" "9.0.7" + +"xmlbuilder@8.2.2": + "integrity" "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz" + "version" "8.2.2" + +"xmldom@0.1.x": + "integrity" "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=" + "resolved" "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz" + "version" "0.1.27" + +"y18n@^3.2.1 || ^4.0.0", "y18n@^4.0.0": + "integrity" "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz" + "version" "4.0.0" + +"yallist@^2.1.2": + "integrity" "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + "version" "2.1.2" + +"yallist@^3.0.0", "yallist@^3.0.2", "yallist@^3.0.3": + "integrity" "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz" + "version" "3.0.3" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yargs-parser@^11.1.1": + "integrity" "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz" + "version" "11.1.1" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^13.1.1": + "integrity" "sha1-0mBYUyqgbTZf4JH2ofwGsvfl7KA=" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz" + "version" "13.1.1" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs@^12.0.1": + "integrity" "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz" + "version" "12.0.5" + dependencies: + "cliui" "^4.0.0" + "decamelize" "^1.2.0" + "find-up" "^3.0.0" + "get-caller-file" "^1.0.1" + "os-locale" "^3.0.0" + "require-directory" "^2.1.1" + "require-main-filename" "^1.0.1" + "set-blocking" "^2.0.0" + "string-width" "^2.0.0" + "which-module" "^2.0.0" + "y18n" "^3.2.1 || ^4.0.0" + "yargs-parser" "^11.1.1" + +"yargs@^13.2.2": + "integrity" "sha1-TGV6VeB+Xyz5R/ijZlZ8BKDe3IM=" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz" + "version" "13.3.0" + dependencies: + "cliui" "^5.0.0" + "find-up" "^3.0.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^3.0.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^13.1.1" + +"yauzl@^2.10.0": + "integrity" "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=" + "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + "version" "2.10.0" + dependencies: + "buffer-crc32" "~0.2.3" + "fd-slicer" "~1.1.0" From f19aa612627dffe783c0bfc1a2cfc9426d08713c Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Sun, 24 Oct 2021 20:06:30 +0700 Subject: [PATCH 32/69] Upgrade to Electron 15.2.0 --- app/app.js | 2 +- app/app.xhtml | 4 +- app/index.js | 4 + app/pencil-core/common/controller.js | 77 +++-- app/pencil-core/common/pencil.js | 3 +- app/pencil-core/common/util.js | 12 +- app/pencil-core/propertyType/imageData.js | 4 +- app/tools/capture-services.js | 14 +- app/tools/color-picker-window.js | 4 +- app/tools/screenshot-renderer.js | 22 +- app/views/editors/ColorSelector.js | 36 +-- app/views/menus/CanvasMenu.js | 14 +- app/views/menus/MainMenu.js | 7 +- package-lock.json | 337 ++++++---------------- package.json | 7 +- yarn.lock | 27 +- 16 files changed, 214 insertions(+), 360 deletions(-) diff --git a/app/app.js b/app/app.js index d1d47d3b..e2edeca6 100644 --- a/app/app.js +++ b/app/app.js @@ -1,4 +1,4 @@ -const {clipboard, remote, nativeImage, shell, ipcRenderer, webFrame} = require("electron"); +const {clipboard, nativeImage, shell, ipcRenderer, webFrame} = require("electron"); const _ = require("lodash"); const rimraf = require("rimraf"); diff --git a/app/app.xhtml b/app/app.xhtml index 869a5f60..e9d4f12b 100644 --- a/app/app.xhtml +++ b/app/app.xhtml @@ -198,12 +198,12 @@ - + - + diff --git a/app/index.js b/app/index.js index b31120d7..1aea2b09 100644 --- a/app/index.js +++ b/app/index.js @@ -12,6 +12,9 @@ app.commandLine.appendSwitch("allow-file-access", "1"); app.commandLine.appendSwitch("disable-smooth-scrolling"); app.commandLine.appendSwitch("disable-site-isolation-trials"); +const remoteMain = require("@electron/remote/main"); +remoteMain.initialize(); + // Disable hardware acceleration by default for Linux // TODO: implement a setting for this one and requires a restart after changing that value if (process.platform.trim().toLowerCase() == "linux" && app.disableHardwareAcceleration) { @@ -61,6 +64,7 @@ function createWindow() { mainWindowProperties.icon = path.join(__dirname, iconFile); mainWindow = new BrowserWindow(mainWindowProperties); + remoteMain.enable(mainWindow.webContents) var devEnable = false; if (process.argv.indexOf("--enable-dev") >= 0) { diff --git a/app/pencil-core/common/controller.js b/app/pencil-core/common/controller.js index a04e2935..99028c7b 100644 --- a/app/pencil-core/common/controller.js +++ b/app/pencil-core/common/controller.js @@ -61,7 +61,7 @@ Controller.prototype.confirmAndclose = function (onClose) { this.sayControllerStatusChanged(); ShapeTestCanvasPane._instance.quitTesting(); - + if (StencilCollectionBuilder.activeCollectionInfo) { StencilCollectionBuilder.cleanup(); CollectionManager.reloadActiveBuilderCollection(); @@ -114,7 +114,7 @@ Controller.prototype.findPageByName = function (name) { }; Controller.prototype.newPage = function (options) { if (!options) options = {}; - + var name = options.name || "Untitled Page"; var width = options.width || 100; var height = options.height || 100; @@ -124,7 +124,7 @@ Controller.prototype.newPage = function (options) { var parentPageId = options.parentPageId || null; var activateAfterCreate = options.activateAfterCreate || false; var copyBackgroundLinks = options.copyBackgroundLinks || false; - + var id = Util.newUUID(); var pageFileName = "page_" + id + ".xml"; @@ -196,7 +196,7 @@ Controller.prototype.duplicatePage = function (pageIn, onDone) { name = page.name + " (" + seed + ")"; seed ++; }; - + var options = { name: name, width: width, @@ -327,7 +327,7 @@ Controller.prototype.countResourceReferences = function (page) { Dom.workOn("./p:metadata/p:property", node, function (propNode) { var name = propNode.getAttribute("name"); var value = propNode.textContent; - + if (value && value.match(/^[0-9\,\-]+ref:\/\//)) { var imageData = ImageData.fromString(value); if (!imageData || !imageData.data) { @@ -344,10 +344,10 @@ Controller.prototype.countResourceReferences = function (page) { var holders = result.resources[id] || []; holders.push(node); result.resources[id] = holders; - + return; } - + if (def) { var propDef = def.getProperty(name); @@ -360,7 +360,7 @@ Controller.prototype.countResourceReferences = function (page) { holders.push(node); } result.fontFaces[font.family] = holders; - + return; } } @@ -371,8 +371,8 @@ Controller.prototype.countResourceReferences = function (page) { }; Controller.prototype.findResourceReferences = function (page) { var refs = this.countResourceReferences(page); - - + + return { fontFaces: Object.keys(refs.fontFaces), resourceIds: Object.keys(refs.resources) @@ -470,7 +470,7 @@ Controller.prototype.invalidateContentNode = function (node, onDoneCallback) { Dom.workOn("//svg:g[@p:type='Shape']", node, function (shapeNode) { var defId = shapeNode.getAttributeNS(PencilNamespaces.p, "def"); var def = CollectionManager.shapeDefinition.locateDefinition(defId); - + if (def) { Dom.workOn("./p:metadata/p:property", shapeNode, function (propertyNode) { var name = propertyNode.getAttribute("name"); @@ -485,10 +485,10 @@ Controller.prototype.invalidateContentNode = function (node, onDoneCallback) { // Adhoc invalidation for rasterized image reference from within missing shapes this.invalidateBrokenImageRefs(shapeNode); } - + }); - - + + runNextValidation(onDoneCallback); }; @@ -500,13 +500,13 @@ Controller.prototype.invalidateBrokenImageRefs = function (contentNode) { var filePath = RegExp.$1; if (!filePath.match(/^.*\/refs\/([^\/]+)$/)) return; var refId = RegExp.$1; - + var realFilePath = filePath; if (process.platform == "win32") { realFilePath = filePath.replace(/\//g, "\\"); if (realFilePath.match(/^\\(.*)$/)) realFilePath = RegExp.$1; } - + if (fs.existsSync(realFilePath)) return; var realFilePath = this.refIdToFilePath(refId); if (!fs.existsSync(realFilePath)) return; @@ -841,7 +841,7 @@ Controller.prototype.invalidatePageContent = function (page, callback) { if (callback) callback(); }); - + this.invalidateBrokenImageRefs(page.canvas.drawingLayer); }; Controller.prototype.retrievePageCanvas = function (page, newPage) { @@ -1141,7 +1141,7 @@ Controller.prototype.rasterizeCurrentPage = function (targetPage) { if (!page) { return; } - + var options = {}; if (this.activePage && this.activePage.backgroundColor) { options.backgroundColor = this.activePage.backgroundColor.toRGBString(); @@ -1176,7 +1176,7 @@ Controller.prototype.copyPageBitmap = function (targetPage) { if (!page) { return; } - + var options = {}; if (this.activePage && this.activePage.backgroundColor) { options.backgroundColor = this.activePage.backgroundColor.toRGBString(); @@ -1217,7 +1217,7 @@ Controller.prototype.copyPageBitmap = function (targetPage) { Controller.prototype.rasterizeSelection = function (options) { var target = Pencil.activeCanvas.currentController; if (!target || !target.getGeometry) return; - + if (!options) options = {}; if (this.activePage && this.activePage.backgroundColor) { options.backgroundColor = this.activePage.backgroundColor.toRGBString(); @@ -1227,11 +1227,11 @@ Controller.prototype.rasterizeSelection = function (options) { options.backgroundColor = color; } } - + if (options && options.target == "clipboard") { var tmp = require("tmp"); var filePath = tmp.tmpNameSync(); - + this.applicationPane.rasterizer.rasterizeSelectionToFile(target, filePath, function (p, error) { if (!error) { var image = nativeImage.createFromPath(filePath); @@ -1379,13 +1379,13 @@ Controller.prototype.movePageTo = function (pageId, targetPageId, left) { if (!left) targetIndex ++; list.splice(targetIndex, 0, page); - + //sort the whole tree function assignIndexes(pages, level, parentPage) { pages.forEach(function (page, index) { if (!parentPage && page.parentPage) return; page._tempIndex = (parentPage ? parentPage._tempIndex : 0) + (index + 1) / level; - + if (page.children) assignIndexes(page.children, level * 100, page); }); } @@ -1395,7 +1395,7 @@ Controller.prototype.movePageTo = function (pageId, targetPageId, left) { this.doc.pages.sort(function (p1, p2) { return p1._tempIndex - p2._tempIndex; }); - + this.doc.pages.forEach(function (page) { delete page._tempIndex; }); @@ -1441,7 +1441,7 @@ Controller.prototype.invalidateBitmapFilePath = function (page, invalidatedIds) }; Controller.prototype.updatePageProperties = function (page, options) { if (!options) options = {}; - + var name = options.name || "Untitled Page"; var width = options.width || 100; var height = options.height || 100; @@ -1449,7 +1449,7 @@ Controller.prototype.updatePageProperties = function (page, options) { var backgroundColor = options.backgroundColor || null; var parentPageId = options.parentPageId || null; var copyBackgroundLinks = options.copyBackgroundLinks || false; - + page.name = name; page.backgroundColor = backgroundColor; page.backgroundPageId = backgroundPageId; @@ -1721,10 +1721,10 @@ Config.CAPTURE_INSERT_BITMAP_AS_DEFID = Config.define("capture.insert_bitmap_sha Controller.prototype.handleNewDocumentFromImage = function (filePath) { ImageData.fromExternalToImageData(filePath, function (imageData) { if (!imageData) return; - + var ratio = window.devicePixelRatio || 1; var dim = new Dimension(Math.round(imageData.w / ratio), Math.round(imageData.h / ratio)); - + var options = { name: path.basename(filePath), width: dim.w, @@ -1735,9 +1735,9 @@ Controller.prototype.handleNewDocumentFromImage = function (filePath) { parentPageId: null, activateAfterCreate: true }; - + this.newPage(options); - + var page = this.activePage; var def = CollectionManager.shapeDefinition.locateDefinition(Config.get(Config.CAPTURE_INSERT_BITMAP_AS_DEFID)); @@ -1778,7 +1778,7 @@ Controller.prototype.handleGlobalScreencapture = function (mode) { parentPageId: null, activateAfterCreate: true }; - + this.newPage(options); } else { this.setActiveCanvasSize(imageData.w, imageData.h) @@ -1819,18 +1819,18 @@ Controller.prototype.addColorIntoDocumentPalette = function (color) { if (!this.doc) return; var colors = this.getDocumentColorPalette(); if (typeof(color) == "string") color = Color.fromString(color); - + var found = false; colors.forEach(function (c) { if (c.toString() == color.toString()) { found = true; } }); - + if (found) return; - + colors.push(color); - + this.doc.properties.colorPalette = colors.map(function (c) { return c.toString(); }).join(","); @@ -1840,11 +1840,11 @@ Controller.prototype.removeColorFromDocumentPalette = function (color) { if (!this.doc) return; var colors = this.getDocumentColorPalette(); if (typeof(color) == "string") color = Color.fromString(color); - + colors = colors.filter(function (c) { return c.toString() != color.toString(); }); - + this.doc.properties.colorPalette = colors.map(function (c) { return c.toString(); }).join(","); @@ -1859,7 +1859,6 @@ window.addEventListener("beforeunload", function (event) { return; } - var remote = require("electron").remote; if (remote.app.devEnable) return; if (Controller.ignoreNextClose) { diff --git a/app/pencil-core/common/pencil.js b/app/pencil-core/common/pencil.js index 32021efa..fa16796a 100644 --- a/app/pencil-core/common/pencil.js +++ b/app/pencil-core/common/pencil.js @@ -81,7 +81,7 @@ Pencil.boot = function (event) { if (Pencil.booted) return; debug("BOOT: Initializing Pencil core"); - Pencil.app = require('electron').remote.app; + Pencil.app = require('@electron/remote').app; Pencil.booted = true; Pencil.window = document.documentElement; @@ -178,7 +178,6 @@ Pencil.boot = function (event) { } }; Pencil.handleArguments = function() { - var remote = require('electron').remote; var appArguments = remote.getGlobal('sharedObject').appArguments; console.log("appArguments", appArguments); if (appArguments && appArguments.length > 1) { diff --git a/app/pencil-core/common/util.js b/app/pencil-core/common/util.js index be9ad483..1d7ede19 100644 --- a/app/pencil-core/common/util.js +++ b/app/pencil-core/common/util.js @@ -1,7 +1,7 @@ // Copyright (c) Evolus Solutions. All rights reserved. // License: GPL/MPL // $Id$ - +const remote = require('@electron/remote'); const IS_MAC = process && /^darwin/.test(process.platform); const IS_WIN32 = process && /^win/.test(process.platform); @@ -1756,7 +1756,7 @@ if (typeof(console) == "undefined") { }; } -const DEV_ENABLED = require("electron").remote.app.devEnable ? true : false; +const DEV_ENABLED = remote.app.devEnable ? true : false; function debug() { if (DEV_ENABLED) console.log.apply(console, ["DEBUG>"].concat(Array.prototype.slice.call(arguments))); @@ -2160,9 +2160,9 @@ Util.setupImage = function (image, src, mode, allowUpscale) { image.style.height = "100%"; image.style.opacity = "0"; image.src = src; - + mode = mode || "center-crop"; - + var hp = (mode.indexOf("left") >= 0) ? "left" : ((mode.indexOf("right") >= 0) ? "right" : " center"); var vp = (mode.indexOf("top") >= 0) ? "top" : ((mode.indexOf("bottom") >= 0) ? "bottom" : " center"); image.parentNode.style.backgroundImage = "url('" + src + "')"; @@ -2490,13 +2490,13 @@ PropertyMask.prototype.apply = function (original, newValue) { value[name] = original[name]; } } - + for (var name of this.names) { if (newValue.hasOwnProperty(name)) { value[name] = newValue[name]; } } - + return value; }; diff --git a/app/pencil-core/propertyType/imageData.js b/app/pencil-core/propertyType/imageData.js index 2112a958..7da58706 100644 --- a/app/pencil-core/propertyType/imageData.js +++ b/app/pencil-core/propertyType/imageData.js @@ -362,10 +362,10 @@ ImageData.fromScreenshot = function (callback, providedOptions) { var executer = function (options) { var tmp = require("tmp"); var localPath = tmp.tmpNameSync({postfix: ".png"}); - + console.log("Requested local path: ", localPath); - var win = require("electron").remote.getCurrentWindow(); + var win = remote.getCurrentWindow(); if (options.hidePencil) win.hide(); diff --git a/app/tools/capture-services.js b/app/tools/capture-services.js index d908be98..ea8284b6 100644 --- a/app/tools/capture-services.js +++ b/app/tools/capture-services.js @@ -176,15 +176,15 @@ GenericCmdCaptureService.prototype.buildCommandLine = function (options) { args: [] }; var opt = Config.get(Config.CAPTURE_GENERIC_TOOL_FULLSCREEN_MODE_OPTION); - + if (options.mode == BaseCaptureService.MODE_AREA) { opt = Config.get(Config.CAPTURE_GENERIC_TOOL_AREA_MODE_OPTION); } else if (options.mode == BaseCaptureService.MODE_WINDOW) { opt = Config.get(Config.CAPTURE_GENERIC_TOOL_WINDOW_MODE_OPTION); } - + if (opt) cmd.args.push(opt); - + if (options.outputType == BaseCaptureService.OUTPUT_CLIPBOARD) { opt = Config.get(Config.CAPTURE_GENERIC_TOOL_CLIPBOARD_OUTPUT_OPTION); if (opt) cmd.args.push(opt); @@ -230,7 +230,7 @@ ElectronScreenshotService.prototype = new BaseCmdCaptureService(); ElectronScreenshotService.prototype.capture = function (options) { console.log("options", options); return new Promise(function (resolve, reject) { - const { app, BrowserWindow } = require('electron').remote; + const { app, BrowserWindow } = require('@electron/remote'); const ipcRenderer = require('electron').ipcRenderer; function canvasToFileProcessor(canvas, context) { @@ -244,7 +244,7 @@ ElectronScreenshotService.prototype.capture = function (options) { return filePath; }; - var displays = electron.remote.screen.getAllDisplays(); + var displays = remote.screen.getAllDisplays(); var imageFilePaths = []; var index = -1; @@ -278,7 +278,7 @@ ElectronScreenshotService.prototype.capture = function (options) { }); })(); - var currentWindow = require('electron').remote.getCurrentWindow(); + var currentWindow = remote.getCurrentWindow(); function onFinishedCapturing() { if (options && options.mode == "fullscreen") { @@ -390,7 +390,7 @@ ElectronScreenshotService.prototype.isSupported = function () { function Capturer() {} Capturer.prototype.captureFullScreenData = function (options, callback) { - const {desktopCapturer, remote} = require("electron"); + const {desktopCapturer} = require("electron"); var displays = remote.screen.getAllDisplays(); diff --git a/app/tools/color-picker-window.js b/app/tools/color-picker-window.js index ff3ad1b0..cc76e4f1 100644 --- a/app/tools/color-picker-window.js +++ b/app/tools/color-picker-window.js @@ -22,7 +22,7 @@ function init(requester, message) { var display = displays[0]; - var win = electron.remote.getCurrentWindow(); + var win = remote.getCurrentWindow(); console.log(display); capturer.takeScreenshot({x: display.bounds.x, y: display.bounds.y, width: display.bounds.width, height: display.bounds.height, sourceId: display.id}) @@ -31,7 +31,7 @@ function init(requester, message) { win.show(); window.setTimeout(function () { console.log("Sending back..." + message.messageId); - const BrowserWindow = electron.remote.BrowserWindow; + const BrowserWindow = remote.BrowserWindow; var requesterWindow = BrowserWindow.fromId(message.senderId); requesterWindow.webContents.send(message.messageId, capturedImageURL); }, 100); diff --git a/app/tools/screenshot-renderer.js b/app/tools/screenshot-renderer.js index ef2366de..bf1dd588 100644 --- a/app/tools/screenshot-renderer.js +++ b/app/tools/screenshot-renderer.js @@ -15,15 +15,15 @@ var url = null; function boot() { selectedAreaPane = document.getElementById("selectedAreaPane"); - + if (window.location.href.match(/^[^\?]+\?i=([^&]+)&index=([^&]+)&id=([^&]+)$/)) { url = decodeURIComponent(RegExp.$1); document.body.style.backgroundImage = "url(" + url + ")"; - + index = parseInt(RegExp.$2, 10); parentId = parseInt(RegExp.$3, 10); } - + document.addEventListener("mousedown", function (event) { ox = event.clientX; oy = event.clientY; @@ -33,29 +33,29 @@ function boot() { if (!held) return; x = Math.min(ox, event.clientX); y = Math.min(oy, event.clientY); - + w = Math.abs(ox - event.clientX); h = Math.abs(oy - event.clientY); - + redraw(); }, false); - + document.addEventListener("mouseup", function (event) { held = false; redraw(); - const { app, BrowserWindow } = require('electron').remote; + const { app, BrowserWindow } = require('@electron/remote'); var parentWindow = BrowserWindow.fromId(parentId); parentWindow.webContents.send("region-selected", {x: x, y: y, width: w, height: h, index: index}); }); - + window.addEventListener("keyup", function (event) { if (event.keyCode == 27) { - const { app, BrowserWindow } = require('electron').remote; + const { app, BrowserWindow } = require('@electron/remote'); var parentWindow = BrowserWindow.fromId(parentId); parentWindow.webContents.send("region-canceled", {}); } }, false); - + redraw(); } @@ -64,4 +64,4 @@ function redraw() { selectedAreaPane.style.borderTopWidth = y + "px"; selectedAreaPane.style.borderRightWidth = (selectedAreaPane.offsetWidth - x - w) + "px"; selectedAreaPane.style.borderBottomWidth = (selectedAreaPane.offsetHeight - y - h) + "px"; -} \ No newline at end of file +} diff --git a/app/views/editors/ColorSelector.js b/app/views/editors/ColorSelector.js index 51998f62..a53fe834 100644 --- a/app/views/editors/ColorSelector.js +++ b/app/views/editors/ColorSelector.js @@ -193,14 +193,14 @@ function ColorSelector() { } this.recentlyUsedColor.addEventListener("click", colorListSelectHandler, false); this.documentPaletteContainer.addEventListener("click", colorListSelectHandler, false); - + this.bind("contextmenu", function (event) { var color = Dom.findUpwardForData(event.target, "_color"); if (!color) return; ColorSelector._handlePaletteMenu(thiz, color, event); }, this.documentPaletteContainer); - + this.bind("click", this.pickColor, this.pickerButton); this.bind("click", this.addToPalette, this.addToPaletteButton); } @@ -235,7 +235,7 @@ ColorSelector._handlePaletteMenu = function (thiz, color, event) { } }); } - + ColorSelector._colorToRemove = color; ColorSelector._instanceForMenu = thiz; ColorSelector._paletteMenu.showMenuAt(event.clientX, event.clientY); @@ -354,7 +354,7 @@ ColorSelector.prototype.setupColors = function () { }; ColorSelector.prototype.loadRecentlyUsedColors = function () { var colors = Config.get("gridcolorpicker.recentlyUsedColors", ""); - + this._lastUsedColors = colors; var c = colors.split(","); this.recentlyUsedColors = c; @@ -378,16 +378,16 @@ ColorSelector.prototype.addToPalette = function () { ColorSelector.prototype.loadDocumentColors = function () { Dom.toggleClass(this.documentPalettePane, "NoDocument", Pencil.controller && Pencil.controller.doc ? false : true); if (!Pencil.controller || !Pencil.controller.doc) return; - + Dom.setInnerText(this.paletteTitle, (Pencil.controller.doc.name || "Untitled Document") + " color palette:") - + var colors = Pencil.controller.getDocumentColorPalette(); if (!colors || colors.length == 0) { Dom.addClass(this.documentPalettePane, "Empty"); } else { Dom.removeClass(this.documentPalettePane, "Empty"); } - + Dom.empty(this.documentPaletteContainer); colors.forEach(function (c) { var cell = document.createElement("div"); @@ -538,25 +538,25 @@ ColorSelector.installGlobalListeners = function () { var electron = require("electron"); - var displays = electron.remote.screen.getAllDisplays(); + var displays = remote.screen.getAllDisplays(); if (!displays || displays.length <= 0) { ColorSelector.currentPickerInstance.onColorPickingCanceled(); return; } - + var maxWidth = 0; var maxHeight = 0; displays.forEach(function (d) { maxWidth = Math.max(maxWidth, d.bounds.x + d.bounds.width); maxHeight = Math.max(maxHeight, d.bounds.y + d.bounds.height); }); - + document.body.setAttribute("color-picker-active", "picking"); - + var x = event.screenX; var y = event.screenY; - + new Capturer().captureFullScreenData( { x: 0, @@ -574,7 +574,7 @@ ColorSelector.installGlobalListeners = function () { ColorSelector.currentPickerInstance.onColorPickingCanceled(); return; } - + ColorSelector.currentPickerInstance.onColorPicked(color); ColorSelector.currentPickerInstance = null; }); @@ -621,7 +621,7 @@ ColorSelector.prototype.onColorPicked = function (color) { document.body.removeAttribute("color-picker-active-external"); BaseWidget.closableProcessingDisabled = false; BaseWidget.unregisterClosable(ColorSelector._pickerClosable); - + var a = this.color.a; this.color = Color.fromString(color); this.color.a = a; @@ -643,9 +643,9 @@ ColorSelector.prototype.pickColor = function (event) { this.pickColorUsingElectronCapture(); return; } - + var thiz = this; - + if (event && event.shiftKey) { window.setTimeout(function () { thiz.pickColorUsingExternalTool(externalPickerPath); @@ -656,7 +656,7 @@ ColorSelector.prototype.pickColor = function (event) { }; ColorSelector.prototype.pickColorUsingExternalTool = function (externalPickerPath) { var thiz = this; - + document.body.setAttribute("color-picker-active-external", true); var exec = require("child_process").exec; exec(externalPickerPath, function (error, stdout, stderr) { @@ -678,4 +678,4 @@ ColorSelector.prototype.pickColorUsingElectronCapture = function () { ColorSelector.currentPickerInstance = this; BaseWidget.registerClosable(ColorSelector._pickerClosable); -}; \ No newline at end of file +}; diff --git a/app/views/menus/CanvasMenu.js b/app/views/menus/CanvasMenu.js index 7505f27b..1e1f1b58 100644 --- a/app/views/menus/CanvasMenu.js +++ b/app/views/menus/CanvasMenu.js @@ -235,7 +235,7 @@ CanvasMenu.prototype.setup = function () { Group.openSizingPolicyDialog(Pencil.activeCanvas.currentController); // FIXME: bug } }); - + UICommandManager.register({ key: "insertScreenshotCommand", label: "Insert Screenshot...", @@ -244,12 +244,12 @@ CanvasMenu.prototype.setup = function () { run: function () { ImageData.fromScreenshot(function (imageData, options, error) { if (!imageData) return; - - electron.remote.getCurrentWindow().show(); - electron.remote.getCurrentWindow().focus(); + + remote.getCurrentWindow().show(); + remote.getCurrentWindow().focus(); var def = CollectionManager.shapeDefinition.locateDefinition( - options.useNormalBitmap ? PNGImageXferHelper.SHAPE_DEF_ID : PNGImageXferHelper.SHAPE_DEF_ID_2 + options.useNormalBitmap ? PNGImageXferHelper.SHAPE_DEF_ID : PNGImageXferHelper.SHAPE_DEF_ID_2 ); if (!def) return; @@ -318,9 +318,9 @@ CanvasMenu.prototype.setup = function () { }; this.register(UICommandManager.getCommand("exportSelectionAsPNGButton")); - + this.register(UICommandManager.getCommand("insertScreenshotCommand")); - + this.separator(); this.register({ diff --git a/app/views/menus/MainMenu.js b/app/views/menus/MainMenu.js index 8007da24..f1dc6fe1 100644 --- a/app/views/menus/MainMenu.js +++ b/app/views/menus/MainMenu.js @@ -193,7 +193,7 @@ MainMenu.prototype.setup = function () { new StencilCollectionBuilder(Pencil.controller).build(); } })); - + developerToolSubItems.push(UICommandManager.register({ key: "deployStencilCollection", label: "Deploy Stencil Collection...", @@ -203,7 +203,7 @@ MainMenu.prototype.setup = function () { new StencilCollectionBuilder(Pencil.controller).deploy(); } })); - + developerToolSubItems.push(UICommandManager.register({ key: "checkMissingResources", label: "Check Missing Resources...", @@ -213,7 +213,7 @@ MainMenu.prototype.setup = function () { } })); - + developerToolSubItems.push(Menu.SEPARATOR); developerToolSubItems.push({ @@ -269,7 +269,6 @@ MainMenu.prototype.setup = function () { isValid: function () { return true; }, shortcut: "Ctrl+Q", run: function () { - let remote = require("electron").remote; let currentWindow = remote.getCurrentWindow(); currentWindow.close(); } diff --git a/package-lock.json b/package-lock.json index e2dc123d..125a4236 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,8 +6,11 @@ "": { "name": "Pencil", "hasInstallScript": true, + "dependencies": { + "@electron/remote": "^2.0.1" + }, "devDependencies": { - "electron": "11.5.0", + "electron": "15.2.0", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" @@ -17,7 +20,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz", "integrity": "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==", - "dev": true, "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -39,7 +41,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -56,7 +57,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -68,7 +68,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -90,7 +89,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, "engines": { "node": ">=4" } @@ -99,7 +97,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -108,7 +105,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "dependencies": { "prepend-http": "^2.0.0" }, @@ -116,11 +112,18 @@ "node": ">=4" } }, + "node_modules/@electron/remote": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz", + "integrity": "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==", + "peerDependencies": { + "electron": ">= 10.0.0-beta.1" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, "engines": { "node": ">=6" } @@ -129,7 +132,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "dependencies": { "defer-to-connect": "^1.0.1" }, @@ -138,10 +140,9 @@ } }, "node_modules/@types/node": { - "version": "12.20.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.33.tgz", - "integrity": "sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw==", - "dev": true + "version": "14.17.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.29.tgz", + "integrity": "sha512-sd4CHI9eTJXTH2vF3RGtGkqvWRwhsSSUFsXD4oG38GZzSZ0tNPbWikd2AbOAcKxCXhOg57fL8FPxjpfSzb2pIQ==" }, "node_modules/7zip-bin": { "version": "4.0.2", @@ -449,7 +450,6 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", - "dev": true, "optional": true }, "node_modules/boxen": { @@ -552,7 +552,6 @@ "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, "engines": { "node": "*" } @@ -566,8 +565,7 @@ "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", - "dev": true + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" }, "node_modules/builder-util": { "version": "6.1.3", @@ -630,7 +628,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -648,7 +645,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "dependencies": { "pump": "^3.0.0" }, @@ -663,7 +659,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, "engines": { "node": ">=8" } @@ -813,7 +808,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" } @@ -882,7 +876,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "engines": [ "node >= 0.8" ], @@ -897,7 +890,6 @@ "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, "optional": true, "dependencies": { "ini": "^1.3.4", @@ -931,7 +923,6 @@ "version": "3.18.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==", - "dev": true, "hasInstallScript": true, "optional": true, "funding": { @@ -942,8 +933,7 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "node_modules/create-error-class": { "version": "3.0.2", @@ -1009,7 +999,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -1017,8 +1006,7 @@ "node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "node_modules/decamelize": { "version": "1.2.0", @@ -1033,7 +1021,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -1062,14 +1049,12 @@ "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "optional": true, "dependencies": { "object-keys": "^1.0.12" @@ -1109,7 +1094,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, "optional": true }, "node_modules/dmg-builder": { @@ -1158,8 +1142,7 @@ "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "node_modules/ecc-jsbn": { "version": "0.1.2", @@ -1181,14 +1164,13 @@ } }, "node_modules/electron": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz", - "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", - "dev": true, + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz", + "integrity": "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==", "hasInstallScript": true, "dependencies": { - "@electron/get": "^1.0.1", - "@types/node": "^12.0.12", + "@electron/get": "^1.13.0", + "@types/node": "^14.6.2", "extract-zip": "^1.0.3" }, "bin": { @@ -1508,7 +1490,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, "optional": true, "engines": { "node": ">= 0.8" @@ -1518,7 +1499,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", - "dev": true, "dependencies": { "once": "^1.4.0" } @@ -1527,7 +1507,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, "engines": { "node": ">=6" } @@ -1536,7 +1515,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, "optional": true }, "node_modules/escape-string-regexp": { @@ -1589,7 +1567,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, "dependencies": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -1603,14 +1580,12 @@ "node_modules/extract-zip/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "node_modules/extract-zip/node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "dependencies": { "minimist": "^1.2.5" }, @@ -1643,7 +1618,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, "dependencies": { "pend": "~1.2.0" } @@ -1675,7 +1649,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -1788,7 +1761,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz", "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==", - "dev": true, "optional": true, "dependencies": { "boolean": "^3.0.1", @@ -1807,7 +1779,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "optional": true, "dependencies": { "yallist": "^4.0.0" @@ -1820,7 +1791,6 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "optional": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1836,7 +1806,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, "optional": true }, "node_modules/global-dirs": { @@ -1855,7 +1824,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", - "dev": true, "optional": true, "dependencies": { "encodeurl": "^1.0.2", @@ -1871,7 +1839,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dev": true, "optional": true, "dependencies": { "define-properties": "^1.1.3" @@ -1908,8 +1875,7 @@ "node_modules/graceful-fs": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha1-HB8MNkiCyGj1v/ZRIUYygzahGx0=", - "dev": true + "integrity": "sha1-HB8MNkiCyGj1v/ZRIUYygzahGx0=" }, "node_modules/har-schema": { "version": "2.0.0", @@ -1961,8 +1927,7 @@ "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "node_modules/http-signature": { "version": "1.2.0", @@ -2022,15 +1987,14 @@ "node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "node_modules/ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", - "dev": true, + "devOptional": true, "engines": { "node": "*" } @@ -2147,8 +2111,7 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/isbinaryfile": { "version": "3.0.3", @@ -2196,8 +2159,7 @@ "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "node_modules/json-schema": { "version": "0.2.3", @@ -2215,7 +2177,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "devOptional": true }, "node_modules/json5": { "version": "1.0.1", @@ -2233,7 +2195,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -2257,7 +2218,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "dependencies": { "json-buffer": "3.0.0" } @@ -2309,7 +2269,6 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, "optional": true }, "node_modules/lodash.assign": { @@ -2334,7 +2293,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -2376,7 +2334,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, "optional": true, "dependencies": { "escape-string-regexp": "^4.0.0" @@ -2389,7 +2346,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "optional": true, "engines": { "node": ">=10" @@ -2467,7 +2423,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, "engines": { "node": ">=4" } @@ -2531,8 +2486,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" }, "node_modules/nice-try": { "version": "1.0.5", @@ -2611,7 +2565,6 @@ "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true, "engines": { "node": ">=8" } @@ -2620,7 +2573,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "dev": true, "optional": true, "dependencies": { "config-chain": "^1.1.11", @@ -2685,7 +2637,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "optional": true, "engines": { "node": ">= 0.4" @@ -2695,7 +2646,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -2842,7 +2792,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, "engines": { "node": ">=6" } @@ -2979,8 +2928,7 @@ "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "node_modules/performance-now": { "version": "2.1.0", @@ -2992,7 +2940,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, + "devOptional": true, "engines": { "node": ">=4" } @@ -3038,14 +2986,12 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -3054,7 +3000,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, "optional": true }, "node_modules/pseudomap": { @@ -3073,7 +3018,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3133,7 +3077,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -3147,8 +3090,7 @@ "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/registry-auth-token": { "version": "3.4.0", @@ -3232,7 +3174,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" } @@ -3266,7 +3207,6 @@ "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, "optional": true, "dependencies": { "boolean": "^3.0.1", @@ -3284,7 +3224,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, "optional": true }, "node_modules/rxjs": { @@ -3339,7 +3278,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true, "optional": true }, "node_modules/semver-diff": { @@ -3358,7 +3296,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, "optional": true, "dependencies": { "type-fest": "^0.13.1" @@ -3521,7 +3458,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -3529,8 +3465,7 @@ "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/string-width": { "version": "1.0.2", @@ -3580,7 +3515,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, "dependencies": { "debug": "^4.1.0" }, @@ -3592,7 +3526,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -3670,7 +3603,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, "engines": { "node": ">=6" } @@ -3713,7 +3645,6 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, "optional": true, "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" @@ -3741,7 +3672,6 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, "optional": true, "engines": { "node": ">=10" @@ -3753,8 +3683,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "node_modules/unique-string": { "version": "1.0.0", @@ -3772,7 +3701,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", - "dev": true, "engines": { "node": ">= 4.0.0" } @@ -3837,8 +3765,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/uuid": { "version": "3.3.2", @@ -4026,8 +3953,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write-file-atomic": { "version": "2.4.3", @@ -4177,7 +4103,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -4189,7 +4114,6 @@ "version": "1.13.0", "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz", "integrity": "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==", - "dev": true, "requires": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -4206,7 +4130,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -4215,7 +4138,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -4224,7 +4146,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -4242,46 +4163,46 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, "requires": { "prepend-http": "^2.0.0" } } } }, + "@electron/remote": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz", + "integrity": "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==", + "requires": {} + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, "@types/node": { - "version": "12.20.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.33.tgz", - "integrity": "sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw==", - "dev": true + "version": "14.17.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.29.tgz", + "integrity": "sha512-sd4CHI9eTJXTH2vF3RGtGkqvWRwhsSSUFsXD4oG38GZzSZ0tNPbWikd2AbOAcKxCXhOg57fL8FPxjpfSzb2pIQ==" }, "7zip-bin": { "version": "4.0.2", @@ -4562,7 +4483,6 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", - "dev": true, "optional": true }, "boxen": { @@ -4648,8 +4568,7 @@ "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" }, "buffer-fill": { "version": "1.0.0", @@ -4660,8 +4579,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", - "dev": true + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" }, "builder-util": { "version": "6.1.3", @@ -4723,7 +4641,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -4738,7 +4655,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -4746,8 +4662,7 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" } } }, @@ -4868,7 +4783,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -4925,7 +4839,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -4937,7 +4850,6 @@ "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "dev": true, "optional": true, "requires": { "ini": "^1.3.4", @@ -4968,14 +4880,12 @@ "version": "3.18.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.18.3.tgz", "integrity": "sha512-tReEhtMReZaPFVw7dajMx0vlsz3oOb8ajgPoHVYGxr8ErnZ6PcYEvvmjGmXlfpnxpkYSdOQttjB+MvVbCGfvLw==", - "dev": true, "optional": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "create-error-class": { "version": "3.0.2", @@ -5034,7 +4944,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" }, @@ -5042,8 +4951,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -5057,7 +4965,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, "requires": { "mimic-response": "^1.0.0" } @@ -5080,14 +4987,12 @@ "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, "optional": true, "requires": { "object-keys": "^1.0.12" @@ -5115,7 +5020,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, "optional": true }, "dmg-builder": { @@ -5158,8 +5062,7 @@ "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "ecc-jsbn": { "version": "0.1.2", @@ -5178,13 +5081,12 @@ "dev": true }, "electron": { - "version": "11.5.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz", - "integrity": "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==", - "dev": true, + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz", + "integrity": "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==", "requires": { - "@electron/get": "^1.0.1", - "@types/node": "^12.0.12", + "@electron/get": "^1.13.0", + "@types/node": "^14.6.2", "extract-zip": "^1.0.3" } }, @@ -5448,14 +5350,12 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, "optional": true }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha1-7SljTRm6ukY7bOa4CjchPqtx7EM=", - "dev": true, "requires": { "once": "^1.4.0" } @@ -5463,14 +5363,12 @@ "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, "optional": true }, "escape-string-regexp": { @@ -5510,7 +5408,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "dev": true, "requires": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -5521,14 +5418,12 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "requires": { "minimist": "^1.2.5" } @@ -5557,7 +5452,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "dev": true, "requires": { "pend": "~1.2.0" } @@ -5583,7 +5477,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -5683,7 +5576,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz", "integrity": "sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==", - "dev": true, "optional": true, "requires": { "boolean": "^3.0.1", @@ -5699,7 +5591,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, "optional": true, "requires": { "yallist": "^4.0.0" @@ -5709,7 +5600,6 @@ "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, "optional": true, "requires": { "lru-cache": "^6.0.0" @@ -5719,7 +5609,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, "optional": true } } @@ -5737,7 +5626,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", - "dev": true, "optional": true, "requires": { "encodeurl": "^1.0.2", @@ -5750,7 +5638,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", - "dev": true, "optional": true, "requires": { "define-properties": "^1.1.3" @@ -5778,8 +5665,7 @@ "graceful-fs": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha1-HB8MNkiCyGj1v/ZRIUYygzahGx0=", - "dev": true + "integrity": "sha1-HB8MNkiCyGj1v/ZRIUYygzahGx0=" }, "har-schema": { "version": "2.0.0", @@ -5821,8 +5707,7 @@ "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-signature": { "version": "1.2.0", @@ -5869,14 +5754,13 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", - "dev": true + "devOptional": true }, "invert-kv": { "version": "2.0.0", @@ -5960,8 +5844,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { "version": "3.0.3", @@ -6003,8 +5886,7 @@ "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-schema": { "version": "0.2.3", @@ -6022,7 +5904,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "devOptional": true }, "json5": { "version": "1.0.1", @@ -6037,7 +5919,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -6058,7 +5939,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, "requires": { "json-buffer": "3.0.0" } @@ -6101,7 +5981,6 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, "optional": true }, "lodash.assign": { @@ -6122,8 +6001,7 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=", - "dev": true + "integrity": "sha1-b54wtHCE2XGnyCD/FabFFnt0wm8=" }, "lru-cache": { "version": "5.1.1", @@ -6156,7 +6034,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, "optional": true, "requires": { "escape-string-regexp": "^4.0.0" @@ -6166,7 +6043,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "optional": true } } @@ -6220,8 +6096,7 @@ "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "minimatch": { "version": "3.0.4", @@ -6277,8 +6152,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=" }, "nice-try": { "version": "1.0.5", @@ -6346,14 +6220,12 @@ "normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "dev": true + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-conf": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "dev": true, "optional": true, "requires": { "config-chain": "^1.1.11", @@ -6403,14 +6275,12 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "optional": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -6530,8 +6400,7 @@ "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, "p-defer": { "version": "1.0.0", @@ -6637,8 +6506,7 @@ "pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, "performance-now": { "version": "2.1.0", @@ -6650,7 +6518,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "devOptional": true }, "plist": { "version": "3.0.1", @@ -6686,20 +6554,17 @@ "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", - "dev": true + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=" }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true, "optional": true }, "pseudomap": { @@ -6718,7 +6583,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -6769,7 +6633,6 @@ "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -6783,8 +6646,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -6860,7 +6722,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, "requires": { "lowercase-keys": "^1.0.0" } @@ -6888,7 +6749,6 @@ "version": "2.15.4", "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, "optional": true, "requires": { "boolean": "^3.0.1", @@ -6903,7 +6763,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true, "optional": true } } @@ -6954,7 +6813,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true, "optional": true }, "semver-diff": { @@ -6970,7 +6828,6 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, "optional": true, "requires": { "type-fest": "^0.13.1" @@ -7112,7 +6969,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" }, @@ -7120,8 +6976,7 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, @@ -7161,7 +7016,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, "requires": { "debug": "^4.1.0" }, @@ -7170,7 +7024,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -7229,8 +7082,7 @@ "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, "tough-cookie": { "version": "2.4.3", @@ -7269,7 +7121,6 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, "optional": true }, "tunnel-agent": { @@ -7291,14 +7142,12 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, "optional": true }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "unique-string": { "version": "1.0.0", @@ -7312,8 +7161,7 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", - "dev": true + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" }, "unzip-response": { "version": "2.0.1", @@ -7366,8 +7214,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { "version": "3.3.2", @@ -7519,8 +7366,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write-file-atomic": { "version": "2.4.3", @@ -7646,7 +7492,6 @@ "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "dev": true, "requires": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/package.json b/package.json index 2a8e6b05..54eafccb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "11.5.0", + "electron": "15.2.0", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" @@ -81,5 +81,8 @@ "dist:win32": "./node_modules/.bin/build --windows --ia32 --x64", "dist:osx": "./node_modules/.bin/build --macos" }, - "private": true + "private": true, + "dependencies": { + "@electron/remote": "^2.0.1" + } } diff --git a/yarn.lock b/yarn.lock index ae57d949..8955277e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@electron/get@^1.0.1": +"@electron/get@^1.13.0": "integrity" "sha512-+SjZhRuRo+STTO1Fdhzqnv9D2ZhjxXP6egsJ9kiO8dtP68cDx7dFCwWi64dlMQV7sWcfW1OYCW4wviEBzmRsfQ==" "resolved" "https://registry.npmjs.org/@electron/get/-/get-1.13.0.tgz" "version" "1.13.0" @@ -18,6 +18,11 @@ "global-agent" "^2.0.2" "global-tunnel-ng" "^2.7.1" +"@electron/remote@^2.0.1": + "integrity" "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==" + "resolved" "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz" + "version" "2.0.1" + "@sindresorhus/is@^0.14.0": "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" @@ -30,10 +35,10 @@ dependencies: "defer-to-connect" "^1.0.1" -"@types/node@^12.0.12": - "integrity" "sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-12.20.33.tgz" - "version" "12.20.33" +"@types/node@^14.6.2": + "integrity" "sha512-sd4CHI9eTJXTH2vF3RGtGkqvWRwhsSSUFsXD4oG38GZzSZ0tNPbWikd2AbOAcKxCXhOg57fL8FPxjpfSzb2pIQ==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-14.17.29.tgz" + "version" "14.17.29" "7zip-bin@~4.0.2": "integrity" "sha512-XtGk+IF57pr852UK1AhQJXqmm1WmSgS5uISL+LPs0z/iAxXouMvdlLJrHPeukP6gd7yR2rDTMSMkHNODgwIq7A==" @@ -725,13 +730,13 @@ "spawn-rx" "^3.0.0" "yargs" "^13.2.2" -"electron@11.5.0": - "integrity" "sha512-WjNDd6lGpxyiNjE3LhnFCAk/D9GIj1rU3GSDealVShhkkkPR3Vh4q8ErXGDl1OAO/faomVa10KoFPUN/pLbNxg==" - "resolved" "https://registry.npmjs.org/electron/-/electron-11.5.0.tgz" - "version" "11.5.0" +"electron@>= 10.0.0-beta.1", "electron@15.2.0": + "integrity" "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==" + "resolved" "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz" + "version" "15.2.0" dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" + "@electron/get" "^1.13.0" + "@types/node" "^14.6.2" "extract-zip" "^1.0.3" "emoji-regex@^7.0.1": From 610eabce8d75d557b3991da8d172232160b9e2cf Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 25 Oct 2021 23:32:32 +0700 Subject: [PATCH 33/69] Rasterizer: fix page capturing for Electron 15 --- app/pencil-core/common/renderer.js | 101 +++++++++++++++--------- app/pencil-core/common/svgRasterizer.js | 32 ++++---- 2 files changed, 80 insertions(+), 53 deletions(-) diff --git a/app/pencil-core/common/renderer.js b/app/pencil-core/common/renderer.js index 32d4e433..2503166d 100644 --- a/app/pencil-core/common/renderer.js +++ b/app/pencil-core/common/renderer.js @@ -79,11 +79,12 @@ module.exports = function () { var svg = data.svg; var delay = 50; - console.log("data.scale", data.scale); var scale = typeof(data.scale) == "number" ? data.scale : 1; - + var bgColor = (data.options && data.options.backgroundColor) ? data.options.backgroundColor : "transparent"; - + + var uuid = "task_" + (new Date().getTime()) + "_" + Math.round(100000 * Math.random()); + var extraCSS = ` body { background-color: ${bgColor} !important; @@ -95,47 +96,52 @@ module.exports = function () { line-height: 1.428; } ` + fontFaceCSS; - + //path - svg = '\n' - + '\n' - + '\n' - + '\n' - + '\n' - + '\n' - + '\n' - + svg - + '\n' - + '\n'; - fs.writeFileSync(path, svg, "utf8"); + var content = ` + + + + + + + ${svg} + + `; + fs.writeFileSync(path, content, "utf8"); rendererWindow.setSize(Math.round(data.width * scale), Math.round(data.height * scale), false); var url = "file://" + path; + rendererWindow.loadURL(url); var capturePendingTaskId = null; currentRenderHandler = function (renderedEvent, renderedData) { + if (renderedData.uuid != uuid) { + return; + } capturePendingTaskId = null; if (data.options && data.options.linksOnly) { cleanupCallback(); @@ -143,17 +149,31 @@ module.exports = function () { event.sender.send(data.id, {url: "", objectsWithLinking: renderedData.objectsWithLinking}); __callback(); } else { - rendererWindow.capturePage().then(function (nativeImage) { + rendererWindow.webContents.capturePage().then(function (nativeImage) { var dataURL = nativeImage.toDataURL(); cleanupCallback(); currentRenderHandler = null; event.sender.send(data.id, {url: dataURL, objectsWithLinking: renderedData.objectsWithLinking}); __callback(); + }).catch(function (e) { + console.error(e); }); } }; + // rendererWindow.webContents.on("paint", (paintEvent, dirty, nativeImage) => { + // console.log("Got paint event"); + // var dataURL = nativeImage.toDataURL(); + // + // console.log("Clean up called for " + path); + // cleanupCallback(); + // currentRenderHandler = null; + // console.log("Returning rasterized data..."); + // event.sender.send(data.id, {url: dataURL, objectsWithLinking: []}); + // __callback(); + // }); + }); }; } @@ -177,15 +197,22 @@ module.exports = function () { autoHideMenuBar: true, transparent: true, webPreferences: { + offscreen: true, webSecurity: false, allowRunningInsecureContent: true, allowDisplayingInsecureContent: true, defaultEncoding: "UTF-8", - nodeIntegration: true + nodeIntegration: true, + contextIsolation: false, + enableRemoteModule: true } }); // rendererWindow.webContents.openDevTools(); + rendererWindow.webContents.on("did-finish-load", function () { + rendererWindow.webContents.send("webcontent-did-load", {}); + }); + queueHandler.tasks = []; if (!initialized) { @@ -208,7 +235,7 @@ module.exports = function () { console.log("RENDERER re-started."); } rendererWindow.loadURL("about:blank"); - + initialized = true; } function initOutProcessCanvasBasedRenderer() { diff --git a/app/pencil-core/common/svgRasterizer.js b/app/pencil-core/common/svgRasterizer.js index f7a5b1a2..bbeda177 100644 --- a/app/pencil-core/common/svgRasterizer.js +++ b/app/pencil-core/common/svgRasterizer.js @@ -20,7 +20,7 @@ Rasterizer.prototype.getImageDataFromUrl = function (url, callback) { }; Rasterizer.ipcBasedBackend = { - TIME_OUT: 10000, + TIME_OUT: 15000, pendingWorkMap: {}, init: function () { ipcRenderer.send("render-init", {}); @@ -44,7 +44,7 @@ Rasterizer.ipcBasedBackend = { // if (scale != 1) { // svgNode.setAttribute("width", w + "px"); // svgNode.setAttribute("height", h + "px"); - // + // // svgNode.setAttribute("viewBox", "0 0 " + width + " " + height); // } @@ -52,16 +52,16 @@ Rasterizer.ipcBasedBackend = { ipcRenderer.send("render-request", {svg: xml, width: w, height: h, scale: scale, id: id, processLinks: parseLinks, options: options}); var work = {}; - work.timeoutId = window.setTimeout(function () { - var work = Rasterizer.ipcBasedBackend.pendingWorkMap[id]; - if (!work) return; - callback(""); - delete Rasterizer.ipcBasedBackend.pendingWorkMap[id]; - - console.log("Rasterizer seems to be crashed, restarting now!!!"); - ipcRenderer.send("render-restart", {}); - - }, Rasterizer.ipcBasedBackend.TIME_OUT); + // work.timeoutId = window.setTimeout(function () { + // var work = Rasterizer.ipcBasedBackend.pendingWorkMap[id]; + // if (!work) return; + // callback(""); + // delete Rasterizer.ipcBasedBackend.pendingWorkMap[id]; + // + // console.log("Rasterizer seems to be crashed, restarting now!!!"); + // ipcRenderer.send("render-restart", {}); + // + // }, Rasterizer.ipcBasedBackend.TIME_OUT); Rasterizer.ipcBasedBackend.pendingWorkMap[id] = work; } @@ -189,7 +189,7 @@ Rasterizer.inProcessFileCanvasBasedBackend = { } } } - + var tempFile = tmp.fileSync({postfix: ".svg" }); fs.writeFileSync(tempFile.name, Controller.serializer.serializeToString(svgNode), XMLDocumentPersister.CHARSET); @@ -221,7 +221,7 @@ Rasterizer.inProcessFileCanvasBasedBackend = { img.setAttribute("crossorigin", "anonymous"); img.setAttribute("style", "display: none;"); document.body.appendChild(img); - + img.setAttribute("src", "file://" + tempFile.name); } }; @@ -252,7 +252,7 @@ Rasterizer.prototype.rasterizePageToUrl = function (page, callback, scale, parse g.appendChild(svg.removeChild(svg.firstChild)); } svg.appendChild(g); - + w -= 2 * m; h -= 2 * m; svg.setAttribute("width", w); @@ -348,7 +348,7 @@ Rasterizer.prototype.rasterizePageToFile = function (page, filePath, callback, s }; Rasterizer.getExportScale = function (inputScale) { if (typeof(inputScale) == "number") return inputScale; - + var configScale = Config.get(Config.EXPORT_DEFAULT_SCALE, 1.0); if (typeof(configScale) == "number") { return configScale; From 9908b22ff4ace5755fd989850a218ec15ba622b5 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Sun, 31 Oct 2021 21:39:24 +0700 Subject: [PATCH 34/69] Add @electron/remote --- app/package-lock.json | 1381 +++++++++++++++++++++++++++++++++++++++-- app/package.json | 1 + app/yarn.lock | 1005 ++++++++++++++++++++++++++++-- 3 files changed, 2282 insertions(+), 105 deletions(-) diff --git a/app/package-lock.json b/app/package-lock.json index ee5690e4..e484c669 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -9,6 +9,7 @@ "version": "3.1.0", "license": "GPL2", "dependencies": { + "@electron/remote": "^2.0.1", "adm-zip": "^0.4.7", "archive-type": "^4.0.0", "archiver": "^3.0.0", @@ -44,6 +45,82 @@ "regenerator-runtime": "^0.13.2" } }, + "node_modules/@electron/get": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz", + "integrity": "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==", + "peer": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=8.6" + }, + "optionalDependencies": { + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1" + } + }, + "node_modules/@electron/get/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@electron/get/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@electron/get/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/remote": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz", + "integrity": "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==", + "peerDependencies": { + "electron": ">= 10.0.0-beta.1" + } + }, "node_modules/@jimp/bmp": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz", @@ -429,6 +506,33 @@ "core-js": "^2.5.7" } }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "peer": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@types/node": { + "version": "14.17.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz", + "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==", + "peer": true + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -555,11 +659,6 @@ "node": "*" } }, - "node_modules/archiver-utils/node_modules/graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" - }, "node_modules/archiver/node_modules/bl": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", @@ -683,11 +782,6 @@ "lodash": "^4.17.14" } }, - "node_modules/async/node_modules/lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -765,6 +859,13 @@ "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" }, + "node_modules/boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", + "optional": true, + "peer": true + }, "node_modules/boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -854,6 +955,58 @@ "node": ">=0.10.0" } }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "peer": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", @@ -990,6 +1143,15 @@ "node": ">=0.8" } }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "peer": true, + "dependencies": { + "mimic-response": "^1.0.0" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -1094,6 +1256,32 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "optional": true, + "peer": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -1256,6 +1444,18 @@ "node": ">=4" } }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "peer": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/decompress-tar": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", @@ -1353,6 +1553,12 @@ "node": ">=0.8" } }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "peer": true + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -1398,11 +1604,24 @@ "node": ">=0.10" } }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true, + "peer": true + }, "node_modules/dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" }, + "node_modules/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "peer": true + }, "node_modules/easy-zip2": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/easy-zip2/-/easy-zip2-3.0.0.tgz", @@ -1421,11 +1640,6 @@ "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==" }, - "node_modules/easy-zip2/node_modules/graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" - }, "node_modules/ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", @@ -1435,6 +1649,24 @@ "jsbn": "~0.1.0" } }, + "node_modules/electron": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-15.3.0.tgz", + "integrity": "sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg==", + "hasInstallScript": true, + "peer": true, + "dependencies": { + "@electron/get": "^1.13.0", + "@types/node": "^14.6.2", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, "node_modules/electron-is-dev": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz", @@ -1515,6 +1747,16 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/end-of-stream": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", @@ -1523,6 +1765,15 @@ "once": "^1.4.0" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -1580,6 +1831,13 @@ "node": ">= 0.4" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "optional": true, + "peer": true + }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1611,6 +1869,39 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, + "node_modules/extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "peer": true, + "dependencies": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + } + }, + "node_modules/extract-zip/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "peer": true + }, + "node_modules/extract-zip/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "peer": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -1632,9 +1923,9 @@ "devOptional": true }, "node_modules/fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "dependencies": { "pend": "~1.2.0" } @@ -1837,14 +2128,121 @@ "process": "~0.5.1" } }, - "node_modules/graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "optional": true, + "peer": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, "engines": { - "node": ">=0.4.0" + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "optional": true, + "peer": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "optional": true, + "peer": true, + "dependencies": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + }, + "engines": { + "node": ">=0.10" } }, + "node_modules/globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "optional": true, + "peer": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "peer": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/got/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, "node_modules/graceful-readlink": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", @@ -1934,6 +2332,12 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "peer": true + }, "node_modules/http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", @@ -1995,6 +2399,13 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "optional": true, + "peer": true + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2155,6 +2566,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "peer": true + }, "node_modules/json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -2250,6 +2667,15 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "peer": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, "node_modules/lazy-val": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", @@ -2551,9 +2977,9 @@ } }, "node_modules/lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash.assign": { "version": "4.2.0", @@ -2615,6 +3041,35 @@ "node": ">=0.10.0" } }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "peer": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-cache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true, + "peer": true + }, "node_modules/make-dir": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", @@ -2642,6 +3097,32 @@ "node": ">=0.10.0" } }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "optional": true, + "peer": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/md5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", @@ -2716,6 +3197,15 @@ "node": ">=4" } }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -3093,6 +3583,39 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "optional": true, + "peer": true, + "dependencies": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-conf/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "optional": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -3246,6 +3769,15 @@ "os-tmpdir": "^1.0.0" } }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/p-limit": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", @@ -3416,6 +3948,15 @@ "node": ">=4.0.0" } }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "peer": true, + "engines": { + "node": ">=4" + } + }, "node_modules/pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", @@ -3444,6 +3985,15 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/progress-stream": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", @@ -3462,6 +4012,13 @@ "asap": "~2.0.3" } }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "optional": true, + "peer": true + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -3620,6 +4177,15 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "peer": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, "node_modules/restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -3644,6 +4210,31 @@ "rimraf": "bin.js" } }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "optional": true, + "peer": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true, + "peer": true + }, "node_modules/rxjs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", @@ -3686,6 +4277,29 @@ "semver": "bin/semver" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "optional": true, + "peer": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "optional": true, + "peer": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -3897,6 +4511,41 @@ "node": ">=0.10.0" } }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "peer": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/sumchecker/node_modules/debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/sumchecker/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -4063,7 +4712,16 @@ "os-tmpdir": "~1.0.2" }, "engines": { - "node": ">=0.6.0" + "node": ">=0.6.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "peer": true, + "engines": { + "node": ">=6" } }, "node_modules/tough-cookie": { @@ -4091,6 +4749,16 @@ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -4108,6 +4776,25 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "peer": true + }, "node_modules/unbzip2-stream": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", @@ -4143,6 +4830,18 @@ "node": ">=6" } }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "peer": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/utif": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", @@ -4441,12 +5140,12 @@ } }, "node_modules/yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "dependencies": { "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.0.1" + "fd-slicer": "~1.1.0" } }, "node_modules/zip-stream": { @@ -4499,6 +5198,63 @@ "regenerator-runtime": "^0.13.2" } }, + "@electron/get": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz", + "integrity": "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==", + "peer": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^3.0.0", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "peer": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "peer": true + } + } + }, + "@electron/remote": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz", + "integrity": "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==", + "requires": {} + }, "@jimp/bmp": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz", @@ -4799,6 +5555,27 @@ "core-js": "^2.5.7" } }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "peer": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "peer": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/node": { + "version": "14.17.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz", + "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==", + "peer": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -4968,11 +5745,6 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } - }, - "graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" } } }, @@ -5021,13 +5793,6 @@ "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { "lodash": "^4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - } } }, "asynckit": { @@ -5098,6 +5863,13 @@ "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" }, + "boolean": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", + "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", + "optional": true, + "peer": true + }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", @@ -5171,6 +5943,48 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "peer": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "peer": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", @@ -5276,6 +6090,15 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "peer": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -5363,6 +6186,29 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "peer": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "optional": true, + "peer": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -5501,6 +6347,15 @@ "strip-dirs": "^2.0.0" } }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "peer": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, "decompress-tar": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", @@ -5582,6 +6437,12 @@ } } }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "peer": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -5614,11 +6475,24 @@ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", "dev": true }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true, + "peer": true + }, "dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "peer": true + }, "easy-zip2": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/easy-zip2/-/easy-zip2-3.0.0.tgz", @@ -5633,11 +6507,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==" - }, - "graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" } } }, @@ -5650,6 +6519,17 @@ "jsbn": "~0.1.0" } }, + "electron": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-15.3.0.tgz", + "integrity": "sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg==", + "peer": true, + "requires": { + "@electron/get": "^1.13.0", + "@types/node": "^14.6.2", + "extract-zip": "^1.0.3" + } + }, "electron-is-dev": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz", @@ -5724,6 +6604,13 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "optional": true, + "peer": true + }, "end-of-stream": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", @@ -5732,6 +6619,12 @@ "once": "^1.4.0" } }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "peer": true + }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", @@ -5779,6 +6672,13 @@ "is-symbol": "^1.0.2" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "optional": true, + "peer": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -5800,6 +6700,35 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "peer": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "peer": true + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "peer": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -5818,9 +6747,9 @@ "devOptional": true }, "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", "requires": { "pend": "~1.2.0" } @@ -5989,10 +6918,100 @@ "process": "~0.5.1" } }, + "global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "optional": true, + "peer": true, + "requires": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "optional": true, + "peer": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "optional": true, + "peer": true, + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "optional": true, + "peer": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "peer": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "dependencies": { + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "peer": true, + "requires": { + "pump": "^3.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "peer": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "graceful-readlink": { "version": "1.0.1", @@ -6059,6 +7078,12 @@ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "peer": true + }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", @@ -6107,6 +7132,13 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "optional": true, + "peer": true + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -6240,6 +7272,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "optional": true }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "peer": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", @@ -6330,6 +7368,15 @@ } } }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "peer": true, + "requires": { + "json-buffer": "3.0.0" + } + }, "lazy-val": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", @@ -6572,9 +7619,9 @@ } }, "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "lodash.assign": { "version": "4.2.0", @@ -6630,6 +7677,31 @@ "signal-exit": "^3.0.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "peer": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "peer": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true, + "peer": true + } + } + }, "make-dir": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", @@ -6650,6 +7722,25 @@ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "optional": true, + "peer": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "optional": true, + "peer": true + } + } + }, "md5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", @@ -6708,6 +7799,12 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "peer": true + }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -7018,6 +8115,32 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=" }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "peer": true + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "optional": true, + "peer": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "optional": true, + "peer": true + } + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -7145,6 +8268,12 @@ "os-tmpdir": "^1.0.0" } }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "peer": true + }, "p-limit": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", @@ -7279,6 +8408,12 @@ "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "peer": true + }, "pretty-bytes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz", @@ -7298,6 +8433,12 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "peer": true + }, "progress-stream": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", @@ -7316,6 +8457,13 @@ "asap": "~2.0.3" } }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "optional": true, + "peer": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -7448,6 +8596,15 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "peer": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -7466,6 +8623,30 @@ "glob": "^7.0.5" } }, + "roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "optional": true, + "peer": true, + "requires": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "optional": true, + "peer": true + } + } + }, "rxjs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", @@ -7498,6 +8679,23 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "optional": true, + "peer": true + }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "optional": true, + "peer": true, + "requires": { + "type-fest": "^0.13.1" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -7670,6 +8868,32 @@ "get-stdin": "^4.0.1" } }, + "sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "peer": true, + "requires": { + "debug": "^4.1.0" + }, + "dependencies": { + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "peer": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "peer": true + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -7819,6 +9043,12 @@ "os-tmpdir": "~1.0.2" } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "peer": true + }, "tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", @@ -7838,6 +9068,13 @@ "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "optional": true, + "peer": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -7852,6 +9089,19 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "optional": true }, + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true, + "peer": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "peer": true + }, "unbzip2-stream": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz", @@ -7883,6 +9133,15 @@ } } }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "peer": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, "utif": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", @@ -8137,12 +9396,12 @@ } }, "yauzl": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", - "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", "requires": { "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.0.1" + "fd-slicer": "~1.1.0" } }, "zip-stream": { diff --git a/app/package.json b/app/package.json index 9e5a67f1..4b508a72 100644 --- a/app/package.json +++ b/app/package.json @@ -40,6 +40,7 @@ "drawing" ], "dependencies": { + "@electron/remote": "^2.0.1", "adm-zip": "^0.4.7", "archive-type": "^4.0.0", "archiver": "^3.0.0", diff --git a/app/yarn.lock b/app/yarn.lock index 8252c2ec..c56fcebd 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -10,6 +10,27 @@ "core-js" "^2.6.5" "regenerator-runtime" "^0.13.2" +"@electron/get@^1.13.0": + "integrity" "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==" + "resolved" "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz" + "version" "1.13.1" + dependencies: + "debug" "^4.1.1" + "env-paths" "^2.2.0" + "fs-extra" "^8.1.0" + "got" "^9.6.0" + "progress" "^2.0.3" + "semver" "^6.2.0" + "sumchecker" "^3.0.1" + optionalDependencies: + "global-agent" "^3.0.0" + "global-tunnel-ng" "^2.7.1" + +"@electron/remote@^2.0.1": + "integrity" "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==" + "resolved" "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz" + "version" "2.0.1" + "@jimp/bmp@^0.6.4": "integrity" "sha512-dhKM7Cjw4XoOefx3/we2+vWyTP6hQPpM7mEsziGjtsrK2f/e3/+hhHbEsQNgO9BOA1FPJRXAOiYHts9IlMH1mg==" "resolved" "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz" @@ -262,6 +283,28 @@ dependencies: "core-js" "^2.5.7" +"@sindresorhus/is@^0.14.0": + "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" + "version" "0.14.0" + +"@szmarczak/http-timer@^1.1.2": + "integrity" "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==" + "resolved" "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "defer-to-connect" "^1.0.1" + +"@types/node@^14.6.2": + "integrity" "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz" + "version" "14.17.32" + +"abbrev@1": + "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "version" "1.1.1" + "adm-zip@^0.4.7": "integrity" "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=" "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz" @@ -290,11 +333,28 @@ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" "version" "2.1.1" +"ansi-regex@^4.1.0": + "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + "version" "4.1.0" + +"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + "any-base@^1.1.0": "integrity" "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" "resolved" "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" "version" "1.1.0" +"aproba@^1.0.3": + "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + "version" "1.2.0" + "archive-type@^4.0.0": "integrity" "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=" "resolved" "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz" @@ -331,6 +391,14 @@ "tar-stream" "^2.1.0" "zip-stream" "^2.1.2" +"are-we-there-yet@~1.1.2": + "integrity" "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==" + "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "delegates" "^1.0.0" + "readable-stream" "^2.0.6" + "argparse@^1.0.7": "integrity" "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=" "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" @@ -470,6 +538,11 @@ "resolved" "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz" "version" "0.1.0" +"boolean@^3.0.1": + "integrity" "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==" + "resolved" "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz" + "version" "3.1.4" + "boom@2.x.x": "integrity" "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" "resolved" "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" @@ -540,6 +613,19 @@ "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" "version" "1.1.1" +"cacheable-request@^6.0.0": + "integrity" "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==" + "resolved" "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "clone-response" "^1.0.2" + "get-stream" "^5.1.0" + "http-cache-semantics" "^4.0.0" + "keyv" "^3.0.0" + "lowercase-keys" "^2.0.0" + "normalize-url" "^4.1.0" + "responselike" "^1.0.2" + "camelcase-keys@^2.0.0": "integrity" "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=" "resolved" "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz" @@ -553,11 +639,25 @@ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" "version" "2.1.1" +"camelcase@^5.0.0": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + "caseless@~0.12.0": "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" "version" "0.12.0" +"chalk@^2.0.1", "chalk@^2.4.2": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + "charenc@~0.0.1": "integrity" "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" "resolved" "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" @@ -568,6 +668,44 @@ "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz" "version" "1.0.1" +"chownr@^1.1.1": + "integrity" "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz" + "version" "1.1.2" + +"cli-cursor@^2.1.0": + "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "restore-cursor" "^2.0.0" + +"cli-spinners@^2.0.0": + "integrity" "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz" + "version" "2.2.0" + +"cliui@^5.0.0": + "integrity" "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "string-width" "^3.1.0" + "strip-ansi" "^5.2.0" + "wrap-ansi" "^5.1.0" + +"clone-response@^1.0.2": + "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" + "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "mimic-response" "^1.0.0" + +"clone@^1.0.2": + "integrity" "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + "version" "1.0.4" + "clone@^2.1.2": "integrity" "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" @@ -583,6 +721,23 @@ "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" "version" "1.1.0" +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"colors@^1.3.3": + "integrity" "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" + "resolved" "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz" + "version" "1.3.3" + "combined-stream@^1.0.5", "combined-stream@^1.0.6", "combined-stream@~1.0.5", "combined-stream@~1.0.6": "integrity" "sha1-cj599ugBrFYTETp+RFqbactjKBg=" "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz" @@ -612,6 +767,29 @@ "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" "version" "0.0.1" +"concat-stream@^1.6.2": + "integrity" "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==" + "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + "version" "1.6.2" + dependencies: + "buffer-from" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^2.2.2" + "typedarray" "^0.0.6" + +"config-chain@^1.1.11": + "integrity" "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==" + "resolved" "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz" + "version" "1.1.13" + dependencies: + "ini" "^1.3.4" + "proto-list" "~1.2.1" + +"console-control-strings@^1.0.0", "console-control-strings@~1.1.0": + "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + "version" "1.1.0" + "core-js@^2.5.7", "core-js@^2.6.5": "integrity" "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz" @@ -663,7 +841,7 @@ dependencies: "assert-plus" "^1.0.0" -"debug@^2.1.3": +"debug@^2.1.3", "debug@^2.5.1", "debug@^2.6.9": "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" "version" "2.6.9" @@ -677,11 +855,25 @@ dependencies: "ms" "^2.1.1" -"decamelize@^1.1.2": +"debug@^4.1.1": + "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "ms" "2.1.2" + +"decamelize@^1.1.2", "decamelize@^1.2.0": "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" "version" "1.2.0" +"decompress-response@^3.3.0": + "integrity" "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=" + "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz" + "version" "3.3.0" + dependencies: + "mimic-response" "^1.0.0" + "decompress-tar@^4.0.0", "decompress-tar@^4.1.0", "decompress-tar@^4.1.1": "integrity" "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==" "resolved" "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz" @@ -735,6 +927,18 @@ "pify" "^2.3.0" "strip-dirs" "^2.0.0" +"defaults@^1.0.3": + "integrity" "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=" + "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "clone" "^1.0.2" + +"defer-to-connect@^1.0.1": + "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" + "version" "1.1.3" + "define-properties@^1.1.3": "integrity" "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==" "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz" @@ -747,11 +951,31 @@ "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" "version" "1.0.0" +"delegates@^1.0.0": + "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + "version" "1.0.0" + +"detect-libc@^1.0.3": + "integrity" "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + "version" "1.0.3" + +"detect-node@^2.0.4": + "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" + "version" "2.1.0" + "dom-walk@^0.1.0": "integrity" "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" "resolved" "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" "version" "0.1.1" +"duplexer3@^0.1.4": + "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" + "version" "0.1.4" + "easy-zip2@^3.0.0": "integrity" "sha512-dGEPoJJcVUiVw0LZXBKLvuaUF+lU5N7bK1tzhhQiYLYFLfGE0XpV8xhWKw956kLwBNBC0dw7RTJLdR8Ehpf52A==" "resolved" "https://registry.npmjs.org/easy-zip2/-/easy-zip2-3.0.0.tgz" @@ -778,6 +1002,21 @@ "resolved" "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz" "version" "2.2.17" +"electron-rebuild@^1.8.5": + "integrity" "sha512-gDwRA3utfiPnFwBZ1z8M4SEMwsdsy6Bg4VGO2ohelMOIO0vxiCrDQ/FVdLk3h2g7fLb06QFUsQU+86jiTSmZxw==" + "resolved" "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz" + "version" "1.8.5" + dependencies: + "colors" "^1.3.3" + "debug" "^4.1.1" + "detect-libc" "^1.0.3" + "fs-extra" "^7.0.1" + "node-abi" "^2.8.0" + "node-gyp" "^4.0.0" + "ora" "^3.4.0" + "spawn-rx" "^3.0.0" + "yargs" "^13.2.2" + "electron-updater@^3.1.2": "integrity" "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==" "resolved" "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz" @@ -794,6 +1033,25 @@ "semver" "^5.6.0" "source-map-support" "^0.5.9" +"electron@>= 10.0.0-beta.1": + "integrity" "sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg==" + "resolved" "https://registry.npmjs.org/electron/-/electron-15.3.0.tgz" + "version" "15.3.0" + dependencies: + "@electron/get" "^1.13.0" + "@types/node" "^14.6.2" + "extract-zip" "^1.0.3" + +"emoji-regex@^7.0.1": + "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + "version" "7.0.3" + +"encodeurl@^1.0.2": + "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + "end-of-stream@^1.0.0", "end-of-stream@^1.1.0": "integrity" "sha1-epDYM+/abPpurA9JSduw+tOmMgY=" "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz" @@ -808,6 +1066,11 @@ dependencies: "once" "^1.4.0" +"env-paths@^2.2.0": + "integrity" "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + "resolved" "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + "version" "2.2.1" + "errno@^0.1.1": "integrity" "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=" "resolved" "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz" @@ -843,6 +1106,21 @@ "is-date-object" "^1.0.1" "is-symbol" "^1.0.2" +"es6-error@^4.1.1": + "integrity" "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + "resolved" "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" + "version" "4.1.1" + +"escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^4.0.0": + "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + "version" "4.0.0" + "esprima@^4.0.0": "integrity" "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" @@ -863,6 +1141,16 @@ "resolved" "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" "version" "3.0.2" +"extract-zip@^1.0.3": + "integrity" "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==" + "resolved" "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz" + "version" "1.7.0" + dependencies: + "concat-stream" "^1.6.2" + "debug" "^2.6.9" + "mkdirp" "^0.5.4" + "yauzl" "^2.10.0" + "extsprintf@^1.2.0", "extsprintf@1.3.0": "integrity" "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" "resolved" "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" @@ -878,10 +1166,10 @@ "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" "version" "2.0.0" -"fd-slicer@~1.0.1": - "integrity" "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=" - "resolved" "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz" - "version" "1.0.1" +"fd-slicer@~1.1.0": + "integrity" "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=" + "resolved" "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" + "version" "1.1.0" dependencies: "pend" "~1.2.0" @@ -918,6 +1206,13 @@ "path-exists" "^2.0.0" "pinkie-promise" "^2.0.0" +"find-up@^3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + "for-each@^0.3.3": "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" @@ -970,6 +1265,22 @@ "jsonfile" "^4.0.0" "universalify" "^0.1.0" +"fs-extra@^8.1.0": + "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-minipass@^1.2.5": + "integrity" "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==" + "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz" + "version" "1.2.6" + dependencies: + "minipass" "^2.2.1" + "fs.realpath@^1.0.0": "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -1000,6 +1311,25 @@ "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" "version" "1.1.1" +"gauge@~2.7.3": + "integrity" "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" + "resolved" "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" + "version" "2.7.4" + dependencies: + "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" + +"get-caller-file@^2.0.1": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + "get-stdin@^4.0.1": "integrity" "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" @@ -1013,6 +1343,20 @@ "object-assign" "^4.0.1" "pinkie-promise" "^2.0.0" +"get-stream@^4.1.0": + "integrity" "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "pump" "^3.0.0" + +"get-stream@^5.1.0": + "integrity" "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "pump" "^3.0.0" + "getpass@^0.1.1": "integrity" "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=" "resolved" "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" @@ -1020,7 +1364,7 @@ dependencies: "assert-plus" "^1.0.0" -"glob@^7.0.5": +"glob@^7.0.3", "glob@^7.0.5": "integrity" "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" "version" "7.1.2" @@ -1044,6 +1388,28 @@ "once" "^1.3.0" "path-is-absolute" "^1.0.0" +"global-agent@^3.0.0": + "integrity" "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==" + "resolved" "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "boolean" "^3.0.1" + "es6-error" "^4.1.1" + "matcher" "^3.0.0" + "roarr" "^2.15.3" + "semver" "^7.3.2" + "serialize-error" "^7.0.1" + +"global-tunnel-ng@^2.7.1": + "integrity" "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==" + "resolved" "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "encodeurl" "^1.0.2" + "lodash" "^4.17.10" + "npm-conf" "^1.1.3" + "tunnel" "^0.0.6" + "global@~4.3.0": "integrity" "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=" "resolved" "https://registry.npmjs.org/global/-/global-4.3.2.tgz" @@ -1052,20 +1418,34 @@ "min-document" "^2.19.0" "process" "~0.5.1" -"graceful-fs@^4.1.10", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6": - "integrity" "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz" - "version" "4.1.11" - -"graceful-fs@^4.1.15": - "integrity" "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz" - "version" "4.2.1" +"globalthis@^1.0.1": + "integrity" "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==" + "resolved" "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "define-properties" "^1.1.3" -"graceful-fs@^4.2.0": - "integrity" "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" - "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz" - "version" "4.2.1" +"got@^9.6.0": + "integrity" "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==" + "resolved" "https://registry.npmjs.org/got/-/got-9.6.0.tgz" + "version" "9.6.0" + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + "cacheable-request" "^6.0.0" + "decompress-response" "^3.3.0" + "duplexer3" "^0.1.4" + "get-stream" "^4.1.0" + "lowercase-keys" "^1.0.1" + "mimic-response" "^1.0.1" + "p-cancelable" "^1.0.0" + "to-readable-stream" "^1.0.0" + "url-parse-lax" "^3.0.0" + +"graceful-fs@^4.1.10", "graceful-fs@^4.1.15", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0": + "integrity" "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz" + "version" "4.2.8" "graceful-readlink@>= 1.0.0": "integrity" "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" @@ -1098,11 +1478,21 @@ "ajv" "^6.5.5" "har-schema" "^2.0.0" +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + "has-symbols@^1.0.0": "integrity" "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz" "version" "1.0.0" +"has-unicode@^2.0.0": + "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + "version" "2.0.1" + "has@^1.0.1", "has@^1.0.3": "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" @@ -1130,6 +1520,11 @@ "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz" "version" "2.5.0" +"http-cache-semantics@^4.0.0": + "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + "version" "4.1.0" + "http-signature@~1.1.0": "integrity" "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" "resolved" "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" @@ -1183,6 +1578,11 @@ "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "version" "2.0.3" +"ini@^1.3.4": + "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + "version" "1.3.8" + "is-arrayish@^0.2.1": "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" @@ -1224,6 +1624,11 @@ dependencies: "number-is-nan" "^1.0.0" +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + "is-function@^1.0.1": "integrity" "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" "resolved" "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz" @@ -1273,6 +1678,11 @@ "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" "version" "0.0.1" +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + "isstream@~0.1.2": "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" @@ -1307,6 +1717,11 @@ "resolved" "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" "version" "0.1.1" +"json-buffer@3.0.0": + "integrity" "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + "resolved" "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz" + "version" "3.0.0" + "json-schema-traverse@^0.4.1": "integrity" "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=" "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" @@ -1324,7 +1739,7 @@ dependencies: "jsonify" "~0.0.0" -"json-stringify-safe@~5.0.1": +"json-stringify-safe@^5.0.1", "json-stringify-safe@~5.0.1": "integrity" "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" "version" "5.0.1" @@ -1361,6 +1776,13 @@ "readable-stream" "~2.3.6" "set-immediate-shim" "~1.0.1" +"keyv@^3.0.0": + "integrity" "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==" + "resolved" "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "json-buffer" "3.0.0" + "lazy-val@^1.0.3": "integrity" "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=" "resolved" "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz" @@ -1421,6 +1843,19 @@ "pinkie-promise" "^2.0.0" "strip-bom" "^2.0.0" +"locate-path@^3.0.0": + "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +"lodash.assign@^4.2.0": + "integrity" "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + "resolved" "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" + "version" "4.2.0" + "lodash.defaults@^4.2.0": "integrity" "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" "resolved" "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" @@ -1451,15 +1886,17 @@ "resolved" "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz" "version" "4.6.0" -"lodash@^4.13.1": - "integrity" "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz" - "version" "4.17.4" +"lodash@^4.13.1", "lodash@^4.17.10", "lodash@^4.17.14": + "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + "version" "4.17.21" -"lodash@^4.17.14": - "integrity" "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz" - "version" "4.17.15" +"log-symbols@^2.2.0": + "integrity" "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "chalk" "^2.0.1" "loud-rejection@^1.0.0": "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" @@ -1469,6 +1906,23 @@ "currently-unhandled" "^0.4.1" "signal-exit" "^3.0.0" +"lowercase-keys@^1.0.0", "lowercase-keys@^1.0.1": + "integrity" "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz" + "version" "1.0.1" + +"lowercase-keys@^2.0.0": + "integrity" "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + "resolved" "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" + "version" "2.0.0" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + "make-dir@^1.0.0": "integrity" "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==" "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz" @@ -1481,6 +1935,13 @@ "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" "version" "1.0.1" +"matcher@^3.0.0": + "integrity" "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==" + "resolved" "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "escape-string-regexp" "^4.0.0" + "md5@^2.2.1": "integrity" "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=" "resolved" "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz" @@ -1535,6 +1996,16 @@ "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" "version" "1.6.0" +"mimic-fn@^1.0.0": + "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + "version" "1.2.0" + +"mimic-response@^1.0.0", "mimic-response@^1.0.1": + "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" + "version" "1.0.1" + "min-document@^2.19.0": "integrity" "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=" "resolved" "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz" @@ -1559,11 +2030,31 @@ "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" "version" "1.2.0" +"minimist@^1.2.5": + "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" + "version" "1.2.5" + "minimist@0.0.8": "integrity" "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" "resolved" "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" "version" "0.0.8" +"minipass@^2.2.1", "minipass@^2.3.5": + "integrity" "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz" + "version" "2.3.5" + dependencies: + "safe-buffer" "^5.1.2" + "yallist" "^3.0.0" + +"minizlib@^1.2.1": + "integrity" "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==" + "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "minipass" "^2.2.1" + "mkdirp@^0.5.0", "mkdirp@^0.5.1", "mkdirp@>=0.5 0", "mkdirp@0.5.1": "integrity" "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" @@ -1571,6 +2062,13 @@ dependencies: "minimist" "0.0.8" +"mkdirp@^0.5.4": + "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" + "version" "0.5.5" + dependencies: + "minimist" "^1.2.5" + "moment@^2.13.0": "integrity" "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" "resolved" "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz" @@ -1591,6 +2089,42 @@ "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" "version" "2.0.0" +"ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"node-abi@^2.8.0": + "integrity" "sha512-OT0WepUvYHXdki6DU8LWhEkuo3M44i2paWBYtH9qXtPb9YiKlYEKa5WUII20XEcOv7UJPzfB0kZfPZdW46zdkw==" + "resolved" "https://registry.npmjs.org/node-abi/-/node-abi-2.10.0.tgz" + "version" "2.10.0" + dependencies: + "semver" "^5.4.1" + +"node-gyp@^4.0.0": + "integrity" "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==" + "resolved" "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "glob" "^7.0.3" + "graceful-fs" "^4.1.2" + "mkdirp" "^0.5.0" + "nopt" "2 || 3" + "npmlog" "0 || 1 || 2 || 3 || 4" + "osenv" "0" + "request" "^2.87.0" + "rimraf" "2" + "semver" "~5.3.0" + "tar" "^4.4.8" + "which" "1" + +"nopt@2 || 3": + "integrity" "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + "version" "3.0.6" + dependencies: + "abbrev" "1" + "normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4": "integrity" "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz" @@ -1606,6 +2140,29 @@ "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" "version" "3.0.0" +"normalize-url@^4.1.0": + "integrity" "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + "resolved" "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz" + "version" "4.5.1" + +"npm-conf@^1.1.3": + "integrity" "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==" + "resolved" "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "config-chain" "^1.1.11" + "pify" "^3.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4": + "integrity" "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" + "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "are-we-there-yet" "~1.1.2" + "console-control-strings" "~1.1.0" + "gauge" "~2.7.3" + "set-blocking" "~2.0.0" + "nugget@^2.0.0": "integrity" "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=" "resolved" "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz" @@ -1634,7 +2191,7 @@ "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" "version" "0.9.0" -"object-assign@^4.0.1": +"object-assign@^4.0.1", "object-assign@^4.1.0": "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" "version" "4.1.1" @@ -1661,11 +2218,67 @@ dependencies: "wrappy" "1" -"os-tmpdir@~1.0.2": +"onetime@^2.0.0": + "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "mimic-fn" "^1.0.0" + +"ora@^3.4.0": + "integrity" "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==" + "resolved" "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "chalk" "^2.4.2" + "cli-cursor" "^2.1.0" + "cli-spinners" "^2.0.0" + "log-symbols" "^2.2.0" + "strip-ansi" "^5.2.0" + "wcwidth" "^1.0.1" + +"os-homedir@^1.0.0": + "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "version" "1.0.2" + +"os-tmpdir@^1.0.0", "os-tmpdir@~1.0.2": "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" "version" "1.0.2" +"osenv@0": + "integrity" "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==" + "resolved" "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" + "version" "0.1.5" + dependencies: + "os-homedir" "^1.0.0" + "os-tmpdir" "^1.0.0" + +"p-cancelable@^1.0.0": + "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" + "version" "1.1.0" + +"p-limit@^2.0.0": + "integrity" "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "p-try" "^2.0.0" + +"p-locate@^3.0.0": + "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-limit" "^2.0.0" + +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + "pako@^1.0.5", "pako@^1.0.6", "pako@~1.0.2": "integrity" "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=" "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz" @@ -1711,6 +2324,11 @@ dependencies: "pinkie-promise" "^2.0.0" +"path-exists@^3.0.0": + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + "path-is-absolute@^1.0.0": "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" @@ -1779,6 +2397,11 @@ "resolved" "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" "version" "3.4.0" +"prepend-http@^2.0.0": + "integrity" "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + "resolved" "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz" + "version" "2.0.0" + "pretty-bytes@^1.0.2": "integrity" "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=" "resolved" "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz" @@ -1805,6 +2428,11 @@ "speedometer" "~0.1.2" "through2" "~0.2.3" +"progress@^2.0.3": + "integrity" "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + "resolved" "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" + "version" "2.0.3" + "promise@^7.1.1": "integrity" "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=" "resolved" "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz" @@ -1812,6 +2440,11 @@ dependencies: "asap" "~2.0.3" +"proto-list@~1.2.1": + "integrity" "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + "resolved" "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz" + "version" "1.2.4" + "prr@~1.0.1": "integrity" "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" "resolved" "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz" @@ -1830,6 +2463,14 @@ "end-of-stream" "^1.1.0" "once" "^1.3.1" +"pump@^3.0.0": + "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" + "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "end-of-stream" "^1.1.0" + "once" "^1.3.1" + "punycode@^1.4.1": "integrity" "sha1-wNWmOycYgArY4esPpSachN1BhF4=" "resolved" "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" @@ -1872,7 +2513,7 @@ "normalize-package-data" "^2.3.2" "path-type" "^1.0.0" -"readable-stream@^2.0.0", "readable-stream@^2.0.5": +"readable-stream@^2.0.0", "readable-stream@^2.0.5", "readable-stream@^2.0.6", "readable-stream@^2.2.2": "integrity" "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==" "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz" "version" "2.3.4" @@ -2004,6 +2645,57 @@ "tunnel-agent" "^0.6.0" "uuid" "^3.3.2" +"request@^2.87.0": + "integrity" "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==" + "resolved" "https://registry.npmjs.org/request/-/request-2.88.0.tgz" + "version" "2.88.0" + dependencies: + "aws-sign2" "~0.7.0" + "aws4" "^1.8.0" + "caseless" "~0.12.0" + "combined-stream" "~1.0.6" + "extend" "~3.0.2" + "forever-agent" "~0.6.1" + "form-data" "~2.3.2" + "har-validator" "~5.1.0" + "http-signature" "~1.2.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.19" + "oauth-sign" "~0.9.0" + "performance-now" "^2.1.0" + "qs" "~6.5.2" + "safe-buffer" "^5.1.2" + "tough-cookie" "~2.4.3" + "tunnel-agent" "^0.6.0" + "uuid" "^3.3.2" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-main-filename@^2.0.0": + "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + +"responselike@^1.0.2": + "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" + "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "lowercase-keys" "^1.0.0" + +"restore-cursor@^2.0.0": + "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "onetime" "^2.0.0" + "signal-exit" "^3.0.2" + "rimraf@^2.5.4", "rimraf@2": "integrity" "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==" "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz" @@ -2011,6 +2703,25 @@ dependencies: "glob" "^7.0.5" +"roarr@^2.15.3": + "integrity" "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==" + "resolved" "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" + "version" "2.15.4" + dependencies: + "boolean" "^3.0.1" + "detect-node" "^2.0.4" + "globalthis" "^1.0.1" + "json-stringify-safe" "^5.0.1" + "semver-compare" "^1.0.0" + "sprintf-js" "^1.1.2" + +"rxjs@^6.3.1": + "integrity" "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==" + "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz" + "version" "6.5.2" + dependencies: + "tslib" "^1.9.0" + "safe-buffer@^5.0.1", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1": "integrity" "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" @@ -2038,22 +2749,56 @@ dependencies: "commander" "~2.8.1" +"semver-compare@^1.0.0": + "integrity" "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" + "version" "1.0.0" + +"semver@^5.4.1", "semver@2 || 3 || 4 || 5": + "integrity" "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" + "version" "5.5.0" + "semver@^5.6.0": "integrity" "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz" "version" "5.7.0" -"semver@2 || 3 || 4 || 5": - "integrity" "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" - "version" "5.5.0" +"semver@^6.2.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.3.2": + "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" + "version" "7.3.5" + dependencies: + "lru-cache" "^6.0.0" + +"semver@~5.3.0": + "integrity" "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "version" "5.3.0" + +"serialize-error@^7.0.1": + "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==" + "resolved" "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "type-fest" "^0.13.1" + +"set-blocking@^2.0.0", "set-blocking@~2.0.0": + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" "set-immediate-shim@~1.0.1": "integrity" "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" "resolved" "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" "version" "1.0.1" -"signal-exit@^3.0.0": +"signal-exit@^3.0.0", "signal-exit@^3.0.2": "integrity" "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" "version" "3.0.2" @@ -2085,6 +2830,15 @@ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" "version" "0.6.1" +"spawn-rx@^3.0.0": + "integrity" "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==" + "resolved" "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "debug" "^2.5.1" + "lodash.assign" "^4.2.0" + "rxjs" "^6.3.1" + "spdx-correct@~1.0.0": "integrity" "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" @@ -2107,6 +2861,11 @@ "resolved" "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz" "version" "0.1.4" +"sprintf-js@^1.1.2": + "integrity" "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" + "version" "1.1.2" + "sprintf-js@~1.0.2": "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" @@ -2153,7 +2912,7 @@ dependencies: "safe-buffer" "~5.1.0" -"string-width@^1.0.1": +"string-width@^1.0.1", "string-width@^1.0.2 || 2": "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" "version" "1.0.2" @@ -2162,6 +2921,24 @@ "is-fullwidth-code-point" "^1.0.0" "strip-ansi" "^3.0.0" +"string-width@^3.0.0": + "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"string-width@^3.1.0": + "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + "string.prototype.trim@^1.1.2": "integrity" "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==" "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz" @@ -2176,13 +2953,20 @@ "resolved" "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" "version" "0.0.5" -"strip-ansi@^3.0.0": +"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" "version" "3.0.1" dependencies: "ansi-regex" "^2.0.0" +"strip-ansi@^5.0.0", "strip-ansi@^5.1.0", "strip-ansi@^5.2.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + "strip-bom@^2.0.0": "integrity" "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" @@ -2204,6 +2988,20 @@ dependencies: "get-stdin" "^4.0.1" +"sumchecker@^3.0.1": + "integrity" "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==" + "resolved" "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "debug" "^4.1.0" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + "tar-fs@^1.15.2": "integrity" "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==" "resolved" "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz" @@ -2255,6 +3053,19 @@ "fstream" "^1.0.12" "inherits" "2" +"tar@^4.4.8": + "integrity" "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==" + "resolved" "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz" + "version" "4.4.10" + dependencies: + "chownr" "^1.1.1" + "fs-minipass" "^1.2.5" + "minipass" "^2.3.5" + "minizlib" "^1.2.1" + "mkdirp" "^0.5.0" + "safe-buffer" "^5.1.2" + "yallist" "^3.0.3" + "tar@https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz": "integrity" "sha1-IO+OBChbRx10V28tpdj9xTokIwE=" "resolved" "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz" @@ -2299,6 +3110,11 @@ dependencies: "os-tmpdir" "~1.0.2" +"to-readable-stream@^1.0.0": + "integrity" "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + "resolved" "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz" + "version" "1.0.0" + "tough-cookie@~2.3.0": "integrity" "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=" "resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz" @@ -2319,6 +3135,11 @@ "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" "version" "1.0.0" +"tslib@^1.9.0": + "integrity" "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" + "version" "1.10.0" + "tunnel-agent@^0.6.0": "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" @@ -2326,11 +3147,26 @@ dependencies: "safe-buffer" "^5.0.1" +"tunnel@^0.0.6": + "integrity" "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + "resolved" "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz" + "version" "0.0.6" + "tweetnacl@^0.14.3", "tweetnacl@~0.14.0": "integrity" "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" "resolved" "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" "version" "0.14.5" +"type-fest@^0.13.1": + "integrity" "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" + "version" "0.13.1" + +"typedarray@^0.0.6": + "integrity" "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + "version" "0.0.6" + "unbzip2-stream@^1.0.9": "integrity" "sha512-izD3jxT8xkzwtXRUZjtmRwKnZoeECrfZ8ra/ketwOcusbZEp4mjULMnJOCfTDZBgGQAAY1AJ/IgxcwkavcX9Og==" "resolved" "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.2.5.tgz" @@ -2351,6 +3187,13 @@ dependencies: "punycode" "^2.1.0" +"url-parse-lax@^3.0.0": + "integrity" "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=" + "resolved" "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "prepend-http" "^2.0.0" + "utif@^2.0.1": "integrity" "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==" "resolved" "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" @@ -2390,6 +3233,41 @@ "core-util-is" "1.0.2" "extsprintf" "^1.2.0" +"wcwidth@^1.0.1": + "integrity" "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=" + "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "defaults" "^1.0.3" + +"which-module@^2.0.0": + "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + "version" "2.0.0" + +"which@1": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"wide-align@^1.1.0": + "integrity" "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" + "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "string-width" "^1.0.2 || 2" + +"wrap-ansi@^5.1.0": + "integrity" "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "ansi-styles" "^3.2.0" + "string-width" "^3.0.0" + "strip-ansi" "^5.0.0" + "wrappy@1": "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" @@ -2435,13 +3313,52 @@ dependencies: "object-keys" "~0.4.0" -"yauzl@^2.4.2": - "integrity" "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=" - "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz" - "version" "2.9.1" +"y18n@^4.0.0": + "integrity" "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz" + "version" "4.0.0" + +"yallist@^3.0.0", "yallist@^3.0.3": + "integrity" "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz" + "version" "3.0.3" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yargs-parser@^13.1.1": + "integrity" "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz" + "version" "13.1.1" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs@^13.2.2": + "integrity" "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz" + "version" "13.3.0" + dependencies: + "cliui" "^5.0.0" + "find-up" "^3.0.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^3.0.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^13.1.1" + +"yauzl@^2.10.0", "yauzl@^2.4.2": + "integrity" "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=" + "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" + "version" "2.10.0" dependencies: "buffer-crc32" "~0.2.3" - "fd-slicer" "~1.0.1" + "fd-slicer" "~1.1.0" "zip-stream@^2.1.2": "integrity" "sha512-ykebHGa2+uzth/R4HZLkZh3XFJzivhVsjJt8bN3GvBzLaqqrUdRacu+c4QtnUgjkkQfsOuNE1JgLKMCPNmkKgg==" From 5f63f43e160a22dae103995bf47d2021ac67251c Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 12 Nov 2021 21:09:58 +0700 Subject: [PATCH 35/69] Fix open dialog and shell API changes --- app/pencil-core/propertyType/imageData.js | 11 +++++++---- app/views/collections/AboutCollectionDialog.js | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/app/pencil-core/propertyType/imageData.js b/app/pencil-core/propertyType/imageData.js index 7da58706..d325783b 100644 --- a/app/pencil-core/propertyType/imageData.js +++ b/app/pencil-core/propertyType/imageData.js @@ -149,16 +149,19 @@ ImageData.refStringToUrl = function (refString) { }; ImageData.prompt = function (callback, ext) { - var filenames = dialog.showOpenDialogSync(remote.getCurrentWindow(), { + dialog.showOpenDialog(remote.getCurrentWindow(), { title: "Select Image", - defaultPath: os.homedir(), + defaultPath: Config.get("document.open.recentlyImagePath", null) || os.homedir(), filters: [ { name: "Image files", extensions: ext || ["png", "jpg", "jpeg", "gif", "bmp", "svg"] } ] + }).then(function (res) { + if (!res || !res.filePaths || res.filePaths.length <= 0) return; + var p = res.filePaths[0]; + Config.set("document.open.recentlyImagePath", path.dirname(p)); + ImageData.fromExternalToImageData(p, callback); }); - if (!filenames || filenames.length <= 0) return; - ImageData.fromExternalToImageData(filenames[0], callback); }; ImageData.fromExternalToImageData = function (filePath, callback) { diff --git a/app/views/collections/AboutCollectionDialog.js b/app/views/collections/AboutCollectionDialog.js index 781e49d8..16f98411 100644 --- a/app/views/collections/AboutCollectionDialog.js +++ b/app/views/collections/AboutCollectionDialog.js @@ -52,11 +52,11 @@ function AboutCollectionDialog(collection) { ] }); this.aboutContent.appendChild(node); - + if (collection.userDefined || collection.developerStencil) { this.locationButton.innerHTML = "" + collection.installDirPath; this.locationButton.addEventListener("click", function () { - require("electron").shell.openItem(collection.installDirPath); + require("electron").shell.openPath(collection.installDirPath); }, false); } else { this.locationBox.style.display = "none"; From a7b677d5d48b6bc0467975526bbcc36bb1bc0c42 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Sat, 13 Nov 2021 20:22:50 +0700 Subject: [PATCH 36/69] Fix: Rich text color choose not loading recently used colors --- app/views/editors/TextToolOverlay.js | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/editors/TextToolOverlay.js b/app/views/editors/TextToolOverlay.js index 6a4dbbac..957613c1 100644 --- a/app/views/editors/TextToolOverlay.js +++ b/app/views/editors/TextToolOverlay.js @@ -149,6 +149,7 @@ function TextToolOverlay() { var changeColorListener = function (control, commandName) { var color = thiz.getColorByCommandValue(commandName); thiz.selector.setColor(color); + thiz.selector.setupColors(); thiz.selector._commandName = commandName; thiz.selector._control = control; From 58ae59d2c168ae63c4425ea1dc32ce764961161b Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 22 Nov 2021 17:49:48 +0700 Subject: [PATCH 37/69] UI Refresh: use two-tone variant to replace the classic one in material icons --- app/css/material-icons.css | 17 +++++++++++++++-- app/css/theme.css | 20 +++++++++++++++++++- app/fonts/MaterialIcons-Regular.ttf | Bin 0 -> 285724 bytes app/fonts/MaterialIconsTwoTone-Regular.otf | Bin 0 -> 564508 bytes 4 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 app/fonts/MaterialIcons-Regular.ttf create mode 100644 app/fonts/MaterialIconsTwoTone-Regular.otf diff --git a/app/css/material-icons.css b/app/css/material-icons.css index 33794762..39772c9c 100644 --- a/app/css/material-icons.css +++ b/app/css/material-icons.css @@ -1,12 +1,25 @@ +@font-face { + font-family: 'Material Icons Original'; + font-style: normal; + font-weight: 400; + src: url(../fonts/MaterialIcons-Regular.ttf) format('truetype'); +} + @font-face { font-family: 'Material Icons'; font-style: normal; font-weight: 400; - src: url(../fonts/Material-Icons.woff2) format('woff2'); + src: url(../fonts/MaterialIconsTwoTone-Regular.otf) format('opentype'); } +.material-icons-original { + font-family: 'Material Icons Original'; +} +.material-icons { + font-family: 'Material Icons'; +} +.material-icons-original, .material-icons { - font-family: 'Material Icons'; font-weight: normal; font-style: normal; font-size: 24px; diff --git a/app/css/theme.css b/app/css/theme.css index bccd7c3f..81580144 100644 --- a/app/css/theme.css +++ b/app/css/theme.css @@ -219,7 +219,7 @@ input[type="number"]:focus { cursor: pointer; display: inline-block; - font-family: 'Material Icons'; + font-family: 'Material Icons Original'; font-weight: bold; font-style: normal; letter-spacing: normal; @@ -249,3 +249,21 @@ input[type="number"]:focus { .UIWidget:not(.widget_ApplicationPane) input[type='radio']:checked:after { content:'\E837'; } +::-webkit-scrollbar { + width: 5px; + height: 5px; + position: absolute !important; + overflow: visible; +} +*:not(:hover)::-webkit-scrollbar { +} +::-webkit-scrollbar-track { + background: #DDD; +} +::-webkit-scrollbar-thumb { + background: #00000022; + transition: background-color 0.2s ease; +} +::-webkit-scrollbar-thumb:hover { + background: #00000044; +} diff --git a/app/fonts/MaterialIcons-Regular.ttf b/app/fonts/MaterialIcons-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..453b3e4cbcb0e98b6a67789c0220fdcf2d229323 GIT binary patch literal 285724 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 z%0D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 literal 0 HcmV?d00001 diff --git a/app/fonts/MaterialIconsTwoTone-Regular.otf b/app/fonts/MaterialIconsTwoTone-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..61d8bfb0e79ec968aa7620fa0384985648293415 GIT binary patch literal 564508 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

y@H9rdtB^{`L$@IiX`-Fo=D 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�uFur6ecMHyNjP!%UhGXKTUv3Z1S$hkZS)6U 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

-9Z>HJu7+Nf*%`CL=Bw(hsLh86oH4_= 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

uX2i2K^k#-Dz1cW_eDNaBt)Rm)geBm~d+ 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

Z7rO=;SAa+>)5wr$3AGd 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%0A#pY~Ob-bQSy&7y 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 gHbwccT&u&Yl0 literal 0 HcmV?d00001 From 9bd50b62ad5446b6e9ea06317a7127887ba7dbe4 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 22 Nov 2021 17:51:19 +0700 Subject: [PATCH 38/69] Fix: geometry editor failed to flip shapes --- .../editor/geometryEditor.config.xml | 16 +++---- app/pencil-core/editor/geometryEditor.js | 48 ++++++++++++++----- 2 files changed, 43 insertions(+), 21 deletions(-) diff --git a/app/pencil-core/editor/geometryEditor.config.xml b/app/pencil-core/editor/geometryEditor.config.xml index 63803003..db2e4453 100644 --- a/app/pencil-core/editor/geometryEditor.config.xml +++ b/app/pencil-core/editor/geometryEditor.config.xml @@ -48,29 +48,29 @@ } - g.GeoEditor rect[p|name='TopLeft'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='TopLeft'] { cursor: nw-resize; } - g.GeoEditor rect[p|name='BottomRight'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='BottomRight'] { cursor: se-resize; } - g.GeoEditor rect[p|name='TopRight'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='TopRight'] { cursor: ne-resize; } - g.GeoEditor rect[p|name='BottomLeft'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='BottomLeft'] { cursor: sw-resize; } - g.GeoEditor rect[p|name='Top'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='Top'] { cursor: n-resize; } - g.GeoEditor rect[p|name='Bottom'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='Bottom'] { cursor: s-resize; } - g.GeoEditor rect[p|name='Left'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='Left'] { cursor: w-resize; } - g.GeoEditor rect[p|name='Right'] { + .AnonId_contentBody[gesture-mode='selection'] g.GeoEditor rect[p|name='Right'] { cursor: e-resize; } ]]> diff --git a/app/pencil-core/editor/geometryEditor.js b/app/pencil-core/editor/geometryEditor.js index 365bf177..7ad19a3e 100644 --- a/app/pencil-core/editor/geometryEditor.js +++ b/app/pencil-core/editor/geometryEditor.js @@ -315,7 +315,6 @@ GeometryEditor.prototype.handleMouseUp = function (event) { }, this, Util.getMessage("action.move.shape")); } } finally { - console.log("Setting currentAnchor = null"); this.currentAnchor = null; } }; @@ -362,7 +361,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var uPoint1 = Svg.vectorInCTM(new Point(this.oX, this.oY), this.geo.ctm); var uPoint2 = Svg.vectorInCTM(new Point(event.clientX, event.clientY), this.geo.ctm); - + var matrix = this.currentAnchor._matrix; var t = event.shiftKey ? {x: 1, y: 1} : this.getGridSize(); //Svg.vectorInCTM(this.getGridSize(), this.geo.ctm, true); @@ -392,7 +391,7 @@ GeometryEditor.prototype.handleMouseMove = function (event) { var controller = this.canvas.currentController; var bound = controller.getBounding(); - + var xsnap = null; //HORIZONTAL @@ -405,14 +404,14 @@ GeometryEditor.prototype.handleMouseMove = function (event) { if (matrix.dx != 0) { var newX = e + dx; var newXNormalized = locking.ratio ? newX : Util.gridNormalize(newX, grid.w); - if (newXNormalized > this._maxX1) newXNormalized = this._maxX1; + //if (newXNormalized > this._maxX1) newXNormalized = this._maxX1; var delta = newXNormalized - newX; if (!locking.ratio && !event.shiftKey) { var snapping = this._lastGuides.left ? this._lastGuides.left.clone() : new SnappingData("Left", bound.x, "Left", true, Util.newUUID()); - + xsnap = this.canvas.snappingHelper.applySnappingValue(dx, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); if (xsnap) delta = xsnap.d - dx; this.canvas.snappingHelper.drawSnaps(xsnap, null); @@ -424,14 +423,14 @@ GeometryEditor.prototype.handleMouseMove = function (event) { } else { var newX2 = e + this._w + dw; var newX2Normalized = locking.ratio ? newX2 : Util.gridNormalize(newX2, grid.w); - if (newX2Normalized < this._minX2) newX2Normalized = this._minX2; + //if (newX2Normalized < this._minX2) newX2Normalized = this._minX2; var delta = newX2Normalized - newX2; - if (!locking.ratio && !event.shiftKey) { + if (!locking.ratio && !event.shiftKey && matrix.dw != 0) { var snapping = this._lastGuides.right ? this._lastGuides.right.clone() : new SnappingData("Right", bound.x + bound.width, "Right", true, Util.newUUID()); - + xsnap = this.canvas.snappingHelper.applySnappingValue(dw, [snapping], this.canvas.snappingHelper.lastXData, this.canvas.currentController); if (xsnap) delta = xsnap.d - dw; this.canvas.snappingHelper.drawSnaps(xsnap, null); @@ -452,14 +451,14 @@ GeometryEditor.prototype.handleMouseMove = function (event) { if (matrix.dy != 0) { var newY = f + dy; var newYNormalized = locking.ratio ? newY : Util.gridNormalize(newY, grid.h); - if (newYNormalized > this._maxY1) newYNormalized = this._maxY1; + // if (newYNormalized > this._maxY1) newYNormalized = this._maxY1; var delta = newYNormalized - newY; if (!locking.ratio && !event.shiftKey) { var snapping = this._lastGuides.top ? this._lastGuides.top.clone() : new SnappingData("Top", bound.y, "Top", true, Util.newUUID()); - + var ysnap = this.canvas.snappingHelper.applySnappingValue(dy, [snapping], this.canvas.snappingHelper.lastYData, this.canvas.currentController); if (ysnap) delta = ysnap.d - dy; this.canvas.snappingHelper.drawSnaps(xsnap, ysnap); @@ -470,14 +469,14 @@ GeometryEditor.prototype.handleMouseMove = function (event) { } else { var newY2 = f + this._h + dh; var newY2Normalized = locking.ratio ? newY2 : Util.gridNormalize(newY2, grid.h); - if (newY2Normalized < this._minY2) newY2Normalized = this._minY2; + // if (newY2Normalized < this._minY2) newY2Normalized = this._minY2; var delta = newY2Normalized - newY2; if (!locking.ratio && !event.shiftKey) { var snapping = this._lastGuides.bottom ? this._lastGuides.bottom.clone() : new SnappingData("Bottom", bound.y + bound.height, "Bottom", true, Util.newUUID()); - + var ysnap = this.canvas.snappingHelper.applySnappingValue(dh, [snapping], this.canvas.snappingHelper.lastYData, this.canvas.currentController); if (ysnap) delta = ysnap.d - dh; this.canvas.snappingHelper.drawSnaps(xsnap, ysnap); @@ -516,7 +515,30 @@ GeometryEditor.prototype.handleMouseMove = function (event) { newGeo.dim = new Dimension(Math.round(this.oGeo.dim.w + dw), Math.round(this.oGeo.dim.h + dh)); } - + if (newGeo.dim.w < 0) { + newGeo.dim.w = 0 - newGeo.dim.w; + if (matrix.dx > 0) { + dx = this.oGeo.dim.w; + newGeo.ctm = this.oGeo.ctm.translate(dx, dy); + } else { + var t = 0 - matrix.dw * newGeo.dim.w; + newGeo.ctm = newGeo.ctm.translate(t, 0); + dx += t; + } + dw = newGeo.dim.w - this.oGeo.dim.w; + } + if (newGeo.dim.h < 0) { + newGeo.dim.h = 0 - newGeo.dim.h; + if (matrix.dy > 0) { + dy = this.oGeo.dim.h; + newGeo.ctm = this.oGeo.ctm.translate(dx, dy); + } else { + var t = 0 - matrix.dh * newGeo.dim.h; + newGeo.ctm = newGeo.ctm.translate(0, t); + dy += t; + } + dh = newGeo.dim.h - this.oGeo.dim.h; + } var p = Svg.vectorInCTM(new Point(dx, dy), this.geo.ctm.inverse(), true); this.adx = p.x; From e9beb364b5eede5ad362f8f128797ad8ce1508b6 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 22 Nov 2021 17:52:47 +0700 Subject: [PATCH 39/69] Fix incorrect rounding when calculating snapping positions --- app/pencil-core/canvasHelper/snappingHelper.js | 14 +++++++------- app/pencil-core/propertyType/snappingData.js | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/pencil-core/canvasHelper/snappingHelper.js b/app/pencil-core/canvasHelper/snappingHelper.js index 4a2cbe16..fff47ad6 100644 --- a/app/pencil-core/canvasHelper/snappingHelper.js +++ b/app/pencil-core/canvasHelper/snappingHelper.js @@ -170,9 +170,9 @@ SnappingHelper.prototype.applySnapping = function (dx, dy, controller) { var xsnap = this.applySnappingValue(dx, this.lastSnappingGuideSnapshot.vertical, this.lastXData, controller); var ysnap = this.applySnappingValue(dy, this.lastSnappingGuideSnapshot.horizontal, this.lastYData, controller); - + this.drawSnaps(xsnap, ysnap); - + return { xsnap: xsnap, ysnap: ysnap @@ -197,7 +197,7 @@ SnappingHelper.prototype.drawSnaps = function (xsnap, ysnap) { thiz._snappingGuideContainerXEmpty = false; }); } - + this.clearSnappingGuideY(); if (ysnap && ysnap.matchingGuides) { ysnap.matchingGuides.forEach(function (guide) { @@ -224,10 +224,10 @@ SnappingHelper.prototype.applySnappingValue = function (d, controllerPositions, canvasPositions.forEach(function (canvasGuide) { if (!canvasGuide || canvasGuide.id == currentControllerId || canvasGuide.disabled) return; if (controller.containsControllerId && controller.containsControllerId(canvasGuide.id)) return; - + controllerPositions.forEach(function (controllerGuide) { if (!controllerGuide || controllerGuide.disabled) return; - + var delta = canvasGuide.pos - (controllerGuide.pos + d); var distance = Math.abs(delta); if (distance < closestDistance) { @@ -240,7 +240,7 @@ SnappingHelper.prototype.applySnappingValue = function (d, controllerPositions, } }); }); - + if (closestDistance <= Pencil.SNAP) { return { d: d + closestDelta, @@ -281,4 +281,4 @@ SnappingHelper.prototype.allowSnapping = function (v, x) { } return false; -}; \ No newline at end of file +}; diff --git a/app/pencil-core/propertyType/snappingData.js b/app/pencil-core/propertyType/snappingData.js index 3062a4fb..da25cbb8 100644 --- a/app/pencil-core/propertyType/snappingData.js +++ b/app/pencil-core/propertyType/snappingData.js @@ -14,12 +14,12 @@ function SnappingData(type, pos, applyTo, vertical, id, disabled, limit1, limit2 this.limit2 = 0; try { - this.pos = parseInt(pos); + this.pos = Math.round(pos); if (limit1) { - this.limit1 = parseInt(limit1); + this.limit1 = Math.round(limit1); } if (limit2) { - this.limit2 = parseInt(limit2); + this.limit2 = Math.round(limit2); } } catch(e) { error("invalid pos: " + pos); From b5101e80a997d6ad967e67482150992ddabd8ccd Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 22 Nov 2021 17:53:46 +0700 Subject: [PATCH 40/69] Fix: improve color icon display --- app/views/editors/AlignEditor.xhtml | 6 +-- app/views/editors/OnScreenRichTextEditor.js | 5 +- app/views/editors/SharedColorEditor.js | 10 ++++ app/views/editors/SharedColorEditor.xhtml | 14 ++++- app/views/editors/SharedFontEditor.xhtml | 8 ++- app/views/editors/TextToolOverlay.js | 58 ++++++++++++--------- app/views/editors/TextToolOverlay.xhtml | 17 ++++-- 7 files changed, 82 insertions(+), 36 deletions(-) diff --git a/app/views/editors/AlignEditor.xhtml b/app/views/editors/AlignEditor.xhtml index eff60f61..5e518520 100644 --- a/app/views/editors/AlignEditor.xhtml +++ b/app/views/editors/AlignEditor.xhtml @@ -5,18 +5,18 @@ & + .Group { margin-left: 1ex; } - + & > button + button { border-left: none; border-top-left-radius: 0px; border-bottom-left-radius: 0px; } - + & > button:not(:last-child) { border-top-right-radius: 0px; border-bottom-right-radius: 0px; } - + & button:not([checked="true"]) i { opacity: 0.8; } diff --git a/app/views/editors/OnScreenRichTextEditor.js b/app/views/editors/OnScreenRichTextEditor.js index 7a226e53..7d6eee44 100644 --- a/app/views/editors/OnScreenRichTextEditor.js +++ b/app/views/editors/OnScreenRichTextEditor.js @@ -66,7 +66,7 @@ OnScreenRichTextEditor.prototype.invalidate = function () { OnScreenRichTextEditor.prototype.nextTool = function () { }; OnScreenRichTextEditor.prototype.dettach = function () { - + this.textToolOverlay.active = false; }; OnScreenRichTextEditor.prototype.handleShapeDoubleClicked = function (event) { @@ -185,6 +185,7 @@ OnScreenRichTextEditor.prototype._setupEditor = function () { this.textToolOverlay._richTextEditor = this; this.textToolOverlay.node().style.visibility = "hidden"; + this.textToolOverlay.active = true; OnScreenRichTextEditor._activeEditor = this; @@ -195,6 +196,8 @@ OnScreenRichTextEditor.prototype._setupEditor = function () { thiz.textToolOverlay.runEditorCommand("selectAll"); thiz.textToolOverlay.node().style.top = "-" + (thiz.textToolOverlay.node().offsetHeight + 8) + "px"; thiz.textToolOverlay.node().style.visibility = "visible"; + + thiz.textToolOverlay.updateToolbarState(); }, 10); }; OnScreenRichTextEditor.MIN_AC_LENGTH = 5; diff --git a/app/views/editors/SharedColorEditor.js b/app/views/editors/SharedColorEditor.js index 6cd0fc44..38706e20 100644 --- a/app/views/editors/SharedColorEditor.js +++ b/app/views/editors/SharedColorEditor.js @@ -87,17 +87,27 @@ SharedColorEditor.prototype._applyValue = function () { this.updateDisplayColor(); }; +SharedColorEditor.BACKGROUND = Color.fromString("#FFFFFFFF"); +SharedColorEditor.MIN_CONTRAST = 2; + SharedColorEditor.prototype.updateDisplayColor = function (defaultValue) { var thiz = this; + var lowContrast = this.color ? (this.color.getContrastTo(SharedColorEditor.BACKGROUND) < SharedColorEditor.MIN_CONTRAST) : true; + + this.colorDisplay.setAttribute("property-name", this.propertyName); + var handler = { textColor: function () { thiz.colorDisplay.style.color = (thiz.color) ? thiz.color.toRGBAString() : defaultValue; + Dom.toggleClass(thiz.colorDisplay, "LowContrast", lowContrast); }, fillColor: function () { thiz.colorDisplay.style.backgroundColor = (thiz.color) ? thiz.color.toRGBAString() : defaultValue; + Dom.toggleClass(thiz.colorDisplay, "LowContrast", lowContrast); }, strokeColor: function () { thiz.colorDisplay.style.borderColor = (thiz.color) ? thiz.color.toRGBAString() : defaultValue; + Dom.toggleClass(thiz.colorDisplay, "LowContrast", lowContrast); } }[this.propertyName]; diff --git a/app/views/editors/SharedColorEditor.xhtml b/app/views/editors/SharedColorEditor.xhtml index 10d85526..1354569b 100644 --- a/app/views/editors/SharedColorEditor.xhtml +++ b/app/views/editors/SharedColorEditor.xhtml @@ -11,12 +11,12 @@ width: 1.2em; height: 1.2em; line-height: 1em; - overflow: hidden; text-align: center; vertical-align: middle; display: inline-block; margin: 0px; - font-weight: bold; + font-weight: 900; + font-family: 'PencilUI' !important; box-sizing: border-box; border: solid 2px transparent; @@ -25,6 +25,16 @@ body .SharedColorEditorPopup { z-index: 9999; } + + @colorDisplay[property-name="textColor"].LowContrast { + text-shadow: 1px 1px 2px #00000044, -1px -1px 2px #00000044, -1px 1px 2px #00000044, 1px -1px 2px #00000044; + } + @colorDisplay[property-name="fillColor"].LowContrast { + box-shadow: 0px 0px 3px #00000044; + } + @colorDisplay[property-name="strokeColor"].LowContrast { + filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.5)); + } diff --git a/app/views/editors/SharedFontEditor.xhtml b/app/views/editors/SharedFontEditor.xhtml index 4689a4ea..ca286504 100644 --- a/app/views/editors/SharedFontEditor.xhtml +++ b/app/views/editors/SharedFontEditor.xhtml @@ -20,7 +20,13 @@ width: 10em; } @weightCombo { - width: 4.7em !important; + width: 2.95em !important; + position: relative; + } + @weightCombo > i { + position: absolute; + font-size: 0.9em; + right: 0.2em; } body .widget_SharedFontEditor[use-toggle="false"] @boldButton, body .widget_SharedFontEditor[use-toggle="true"] @weightCombo { diff --git a/app/views/editors/TextToolOverlay.js b/app/views/editors/TextToolOverlay.js index 957613c1..4a7d9294 100644 --- a/app/views/editors/TextToolOverlay.js +++ b/app/views/editors/TextToolOverlay.js @@ -38,25 +38,7 @@ function TextToolOverlay() { var selectListener = function (event) { - // var temp = OnScreenTextEditor.isEditing; - // OnScreenTextEditor.isEditing = false; - - thiz.updateListByCommandValue("fontname", thiz.fontCombo); - thiz.fontSizeCombo.selectItem(thiz.queryFontSizeValue()); - - thiz.updateButtonByCommandState("bold", thiz.medBoldButton); - thiz.updateButtonByCommandState("italic", thiz.medItalicButton); - thiz.updateButtonByCommandState("underline", thiz.medUnderlineButton); - thiz.updateButtonByCommandState("strikethrough", thiz.medStrikeButton); - - thiz.updateButtonByCommandState("justifyleft", thiz.malignLeftCommand); - thiz.updateButtonByCommandState("justifycenter", thiz.malignCenterCommand); - thiz.updateButtonByCommandState("justifyright", thiz.malignRightCommand); - - thiz.updateColorButtonByCommandValue("forecolor", thiz.mtextColorButton); - // thiz.updateColorButtonByCommandValue("hiliteColor", thiz.mhilightColorButton); - - // OnScreenTextEditor.isEditing = temp; + thiz.updateToolbarState(); }; window.document.body.addEventListener("mouseup", selectListener, false); @@ -155,7 +137,7 @@ function TextToolOverlay() { thiz.selectorContainer.show(control, "left-inside", "bottom", 0, 5); Dom.addClass(thiz._richTextEditor.textEditorWrapper, "ChoosingColor"); - thiz.selector.focus(); + // thiz.selector.focus(); }; this.selectorContainer.addEventListener("p:PopupHidden", function() { Dom.removeClass(thiz._richTextEditor.textEditorWrapper, "ChoosingColor"); @@ -166,7 +148,7 @@ function TextToolOverlay() { }, false); this.mhilightColorButton.addEventListener("click", function (event) { - changeColorListener(thiz.mhilightColorButton, "hilitecolor"); + changeColorListener(thiz.mhilightColorButton, "backcolor"); event.cancelBubble = true; }, false); @@ -175,7 +157,7 @@ function TextToolOverlay() { var control = thiz.selector._control; var commandName = thiz.selector._commandName; thiz.runEditorCommand(commandName, color.toRGBAString()); - thiz.updateButtonColor(control, color.toRGBAString()); + thiz.updateButtonColor(control, color); }, false); this.selector.addEventListener("p:CloseColorSelector", function (event) { @@ -231,6 +213,25 @@ TextToolOverlay.prototype.queryFontSizeValue = function () { return found; }; +TextToolOverlay.prototype.updateToolbarState = function () { + if (!this.active) return; + + this.updateListByCommandValue("fontname", this.fontCombo); + this.fontSizeCombo.selectItem(this.queryFontSizeValue()); + + this.updateButtonByCommandState("bold", this.medBoldButton); + this.updateButtonByCommandState("italic", this.medItalicButton); + this.updateButtonByCommandState("underline", this.medUnderlineButton); + this.updateButtonByCommandState("strikethrough", this.medStrikeButton); + + this.updateButtonByCommandState("justifyleft", this.malignLeftCommand); + this.updateButtonByCommandState("justifycenter", this.malignCenterCommand); + this.updateButtonByCommandState("justifyright", this.malignRightCommand); + + this.updateColorButtonByCommandValue("forecolor", this.mtextColorButton); + this.updateColorButtonByCommandValue("backcolor", this.mhilightColorButton); +}; + TextToolOverlay.prototype.updateListByCommandValue = function (commandName, control) { var value = null; try { @@ -266,16 +267,21 @@ TextToolOverlay.prototype.getColorByCommandValue = function (commandName) { TextToolOverlay.prototype.updateColorButtonByCommandValue = function (commandName, control) { var value = this.getColorByCommandValue(commandName); + if (value == null) value = Color.fromString("#FFFFFF00"); if (control.localName == "button") { - if (value == null) return; - this.updateButtonColor(control, value.toRGBString()); + this.updateButtonColor(control, value); } }; -TextToolOverlay.prototype.updateButtonColor = function (control, value) { +TextToolOverlay.prototype.updateButtonColor = function (control, color) { + var lowContrast = color ? (color.getContrastTo(SharedColorEditor.BACKGROUND) < SharedColorEditor.MIN_CONTRAST) : true; + + var value = color.toRGBString(); if (control == this.mhilightColorButton) { - // this.mhilightColorButton.style.color = value; + this.mhilightColorButton.style.color = value; + Dom.toggleClass(this.mhilightColorButton, "LowContrast", lowContrast); } else if (control == this.mtextColorButton) { this.mtextColorButton.style.color = value; + Dom.toggleClass(this.mtextColorButton, "LowContrast", lowContrast); } }; TextToolOverlay.prototype.updateButtonByCommandState = function (commandName, control) { diff --git a/app/views/editors/TextToolOverlay.xhtml b/app/views/editors/TextToolOverlay.xhtml index 1e4913c1..97224be4 100644 --- a/app/views/editors/TextToolOverlay.xhtml +++ b/app/views/editors/TextToolOverlay.xhtml @@ -34,6 +34,17 @@ @popupToolbar .ButtonGroup > button:hover { background: #D9D9D9; } + + @mtextColorButton.LowContrast, + @mhilightColorButton.LowContrast { + text-shadow: 1px 1px 2px #00000044, -1px -1px 2px #00000044, -1px 1px 2px #00000044, 1px -1px 2px #00000044; + } + @colorDisplay[property-name="fillColor"].LowContrast { + box-shadow: 0px 0px 3px #00000044; + } + @colorDisplay[property-name="strokeColor"].LowContrast { + filter: drop-shadow(0px 0px 1px rgba(0, 0, 0, 0.5)); + }
@@ -58,7 +69,7 @@ - + @@ -73,12 +84,12 @@ - + From 6e4ff8c13d4c871077e0342bd7553483af646838 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 22 Nov 2021 17:55:08 +0700 Subject: [PATCH 41/69] Use less aggressive snapping --- app/pencil-core/common/pencil.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/pencil-core/common/pencil.js b/app/pencil-core/common/pencil.js index fa16796a..76d04a39 100644 --- a/app/pencil-core/common/pencil.js +++ b/app/pencil-core/common/pencil.js @@ -10,8 +10,8 @@ var Pencil = {}; pencilSandbox.Pencil = Pencil; -Pencil.SNAP = 10; -Pencil.UNSNAP = 10; +Pencil.SNAP = 5; +Pencil.UNSNAP = 5; Pencil.editorClasses = []; Pencil.registerEditor = function (editorClass) { Pencil.editorClasses.push(editorClass); From c63c14c0ca0244d960209441af35990955259674 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 22 Nov 2021 17:55:48 +0700 Subject: [PATCH 42/69] Add utilities for calculating color contrast --- app/pencil-core/propertyType/color.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/app/pencil-core/propertyType/color.js b/app/pencil-core/propertyType/color.js index fd56fbf4..6ddbe3f6 100644 --- a/app/pencil-core/propertyType/color.js +++ b/app/pencil-core/propertyType/color.js @@ -208,6 +208,25 @@ Color.prototype.getDiff = function (other) { + (Math.abs(hsv0.value - hsv1.value) / (100 * 4)) + (Math.abs(this.a - other.a) / 4); } +Color.prototype.getContrastTo = function (other) { + var lum1 = Color.luminance(this.r, this.g, this.b); + var lum2 = Color.luminance(other.r, other.g, other.b); + var brightest = Math.max(lum1, lum2); + var darkest = Math.min(lum1, lum2); + var c = (brightest + 0.05) + / (darkest + 0.05); + + return c * this.a * other.a; +}; +Color.luminance = function (r, g, b) { + var a = [r, g, b].map(function (v) { + v /= 255; + return v <= 0.03928 + ? v / 12.92 + : Math.pow( (v + 0.055) / 1.055, 2.4 ); + }); + return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722; +}; pencilSandbox.Color = { newColor: function () { From 47b238976c3e3ec1626b73cdae141be79c4c132c Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Mon, 22 Nov 2021 17:57:10 +0700 Subject: [PATCH 43/69] UI: change alignment toolbar icons --- app/views/toolbars/AlignmentToolbar.xhtml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/toolbars/AlignmentToolbar.xhtml b/app/views/toolbars/AlignmentToolbar.xhtml index 2d0672a3..b3f0c339 100644 --- a/app/views/toolbars/AlignmentToolbar.xhtml +++ b/app/views/toolbars/AlignmentToolbar.xhtml @@ -2,11 +2,11 @@ - - - - - - + + + + + + From befbdc4f106d9c5853034cfb05d46129d99392e4 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Tue, 27 Dec 2022 13:50:49 +0700 Subject: [PATCH 44/69] Add support for free hand drawing --- app/app.xhtml | 6 +- app/css/canvas.css | 4 +- app/index.js | 7 +- app/package-lock.json | 11 + app/package.json | 1 + app/pencil-core/behavior/commonBehaviors.js | 14 +- app/pencil-core/canvasHelper/GestureHelper.js | 512 ++++++++++++++-- .../canvasHelper/canvasCareTaker.js | 8 + app/pencil-core/canvasHelper/canvasMemento.js | 1 + app/pencil-core/canvasHelper/drawingMode.js | 3 + app/pencil-core/common/Canvas.js | 35 +- app/pencil-core/common/pencil.js | 18 +- app/pencil-core/common/typeEditorRegistry.js | 1 + app/pencil-core/editor/handleEditor.js | 42 +- app/pencil-core/propertyType/num.js | 23 + app/stencils/Common/Definition.xml | 44 +- app/views/ApplicationPane.js | 18 +- app/views/ApplicationPane.xhtml | 3 +- app/views/editors/ColorSelector.js | 28 +- app/views/editors/NumEditor.js | 42 ++ app/views/editors/NumEditor.xhtml | 11 + app/views/editors/SharedGeomtryEditor.js | 2 +- app/views/editors/SharedPropertyEditor.js | 113 ++-- app/views/menus/CanvasMenu.js | 4 +- app/views/toolbars/GestureModeToolbar.js | 48 ++ app/views/toolbars/GestureModeToolbar.xhtml | 9 + app/yarn.lock | 549 +----------------- package-lock.json | 14 +- package.json | 2 +- yarn.lock | 8 +- 30 files changed, 894 insertions(+), 687 deletions(-) create mode 100644 app/pencil-core/canvasHelper/drawingMode.js create mode 100644 app/pencil-core/propertyType/num.js create mode 100644 app/views/editors/NumEditor.js create mode 100644 app/views/editors/NumEditor.xhtml create mode 100644 app/views/toolbars/GestureModeToolbar.js create mode 100644 app/views/toolbars/GestureModeToolbar.xhtml diff --git a/app/app.xhtml b/app/app.xhtml index e9d4f12b..407d2873 100644 --- a/app/app.xhtml +++ b/app/app.xhtml @@ -47,7 +47,6 @@ - @@ -88,6 +87,7 @@ + @@ -151,6 +151,8 @@ + + @@ -183,6 +185,7 @@ + @@ -218,6 +221,7 @@ + diff --git a/app/css/canvas.css b/app/css/canvas.css index ab91adf1..335a040c 100644 --- a/app/css/canvas.css +++ b/app/css/canvas.css @@ -15,10 +15,10 @@ } *[pencil-canvas='true'] svg { } -*[pencil-canvas='true'] svg|g[p|type='Shape'] { +.AnonId_contentBody[gesture-mode='selection'] *[pencil-canvas='true'] svg|g[p|type='Shape'] { cursor: move; } -*[pencil-canvas='true'] svg|g[p|type='Shape'][p|locked='true'] { +.AnonId_contentBody[gesture-mode='selection'] *[pencil-canvas='true'] svg|g[p|type='Shape'][p|locked='true'] { cursor: default; } body[format-painter='true'] *[pencil-canvas='true'], diff --git a/app/index.js b/app/index.js index 1aea2b09..e5be0b1b 100644 --- a/app/index.js +++ b/app/index.js @@ -21,7 +21,7 @@ if (process.platform.trim().toLowerCase() == "linux" && app.disableHardwareAccel var useHWAConfig = getAppConfig("core.useHardwareAcceleration"); console.log("useHWAConfig: ", useHWAConfig); if (process.argv.indexOf("--with-hwa") < 0 && !useHWAConfig) { - console.log("Hardware acceleration disabled for Linux."); + console.log("**************** Hardware acceleration disabled for Linux."); app.disableHardwareAcceleration(); } else { console.log("Hardware acceleration forcibly enabled."); @@ -56,7 +56,10 @@ function createWindow() { defaultEncoding: "UTF-8", nodeIntegration: true, contextIsolation: false, - enableRemoteModule: true + enableRemoteModule: true, + experimentalFeatures: true, + disableDialogs: true, + enableBlinkFeatures: "FontAccess" }, }; diff --git a/app/package-lock.json b/app/package-lock.json index e484c669..cabcaf73 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -24,6 +24,7 @@ "md5": "^2.2.1", "moment": "^2.13.0", "nugget": "^2.0.0", + "perfect-freehand": "^1.0.16", "q": "^1.4.1", "rimraf": "^2.5.4", "tar": "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz", @@ -3892,6 +3893,11 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, + "node_modules/perfect-freehand": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.0.16.tgz", + "integrity": "sha512-D4+avUeR8CHSl2vaPbPYX/dNpSMRYO3VOFp7qSSc+LRkSgzQbLATVnXosy7VxtsSHEh1C5t8K8sfmo0zCVnfWQ==" + }, "node_modules/performance-now": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", @@ -8367,6 +8373,11 @@ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" }, + "perfect-freehand": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.0.16.tgz", + "integrity": "sha512-D4+avUeR8CHSl2vaPbPYX/dNpSMRYO3VOFp7qSSc+LRkSgzQbLATVnXosy7VxtsSHEh1C5t8K8sfmo0zCVnfWQ==" + }, "performance-now": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", diff --git a/app/package.json b/app/package.json index 4b508a72..395acd68 100644 --- a/app/package.json +++ b/app/package.json @@ -55,6 +55,7 @@ "md5": "^2.2.1", "moment": "^2.13.0", "nugget": "^2.0.0", + "perfect-freehand": "^1.0.16", "q": "^1.4.1", "rimraf": "^2.5.4", "tar": "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz", diff --git a/app/pencil-core/behavior/commonBehaviors.js b/app/pencil-core/behavior/commonBehaviors.js index e40ba330..3d73d812 100644 --- a/app/pencil-core/behavior/commonBehaviors.js +++ b/app/pencil-core/behavior/commonBehaviors.js @@ -14,8 +14,8 @@ Pencil.behaviors.Box = function (box) { Pencil.behaviors.Bound = function (bound) { this.setAttribute("x", bound.x); this.setAttribute("y", bound.y); - this.setAttribute("width", bound.w); - this.setAttribute("height", bound.h); + this.setAttribute("width", Math.max(bound.w, 0)); + this.setAttribute("height", Math.max(bound.h, 0)); }; Pencil.behaviors.Radius = function (rx, ry) { this.setAttribute("rx", rx); @@ -555,13 +555,14 @@ Pencil.behaviors.MaintainGlobalDef = function (id, contentFragement) { /* n-Patch supports */ function imageNodeForPatch(patch, x, y, w, h) { + var r = window.devicePixelRatio || 1; return { _name: "image", _uri: PencilNamespaces.svg, - x: x, - y: y, - width: w, - height: h, + x: x / r, + y: y / r, + width: w / r, + height: h / r, preserveAspectRatio: "none", //transform: "translate(" + x + ", " + y + ") scale(" + (w / patch.w) + ", " + (h / patch.h) + ")", "xlink:href": patch.url @@ -795,4 +796,3 @@ Pencil.behaviors.NPatchDomContentFromImage = function (imageData, dim, xAnchorMa this.appendChild(Dom.newDOMElement(outerSpec)); }; Pencil.behaviors.NPatchDomContentFromImage._offScreenSupport = true; - diff --git a/app/pencil-core/canvasHelper/GestureHelper.js b/app/pencil-core/canvasHelper/GestureHelper.js index 965fcb57..248a4bc3 100644 --- a/app/pencil-core/canvasHelper/GestureHelper.js +++ b/app/pencil-core/canvasHelper/GestureHelper.js @@ -1,34 +1,40 @@ function GestureHelper(canvas) { this.canvas = canvas; this.canvas.gestureHelper = this; - + this.init(); } GestureHelper.prototype.init = function () { var thiz = this; this.heldKeyCodes = []; - + + this.canvas.registerEventHook({ + mousedown: this._handleGenericEvent.bind(this), + mousemove: this._handleGenericEvent.bind(this), + mouseup: this._handleGenericEvent.bind(this) + }); + this.canvas.focusableBox.addEventListener("keydown", function (event) { if (thiz.heldKeyCodes.indexOf(event.keyCode) >= 0) return; - + thiz.heldKeyCodes.push(event.keyCode); thiz.updateKeyCodes(); }, false); - + this.canvas.focusableBox.addEventListener("keyup", function (event) { var index = thiz.heldKeyCodes.indexOf(event.keyCode); if (index < 0) return; - + thiz.heldKeyCodes.splice(index, 1); thiz.updateKeyCodes(); }, false); - + this.canvas.focusableBox.addEventListener("blur", function (event) { thiz.heldKeyCodes.length = 0; thiz.updateKeyCodes(); }, false); - + // sample registry this.gestureRegistry = { keys: { @@ -39,48 +45,476 @@ GestureHelper.prototype.init = function () { } }; }; - -GestureHelper.prototype.handleMouseDown = function (event) { - if (!this.activeGestureDef) return false; - if (this.activeGestureDef.type == "Shape") { - var def = CollectionManager.shapeDefinition.locateDefinition(this.activeGestureDef.defId); - if (!def) return; - - var loc = this.canvas.getEventLocation(event); - this.canvas.insertShape(def); - - var controller = this.canvas.currentController; - var bbox = controller.getBoundingRect(); - controller.moveBy(loc.x, loc.y, true); - controller.setProperty("box", new Dimension(0, 0)); - - this.canvas.selectShape(controller.svg); - window.setTimeout(function () { - this.canvas.geometryEditor.handleMouseDown(event); - this.canvas.geometryEditor.currentAnchor = this.canvas.geometryEditor.anchor4; - }.bind(this), 10); - - return true; - } - - return false; -}; -GestureHelper.prototype.handleMouseUp = function (event) { - return false; +GestureHelper.prototype._handleGenericEvent = function (event) { + var activeMode = this.getActiveMode(); + if (!activeMode) return false; + var f = activeMode[event.type]; + if (!f) return false; + return f.call(activeMode, event, this.canvas); }; + GestureHelper.prototype.updateKeyCodes = function () { if (!GestureHelper._output) { GestureHelper._output = document.createElement("div"); ApplicationPane._instance.contentHeader.appendChild(GestureHelper._output); } - + this.activeGestureDef = null; - + for (var code of this.heldKeyCodes) { var c = String.fromCharCode(code); this.activeGestureDef = this.gestureRegistry.keys[c]; if (this.activeGestureDef) break; } - + GestureHelper._output.innerHTML = this.heldKeyCodes.join(", "); -}; \ No newline at end of file +}; + +GestureHelper.fromCanvas = function (canvas) { + return canvas.gestureHelper; +}; + +Canvas.registerLifeCycleListener({ + onNewInstance: function (canvas) { + new GestureHelper(canvas); + } +}); + +GestureHelper.prototype.setActiveModeId = function (id) { + if (!id) { + GestureHelper.activeMode = null; + } else { + for (var m of GestureHelper.MODES) { + if (m.id == id) { + GestureHelper.activeMode = m; + break; + } + } + } + + if (GestureHelper.activeMode) { + ApplicationPane._instance.getCanvasContainer().setAttribute("gesture-mode", GestureHelper.activeMode.id); + } else { + ApplicationPane._instance.getCanvasContainer().removeAttribute("gesture-mode"); + } + + this.canvas.invalidateEditors(); +}; +GestureHelper.prototype.getActiveModeId = function (id) { + return GestureHelper.activeMode && GestureHelper.activeMode.id; +}; +GestureHelper.prototype.getActiveMode = function (id) { + return GestureHelper.activeMode; +}; +GestureHelper.prototype.getPropertyProvider = function () { + var mode = this.getActiveMode(); + return mode && mode.getPropertyProvider && mode.getPropertyProvider(); +}; + +const freehand = require("perfect-freehand"); + +GestureHelper.BASE_MODE = { + +}; +GestureHelper.BASE_SHAPE_MODE = Object.assign({ + _initPropertyProvider: function () { + this._propertyDefMap = {}; + this._propertyValueMap = {}; + + var def = CollectionManager.shapeDefinition.locateDefinition(this.activeShapeDef.defId); + for (var name in def.propertyMap) { + var propDef = def.propertyMap[name]; + this._propertyDefMap[name] = propDef; + } + + var thiz = this; + this._propertyProvider = { + def: def, + getProperty: function (name) { return thiz._propertyValueMap[name]; }, + setProperty: function (name, value) { thiz._propertyValueMap[name] = value; }, + storeProperty: function (name, value) { thiz._propertyValueMap[name] = value; }, + evalExpression: Shape.prototype.evalExpression, + applyBehaviorForProperty: function () {}, + getGeometry: function () { + return null; + }, + getPropertyGroups: function () { + return def.propertyGroups; + }, + geometryUnsupported: true, + getProperties: function () { + return thiz._propertyValueMap; + } + }; + + Shape.prototype.setInitialPropertyValues.call(this._propertyProvider, null); + }, + getPropertyProvider: function () { + if (!this._propertyProvider) this._initPropertyProvider(); + + return this._propertyProvider; + } +}, GestureHelper.BASE_MODE); +GestureHelper.MODES = [ + { + id: "selection", + name: "Select", + uiIconName: "north_west", + mousedown: function (event, canvas) { + return false; + }, + mouseup: function (event, canvas) { + return false; + }, + getPropertyProvider: function () { + return null; + } + }, + Object.assign({ + id: "rectangle", + name: "Rectangle", + uiIconName: "crop_landscape", + mousedown: function (event, canvas) { + var def = CollectionManager.shapeDefinition.locateDefinition(this.activeShapeDef.defId); + console.log(def); + var loc = canvas.getEventLocation(event, true); + canvas.insertShape(def); + + var controller = canvas.currentController; + for (var name in this._propertyValueMap) { + controller.setProperty(name, this._propertyValueMap[name]); + } + + var bbox = controller.getBoundingRect(); + controller.moveBy(loc.x, loc.y, true); + controller.setProperty("box", new Dimension(0, 0)); + + canvas.selectShape(controller.svg); + this.active = true; + var thiz = this; + window.setTimeout(function () { + if (!thiz.active) { + if (controller && controller.svg) controller.svg.parentNode.removeChild(controller.svg); + canvas.selectNone(); + return; + } + canvas.geometryEditor.handleMouseDown(event); + canvas.geometryEditor.currentAnchor = canvas.geometryEditor.anchor4; + }.bind(this), 10); + + return true; + }, + mouseup: function (event, canvas) { + this.active = false; + return false; + }, + activeShapeDef: { + type: "Shape", + defId: "dgthanhan.MaterialDesktopMockup:rectangle" + } + }, GestureHelper.BASE_SHAPE_MODE), + Object.assign({ + id: "line", + name: "Line", + uiIconName: "horizontal_rule", + active: false, + mousedown: function (event, canvas) { + var def = CollectionManager.shapeDefinition.locateDefinition(this.activeShapeDef.defId); + var controlInfo = this._findControlInfo(def); + if (!controlInfo) return false; + + var handleEditor = null; + canvas.onScreenEditors.forEach(function (e) { + if (e instanceof HandleEditor) handleEditor = e; + }); + + if (!handleEditor) return false; + + this.active = true; + this.handleEditor = handleEditor; + this.controlInfo = controlInfo; + this.def = def; + this.startLoc = canvas.getEventLocation(event, true); + this.inserted = false; + canvas.selectNone(); + + return true; + }, + _insertShape: function (event, canvas) { + var loc = canvas.getEventLocation(event, true); + canvas.insertShape(this.def); + + var controller = canvas.currentController; + for (var name in this._propertyValueMap) { + controller.setProperty(name, this._propertyValueMap[name]); + } + + controller.moveBy(this.startLoc.x, this.startLoc.y, true); + + controller.setProperty(this.controlInfo.h1.name, new Handle(0, 0)); + controller.setProperty(this.controlInfo.h2.name, new Handle(loc.x - this.startLoc.x, loc.y - this.startLoc.y)); + + canvas.selectShape(controller.svg); + + this.inserted = true; + var thiz = this; + + window.setTimeout(function () { + thiz.handleEditor.handleMouseDown(event, thiz.handleEditor.handleNodeMap[thiz.controlInfo.h2.name]); + }.bind(this), 10); + }, + mousemove: function (event, canvas) { + const DELTA = 3; + if (this.active && !this.inserted) { + canvas.careTaker.pause(); + var loc = canvas.getEventLocation(event, true); + if (Math.abs(loc.x - this.startLoc.x) > DELTA || Math.abs(loc.y - this.startLoc.y) > DELTA) { + this._insertShape(event, canvas); + } + + return false; + } + + if (this.active) { + this.handleEditor.applyCurrentHandleValue(); + } + return false; + }, + mouseup: function (event, canvas) { + if (this.active && this.inserted) { + canvas.careTaker.resume(); + canvas.careTaker.save(this.name); + } + this.active = false; + this.handleEditor = null; + this.controlInfo = null; + return false; + }, + _findControlInfo: function (def) { + var handles = []; + for (var name in def.propertyMap) { + var propDef = def.propertyMap[name]; + if (propDef.type == Handle && (!propDef.meta || typeof(propDef.meta.gesture) == "undefined" || propDef.meta.gesture)) { + handles.push(propDef); + } + } + + if (handles.length < 2) return null; + handles.sort(function (a, b) { + var oa = (a.meta && a.meta.gestureOrder) || 0; + var ob = (b.meta && b.meta.gestureOrder) || 0; + + if (oa > ob) return 1; + if (oa < ob) return -1; + + var xa = (a.initialValue && a.initialValue.x) || 0; + var xb = (b.initialValue && b.initialValue.x) || 0; + + if (xa > xb) return 1; + if (xa < xb) return -1; + + return 0; + }); + + return { + h1: handles[0], + h2: handles[1] + }; + }, + activeShapeDef: { + type: "Shape", + defId: "evolus.QCTools:arrow2" + } + }, GestureHelper.BASE_SHAPE_MODE), + Object.assign({ + id: "freehand", + name: "Freehand", + uiIconName: "draw", + _appendPointFromEvent: function (loc) { + const MIN = 10; + var x = loc.x - this.startLoc.x; + var y = loc.y - this.startLoc.y; + if (this.lastLoc) { + if (Math.abs(x - this.lastLoc.x) < MIN && Math.abs(y - this.lastLoc.y) < MIN) return false; + } + this.minX = Math.min(this.minX, x); + this.maxX = Math.max(this.maxX, x); + this.minY = Math.min(this.minY, y); + this.maxY = Math.max(this.maxY, y); + this._points.push([x, y]); + + this.lastLoc = {x: x, y: y}; + return true; + }, + _generateProperties: function () { + var map = {}; + var w = this.maxX - this.minX; + var h = this.maxY - this.minY; + + map.data = new PlainText(JSON.stringify(this._points)); + map.box = new Dimension(w, h); + + return map; + }, + mousedown: function (event, canvas) { + var def = CollectionManager.shapeDefinition.locateDefinition(this.activeShapeDef.defId); + this.startLoc = canvas.getEventLocation(event, true); + this.minX = this.maxX = this.minY = this.maxY = 0; + this._points = []; + this._appendPointFromEvent(this.startLoc); + + canvas.careTaker.pause(); + canvas.insertShape(def); + + var controller = canvas.currentController; + for (var name in this._propertyValueMap) { + controller.setProperty(name, this._propertyValueMap[name]); + } + + controller.moveBy(this.startLoc.x, this.startLoc.y, true); + + canvas.selectNone(); + + this.active = true; + this.controller = controller; + this.def = def; + this.generated = false; + + return true; + }, + mousemove: function (event, canvas) { + if (!this.active) return; + var loc = canvas.getEventLocation(event, true); + var accepted = this._appendPointFromEvent(loc); + if (!accepted) return false; + + var map = this._generateProperties(); + this.controller.setProperty("box", map.box); + this.controller.setProperty("originalDim", map.box); + this.controller.setProperty("data", map.data); + + this.generated = true; + + return false; + }, + mouseup: function (event, canvas) { + if (!this.active) return; + try { + if (this.generated) { + var thiz = this; + this._points.forEach(function (p) { + p[0] = p[0] - thiz.minX; + p[1] = p[1] - thiz.minY; + }); + var map = this._generateProperties(); + this.controller.setProperty("box", map.box); + this.controller.setProperty("originalDim", map.box); + this.controller.setProperty("data", map.data); + + this.controller.moveBy(this.minX, this.minY, true); + canvas.selectShape(this.controller.svg); + } else { + this.controller.svg.parentNode.removeChild(this.controller.svg); + canvas.selectNone(); + } + + this.active = false; + return false; + } catch (e) { + + } finally { + canvas.careTaker.resume(); + canvas.careTaker.save(this.name); + } + }, + activeShapeDef: { + type: "Shape", + defId: "Evolus.Common:FreehandPath" + } + }, GestureHelper.BASE_SHAPE_MODE), + Object.assign({ + id: "text", + name: "Text", + uiIconName: "title", + mousedown: function (event, canvas) { + var def = CollectionManager.shapeDefinition.locateDefinition(this.activeShapeDef.defId); + var propDef = null; + for (var name in def.propertyMap) { + var p = def.propertyMap[name]; + if (p.type == PlainText || p.type == RichText) { + propDef = p; + break; + }; + } + + if (!propDef) return false; + + this.propDef = propDef; + + var loc = canvas.getEventLocation(event, true); + canvas.careTaker.pause(); + canvas.insertShape(def); + + var controller = canvas.currentController; + for (var name in this._propertyValueMap) { + controller.setProperty(name, this._propertyValueMap[name]); + } + + controller.setProperty(propDef.name, propDef.type.fromString("")); + + var bbox = controller.getBoundingRect(); + controller.moveBy(loc.x, loc.y, true); + controller.setProperty("box", new Dimension(0, 0)); + + canvas.selectShape(controller.svg); + this.active = true; + var thiz = this; + window.setTimeout(function () { + if (!thiz.active) { + if (controller && controller.svg) controller.svg.parentNode.removeChild(controller.svg); + canvas.selectNone(); + return; + } + canvas.geometryEditor.handleMouseDown(event); + canvas.geometryEditor.currentAnchor = canvas.geometryEditor.anchor4; + }.bind(this), 10); + + return true; + }, + mouseup: function (event, canvas) { + canvas.careTaker.resume(); + if (this.active) { + Dom.emitEvent("p:TextEditingRequested", canvas.element, { + controller : canvas.currentController + }); + } + this.active = false; + return false; + }, + activeShapeDef: { + type: "Shape", + defId: "dgthanhan.MaterialDesktopMockup:textview" + } + }, GestureHelper.BASE_SHAPE_MODE) +]; +GestureHelper.activeMode = GestureHelper.MODES[0]; + +GestureHelper._getSvgPathFromStroke = function (stroke) { + if (!stroke.length) return '' + + const d = stroke.reduce( + (acc, [x0, y0], i, arr) => { + const [x1, y1] = arr[(i + 1) % arr.length] + acc.push(x0, y0, (x0 + x1) / 2, (y0 + y1) / 2) + return acc + }, + ['M', ...stroke[0], 'Q'] + ) + + d.push('Z') + return d.join(' ') +}; +GestureHelper.getSvgPathFromStroke = function (json, options) { + var points = JSON.parse(json); + return GestureHelper._getSvgPathFromStroke(freehand.getStroke(points, options)); +}; diff --git a/app/pencil-core/canvasHelper/canvasCareTaker.js b/app/pencil-core/canvasHelper/canvasCareTaker.js index e9e6eb38..cb96898c 100644 --- a/app/pencil-core/canvasHelper/canvasCareTaker.js +++ b/app/pencil-core/canvasHelper/canvasCareTaker.js @@ -1,6 +1,7 @@ function CanvasCareTaker(canvas) { this.canvas = canvas; this.reset(); + this.paused = false; } if (!Config.get("view.undoLevel")){ Config.set("view.undoLevel", 10); @@ -10,7 +11,14 @@ CanvasCareTaker.prototype.reset = function() { this.mementos = [this.canvas.getMemento()]; this.index = 0; } +CanvasCareTaker.prototype.pause = function () { + this.paused = true; +}; +CanvasCareTaker.prototype.resume = function () { + this.paused = false; +}; CanvasCareTaker.prototype.save = function(action) { + if (this.paused) return; var memento = this.canvas.getMemento(action); this.index ++; diff --git a/app/pencil-core/canvasHelper/canvasMemento.js b/app/pencil-core/canvasHelper/canvasMemento.js index ae63e4a7..c655aac1 100644 --- a/app/pencil-core/canvasHelper/canvasMemento.js +++ b/app/pencil-core/canvasHelper/canvasMemento.js @@ -1,4 +1,5 @@ function CanvasMemento(node, metadata, action) { + if (action && action.startsWith(": ")) action = action.substring(2); this.action = action; this.node = node; this.metadata = {}; diff --git a/app/pencil-core/canvasHelper/drawingMode.js b/app/pencil-core/canvasHelper/drawingMode.js new file mode 100644 index 00000000..7df71535 --- /dev/null +++ b/app/pencil-core/canvasHelper/drawingMode.js @@ -0,0 +1,3 @@ +(function () { + +})(); diff --git a/app/pencil-core/common/Canvas.js b/app/pencil-core/common/Canvas.js index 97fd4480..8d700345 100644 --- a/app/pencil-core/common/Canvas.js +++ b/app/pencil-core/common/Canvas.js @@ -171,7 +171,8 @@ function Canvas(element, options, containerScrollPane) { "RangeBound"); this.snappingHelper = new SnappingHelper(this); - new GestureHelper(this); + + this.eventHooks = []; this.idSeed = 1; @@ -368,6 +369,14 @@ function Canvas(element, options, containerScrollPane) { return; } }.bind(this), false); + + Canvas.lifeCycleListeners.forEach(function (listener) { + try { + listener.onNewInstance(thiz); + } catch (e) { + console.error(e); + } + }); } SVGElement.prototype.getTransformToElement = SVGElement.prototype.getTransformToElement || function(elem) { @@ -380,6 +389,23 @@ Object.defineProperty(Canvas.prototype, "ownerDocument", { } }); +Canvas.lifeCycleListeners = []; + +Canvas.registerLifeCycleListener = function (listener) { + Canvas.lifeCycleListeners.push(listener); +}; + +Canvas.prototype.registerEventHook = function (hook) { + this.eventHooks.push(hook); +}; +Canvas.prototype.executeEventHooks = function (event, name) { + return !this.eventHooks.every(function (hook) { + var f = hook[name || event.type]; + if (!f) return true; + return !f.call(hook, event); + }); +}; + Canvas.prototype.createElementByName = function (name) { return this.element.ownerDocument.createElement("span"); }; @@ -961,7 +987,8 @@ Canvas.prototype.handleScrollPane = function(event) { } Canvas.prototype.handleMouseUp = function (event) { - if (this.gestureHelper && this.gestureHelper.handleMouseUp(event)) return; + if (this.executeEventHooks(event)) return; + //if (this.gestureHelper && this.gestureHelper.handleMouseUp(event)) return; if (this.resizing) { this.commitResize(event); @@ -1212,6 +1239,7 @@ Canvas.prototype.handleResizeMouseMove = function (event) { }; Canvas.prototype.handleMouseMove = function (event, fake) { if (!fake && this.handleResizeMouseMove(event)) return; + if (this.executeEventHooks(event)) return; try { if (this.duplicateMode && !this.mouseUp) { @@ -2084,7 +2112,8 @@ Canvas.prototype.handleMouseDown = function (event) { tick("begin"); Dom.emitEvent("p:CanvasMouseDown", this.element, {}); - if (this.gestureHelper && this.gestureHelper.handleMouseDown(event)) return; + if (this.executeEventHooks(event)) return; + //if (this.gestureHelper && this.gestureHelper.handleMouseDown(event)) return; var canvasList = Pencil.getCanvasList(); for (var i = 0; i < canvasList.length; i++) { diff --git a/app/pencil-core/common/pencil.js b/app/pencil-core/common/pencil.js index 76d04a39..07699695 100644 --- a/app/pencil-core/common/pencil.js +++ b/app/pencil-core/common/pencil.js @@ -209,7 +209,23 @@ Pencil.handleTargetChange = function (event) { }; Pencil.invalidateSharedEditor = function() { var canvas = Pencil.activeCanvas; - var target = canvas ? canvas.currentController : null; + var target = null; + var gesturePropertyProvider = null; + + if (canvas) { + var gestureHelper = GestureHelper.fromCanvas(canvas); + if (gestureHelper.getActiveMode()) { + gesturePropertyProvider = gestureHelper.getPropertyProvider(); + } + + target = canvas.currentController; + + if (gesturePropertyProvider && target) { + target = new TargetSet(canvas, [gesturePropertyProvider, target]); + } else if (gesturePropertyProvider) { + target = gesturePropertyProvider; + } + } if (!target) { for (var i in Pencil.sharedEditors) { diff --git a/app/pencil-core/common/typeEditorRegistry.js b/app/pencil-core/common/typeEditorRegistry.js index 2d4da51c..5eea95ad 100644 --- a/app/pencil-core/common/typeEditorRegistry.js +++ b/app/pencil-core/common/typeEditorRegistry.js @@ -14,6 +14,7 @@ TypeEditorRegistry.registerTypeEditor(Font, "FontEditor"); TypeEditorRegistry.registerTypeEditor(Alignment, "AlignEditor"); TypeEditorRegistry.registerTypeEditor(StrokeStyle, "StrokeStyleEditor"); TypeEditorRegistry.registerTypeEditor(Enum, "EnumEditor"); +TypeEditorRegistry.registerTypeEditor(Num, "NumEditor"); TypeEditorRegistry.registerTypeEditor(PlainText, "PlainTextEditor"); TypeEditorRegistry.registerTypeEditor(ShadowStyle, "ShadowStyleEditor"); diff --git a/app/pencil-core/editor/handleEditor.js b/app/pencil-core/editor/handleEditor.js index 58cec8dd..3ce29e3c 100644 --- a/app/pencil-core/editor/handleEditor.js +++ b/app/pencil-core/editor/handleEditor.js @@ -91,9 +91,10 @@ HandleEditor.prototype.findHandle = function (element) { return handle; }; -HandleEditor.prototype.handleMouseDown = function (event) { +HandleEditor.prototype.handleMouseDown = function (event, handle) { + if (!this.targetObject) return; this.lastMatchedOutlet = null; - this.currentHandle = this.findHandle(event.originalTarget); + this.currentHandle = handle || this.findHandle(event.originalTarget); if (!event.fake) { this.focusedHandleName = (this.currentHandle == null ? null : this.currentHandle._def.name); @@ -113,11 +114,9 @@ HandleEditor.prototype.handleMouseDown = function (event) { } else { this.currentMatchingOutlets = []; } - - debug("matching outlets: " + this.currentMatchingOutlets.length); } }; -HandleEditor.prototype.handleMouseUp = function (event) { +HandleEditor.prototype.handleMouseUp = function (event, liveUpdate) { try { if (this.currentHandle && this.targetObject) { //commiting the change @@ -148,13 +147,15 @@ HandleEditor.prototype.handleMouseUp = function (event) { } } - this.canvas.invalidateEditors(this); + if (!liveUpdate) this.canvas.invalidateEditors(this); } } finally { - this.currentHandle = null; + if (!liveUpdate) this.currentHandle = null; } }; HandleEditor.prototype.handleKeyPressEvent = function (event) { + if (!this.targetObject) return; + if (!this.focusedHandleName || (event.keyCode != DOM_VK_UP && event.keyCode != DOM_VK_DOWN @@ -184,6 +185,9 @@ HandleEditor.prototype.handleKeyPressEvent = function (event) { this.handleMouseDown(fakeEvent); var gridSize = Pencil.getGridSize().w; var d = event.ctrlKey ? gridSize : (event.shiftKey ? gridSize * 4 : 1); + + var ignore = false; + switch(event.keyCode) { case DOM_VK_UP: fakeEvent.clientY -= d; break; @@ -193,14 +197,19 @@ HandleEditor.prototype.handleKeyPressEvent = function (event) { fakeEvent.clientX -= d; break; case DOM_VK_RIGHT: fakeEvent.clientX += d; break; + default: + ignore = true; } - this.handleMouseMove(fakeEvent); - this.handleMouseUp(fakeEvent); + if (!ignore) { + this.handleMouseMove(fakeEvent); + this.handleMouseUp(fakeEvent); + } - return true; + return !ignore; }; HandleEditor.prototype.handleMouseMove = function (event) { + if (!this.targetObject) return; if (!this.currentHandle) return; event.preventDefault(); @@ -278,7 +287,6 @@ HandleEditor.prototype.handleMoveTo = function (x, y, event) { Svg.setX(handle, outlet.x * this.canvas.zoom); Svg.setY(handle, outlet.y * this.canvas.zoom); - debug("Found matching outlet: " + outlet.id); found = true; break; } @@ -290,6 +298,11 @@ HandleEditor.prototype.handleMoveTo = function (x, y, event) { } }; +HandleEditor.prototype.applyCurrentHandleValue = function () { + if (!this.currentHandle || !this.targetObject) return; + var h = new Handle(Math.round(this.currentHandle._newX / this.canvas.zoom), Math.round(this.currentHandle._newY / this.canvas.zoom)); + this.targetObject.setProperty(this.currentHandle._def.name, h); +}; HandleEditor.prototype.getPropertyConstraints = function (handle) { if (!this.currentHandle) return {}; return this.getPropertyConstraintsFromDef(this.currentHandle._def); @@ -325,7 +338,7 @@ HandleEditor.prototype.invalidateFocusedHandle = function () { }; HandleEditor.prototype.createHandle = function (def, value) { var p = value; - if (!p) return; + if (!p) return null; p.x *= this.canvas.zoom; p.y *= this.canvas.zoom; @@ -358,10 +371,13 @@ HandleEditor.prototype.createHandle = function (def, value) { } catch (e) { Console.dumpError(e, "stdout"); } + + return rect; }; HandleEditor.prototype.setupHandles = function () { //remove all handles while (this.svgElement.lastChild._isHandle) this.svgElement.removeChild(this.svgElement.lastChild); + this.handleNodeMap = {}; var properties = this.targetObject.getProperties(); var def = this.targetObject.def; @@ -372,7 +388,7 @@ HandleEditor.prototype.setupHandles = function () { continue; } - this.createHandle(def.propertyMap[name], value); + this.handleNodeMap[name] = this.createHandle(def.propertyMap[name], value); } this.invalidateFocusedHandle(); diff --git a/app/pencil-core/propertyType/num.js b/app/pencil-core/propertyType/num.js new file mode 100644 index 00000000..6babbd78 --- /dev/null +++ b/app/pencil-core/propertyType/num.js @@ -0,0 +1,23 @@ +function Num(value) { + this.value = typeof(value) != undefined ? value : 0; +} +Num.fromString = function(literal) { + var num = new Num(parseFloat(literal)); + return num; +}; + +Num.prototype.toString = function () { + return "" + this.value; +}; +Num.prototype.negative = function () { + return new Num(0 - this.value); +}; + +pencilSandbox.Num = { + newNum: function (v) { + return new Num(v); + } +}; +for (var p in Num) { + pencilSandbox.Num[p] = Num[p]; +}; diff --git a/app/stencils/Common/Definition.xml b/app/stencils/Common/Definition.xml index ae6cf7da..4f618fe6 100644 --- a/app/stencils/Common/Definition.xml +++ b/app/stencils/Common/Definition.xml @@ -1179,6 +1179,48 @@ + + + + 170,10 + 170,10 + [[0,0]] + + + + $$strokeColor + + 10| + + + 0.5 + 0.5 + 0.5 + true + + + + + + + $strokeColor + [scale($box.w / $originalDim.w, $box.h / $originalDim.h)] + + + + + + @@ -1435,7 +1477,7 @@ - + 48,48 diff --git a/app/views/ApplicationPane.js b/app/views/ApplicationPane.js index 0acf6f0f..0f43a9e4 100644 --- a/app/views/ApplicationPane.js +++ b/app/views/ApplicationPane.js @@ -125,8 +125,8 @@ ApplicationPane.prototype.onAttached = function () { // }); // }); // }, 100); - - + + }; Config.UI_CUSTOM_FONT_FAMILY = Config.define("ui.customUIFontFamily", ""); @@ -136,10 +136,10 @@ ApplicationPane.prototype.invalidateUIForConfig = function () { debug("BOOT: invalidating UI using configuration"); var useCompactLayout = Config.get("view.useCompactLayout", false); document.body.setAttribute("compact-layout", useCompactLayout); - - var family = Config.get(Config.UI_CUSTOM_FONT_FAMILY); + + var family = "system-ui"; //Config.get(Config.UI_CUSTOM_FONT_FAMILY); if (family) document.body.style.fontFamily = family; - + var size = Config.get(Config.UI_CUSTOM_FONT_SIZE); if (size) document.body.style.fontSize = size; @@ -183,19 +183,19 @@ ApplicationPane.prototype.createCanvas = function () { var stencilToolbar = new StencilShapeCanvasToolbar().into(wrapper); var canvas = null; - - + + scrollPane.addEventListener("mousedown", function (e) { scrollPane._mouseDownAt = e.timeStamp; }); - + scrollPane.addEventListener("mouseup", function (e) { if (!scrollPane._mouseDownAt || (e.timeStamp - scrollPane._mouseDownAt) > 150) return; if (!Dom.findParentWithClass(e.target, "CanvasWrapper")) { if (!canvas.isSelectingRange) canvas.selectNone(); } }); - + canvas = new Canvas(container, null, scrollPane); this.getCanvasContainer().appendChild(scrollPane); diff --git a/app/views/ApplicationPane.xhtml b/app/views/ApplicationPane.xhtml index c63c28f5..c989911d 100644 --- a/app/views/ApplicationPane.xhtml +++ b/app/views/ApplicationPane.xhtml @@ -290,6 +290,7 @@ + @@ -301,7 +302,7 @@ - + diff --git a/app/views/editors/ColorSelector.js b/app/views/editors/ColorSelector.js index a53fe834..2c6ff41a 100644 --- a/app/views/editors/ColorSelector.js +++ b/app/views/editors/ColorSelector.js @@ -610,11 +610,13 @@ ColorSelector.installGlobalListeners = function () { }, true); }; ColorSelector.prototype.onColorPickingCanceled = function () { - document.body.removeAttribute("color-picker-active"); - document.body.removeAttribute("color-picker-active-external"); - BaseWidget.closableProcessingDisabled = false; - ColorSelector.currentPickerInstance = null; - BaseWidget.unregisterClosable(ColorSelector._pickerClosable); + setTimeout(function () { + document.body.removeAttribute("color-picker-active"); + document.body.removeAttribute("color-picker-active-external"); + BaseWidget.closableProcessingDisabled = false; + ColorSelector.currentPickerInstance = null; + BaseWidget.unregisterClosable(ColorSelector._pickerClosable); + }, 200); }; ColorSelector.prototype.onColorPicked = function (color) { document.body.removeAttribute("color-picker-active"); @@ -636,15 +638,27 @@ ColorSelector._pickerClosable = { }; ColorSelector.CONFIG_EXTERNAL_COLOR_PICKER_PATH = Config.define("color.external_picker_path", ""); - +ColorSelector.eyeDropper = new EyeDropper(); ColorSelector.prototype.pickColor = function (event) { + var thiz = this; + // document.body.setAttribute("color-picker-active", true); + // ColorSelector.eyeDropper.open().then(function (color) { + // if (color && color.sRGBHex) { + // thiz.onColorPicked(color.sRGBHex.toUpperCase()); + // } else { + // thiz.onColorPickingCanceled(); + // } + // }).catch(function () { + // thiz.onColorPickingCanceled(); + // }); + // return; + var externalPickerPath = Config.get(ColorSelector.CONFIG_EXTERNAL_COLOR_PICKER_PATH, ""); if (!externalPickerPath) { this.pickColorUsingElectronCapture(); return; } - var thiz = this; if (event && event.shiftKey) { window.setTimeout(function () { diff --git a/app/views/editors/NumEditor.js b/app/views/editors/NumEditor.js new file mode 100644 index 00000000..121d74b5 --- /dev/null +++ b/app/views/editors/NumEditor.js @@ -0,0 +1,42 @@ +function NumEditor() { + PropertyEditor.call(this); + + var thiz = this; +} +__extend(PropertyEditor, NumEditor); + +NumEditor.prototype.setup = function () { + var thiz = this; + + this.numberInput.addEventListener("input", function (event) { + thiz.fireChangeEvent(); + }, false); +}; +NumEditor.prototype.setValue = function (num) { + if (!num) return; + this.numberInput.value = num.value; +}; +NumEditor.prototype.getValue = function () { + var num = new Num(this.numberInput.value); + return num; +}; +NumEditor.prototype.setTypeMeta = function (meta, propDef) { + this.meta = meta; + this.propDef = propDef; + + if (this.meta && this.meta.min) { + this.numberInput.setAttribute("min", parseFloat(this.meta.min)); + } else { + this.numberInput.removeAttribute("min"); + } + if (this.meta && this.meta.max) { + this.numberInput.setAttribute("max", parseFloat(this.meta.max)); + } else { + this.numberInput.removeAttribute("max"); + } + if (this.meta && this.meta.step) { + this.numberInput.setAttribute("step", parseFloat(this.meta.step)); + } else { + this.numberInput.removeAttribute("step"); + } +}; diff --git a/app/views/editors/NumEditor.xhtml b/app/views/editors/NumEditor.xhtml new file mode 100644 index 00000000..9fb151fa --- /dev/null +++ b/app/views/editors/NumEditor.xhtml @@ -0,0 +1,11 @@ + + + + + + diff --git a/app/views/editors/SharedGeomtryEditor.js b/app/views/editors/SharedGeomtryEditor.js index e40d2a7a..1a9dd4ca 100644 --- a/app/views/editors/SharedGeomtryEditor.js +++ b/app/views/editors/SharedGeomtryEditor.js @@ -141,7 +141,7 @@ SharedGeomtryEditor.prototype._applyValue = function () { }, this.target); }; SharedGeomtryEditor.prototype.attach = function (targetObject) { - if (this.isDisabled() || targetObject.constructor == TargetSet) { + if (this.isDisabled() || targetObject.constructor == TargetSet || targetObject.geometryUnsupported) { this.detach(); return; } diff --git a/app/views/editors/SharedPropertyEditor.js b/app/views/editors/SharedPropertyEditor.js index 62b8388e..401128ed 100644 --- a/app/views/editors/SharedPropertyEditor.js +++ b/app/views/editors/SharedPropertyEditor.js @@ -188,72 +188,75 @@ SharedPropertyEditor.prototype.attach = function (target) { return; } - var property = properties.shift(); - if (!currentGroupNode || currentGroupNode._group != property._group) { - currentGroupNode = Dom.newDOMElement({ - _name: "vbox", - "class": "Group" - }); + try { + var property = properties.shift(); + if (!currentGroupNode || currentGroupNode._group != property._group) { + currentGroupNode = Dom.newDOMElement({ + _name: "vbox", + "class": "Group" + }); - currentGroupNode._group = property._group; - var titleNode = Dom.newDOMElement({ - _name: "div", - _text: property._group.name, - "class": "Label Group" - }); - currentGroupNode.appendChild(titleNode); - thiz.propertyContainer.appendChild(currentGroupNode); - groupNodes.push(currentGroupNode); - } - var propName = property.displayName ? property.displayName.trim() : null; - var groupName = property._group.name ? property._group.name.trim() : null; + currentGroupNode._group = property._group; + var titleNode = Dom.newDOMElement({ + _name: "div", + _text: property._group.name, + "class": "Label Group" + }); + currentGroupNode.appendChild(titleNode); + thiz.propertyContainer.appendChild(currentGroupNode); + groupNodes.push(currentGroupNode); + } + var propName = property.displayName ? property.displayName.trim() : null; + var groupName = property._group.name ? property._group.name.trim() : null; - if (!propName || !groupName) { return; } + if (!propName || !groupName) { return; } - if (propName.indexOf(groupName) == 0) { - propName = propName.substring(groupName.length); - } + if (propName.indexOf(groupName) == 0) { + propName = propName.substring(groupName.length); + } - var editorWrapper = Dom.newDOMElement({ - _name: "hbox", - "class": "Wrapper Type_" + property.type.name, - _children: [ - { - _name: "div", - "class": "Label Property", - "flex": "2", - _text: propName + ":" - } - ] - }); + var editorWrapper = Dom.newDOMElement({ + _name: "hbox", + "class": "Wrapper Type_" + property.type.name, + _children: [ + { + _name: "div", + "class": "Label Property", + "flex": "2", + _text: propName + ":" + } + ] + }); - var editor = TypeEditorRegistry.getTypeEditor(property.type); - if (!editor) return; + var editor = TypeEditorRegistry.getTypeEditor(property.type); + if (!editor) return; - var constructeur = window[editor]; - var editorWidget = new constructeur(); + var constructeur = window[editor]; + var editorWidget = new constructeur(); - editorWrapper.appendChild(editorWidget.node()); - editorWidget.setAttribute("flex", "3"); - if (editorWidget.setTypeMeta) { - editorWidget.setTypeMeta(property.meta, property); - } - editorWidget.setValue(thiz.target.getProperty(property.name)); - thiz.propertyEditor[property.name] = editorWidget; - editorWrapper._property = property; + editorWrapper.appendChild(editorWidget.node()); + editorWidget.setAttribute("flex", "3"); + if (editorWidget.setTypeMeta) { + editorWidget.setTypeMeta(property.meta, property); + } + editorWidget.setValue(thiz.target.getProperty(property.name)); + thiz.propertyEditor[property.name] = editorWidget; + editorWrapper._property = property; - var meta = property.meta["disabled"]; + var meta = property.meta["disabled"]; - if (meta) { - if (!thiz.validationEditor) thiz.validationEditor = []; - thiz.validationEditor.push(editorWrapper); + if (meta) { + if (!thiz.validationEditor) thiz.validationEditor = []; + thiz.validationEditor.push(editorWrapper); - var disabled = !allowDisabled && thiz.target.evalExpression(meta, true); - editorWrapper.style.display = disabled ? "none" : "flex"; - } + var disabled = !allowDisabled && thiz.target.evalExpression(meta, true); + editorWrapper.style.display = disabled ? "none" : "flex"; + } - currentGroupNode.appendChild(editorWrapper); - window.setTimeout(executor(), 40); + currentGroupNode.appendChild(editorWrapper); + } finally { + window.setTimeout(executor, 40); + } }; executor(); this.properties = this.target.getProperties(); diff --git a/app/views/menus/CanvasMenu.js b/app/views/menus/CanvasMenu.js index 1e1f1b58..902bcdaf 100644 --- a/app/views/menus/CanvasMenu.js +++ b/app/views/menus/CanvasMenu.js @@ -14,7 +14,7 @@ CanvasMenu.prototype.setup = function () { UICommandManager.register({ key: "undoCommand", shortcut: "Ctrl+Z", - getLabel: function () { return "Undo" + Pencil.activeCanvas.careTaker.getCurrentAction(); }, + getLabel: function () { return "Undo: " + Pencil.activeCanvas.careTaker.getCurrentAction(); }, icon: "undo", isValid: function () { return Pencil.activeCanvas && Pencil.activeCanvas.careTaker.canUndo(); }, applyWhenClass: "CanvasScrollPane", @@ -25,7 +25,7 @@ CanvasMenu.prototype.setup = function () { UICommandManager.register({ key: "redoCommand", shortcut: "Ctrl+Y", - getLabel: function () { return "Redo" + Pencil.activeCanvas.careTaker.getPrevAction(); }, + getLabel: function () { return "Redo: " + Pencil.activeCanvas.careTaker.getPrevAction(); }, icon: "redo", isValid: function () { return Pencil.activeCanvas && Pencil.activeCanvas.careTaker.canRedo(); }, applyWhenClass: "CanvasScrollPane", diff --git a/app/views/toolbars/GestureModeToolbar.js b/app/views/toolbars/GestureModeToolbar.js new file mode 100644 index 00000000..b3b7b8d7 --- /dev/null +++ b/app/views/toolbars/GestureModeToolbar.js @@ -0,0 +1,48 @@ +function GestureModeToolbar() { + ToolBar.call(this); + + var thiz = this; + this.bind("click", this.handleClick, this.buttonContainer); + document.documentElement.addEventListener("p:CanvasActived", function () { + thiz.invalidateModeUI(); + }, false); + this.init(); +} +__extend(ToolBar, GestureModeToolbar); + +GestureModeToolbar.prototype.handleClick = function (event) { + var button = Dom.findUpwardForNodeWithData(event.target, "_mode"); + if (!button) return; + if (!Pencil.activeCanvas) return; + GestureHelper.fromCanvas(Pencil.activeCanvas).setActiveModeId(button._mode.id); + this.invalidateModeUI(); +}; +GestureModeToolbar.prototype.init = function () { + var thiz = this; + GestureHelper.MODES.forEach(function (mode) { + var button = Dom.newDOMElement({ + _name: "button", + mode: "icon", + checked: "false", + _children: [ + { _name: "i", _text: mode.uiIconName } + ] + }); + + button._mode = mode; + thiz.buttonContainer.appendChild(button); + }); + + this.invalidateModeUI(); +}; +GestureModeToolbar.prototype.invalidateModeUI = function () { + console.log("invalidate mode ui"); + if (!Pencil.activeCanvas) return; + var activeMode = GestureHelper.fromCanvas(Pencil.activeCanvas).getActiveMode(); + + Dom.doOnAllChildren(this.buttonContainer, function (button) { + if (!button._mode) return; + var selected = button._mode.id == activeMode.id;; + button.setAttribute("checked", selected); + }); +}; diff --git a/app/views/toolbars/GestureModeToolbar.xhtml b/app/views/toolbars/GestureModeToolbar.xhtml new file mode 100644 index 00000000..6e40f0ba --- /dev/null +++ b/app/views/toolbars/GestureModeToolbar.xhtml @@ -0,0 +1,9 @@ + + + + + diff --git a/app/yarn.lock b/app/yarn.lock index c56fcebd..be865a69 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -300,11 +300,6 @@ "resolved" "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz" "version" "14.17.32" -"abbrev@1": - "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - "version" "1.1.1" - "adm-zip@^0.4.7": "integrity" "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=" "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz" @@ -333,28 +328,11 @@ "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" "version" "2.1.1" -"ansi-regex@^4.1.0": - "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" - "version" "4.1.0" - -"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": - "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" - "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - "version" "3.2.1" - dependencies: - "color-convert" "^1.9.0" - "any-base@^1.1.0": "integrity" "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" "resolved" "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" "version" "1.1.0" -"aproba@^1.0.3": - "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" - "version" "1.2.0" - "archive-type@^4.0.0": "integrity" "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=" "resolved" "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz" @@ -391,14 +369,6 @@ "tar-stream" "^2.1.0" "zip-stream" "^2.1.2" -"are-we-there-yet@~1.1.2": - "integrity" "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==" - "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" - "version" "1.1.5" - dependencies: - "delegates" "^1.0.0" - "readable-stream" "^2.0.6" - "argparse@^1.0.7": "integrity" "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=" "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" @@ -639,25 +609,11 @@ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" "version" "2.1.1" -"camelcase@^5.0.0": - "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - "version" "5.3.1" - "caseless@~0.12.0": "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" "version" "0.12.0" -"chalk@^2.0.1", "chalk@^2.4.2": - "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" - "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - "version" "2.4.2" - dependencies: - "ansi-styles" "^3.2.1" - "escape-string-regexp" "^1.0.5" - "supports-color" "^5.3.0" - "charenc@~0.0.1": "integrity" "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" "resolved" "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" @@ -668,32 +624,6 @@ "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz" "version" "1.0.1" -"chownr@^1.1.1": - "integrity" "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==" - "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz" - "version" "1.1.2" - -"cli-cursor@^2.1.0": - "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" - "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" - "version" "2.1.0" - dependencies: - "restore-cursor" "^2.0.0" - -"cli-spinners@^2.0.0": - "integrity" "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==" - "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz" - "version" "2.2.0" - -"cliui@^5.0.0": - "integrity" "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==" - "resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" - "version" "5.0.0" - dependencies: - "string-width" "^3.1.0" - "strip-ansi" "^5.2.0" - "wrap-ansi" "^5.1.0" - "clone-response@^1.0.2": "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" @@ -701,11 +631,6 @@ dependencies: "mimic-response" "^1.0.0" -"clone@^1.0.2": - "integrity" "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" - "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" - "version" "1.0.4" - "clone@^2.1.2": "integrity" "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" @@ -721,23 +646,6 @@ "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" "version" "1.1.0" -"color-convert@^1.9.0": - "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" - "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - "version" "1.9.3" - dependencies: - "color-name" "1.1.3" - -"color-name@1.1.3": - "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - "version" "1.1.3" - -"colors@^1.3.3": - "integrity" "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" - "resolved" "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz" - "version" "1.3.3" - "combined-stream@^1.0.5", "combined-stream@^1.0.6", "combined-stream@~1.0.5", "combined-stream@~1.0.6": "integrity" "sha1-cj599ugBrFYTETp+RFqbactjKBg=" "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz" @@ -785,11 +693,6 @@ "ini" "^1.3.4" "proto-list" "~1.2.1" -"console-control-strings@^1.0.0", "console-control-strings@~1.1.0": - "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - "version" "1.1.0" - "core-js@^2.5.7", "core-js@^2.6.5": "integrity" "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz" @@ -841,7 +744,7 @@ dependencies: "assert-plus" "^1.0.0" -"debug@^2.1.3", "debug@^2.5.1", "debug@^2.6.9": +"debug@^2.1.3", "debug@^2.6.9": "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" "version" "2.6.9" @@ -862,7 +765,7 @@ dependencies: "ms" "2.1.2" -"decamelize@^1.1.2", "decamelize@^1.2.0": +"decamelize@^1.1.2": "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" "version" "1.2.0" @@ -927,13 +830,6 @@ "pify" "^2.3.0" "strip-dirs" "^2.0.0" -"defaults@^1.0.3": - "integrity" "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=" - "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" - "version" "1.0.3" - dependencies: - "clone" "^1.0.2" - "defer-to-connect@^1.0.1": "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" @@ -951,16 +847,6 @@ "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" "version" "1.0.0" -"delegates@^1.0.0": - "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - "version" "1.0.0" - -"detect-libc@^1.0.3": - "integrity" "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" - "version" "1.0.3" - "detect-node@^2.0.4": "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" @@ -1002,21 +888,6 @@ "resolved" "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz" "version" "2.2.17" -"electron-rebuild@^1.8.5": - "integrity" "sha512-gDwRA3utfiPnFwBZ1z8M4SEMwsdsy6Bg4VGO2ohelMOIO0vxiCrDQ/FVdLk3h2g7fLb06QFUsQU+86jiTSmZxw==" - "resolved" "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz" - "version" "1.8.5" - dependencies: - "colors" "^1.3.3" - "debug" "^4.1.1" - "detect-libc" "^1.0.3" - "fs-extra" "^7.0.1" - "node-abi" "^2.8.0" - "node-gyp" "^4.0.0" - "ora" "^3.4.0" - "spawn-rx" "^3.0.0" - "yargs" "^13.2.2" - "electron-updater@^3.1.2": "integrity" "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==" "resolved" "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz" @@ -1042,11 +913,6 @@ "@types/node" "^14.6.2" "extract-zip" "^1.0.3" -"emoji-regex@^7.0.1": - "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" - "version" "7.0.3" - "encodeurl@^1.0.2": "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" @@ -1111,11 +977,6 @@ "resolved" "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" "version" "4.1.1" -"escape-string-regexp@^1.0.5": - "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - "version" "1.0.5" - "escape-string-regexp@^4.0.0": "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" @@ -1206,13 +1067,6 @@ "path-exists" "^2.0.0" "pinkie-promise" "^2.0.0" -"find-up@^3.0.0": - "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" - "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "locate-path" "^3.0.0" - "for-each@^0.3.3": "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" @@ -1274,13 +1128,6 @@ "jsonfile" "^4.0.0" "universalify" "^0.1.0" -"fs-minipass@^1.2.5": - "integrity" "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==" - "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz" - "version" "1.2.6" - dependencies: - "minipass" "^2.2.1" - "fs.realpath@^1.0.0": "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -1311,25 +1158,6 @@ "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" "version" "1.1.1" -"gauge@~2.7.3": - "integrity" "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" - "resolved" "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" - "version" "2.7.4" - dependencies: - "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" - -"get-caller-file@^2.0.1": - "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - "version" "2.0.5" - "get-stdin@^4.0.1": "integrity" "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" @@ -1364,7 +1192,7 @@ dependencies: "assert-plus" "^1.0.0" -"glob@^7.0.3", "glob@^7.0.5": +"glob@^7.0.5": "integrity" "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" "version" "7.1.2" @@ -1478,21 +1306,11 @@ "ajv" "^6.5.5" "har-schema" "^2.0.0" -"has-flag@^3.0.0": - "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - "version" "3.0.0" - "has-symbols@^1.0.0": "integrity" "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz" "version" "1.0.0" -"has-unicode@^2.0.0": - "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - "version" "2.0.1" - "has@^1.0.1", "has@^1.0.3": "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" @@ -1624,11 +1442,6 @@ dependencies: "number-is-nan" "^1.0.0" -"is-fullwidth-code-point@^2.0.0": - "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" - "version" "2.0.0" - "is-function@^1.0.1": "integrity" "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" "resolved" "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz" @@ -1678,11 +1491,6 @@ "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" "version" "0.0.1" -"isexe@^2.0.0": - "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - "version" "2.0.0" - "isstream@~0.1.2": "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" @@ -1843,19 +1651,6 @@ "pinkie-promise" "^2.0.0" "strip-bom" "^2.0.0" -"locate-path@^3.0.0": - "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" - "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "p-locate" "^3.0.0" - "path-exists" "^3.0.0" - -"lodash.assign@^4.2.0": - "integrity" "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" - "resolved" "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" - "version" "4.2.0" - "lodash.defaults@^4.2.0": "integrity" "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" "resolved" "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" @@ -1891,13 +1686,6 @@ "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" "version" "4.17.21" -"log-symbols@^2.2.0": - "integrity" "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==" - "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "chalk" "^2.0.1" - "loud-rejection@^1.0.0": "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" "resolved" "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" @@ -1996,11 +1784,6 @@ "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" "version" "1.6.0" -"mimic-fn@^1.0.0": - "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" - "version" "1.2.0" - "mimic-response@^1.0.0", "mimic-response@^1.0.1": "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" @@ -2040,21 +1823,6 @@ "resolved" "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" "version" "0.0.8" -"minipass@^2.2.1", "minipass@^2.3.5": - "integrity" "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==" - "resolved" "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz" - "version" "2.3.5" - dependencies: - "safe-buffer" "^5.1.2" - "yallist" "^3.0.0" - -"minizlib@^1.2.1": - "integrity" "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==" - "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz" - "version" "1.2.1" - dependencies: - "minipass" "^2.2.1" - "mkdirp@^0.5.0", "mkdirp@^0.5.1", "mkdirp@>=0.5 0", "mkdirp@0.5.1": "integrity" "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" @@ -2094,37 +1862,6 @@ "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" "version" "2.1.2" -"node-abi@^2.8.0": - "integrity" "sha512-OT0WepUvYHXdki6DU8LWhEkuo3M44i2paWBYtH9qXtPb9YiKlYEKa5WUII20XEcOv7UJPzfB0kZfPZdW46zdkw==" - "resolved" "https://registry.npmjs.org/node-abi/-/node-abi-2.10.0.tgz" - "version" "2.10.0" - dependencies: - "semver" "^5.4.1" - -"node-gyp@^4.0.0": - "integrity" "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==" - "resolved" "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz" - "version" "4.0.0" - dependencies: - "glob" "^7.0.3" - "graceful-fs" "^4.1.2" - "mkdirp" "^0.5.0" - "nopt" "2 || 3" - "npmlog" "0 || 1 || 2 || 3 || 4" - "osenv" "0" - "request" "^2.87.0" - "rimraf" "2" - "semver" "~5.3.0" - "tar" "^4.4.8" - "which" "1" - -"nopt@2 || 3": - "integrity" "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=" - "resolved" "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" - "version" "3.0.6" - dependencies: - "abbrev" "1" - "normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4": "integrity" "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz" @@ -2153,16 +1890,6 @@ "config-chain" "^1.1.11" "pify" "^3.0.0" -"npmlog@0 || 1 || 2 || 3 || 4": - "integrity" "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" - "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" - "version" "4.1.2" - dependencies: - "are-we-there-yet" "~1.1.2" - "console-control-strings" "~1.1.0" - "gauge" "~2.7.3" - "set-blocking" "~2.0.0" - "nugget@^2.0.0": "integrity" "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=" "resolved" "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz" @@ -2191,7 +1918,7 @@ "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" "version" "0.9.0" -"object-assign@^4.0.1", "object-assign@^4.1.0": +"object-assign@^4.0.1": "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" "version" "4.1.1" @@ -2218,67 +1945,16 @@ dependencies: "wrappy" "1" -"onetime@^2.0.0": - "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" - "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" - "version" "2.0.1" - dependencies: - "mimic-fn" "^1.0.0" - -"ora@^3.4.0": - "integrity" "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==" - "resolved" "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz" - "version" "3.4.0" - dependencies: - "chalk" "^2.4.2" - "cli-cursor" "^2.1.0" - "cli-spinners" "^2.0.0" - "log-symbols" "^2.2.0" - "strip-ansi" "^5.2.0" - "wcwidth" "^1.0.1" - -"os-homedir@^1.0.0": - "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" - "version" "1.0.2" - -"os-tmpdir@^1.0.0", "os-tmpdir@~1.0.2": +"os-tmpdir@~1.0.2": "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" "version" "1.0.2" -"osenv@0": - "integrity" "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==" - "resolved" "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" - "version" "0.1.5" - dependencies: - "os-homedir" "^1.0.0" - "os-tmpdir" "^1.0.0" - "p-cancelable@^1.0.0": "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" "version" "1.1.0" -"p-limit@^2.0.0": - "integrity" "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==" - "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz" - "version" "2.2.0" - dependencies: - "p-try" "^2.0.0" - -"p-locate@^3.0.0": - "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" - "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "p-limit" "^2.0.0" - -"p-try@^2.0.0": - "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - "version" "2.2.0" - "pako@^1.0.5", "pako@^1.0.6", "pako@~1.0.2": "integrity" "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=" "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz" @@ -2324,11 +2000,6 @@ dependencies: "pinkie-promise" "^2.0.0" -"path-exists@^3.0.0": - "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" - "version" "3.0.0" - "path-is-absolute@^1.0.0": "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" @@ -2348,6 +2019,11 @@ "resolved" "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" "version" "1.2.0" +"perfect-freehand@^1.0.16": + "integrity" "sha512-D4+avUeR8CHSl2vaPbPYX/dNpSMRYO3VOFp7qSSc+LRkSgzQbLATVnXosy7VxtsSHEh1C5t8K8sfmo0zCVnfWQ==" + "resolved" "https://registry.npmjs.org/perfect-freehand/-/perfect-freehand-1.0.16.tgz" + "version" "1.0.16" + "performance-now@^0.2.0": "integrity" "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" "resolved" "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz" @@ -2513,7 +2189,7 @@ "normalize-package-data" "^2.3.2" "path-type" "^1.0.0" -"readable-stream@^2.0.0", "readable-stream@^2.0.5", "readable-stream@^2.0.6", "readable-stream@^2.2.2": +"readable-stream@^2.0.0", "readable-stream@^2.0.5", "readable-stream@^2.2.2": "integrity" "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==" "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz" "version" "2.3.4" @@ -2645,42 +2321,6 @@ "tunnel-agent" "^0.6.0" "uuid" "^3.3.2" -"request@^2.87.0": - "integrity" "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==" - "resolved" "https://registry.npmjs.org/request/-/request-2.88.0.tgz" - "version" "2.88.0" - dependencies: - "aws-sign2" "~0.7.0" - "aws4" "^1.8.0" - "caseless" "~0.12.0" - "combined-stream" "~1.0.6" - "extend" "~3.0.2" - "forever-agent" "~0.6.1" - "form-data" "~2.3.2" - "har-validator" "~5.1.0" - "http-signature" "~1.2.0" - "is-typedarray" "~1.0.0" - "isstream" "~0.1.2" - "json-stringify-safe" "~5.0.1" - "mime-types" "~2.1.19" - "oauth-sign" "~0.9.0" - "performance-now" "^2.1.0" - "qs" "~6.5.2" - "safe-buffer" "^5.1.2" - "tough-cookie" "~2.4.3" - "tunnel-agent" "^0.6.0" - "uuid" "^3.3.2" - -"require-directory@^2.1.1": - "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - "version" "2.1.1" - -"require-main-filename@^2.0.0": - "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" - "version" "2.0.0" - "responselike@^1.0.2": "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" @@ -2688,14 +2328,6 @@ dependencies: "lowercase-keys" "^1.0.0" -"restore-cursor@^2.0.0": - "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" - "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" - "version" "2.0.0" - dependencies: - "onetime" "^2.0.0" - "signal-exit" "^3.0.2" - "rimraf@^2.5.4", "rimraf@2": "integrity" "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==" "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz" @@ -2715,13 +2347,6 @@ "semver-compare" "^1.0.0" "sprintf-js" "^1.1.2" -"rxjs@^6.3.1": - "integrity" "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==" - "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz" - "version" "6.5.2" - dependencies: - "tslib" "^1.9.0" - "safe-buffer@^5.0.1", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1": "integrity" "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" @@ -2754,11 +2379,6 @@ "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" "version" "1.0.0" -"semver@^5.4.1", "semver@2 || 3 || 4 || 5": - "integrity" "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" - "version" "5.5.0" - "semver@^5.6.0": "integrity" "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz" @@ -2776,10 +2396,10 @@ dependencies: "lru-cache" "^6.0.0" -"semver@~5.3.0": - "integrity" "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" - "version" "5.3.0" +"semver@2 || 3 || 4 || 5": + "integrity" "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" + "version" "5.5.0" "serialize-error@^7.0.1": "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==" @@ -2788,17 +2408,12 @@ dependencies: "type-fest" "^0.13.1" -"set-blocking@^2.0.0", "set-blocking@~2.0.0": - "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - "version" "2.0.0" - "set-immediate-shim@~1.0.1": "integrity" "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" "resolved" "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" "version" "1.0.1" -"signal-exit@^3.0.0", "signal-exit@^3.0.2": +"signal-exit@^3.0.0": "integrity" "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" "version" "3.0.2" @@ -2830,15 +2445,6 @@ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" "version" "0.6.1" -"spawn-rx@^3.0.0": - "integrity" "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==" - "resolved" "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz" - "version" "3.0.0" - dependencies: - "debug" "^2.5.1" - "lodash.assign" "^4.2.0" - "rxjs" "^6.3.1" - "spdx-correct@~1.0.0": "integrity" "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" @@ -2912,7 +2518,7 @@ dependencies: "safe-buffer" "~5.1.0" -"string-width@^1.0.1", "string-width@^1.0.2 || 2": +"string-width@^1.0.1": "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" "version" "1.0.2" @@ -2921,24 +2527,6 @@ "is-fullwidth-code-point" "^1.0.0" "strip-ansi" "^3.0.0" -"string-width@^3.0.0": - "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "emoji-regex" "^7.0.1" - "is-fullwidth-code-point" "^2.0.0" - "strip-ansi" "^5.1.0" - -"string-width@^3.1.0": - "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" - "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" - "version" "3.1.0" - dependencies: - "emoji-regex" "^7.0.1" - "is-fullwidth-code-point" "^2.0.0" - "strip-ansi" "^5.1.0" - "string.prototype.trim@^1.1.2": "integrity" "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==" "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz" @@ -2953,20 +2541,13 @@ "resolved" "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" "version" "0.0.5" -"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": +"strip-ansi@^3.0.0": "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" "version" "3.0.1" dependencies: "ansi-regex" "^2.0.0" -"strip-ansi@^5.0.0", "strip-ansi@^5.1.0", "strip-ansi@^5.2.0": - "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" - "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" - "version" "5.2.0" - dependencies: - "ansi-regex" "^4.1.0" - "strip-bom@^2.0.0": "integrity" "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" @@ -2995,13 +2576,6 @@ dependencies: "debug" "^4.1.0" -"supports-color@^5.3.0": - "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" - "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - "version" "5.5.0" - dependencies: - "has-flag" "^3.0.0" - "tar-fs@^1.15.2": "integrity" "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==" "resolved" "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz" @@ -3053,19 +2627,6 @@ "fstream" "^1.0.12" "inherits" "2" -"tar@^4.4.8": - "integrity" "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==" - "resolved" "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz" - "version" "4.4.10" - dependencies: - "chownr" "^1.1.1" - "fs-minipass" "^1.2.5" - "minipass" "^2.3.5" - "minizlib" "^1.2.1" - "mkdirp" "^0.5.0" - "safe-buffer" "^5.1.2" - "yallist" "^3.0.3" - "tar@https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz": "integrity" "sha1-IO+OBChbRx10V28tpdj9xTokIwE=" "resolved" "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz" @@ -3135,11 +2696,6 @@ "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" "version" "1.0.0" -"tslib@^1.9.0": - "integrity" "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" - "version" "1.10.0" - "tunnel-agent@^0.6.0": "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" @@ -3233,41 +2789,6 @@ "core-util-is" "1.0.2" "extsprintf" "^1.2.0" -"wcwidth@^1.0.1": - "integrity" "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=" - "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" - "version" "1.0.1" - dependencies: - "defaults" "^1.0.3" - -"which-module@^2.0.0": - "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" - "version" "2.0.0" - -"which@1": - "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" - "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - "version" "1.3.1" - dependencies: - "isexe" "^2.0.0" - -"wide-align@^1.1.0": - "integrity" "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" - "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" - "version" "1.1.3" - dependencies: - "string-width" "^1.0.2 || 2" - -"wrap-ansi@^5.1.0": - "integrity" "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==" - "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" - "version" "5.1.0" - dependencies: - "ansi-styles" "^3.2.0" - "string-width" "^3.0.0" - "strip-ansi" "^5.0.0" - "wrappy@1": "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" @@ -3313,45 +2834,11 @@ dependencies: "object-keys" "~0.4.0" -"y18n@^4.0.0": - "integrity" "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz" - "version" "4.0.0" - -"yallist@^3.0.0", "yallist@^3.0.3": - "integrity" "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" - "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz" - "version" "3.0.3" - "yallist@^4.0.0": "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" "version" "4.0.0" -"yargs-parser@^13.1.1": - "integrity" "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==" - "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz" - "version" "13.1.1" - dependencies: - "camelcase" "^5.0.0" - "decamelize" "^1.2.0" - -"yargs@^13.2.2": - "integrity" "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==" - "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz" - "version" "13.3.0" - dependencies: - "cliui" "^5.0.0" - "find-up" "^3.0.0" - "get-caller-file" "^2.0.1" - "require-directory" "^2.1.1" - "require-main-filename" "^2.0.0" - "set-blocking" "^2.0.0" - "string-width" "^3.0.0" - "which-module" "^2.0.0" - "y18n" "^4.0.0" - "yargs-parser" "^13.1.1" - "yauzl@^2.10.0", "yauzl@^2.4.2": "integrity" "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=" "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" diff --git a/package-lock.json b/package-lock.json index 125a4236..68e3cabf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "@electron/remote": "^2.0.1" }, "devDependencies": { - "electron": "15.2.0", + "electron": "16.0.0", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" @@ -1164,9 +1164,9 @@ } }, "node_modules/electron": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz", - "integrity": "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.0.tgz", + "integrity": "sha512-B+K/UnEV8NsP7IUOd4VAIYLT0uShLQ/V0p1QQLX0McF8d185AV522faklgMGMtPVWNVL2qifx9rZAsKtHPzmEg==", "hasInstallScript": true, "dependencies": { "@electron/get": "^1.13.0", @@ -5081,9 +5081,9 @@ "dev": true }, "electron": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz", - "integrity": "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.0.tgz", + "integrity": "sha512-B+K/UnEV8NsP7IUOd4VAIYLT0uShLQ/V0p1QQLX0McF8d185AV522faklgMGMtPVWNVL2qifx9rZAsKtHPzmEg==", "requires": { "@electron/get": "^1.13.0", "@types/node": "^14.6.2", diff --git a/package.json b/package.json index 54eafccb..00a47e81 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "Pencil", "devDependencies": { - "electron": "15.2.0", + "electron": "16.0.0", "electron-builder": "20.28.4", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" diff --git a/yarn.lock b/yarn.lock index 8955277e..ff4f19f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -730,10 +730,10 @@ "spawn-rx" "^3.0.0" "yargs" "^13.2.2" -"electron@>= 10.0.0-beta.1", "electron@15.2.0": - "integrity" "sha512-kg0JdlsVbJgD/hO/A7o9VH8U44pQWkIsyt/sALxH6g8CiHQxMujLn2JfB2gyUfHXPT7m8vD4Z+CurS2KodEsWw==" - "resolved" "https://registry.npmjs.org/electron/-/electron-15.2.0.tgz" - "version" "15.2.0" +"electron@>= 10.0.0-beta.1", "electron@16.0.0": + "integrity" "sha512-B+K/UnEV8NsP7IUOd4VAIYLT0uShLQ/V0p1QQLX0McF8d185AV522faklgMGMtPVWNVL2qifx9rZAsKtHPzmEg==" + "resolved" "https://registry.npmjs.org/electron/-/electron-16.0.0.tgz" + "version" "16.0.0" dependencies: "@electron/get" "^1.13.0" "@types/node" "^14.6.2" From 0c8b58c8ae5061b7de35f20fb6e4fd6bbfb11231 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 28 Dec 2022 11:32:09 +0700 Subject: [PATCH 45/69] Temporarily disable gesture toolbar --- app/pencil-core/canvasHelper/GestureHelper.js | 2 +- app/views/ApplicationPane.xhtml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/pencil-core/canvasHelper/GestureHelper.js b/app/pencil-core/canvasHelper/GestureHelper.js index 248a4bc3..083cf66d 100644 --- a/app/pencil-core/canvasHelper/GestureHelper.js +++ b/app/pencil-core/canvasHelper/GestureHelper.js @@ -67,7 +67,7 @@ GestureHelper.prototype.updateKeyCodes = function () { if (this.activeGestureDef) break; } - GestureHelper._output.innerHTML = this.heldKeyCodes.join(", "); + GestureHelper._output.innerHTML = this.heldKeyCodes.join(", ") + ":" + this.heldKeyCodes.map(c => {return String.fromCharCode(c)}).join(", "); }; GestureHelper.fromCanvas = function (canvas) { diff --git a/app/views/ApplicationPane.xhtml b/app/views/ApplicationPane.xhtml index c989911d..477c8dc3 100644 --- a/app/views/ApplicationPane.xhtml +++ b/app/views/ApplicationPane.xhtml @@ -290,7 +290,7 @@ - + From d4bd220b25b5ea3f406b7a10246501ac39fc4a5f Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 28 Dec 2022 12:47:10 +0700 Subject: [PATCH 46/69] Use electron-builder 23.3.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 00a47e81..5a3ee481 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "Pencil", "devDependencies": { "electron": "16.0.0", - "electron-builder": "20.28.4", + "electron-builder": "23.3.3", "electron-rebuild": "^1.8.5", "rimraf": "^2.5.4" }, From c1f2e1c16efeb90360378fb97af13c3810dbb8e2 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 28 Dec 2022 13:01:01 +0700 Subject: [PATCH 47/69] Use universal as mac arch --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 5a3ee481..8c2af902 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,11 @@ "productName": "Pencil", "copyright": "Copyright © 2008-2016 Evolus. All rights reserved.", "mac": { - "category": "public.app-category.graphics-design" + "category": "public.app-category.graphics-design", + "target": [{ + "target": "default", + "arch": "universal" + }] }, "dmg": { "contents": [ From cee511ca960ba3a8c207f06dabde74e4eebb088e Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 28 Dec 2022 13:11:10 +0700 Subject: [PATCH 48/69] Use arm64 as mac arch --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8c2af902..b3ce0fa5 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,8 @@ "mac": { "category": "public.app-category.graphics-design", "target": [{ - "target": "default", - "arch": "universal" + "target": "dmg", + "arch": ["arm64"] }] }, "dmg": { From b7e91aa3702d6ab63190d54f6873a20c1c845d96 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Wed, 28 Dec 2022 14:08:03 +0700 Subject: [PATCH 49/69] change configuration for mac arm build --- app/package-lock.json | 6128 +++++++++++++++++++++++++++++++++++++---- app/package.json | 79 +- app/yarn.lock | 1872 ++++++++++++- 3 files changed, 7452 insertions(+), 627 deletions(-) diff --git a/app/package-lock.json b/app/package-lock.json index cabcaf73..db665510 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "Pencil", "version": "3.1.0", + "hasInstallScript": true, "license": "GPL2", "dependencies": { "@electron/remote": "^2.0.1", @@ -17,7 +18,6 @@ "decompress-targz": "^4.0.0", "easy-zip2": "^3.0.0", "electron-log": "^2.2.17", - "electron-updater": "^3.1.2", "jimp": "^0.6.4", "less": "~3.8.1", "lodash": "^4.13.1", @@ -33,7 +33,10 @@ "tmp": "0.0.33" }, "devDependencies": { - "electron-rebuild": "^1.8.5" + "electron": "16.0.0", + "electron-builder": "23.3.3", + "electron-rebuild": "^1.8.5", + "electron-updater": "^5.3.0" } }, "node_modules/@babel/polyfill": { @@ -46,11 +49,58 @@ "regenerator-runtime": "^0.13.2" } }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@develar/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@develar/schema-utils/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/@develar/schema-utils/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, "node_modules/@electron/get": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz", "integrity": "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==", - "peer": true, "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -72,7 +122,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -89,7 +138,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -102,14 +150,12 @@ "node_modules/@electron/get/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/@electron/get/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true, "bin": { "semver": "bin/semver.js" } @@ -122,6 +168,83 @@ "electron": ">= 10.0.0-beta.1" } }, + "node_modules/@electron/universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", + "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", + "dev": true, + "dependencies": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/universal/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/universal/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@electron/universal/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@jimp/bmp": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz", @@ -507,11 +630,106 @@ "core-js": "^2.5.7" } }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@malept/flatpak-bundler/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "peer": true, "engines": { "node": ">=6" } @@ -520,7 +738,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "peer": true, "dependencies": { "defer-to-connect": "^1.0.1" }, @@ -528,11 +745,116 @@ "node": ">=6" } }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "optional": true + }, + "node_modules/@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, "node_modules/@types/node": { "version": "14.17.32", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz", - "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==", - "peer": true + "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==" + }, + "node_modules/@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/plist/node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/verror": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz", + "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", + "dev": true, + "optional": true + }, + "node_modules/@types/yargs": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", + "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true }, "node_modules/abbrev": { "version": "1.1.1", @@ -548,6 +870,41 @@ "node": ">=0.3.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -557,6 +914,65 @@ "json-stable-stringify": "^1.0.1" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -582,25 +998,272 @@ "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "node_modules/app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", "dev": true }, - "node_modules/archive-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", - "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "node_modules/app-builder-lib": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.3.3.tgz", + "integrity": "sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ==", + "dev": true, "dependencies": { - "file-type": "^4.2.0" - }, + "@develar/schema-utils": "~2.6.5", + "@electron/universal": "1.2.1", + "@malept/flatpak-bundler": "^0.4.0", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.7", + "electron-osx-sign": "^0.6.0", + "electron-publish": "23.3.3", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^4.0.10", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^3.1.2", + "read-config-file": "6.2.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.7", + "tar": "^6.1.11", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/archive-type/node_modules/file-type": { - "version": "4.4.0", + "node_modules/app-builder-lib/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/app-builder-lib/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-builder-lib/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/app-builder-lib/node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/minipass": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/app-builder-lib/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-builder-lib/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/app-builder-lib/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/app-builder-lib/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "dependencies": { + "file-type": "^4.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", "engines": { @@ -644,22 +1307,6 @@ "node": ">= 6" } }, - "node_modules/archiver-utils/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/archiver/node_modules/bl": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", @@ -676,22 +1323,6 @@ "once": "^1.4.0" } }, - "node_modules/archiver/node_modules/glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/archiver/node_modules/readable-stream": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", @@ -741,12 +1372,10 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "node_modules/array-find-index": { "version": "1.0.2", @@ -762,6 +1391,37 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "optional": true }, + "node_modules/asar": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", + "deprecated": "Please use @electron/asar moving forward. There is no API change, just a package name change", + "dev": true, + "dependencies": { + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + }, + "optionalDependencies": { + "@types/glob": "^7.1.1" + } + }, + "node_modules/asar/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -775,6 +1435,16 @@ "node": ">=0.8" } }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -783,11 +1453,29 @@ "lodash": "^4.17.14" } }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, "node_modules/aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -843,14 +1531,16 @@ } }, "node_modules/bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=" + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true }, "node_modules/bluebird-lst": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, "dependencies": { "bluebird": "^3.5.5" } @@ -864,8 +1554,7 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", - "optional": true, - "peer": true + "optional": true }, "node_modules/boom": { "version": "2.10.1", @@ -879,74 +1568,440 @@ "node": ">=0.10.40" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/buffer": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", - "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", - "deprecated": "This version of 'buffer' is out-of-date. You must update to v3.6.2 or newer", - "dependencies": { - "base64-js": "0.0.8", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "node_modules/boxen/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "node_modules/boxen/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "*" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "node_modules/boxen/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/boxen/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/boxen/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", + "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", + "deprecated": "This version of 'buffer' is out-of-date. You must update to v3.6.2 or newer", + "dependencies": { + "base64-js": "0.0.8", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", "engines": { "node": ">=0.4.0" } }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" }, + "node_modules/builder-util": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.3.3.tgz", + "integrity": "sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.6", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.0.3", + "chalk": "^4.1.1", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, "node_modules/builder-util-runtime": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-7.1.0.tgz", - "integrity": "sha512-TAsx651+q6bXYry21SzQblYQBUlfu4ixbDa6k2Nvts+kHO9ajyr0gDuHJsamxBaAyUUi5EldPABqsFERDEK3Hg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", + "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "dev": true, "dependencies": { - "bluebird-lst": "^1.0.6", - "debug": "^4.1.0", - "fs-extra-p": "^7.0.0", + "debug": "^4.3.4", "sax": "^1.2.4" }, "engines": { - "node": ">=6.0.0" + "node": ">=12.0.0" } }, "node_modules/builder-util-runtime/node_modules/debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { - "ms": "^2.1.1" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/builder-util-runtime/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/builder-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/builder-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/builder-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/builder-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/builder-util/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/builder-util/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/builder-util/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/builder-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/builder-util/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } }, "node_modules/builtin-modules": { "version": "1.1.1", @@ -960,7 +2015,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "peer": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -978,7 +2032,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "peer": true, "dependencies": { "pump": "^3.0.0" }, @@ -993,7 +2046,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "peer": true, "engines": { "node": ">=8" } @@ -1002,7 +2054,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "peer": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -1060,6 +2111,33 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -1081,17 +2159,89 @@ "node": ">=6" } }, - "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, + "optional": true, "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "optional": true + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "optional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, "node_modules/cliui/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", @@ -1148,7 +2298,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "peer": true, "dependencies": { "mimic-response": "^1.0.0" } @@ -1195,9 +2344,9 @@ } }, "node_modules/combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -1216,6 +2365,15 @@ "node": ">= 0.6.x" } }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/compress-commons": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", @@ -1264,7 +2422,6 @@ "engines": [ "node >= 0.8" ], - "peer": true, "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -1277,12 +2434,52 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "optional": true, - "peer": true, "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/configstore/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/configstore/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -1361,6 +2558,35 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", @@ -1381,6 +2607,15 @@ "node": ">=0.10.40" } }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -1449,7 +2684,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "peer": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -1536,6 +2770,15 @@ "node": ">=4" } }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -1557,8 +2800,7 @@ "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "peer": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "node_modules/define-properties": { "version": "1.1.3", @@ -1609,19 +2851,203 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true + }, + "node_modules/dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "dependencies": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "bin": { + "dircompare": "src/cli/dircompare.js" + } + }, + "node_modules/dir-compare/node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dir-compare/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/dir-compare/node_modules/commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dmg-builder": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.3.3.tgz", + "integrity": "sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ==", + "dev": true, + "dependencies": { + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "fs-extra": "^10.0.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-builder/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dmg-license/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "optional": true, - "peer": true + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/dmg-license/node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "optional": true }, "node_modules/dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "peer": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "node_modules/easy-zip2": { "version": "3.0.0", @@ -1647,36 +3073,469 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "dependencies": { - "jsbn": "~0.1.0" + "jsbn": "~0.1.0" + } + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.0.tgz", + "integrity": "sha512-B+K/UnEV8NsP7IUOd4VAIYLT0uShLQ/V0p1QQLX0McF8d185AV522faklgMGMtPVWNVL2qifx9rZAsKtHPzmEg==", + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^1.13.0", + "@types/node": "^14.6.2", + "extract-zip": "^1.0.3" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 8.6" + } + }, + "node_modules/electron-builder": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.3.3.tgz", + "integrity": "sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw==", + "dev": true, + "dependencies": { + "@types/yargs": "^17.0.1", + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "chalk": "^4.1.1", + "dmg-builder": "23.3.3", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.2.0", + "update-notifier": "^5.1.0", + "yargs": "^17.0.1" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/electron-builder/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/electron-builder/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/electron-builder/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/electron-builder/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-builder/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-builder/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/electron-builder/node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-builder/node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-log": { + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz", + "integrity": "sha1-5x4uu5SfyW3tfNuZ7u5yAuSJgdI=" + }, + "node_modules/electron-osx-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", + "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", + "deprecated": "Please use @electron/osx-sign moving forward. Be aware the API is slightly different", + "dev": true, + "dependencies": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/electron-osx-sign/node_modules/isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "dependencies": { + "buffer-alloc": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/electron-osx-sign/node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/electron-publish": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.3.3.tgz", + "integrity": "sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/electron-publish/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/electron-publish/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/electron-publish/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/electron": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-15.3.0.tgz", - "integrity": "sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg==", - "hasInstallScript": true, - "peer": true, + "node_modules/electron-publish/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-publish/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, "dependencies": { - "@electron/get": "^1.13.0", - "@types/node": "^14.6.2", - "extract-zip": "^1.0.3" + "universalify": "^2.0.0" }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-publish/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, "bin": { - "electron": "cli.js" + "mime": "cli.js" }, "engines": { - "node": ">= 8.6" + "node": ">=4.0.0" } }, - "node_modules/electron-is-dev": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz", - "integrity": "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=" + "node_modules/electron-publish/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/electron-log": { - "version": "2.2.17", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz", - "integrity": "sha1-5x4uu5SfyW3tfNuZ7u5yAuSJgdI=" + "node_modules/electron-publish/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } }, "node_modules/electron-rebuild": { "version": "1.8.5", @@ -1718,28 +3577,106 @@ "dev": true }, "node_modules/electron-updater": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz", - "integrity": "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==", - "dependencies": { - "bluebird-lst": "^1.0.6", - "builder-util-runtime": "~7.1.0", - "electron-is-dev": "^0.3.0", - "fs-extra-p": "^7.0.0", - "js-yaml": "^3.12.0", - "lazy-val": "^1.0.3", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz", + "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==", + "dev": true, + "dependencies": { + "@types/semver": "^7.3.6", + "builder-util-runtime": "9.1.1", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", - "pako": "^1.0.6", - "semver": "^5.6.0", - "source-map-support": "^0.5.9" + "semver": "^7.3.5", + "typed-emitter": "^2.1.0" + } + }, + "node_modules/electron-updater/node_modules/builder-util-runtime": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/electron-updater/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-updater/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-updater/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, + "node_modules/electron-updater/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "node_modules/electron-updater/node_modules/semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/electron-updater/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" } }, "node_modules/emoji-regex": { @@ -1753,7 +3690,6 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "optional": true, - "peer": true, "engines": { "node": ">= 0.8" } @@ -1770,7 +3706,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "peer": true, "engines": { "node": ">=6" } @@ -1836,8 +3771,25 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "optional": true, - "peer": true + "optional": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/escape-string-regexp": { "version": "1.0.5", @@ -1848,18 +3800,6 @@ "node": ">=0.8.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/exif-parser": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", @@ -1874,7 +3814,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "peer": true, "dependencies": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -1888,14 +3827,12 @@ "node_modules/extract-zip/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "peer": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "node_modules/extract-zip/node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "peer": true, "dependencies": { "minimist": "^1.2.5" }, @@ -1939,6 +3876,36 @@ "node": ">=0.10.0" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -1989,6 +3956,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -1998,18 +3966,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/fs-extra-p": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz", - "integrity": "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==", - "dependencies": { - "bluebird-lst": "^1.0.7", - "fs-extra": "^7.0.1" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, "node_modules/fs-minipass": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", @@ -2105,19 +4061,22 @@ } }, "node_modules/glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/global": { @@ -2134,7 +4093,6 @@ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", "optional": true, - "peer": true, "dependencies": { "boolean": "^3.0.1", "es6-error": "^4.1.1", @@ -2152,7 +4110,6 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "optional": true, - "peer": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -2163,12 +4120,35 @@ "node": ">=10" } }, + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/global-tunnel-ng": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", "optional": true, - "peer": true, "dependencies": { "encodeurl": "^1.0.2", "lodash": "^4.17.10", @@ -2184,7 +4164,6 @@ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", "optional": true, - "peer": true, "dependencies": { "define-properties": "^1.1.3" }, @@ -2199,7 +4178,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "peer": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -2221,7 +4199,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "peer": true, "dependencies": { "pump": "^3.0.0" }, @@ -2233,7 +4210,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "peer": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -2304,6 +4280,15 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -2336,8 +4321,44 @@ "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "peer": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/http-signature": { "version": "1.1.1", @@ -2353,6 +4374,71 @@ "npm": ">=1.3.7" } }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -2375,6 +4461,24 @@ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, "node_modules/indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -2404,8 +4508,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true, - "peer": true + "devOptional": true }, "node_modules/is-arrayish": { "version": "0.2.1", @@ -2436,6 +4539,18 @@ "node": ">= 0.4" } }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, "node_modules/is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", @@ -2471,11 +4586,57 @@ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -2516,11 +4677,29 @@ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -2532,6 +4711,100 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "node_modules/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jimp": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.6.4.tgz", @@ -2550,12 +4823,12 @@ "integrity": "sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw==" }, "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -2570,8 +4843,7 @@ "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "peer": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "node_modules/json-schema": { "version": "0.2.3", @@ -2597,6 +4869,18 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "node_modules/json5": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", + "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -2672,15 +4956,27 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "peer": true, "dependencies": { "json-buffer": "3.0.0" } }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/lazy-val": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", - "integrity": "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true }, "node_modules/lazystream": { "version": "1.0.0", @@ -2998,6 +5294,12 @@ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "dev": true + }, "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", @@ -3006,7 +5308,8 @@ "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true }, "node_modules/lodash.isplainobject": { "version": "4.0.6", @@ -3046,7 +5349,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3055,8 +5357,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "peer": true, + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -3068,8 +5369,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true, - "peer": true + "devOptional": true }, "node_modules/make-dir": { "version": "1.2.0", @@ -3103,7 +5403,6 @@ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", "optional": true, - "peer": true, "dependencies": { "escape-string-regexp": "^4.0.0" }, @@ -3116,7 +5415,6 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "optional": true, - "peer": true, "engines": { "node": ">=10" }, @@ -3202,7 +5500,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "peer": true, "engines": { "node": ">=4" } @@ -3216,9 +5513,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -3295,6 +5592,13 @@ "semver": "^5.4.1" } }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, "node_modules/node-gyp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz", @@ -3588,7 +5892,6 @@ "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "peer": true, "engines": { "node": ">=8" } @@ -3598,7 +5901,6 @@ "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", "optional": true, - "peer": true, "dependencies": { "config-chain": "^1.1.11", "pify": "^3.0.0" @@ -3612,7 +5914,6 @@ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "optional": true, - "peer": true, "engines": { "node": ">=4" } @@ -3774,7 +6075,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "peer": true, "engines": { "node": ">=6" } @@ -3812,6 +6112,30 @@ "node": ">=6" } }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", @@ -3875,6 +6199,15 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -3946,6 +6279,48 @@ "pixelmatch": "bin/pixelmatch" } }, + "node_modules/plist": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", + "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "dev": true, + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/plist/node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/plist/node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "engines": { + "node": ">=8.0" + } + }, "node_modules/pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", @@ -3958,7 +6333,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "peer": true, "engines": { "node": ">=4" } @@ -3995,7 +6369,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "peer": true, "engines": { "node": ">=0.4.0" } @@ -4022,8 +6395,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "optional": true, - "peer": true + "optional": true }, "node_modules/prr": { "version": "1.0.1", @@ -4051,6 +6423,18 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -4068,6 +6452,46 @@ "node": ">=0.6" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/read-config-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", + "dev": true, + "dependencies": { + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -4124,6 +6548,30 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", @@ -4187,7 +6635,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "peer": true, "dependencies": { "lowercase-keys": "^1.0.0" } @@ -4221,7 +6668,6 @@ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "optional": true, - "peer": true, "dependencies": { "boolean": "^3.0.1", "detect-node": "^2.0.4", @@ -4238,8 +6684,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "optional": true, - "peer": true + "optional": true }, "node_modules/rxjs": { "version": "6.5.2", @@ -4258,6 +6703,21 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -4287,15 +6747,34 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "optional": true, - "peer": true + "optional": true + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", "optional": true, - "peer": true, "dependencies": { "type-fest": "^0.13.1" }, @@ -4312,12 +6791,33 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/signal-exit": { @@ -4333,6 +6833,78 @@ "string-width": "^1.0.1" } }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -4349,14 +6921,16 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "devOptional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4396,11 +6970,6 @@ "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=" }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, "node_modules/sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", @@ -4434,6 +7003,15 @@ "node": ">=0.8" } }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -4517,11 +7095,19 @@ "node": ">=0.10.0" } }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "peer": true, "dependencies": { "debug": "^4.1.0" }, @@ -4533,7 +7119,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "peer": true, "dependencies": { "ms": "2.1.2" }, @@ -4549,8 +7134,7 @@ "node_modules/sumchecker/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/supports-color": { "version": "5.5.0", @@ -4646,6 +7230,51 @@ "node": ">=0.6" } }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/throttleit": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", @@ -4721,11 +7350,46 @@ "node": ">=0.6.0" } }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/tmp-promise/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tmp-promise/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "peer": true, "engines": { "node": ">=6" } @@ -4749,6 +7413,15 @@ "node": ">=0.10.0" } }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, "node_modules/tslib": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", @@ -4760,7 +7433,6 @@ "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", "optional": true, - "peer": true, "engines": { "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } @@ -4787,7 +7459,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "optional": true, - "peer": true, "engines": { "node": ">=10" }, @@ -4795,11 +7466,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "dev": true, + "optionalDependencies": { + "rxjs": "*" + } + }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "peer": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } }, "node_modules/unbzip2-stream": { "version": "1.2.5", @@ -4810,6 +7498,18 @@ "through": "^2.3.6" } }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -4818,6 +7518,137 @@ "node": ">= 4.0.0" } }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/update-notifier/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/update-notifier/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/update-notifier/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/update-notifier/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/update-notifier/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -4840,7 +7671,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "peer": true, "dependencies": { "prepend-http": "^2.0.0" }, @@ -4848,6 +7678,12 @@ "node": ">=4" } }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true + }, "node_modules/utif": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", @@ -4936,6 +7772,68 @@ "string-width": "^1.0.2 || 2" } }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -4999,6 +7897,27 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/xhr": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", @@ -5204,11 +8123,47 @@ "regenerator-runtime": "^0.13.2" } }, + "@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } + } + }, "@electron/get": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz", "integrity": "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==", - "peer": true, "requires": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -5225,7 +8180,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "peer": true, "requires": { "ms": "2.1.2" } @@ -5234,7 +8188,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "peer": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -5244,14 +8197,12 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "peer": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -5261,6 +8212,66 @@ "integrity": "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==", "requires": {} }, + "@electron/universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz", + "integrity": "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==", + "dev": true, + "requires": { + "@malept/cross-spawn-promise": "^1.1.0", + "asar": "^3.1.0", + "debug": "^4.3.1", + "dir-compare": "^2.4.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, "@jimp/bmp": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz", @@ -5561,26 +8572,191 @@ "core-js": "^2.5.7" } }, + "@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "peer": true + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "peer": true, "requires": { "defer-to-connect": "^1.0.1" } }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "@types/debug": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", + "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "optional": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true, + "optional": true + }, + "@types/ms": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", + "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", + "dev": true + }, "@types/node": { "version": "14.17.32", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz", - "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==", - "peer": true + "integrity": "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==" + }, + "@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + }, + "dependencies": { + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "optional": true + } + } + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/verror": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz", + "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", + "dev": true, + "optional": true + }, + "@types/yargs": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", + "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true }, "abbrev": { "version": "1.1.1", @@ -5593,6 +8769,32 @@ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=" }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, "ajv": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", @@ -5602,6 +8804,55 @@ "json-stable-stringify": "^1.0.1" } }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "requires": { + "string-width": "^4.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", @@ -5616,11 +8867,206 @@ "color-convert": "^1.9.0" } }, - "any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" - }, + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true + }, + "app-builder-lib": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.3.3.tgz", + "integrity": "sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ==", + "dev": true, + "requires": { + "@develar/schema-utils": "~2.6.5", + "@electron/universal": "1.2.1", + "@malept/flatpak-bundler": "^0.4.0", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.7", + "electron-osx-sign": "^0.6.0", + "electron-publish": "23.3.3", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^4.0.10", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^3.1.2", + "read-config-file": "6.2.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.7", + "tar": "^6.1.11", + "temp-file": "^3.4.0" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "minipass": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "tar": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", @@ -5672,19 +9118,6 @@ "once": "^1.4.0" } }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "readable-stream": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", @@ -5737,21 +9170,6 @@ "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } } }, "are-we-there-yet": { @@ -5765,12 +9183,10 @@ } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true }, "array-find-index": { "version": "1.0.2", @@ -5783,6 +9199,27 @@ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "optional": true }, + "asar": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz", + "integrity": "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "chromium-pickle-js": "^0.2.0", + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -5793,6 +9230,13 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true + }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", @@ -5801,11 +9245,23 @@ "lodash": "^4.17.14" } }, + "async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", @@ -5852,14 +9308,16 @@ } }, "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=" + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true }, "bluebird-lst": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, "requires": { "bluebird": "^3.5.5" } @@ -5873,8 +9331,7 @@ "version": "3.1.4", "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz", "integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w==", - "optional": true, - "peer": true + "optional": true }, "boom": { "version": "2.10.1", @@ -5884,6 +9341,134 @@ "hoek": "2.x.x" } }, + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -5903,6 +9488,22 @@ "isarray": "^1.0.0" } }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -5913,34 +9514,159 @@ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "dev": true + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" }, + "builder-util": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.3.3.tgz", + "integrity": "sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA==", + "dev": true, + "requires": { + "@types/debug": "^4.1.6", + "@types/fs-extra": "^9.0.11", + "7zip-bin": "~5.1.1", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.0.3", + "chalk": "^4.1.1", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, "builder-util-runtime": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-7.1.0.tgz", - "integrity": "sha512-TAsx651+q6bXYry21SzQblYQBUlfu4ixbDa6k2Nvts+kHO9ajyr0gDuHJsamxBaAyUUi5EldPABqsFERDEK3Hg==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz", + "integrity": "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==", + "dev": true, "requires": { - "bluebird-lst": "^1.0.6", - "debug": "^4.1.0", - "fs-extra-p": "^7.0.0", + "debug": "^4.3.4", "sax": "^1.2.4" }, "dependencies": { "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -5953,7 +9679,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "peer": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -5968,7 +9693,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "peer": true, "requires": { "pump": "^3.0.0" } @@ -5976,14 +9700,12 @@ "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "peer": true + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "peer": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -6031,6 +9753,24 @@ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" }, + "chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true + }, + "ci-info": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "dev": true + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "dev": true + }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -6040,12 +9780,68 @@ "restore-cursor": "^2.0.0" } }, - "cli-spinners": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", - "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", - "dev": true - }, + "cli-spinners": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz", + "integrity": "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==", + "dev": true + }, + "cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "requires": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "optional": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "optional": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "optional": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", @@ -6100,7 +9896,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "peer": true, "requires": { "mimic-response": "^1.0.0" } @@ -6137,9 +9932,9 @@ "dev": true }, "combined-stream": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", - "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } @@ -6152,6 +9947,12 @@ "graceful-readlink": ">= 1.0.0" } }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true + }, "compress-commons": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", @@ -6196,7 +9997,6 @@ "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "peer": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", @@ -6209,12 +10009,42 @@ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "optional": true, - "peer": true, "requires": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -6289,6 +10119,28 @@ } } }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", @@ -6302,6 +10154,12 @@ "boom": "2.x.x" } }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", @@ -6357,7 +10215,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "peer": true, "requires": { "mimic-response": "^1.0.0" } @@ -6426,6 +10283,12 @@ "yauzl": "^2.4.2" } }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", @@ -6446,8 +10309,7 @@ "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "peer": true + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, "define-properties": { "version": "1.1.3", @@ -6485,19 +10347,165 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true + }, + "dir-compare": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz", + "integrity": "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==", + "dev": true, + "requires": { + "buffer-equal": "1.0.0", + "colors": "1.0.3", + "commander": "2.9.0", + "minimatch": "3.0.4" + }, + "dependencies": { + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "dmg-builder": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.3.3.tgz", + "integrity": "sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ==", + "dev": true, + "requires": { + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "dmg-license": "^1.0.11", + "fs-extra": "^10.0.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, "optional": true, - "peer": true + "requires": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "optional": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "optional": true + } + } }, "dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "peer": true + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, "easy-zip2": { "version": "3.0.0", @@ -6525,27 +10533,345 @@ "jsbn": "~0.1.0" } }, + "ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, "electron": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-15.3.0.tgz", - "integrity": "sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg==", - "peer": true, + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.0.tgz", + "integrity": "sha512-B+K/UnEV8NsP7IUOd4VAIYLT0uShLQ/V0p1QQLX0McF8d185AV522faklgMGMtPVWNVL2qifx9rZAsKtHPzmEg==", "requires": { "@electron/get": "^1.13.0", "@types/node": "^14.6.2", "extract-zip": "^1.0.3" } }, - "electron-is-dev": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz", - "integrity": "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=" - }, - "electron-log": { - "version": "2.2.17", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz", - "integrity": "sha1-5x4uu5SfyW3tfNuZ7u5yAuSJgdI=" - }, + "electron-builder": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-23.3.3.tgz", + "integrity": "sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw==", + "dev": true, + "requires": { + "@types/yargs": "^17.0.1", + "app-builder-lib": "23.3.3", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "chalk": "^4.1.1", + "dmg-builder": "23.3.3", + "fs-extra": "^10.0.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.2.0", + "update-notifier": "^5.1.0", + "yargs": "^17.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } + }, + "electron-log": { + "version": "2.2.17", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz", + "integrity": "sha1-5x4uu5SfyW3tfNuZ7u5yAuSJgdI=" + }, + "electron-osx-sign": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz", + "integrity": "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==", + "dev": true, + "requires": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "dependencies": { + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "dev": true, + "requires": { + "buffer-alloc": "^1.2.0" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + } + } + }, + "electron-publish": { + "version": "23.3.3", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-23.3.3.tgz", + "integrity": "sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ==", + "dev": true, + "requires": { + "@types/fs-extra": "^9.0.11", + "builder-util": "23.3.3", + "builder-util-runtime": "9.0.3", + "chalk": "^4.1.1", + "fs-extra": "^10.0.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, "electron-rebuild": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz", @@ -6581,26 +10907,82 @@ } }, "electron-updater": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz", - "integrity": "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==", - "requires": { - "bluebird-lst": "^1.0.6", - "builder-util-runtime": "~7.1.0", - "electron-is-dev": "^0.3.0", - "fs-extra-p": "^7.0.0", - "js-yaml": "^3.12.0", - "lazy-val": "^1.0.3", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz", + "integrity": "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==", + "dev": true, + "requires": { + "@types/semver": "^7.3.6", + "builder-util-runtime": "9.1.1", + "fs-extra": "^10.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", "lodash.isequal": "^4.5.0", - "pako": "^1.0.6", - "semver": "^5.6.0", - "source-map-support": "^0.5.9" + "semver": "^7.3.5", + "typed-emitter": "^2.1.0" }, "dependencies": { + "builder-util-runtime": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz", + "integrity": "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "sax": "^1.2.4" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true } } }, @@ -6614,8 +10996,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "optional": true, - "peer": true + "optional": true }, "end-of-stream": { "version": "1.4.0", @@ -6628,8 +11009,7 @@ "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "peer": true + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" }, "errno": { "version": "0.1.7", @@ -6682,8 +11062,19 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "optional": true, - "peer": true + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true }, "escape-string-regexp": { "version": "1.0.5", @@ -6691,11 +11082,6 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" - }, "exif-parser": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", @@ -6710,7 +11096,6 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "peer": true, "requires": { "concat-stream": "^1.6.2", "debug": "^2.6.9", @@ -6721,14 +11106,12 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "peer": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "peer": true, "requires": { "minimist": "^1.2.5" } @@ -6765,6 +11148,35 @@ "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" }, + "filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -6806,21 +11218,13 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, - "fs-extra-p": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz", - "integrity": "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==", - "requires": { - "bluebird-lst": "^1.0.7", - "fs-extra": "^7.0.1" - } - }, "fs-minipass": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz", @@ -6903,14 +11307,14 @@ } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } @@ -6929,7 +11333,6 @@ "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", "optional": true, - "peer": true, "requires": { "boolean": "^3.0.1", "es6-error": "^4.1.1", @@ -6944,19 +11347,34 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "optional": true, - "peer": true, "requires": { "lru-cache": "^6.0.0" } } } }, + "global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "dev": true, + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + } + } + }, "global-tunnel-ng": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", "optional": true, - "peer": true, "requires": { "encodeurl": "^1.0.2", "lodash": "^4.17.10", @@ -6969,7 +11387,6 @@ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", "optional": true, - "peer": true, "requires": { "define-properties": "^1.1.3" } @@ -6978,7 +11395,6 @@ "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "peer": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", @@ -6997,7 +11413,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "peer": true, "requires": { "pump": "^3.0.0" } @@ -7006,7 +11421,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "peer": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -7063,6 +11477,12 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", @@ -7087,8 +11507,35 @@ "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "peer": true + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } }, "http-signature": { "version": "1.1.1", @@ -7100,6 +11547,53 @@ "sshpk": "^1.7.0" } }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "requires": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", @@ -7116,6 +11610,18 @@ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", @@ -7142,8 +11648,7 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true, - "peer": true + "devOptional": true }, "is-arrayish": { "version": "0.2.1", @@ -7168,6 +11673,15 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==" }, + "is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "requires": { + "ci-info": "^3.2.0" + } + }, "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", @@ -7194,11 +11708,39 @@ "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, "is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "dev": true + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", @@ -7230,11 +11772,23 @@ "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -7246,6 +11800,75 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "jimp": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.6.4.tgz", @@ -7264,12 +11887,12 @@ "integrity": "sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw==" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "jsbn": { @@ -7281,8 +11904,7 @@ "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "peer": true + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, "json-schema": { "version": "0.2.3", @@ -7308,6 +11930,12 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "json5": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz", + "integrity": "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==", + "dev": true + }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -7378,15 +12006,24 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "peer": true, "requires": { "json-buffer": "3.0.0" } }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, "lazy-val": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", - "integrity": "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==", + "dev": true }, "lazystream": { "version": "1.0.0", @@ -7645,6 +12282,12 @@ "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "dev": true + }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", @@ -7653,7 +12296,8 @@ "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", + "dev": true }, "lodash.isplainobject": { "version": "4.0.6", @@ -7686,15 +12330,13 @@ "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "peer": true + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "peer": true, + "devOptional": true, "requires": { "yallist": "^4.0.0" }, @@ -7703,8 +12345,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true, - "peer": true + "devOptional": true } } }, @@ -7733,7 +12374,6 @@ "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", "optional": true, - "peer": true, "requires": { "escape-string-regexp": "^4.0.0" }, @@ -7742,8 +12382,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "optional": true, - "peer": true + "optional": true } } }, @@ -7808,8 +12447,7 @@ "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "peer": true + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, "min-document": { "version": "2.19.0", @@ -7820,9 +12458,9 @@ } }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -7891,6 +12529,13 @@ "semver": "^5.4.1" } }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, "node-gyp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz", @@ -8124,15 +12769,13 @@ "normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "peer": true + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "npm-conf": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", "optional": true, - "peer": true, "requires": { "config-chain": "^1.1.11", "pify": "^3.0.0" @@ -8142,8 +12785,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "optional": true, - "peer": true + "optional": true } } }, @@ -8277,8 +12919,7 @@ "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "peer": true + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" }, "p-limit": { "version": "2.2.0", @@ -8304,6 +12945,26 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", @@ -8358,6 +13019,12 @@ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", @@ -8411,7 +13078,31 @@ "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", "requires": { - "pngjs": "^3.0.0" + "pngjs": "^3.0.0" + } + }, + "plist": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", + "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", + "dev": true, + "requires": { + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true + } } }, "pngjs": { @@ -8422,8 +13113,7 @@ "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "peer": true + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "pretty-bytes": { "version": "1.0.4", @@ -8447,8 +13137,7 @@ "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "peer": true + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" }, "progress-stream": { "version": "1.2.0", @@ -8472,8 +13161,7 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "optional": true, - "peer": true + "optional": true }, "prr": { "version": "1.0.1", @@ -8501,6 +13189,15 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -8511,6 +13208,39 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true + } + } + }, + "read-config-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz", + "integrity": "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==", + "dev": true, + "requires": { + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + } + }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", @@ -8558,6 +13288,24 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dev": true, + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", @@ -8611,7 +13359,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "peer": true, "requires": { "lowercase-keys": "^1.0.0" } @@ -8639,7 +13386,6 @@ "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "optional": true, - "peer": true, "requires": { "boolean": "^3.0.1", "detect-node": "^2.0.4", @@ -8653,8 +13399,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "optional": true, - "peer": true + "optional": true } } }, @@ -8672,6 +13417,21 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -8694,15 +13454,30 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "optional": true, - "peer": true + "optional": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } }, "serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", "optional": true, - "peer": true, "requires": { "type-fest": "^0.13.1" } @@ -8718,6 +13493,21 @@ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -8731,6 +13521,61 @@ "string-width": "^1.0.1" } }, + "slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "optional": true + } + } + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true + }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", @@ -8742,12 +13587,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=" + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "devOptional": true }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -8787,11 +13634,6 @@ "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", "integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=" }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, "sshpk": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", @@ -8814,6 +13656,12 @@ } } }, + "stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true + }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", @@ -8879,11 +13727,16 @@ "get-stdin": "^4.0.1" } }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true + }, "sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "peer": true, "requires": { "debug": "^4.1.0" }, @@ -8892,7 +13745,6 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "peer": true, "requires": { "ms": "2.1.2" } @@ -8900,8 +13752,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -8986,6 +13837,45 @@ } } }, + "temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "requires": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, "throttleit": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", @@ -9054,11 +13944,39 @@ "os-tmpdir": "~1.0.2" } }, + "tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "requires": { + "tmp": "^0.2.0" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + } + } + }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "peer": true + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" }, "tough-cookie": { "version": "2.3.3", @@ -9073,6 +13991,15 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, "tslib": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", @@ -9083,8 +14010,7 @@ "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "optional": true, - "peer": true + "optional": true }, "tunnel-agent": { "version": "0.6.0", @@ -9104,14 +14030,30 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "optional": true, - "peer": true + "optional": true + }, + "typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "dev": true, + "requires": { + "rxjs": "*" + } }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "peer": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } }, "unbzip2-stream": { "version": "1.2.5", @@ -9122,11 +14064,117 @@ "through": "^2.3.6" } }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dev": true, + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -9148,11 +14196,16 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "peer": true, "requires": { "prepend-http": "^2.0.0" } }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true + }, "utif": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", @@ -9230,6 +14283,55 @@ "string-width": "^1.0.2 || 2" } }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", @@ -9280,6 +14382,24 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, "xhr": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", diff --git a/app/package.json b/app/package.json index 395acd68..14cd7700 100644 --- a/app/package.json +++ b/app/package.json @@ -48,7 +48,6 @@ "decompress-targz": "^4.0.0", "easy-zip2": "^3.0.0", "electron-log": "^2.2.17", - "electron-updater": "^3.1.2", "jimp": "^0.6.4", "less": "~3.8.1", "lodash": "^4.13.1", @@ -65,6 +64,82 @@ }, "private": true, "devDependencies": { - "electron-rebuild": "^1.8.5" + "electron": "16.0.0", + "electron-builder": "23.3.3", + "electron-rebuild": "^1.8.5", + "electron-updater": "^5.3.0" + }, + "build": { + "appId": "vn.evolus.pencil", + "productName": "Pencil", + "copyright": "Copyright © 2008-2016 Evolus. All rights reserved.", + "mac": { + "category": "public.app-category.graphics-design", + "target": [{ + "target": "dmg", + "arch": ["arm64"] + }] + }, + "dmg": { + "contents": [ + { + "x": 356, + "y": 140, + "type": "link", + "path": "/Applications" + }, + { + "x": 130, + "y": 145, + "type": "file" + } + ] + }, + "linux": { + "description": "An open-source GUI prototyping tool that is available for ALL platforms.", + "synopsis": "An open-source GUI prototyping tool that is available for ALL platforms.", + "maintainer": "Nguyen Tien Dzung ", + "vendor": "Evolus", + "target": [ + "deb", + "rpm", + "tar.gz" + ], + "category": "Graphics", + "packageCategory": "graphics" + }, + "win": { + "target": "nsis" + }, + "nsis": { + "oneClick": false, + "perMachine": true, + "allowToChangeInstallationDirectory": true + }, + "electronDownload": { + "cache": ".electron-cache" + }, + "fileAssociations": { + "ext": [ + "ep", + "epz", + "epgz" + ], + "name": "Pencil Document" + } + }, + "scripts": { + "postinstall": "install-app-deps", + "install-app-deps": "node ./node_modules/electron-builder/out/install-app-deps.js", + "start": "./node_modules/.bin/electron .", + "start:dev": "./node_modules/.bin/electron . --enable-dev --enable-transparent-visuals", + "start:mac": "./node_modules/.bin/electron . --enable-dev", + "clean": "rimraf dist", + "pack": "build", + "dist": "build", + "release": "build", + "dist:linux": "./node_modules/.bin/build --linux --ia32 --x64", + "dist:win32": "./node_modules/.bin/build --windows --ia32 --x64", + "dist:osx": "./node_modules/.bin/build --macos" } } diff --git a/app/yarn.lock b/app/yarn.lock index be865a69..ffbcd9ea 100644 --- a/app/yarn.lock +++ b/app/yarn.lock @@ -10,6 +10,14 @@ "core-js" "^2.6.5" "regenerator-runtime" "^0.13.2" +"@develar/schema-utils@~2.6.5": + "integrity" "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==" + "resolved" "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" + "version" "2.6.5" + dependencies: + "ajv" "^6.12.0" + "ajv-keywords" "^3.4.1" + "@electron/get@^1.13.0": "integrity" "sha512-U5vkXDZ9DwXtkPqlB45tfYnnYBN8PePp1z/XDCupnSpdrxT8/ThCv9WCwPLf9oqiSGZTkH6dx2jDUPuoXpjkcA==" "resolved" "https://registry.npmjs.org/@electron/get/-/get-1.13.1.tgz" @@ -31,6 +39,19 @@ "resolved" "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz" "version" "2.0.1" +"@electron/universal@1.2.1": + "integrity" "sha512-7323HyMh7KBAl/nPDppdLsC87G6RwRU02dy5FPeGB1eS7rUePh55+WNWiDPLhFQqqVPHzh77M69uhmoT8XnwMQ==" + "resolved" "https://registry.npmjs.org/@electron/universal/-/universal-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "@malept/cross-spawn-promise" "^1.1.0" + "asar" "^3.1.0" + "debug" "^4.3.1" + "dir-compare" "^2.4.0" + "fs-extra" "^9.0.1" + "minimatch" "^3.0.4" + "plist" "^3.0.4" + "@jimp/bmp@^0.6.4": "integrity" "sha512-dhKM7Cjw4XoOefx3/we2+vWyTP6hQPpM7mEsziGjtsrK2f/e3/+hhHbEsQNgO9BOA1FPJRXAOiYHts9IlMH1mg==" "resolved" "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.6.4.tgz" @@ -283,6 +304,23 @@ dependencies: "core-js" "^2.5.7" +"@malept/cross-spawn-promise@^1.1.0": + "integrity" "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==" + "resolved" "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "cross-spawn" "^7.0.1" + +"@malept/flatpak-bundler@^0.4.0": + "integrity" "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==" + "resolved" "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "debug" "^4.1.1" + "fs-extra" "^9.0.0" + "lodash" "^4.17.15" + "tmp-promise" "^3.0.2" + "@sindresorhus/is@^0.14.0": "integrity" "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" "resolved" "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz" @@ -295,16 +333,92 @@ dependencies: "defer-to-connect" "^1.0.1" -"@types/node@^14.6.2": +"@tootallnate/once@2": + "integrity" "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + "resolved" "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" + "version" "2.0.0" + +"@types/debug@^4.1.6": + "integrity" "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==" + "resolved" "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz" + "version" "4.1.7" + dependencies: + "@types/ms" "*" + +"@types/fs-extra@^9.0.11": + "integrity" "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==" + "resolved" "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" + "version" "9.0.13" + dependencies: + "@types/node" "*" + +"@types/glob@^7.1.1": + "integrity" "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==" + "resolved" "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + "integrity" "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==" + "resolved" "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" + "version" "5.1.2" + +"@types/ms@*": + "integrity" "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" + "resolved" "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz" + "version" "0.7.31" + +"@types/node@*", "@types/node@^14.6.2": "integrity" "sha512-JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==" "resolved" "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz" "version" "14.17.32" +"@types/semver@^7.3.6": + "integrity" "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + "resolved" "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" + "version" "7.3.13" + +"@types/yargs-parser@*": + "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + "version" "21.0.0" + +"@types/yargs@^17.0.1": + "integrity" "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz" + "version" "17.0.17" + dependencies: + "@types/yargs-parser" "*" + +"7zip-bin@~5.1.1": + "integrity" "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==" + "resolved" "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz" + "version" "5.1.1" + +"abbrev@1": + "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "version" "1.1.1" + "adm-zip@^0.4.7": "integrity" "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=" "resolved" "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz" "version" "0.4.7" +"agent-base@6": + "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" + "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "debug" "4" + +"ajv-keywords@^3.4.1": + "integrity" "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + "resolved" "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + "version" "3.5.2" + "ajv@^4.9.1": "integrity" "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" "resolved" "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz" @@ -313,6 +427,16 @@ "co" "^4.6.0" "json-stable-stringify" "^1.0.1" +"ajv@^6.12.0", "ajv@^6.9.1": + "integrity" "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + "version" "6.12.6" + dependencies: + "fast-deep-equal" "^3.1.1" + "fast-json-stable-stringify" "^2.0.0" + "json-schema-traverse" "^0.4.1" + "uri-js" "^4.2.2" + "ajv@^6.5.5": "integrity" "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==" "resolved" "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz" @@ -323,16 +447,89 @@ "json-schema-traverse" "^0.4.1" "uri-js" "^4.2.2" +"ansi-align@^3.0.0": + "integrity" "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==" + "resolved" "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "string-width" "^4.1.0" + "ansi-regex@^2.0.0": "integrity" "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" "version" "2.1.1" +"ansi-regex@^4.1.0": + "integrity" "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz" + "version" "4.1.0" + +"ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-styles@^3.2.0", "ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0", "ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + "any-base@^1.1.0": "integrity" "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" "resolved" "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz" "version" "1.1.0" +"app-builder-bin@4.0.0": + "integrity" "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==" + "resolved" "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz" + "version" "4.0.0" + +"app-builder-lib@23.3.3": + "integrity" "sha512-m0+M53+HYMzqKxwNQZT143K7WwXEGUy9LY31l8dJphXx2P/FQod615mVbxHyqbDCG4J5bHdWm21qZ0e2DVY6CQ==" + "resolved" "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-23.3.3.tgz" + "version" "23.3.3" + dependencies: + "@develar/schema-utils" "~2.6.5" + "@electron/universal" "1.2.1" + "@malept/flatpak-bundler" "^0.4.0" + "7zip-bin" "~5.1.1" + "async-exit-hook" "^2.0.1" + "bluebird-lst" "^1.0.9" + "builder-util" "23.3.3" + "builder-util-runtime" "9.0.3" + "chromium-pickle-js" "^0.2.0" + "debug" "^4.3.4" + "ejs" "^3.1.7" + "electron-osx-sign" "^0.6.0" + "electron-publish" "23.3.3" + "form-data" "^4.0.0" + "fs-extra" "^10.1.0" + "hosted-git-info" "^4.1.0" + "is-ci" "^3.0.0" + "isbinaryfile" "^4.0.10" + "js-yaml" "^4.1.0" + "lazy-val" "^1.0.5" + "minimatch" "^3.1.2" + "read-config-file" "6.2.0" + "sanitize-filename" "^1.6.3" + "semver" "^7.3.7" + "tar" "^6.1.11" + "temp-file" "^3.4.0" + +"aproba@^1.0.3": + "integrity" "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "resolved" "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz" + "version" "1.2.0" + "archive-type@^4.0.0": "integrity" "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=" "resolved" "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz" @@ -369,12 +566,18 @@ "tar-stream" "^2.1.0" "zip-stream" "^2.1.2" -"argparse@^1.0.7": - "integrity" "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=" - "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - "version" "1.0.10" +"are-we-there-yet@~1.1.2": + "integrity" "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==" + "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz" + "version" "1.1.5" dependencies: - "sprintf-js" "~1.0.2" + "delegates" "^1.0.0" + "readable-stream" "^2.0.6" + +"argparse@^2.0.1": + "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + "version" "2.0.1" "array-find-index@^1.0.1": "integrity" "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" @@ -386,6 +589,18 @@ "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" "version" "2.0.6" +"asar@^3.1.0": + "integrity" "sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg==" + "resolved" "https://registry.npmjs.org/asar/-/asar-3.2.0.tgz" + "version" "3.2.0" + dependencies: + "chromium-pickle-js" "^0.2.0" + "commander" "^5.0.0" + "glob" "^7.1.6" + "minimatch" "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + "asn1@~0.2.3": "integrity" "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" "resolved" "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" @@ -406,6 +621,11 @@ "resolved" "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" "version" "1.0.0" +"async-exit-hook@^2.0.1": + "integrity" "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==" + "resolved" "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz" + "version" "2.0.1" + "async@^2.6.3": "integrity" "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==" "resolved" "https://registry.npmjs.org/async/-/async-2.6.3.tgz" @@ -418,11 +638,21 @@ "resolved" "https://registry.npmjs.org/async/-/async-3.1.0.tgz" "version" "3.1.0" +"async@^3.2.3": + "integrity" "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + "resolved" "https://registry.npmjs.org/async/-/async-3.2.4.tgz" + "version" "3.2.4" + "asynckit@^0.4.0": "integrity" "sha1-x57Zf380y48robyXkLzDZkdLS3k=" "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" "version" "0.4.0" +"at-least-node@^1.0.0": + "integrity" "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + "resolved" "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" + "version" "1.0.0" + "aws-sign2@~0.6.0": "integrity" "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" "resolved" "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" @@ -453,6 +683,11 @@ "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz" "version" "1.3.1" +"base64-js@^1.5.1": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" + "base64-js@0.0.8": "integrity" "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz" @@ -486,8 +721,8 @@ dependencies: "inherits" "~2.0.0" -"bluebird-lst@^1.0.6", "bluebird-lst@^1.0.7": - "integrity" "sha1-pkoOQ2Vli5q1/odeud+2lBibtBw=" +"bluebird-lst@^1.0.9": + "integrity" "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==" "resolved" "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz" "version" "1.0.9" dependencies: @@ -498,10 +733,10 @@ "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz" "version" "2.11.0" -"bluebird@^3.5.5": - "integrity" "sha1-qNCv1zJR7/u9X+OEp31zADwXpx8=" - "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz" - "version" "3.5.5" +"bluebird@^3.5.0", "bluebird@^3.5.5": + "integrity" "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" + "version" "3.7.2" "bmp-js@^0.1.0": "integrity" "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" @@ -520,6 +755,20 @@ dependencies: "hoek" "2.x.x" +"boxen@^5.0.0": + "integrity" "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==" + "resolved" "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "ansi-align" "^3.0.0" + "camelcase" "^6.2.0" + "chalk" "^4.1.0" + "cli-boxes" "^2.2.1" + "string-width" "^4.2.2" + "type-fest" "^0.20.2" + "widest-line" "^3.1.0" + "wrap-ansi" "^7.0.0" + "brace-expansion@^1.1.7": "integrity" "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=" "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -528,6 +777,26 @@ "balanced-match" "^1.0.0" "concat-map" "0.0.1" +"brace-expansion@^2.0.1": + "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "balanced-match" "^1.0.0" + +"buffer-alloc-unsafe@^1.1.0": + "integrity" "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" + "resolved" "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz" + "version" "1.1.0" + +"buffer-alloc@^1.2.0": + "integrity" "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==" + "resolved" "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "buffer-alloc-unsafe" "^1.1.0" + "buffer-fill" "^1.0.0" + "buffer-crc32@^0.2.1", "buffer-crc32@^0.2.13", "buffer-crc32@~0.2.3": "integrity" "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" "resolved" "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" @@ -538,6 +807,16 @@ "resolved" "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz" "version" "0.0.1" +"buffer-equal@1.0.0": + "integrity" "sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==" + "resolved" "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz" + "version" "1.0.0" + +"buffer-fill@^1.0.0": + "integrity" "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==" + "resolved" "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz" + "version" "1.0.0" + "buffer-from@^1.0.0": "integrity" "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=" "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" @@ -568,16 +847,45 @@ "base64-js" "^1.0.2" "ieee754" "^1.1.4" -"builder-util-runtime@~7.1.0": - "integrity" "sha512-TAsx651+q6bXYry21SzQblYQBUlfu4ixbDa6k2Nvts+kHO9ajyr0gDuHJsamxBaAyUUi5EldPABqsFERDEK3Hg==" - "resolved" "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-7.1.0.tgz" - "version" "7.1.0" +"builder-util-runtime@9.0.3": + "integrity" "sha512-SfG2wnyjpUbbdtpnqDpWwklujofC6GarGpvdWrEkg9p5AD/xJmTF2buTNaqs3qtsNBEVQDDjZz9xc2GGpVyMfA==" + "resolved" "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.3.tgz" + "version" "9.0.3" dependencies: - "bluebird-lst" "^1.0.6" - "debug" "^4.1.0" - "fs-extra-p" "^7.0.0" + "debug" "^4.3.4" + "sax" "^1.2.4" + +"builder-util-runtime@9.1.1": + "integrity" "sha512-azRhYLEoDvRDR8Dhis4JatELC/jUvYjm4cVSj7n9dauGTOM2eeNn9KS0z6YA6oDsjI1xphjNbY6PZZeHPzzqaw==" + "resolved" "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.1.1.tgz" + "version" "9.1.1" + dependencies: + "debug" "^4.3.4" "sax" "^1.2.4" +"builder-util@23.3.3": + "integrity" "sha512-MJZlUiq2PY5hjYv9+XNaoYdsITqvLgRDoHSFg/4nzpInbNxNjLQOolL04Zsyp+hgfcbFvMC4h0KkR1CMPHLWbA==" + "resolved" "https://registry.npmjs.org/builder-util/-/builder-util-23.3.3.tgz" + "version" "23.3.3" + dependencies: + "@types/debug" "^4.1.6" + "@types/fs-extra" "^9.0.11" + "7zip-bin" "~5.1.1" + "app-builder-bin" "4.0.0" + "bluebird-lst" "^1.0.9" + "builder-util-runtime" "9.0.3" + "chalk" "^4.1.1" + "cross-spawn" "^7.0.3" + "debug" "^4.3.4" + "fs-extra" "^10.0.0" + "http-proxy-agent" "^5.0.0" + "https-proxy-agent" "^5.0.0" + "is-ci" "^3.0.0" + "js-yaml" "^4.1.0" + "source-map-support" "^0.5.19" + "stat-mode" "^1.0.0" + "temp-file" "^3.4.0" + "builtin-modules@^1.0.0": "integrity" "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" "resolved" "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" @@ -609,11 +917,54 @@ "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz" "version" "2.1.1" +"camelcase@^5.0.0": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"camelcase@^6.2.0": + "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + "version" "6.3.0" + "caseless@~0.12.0": "integrity" "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" "version" "0.12.0" +"chalk@^2.0.1", "chalk@^2.4.2": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.0.2": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.1": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + "charenc@~0.0.1": "integrity" "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" "resolved" "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" @@ -624,6 +975,66 @@ "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz" "version" "1.0.1" +"chownr@^1.1.1": + "integrity" "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz" + "version" "1.1.2" + +"chownr@^2.0.0": + "integrity" "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + "version" "2.0.0" + +"chromium-pickle-js@^0.2.0": + "integrity" "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==" + "resolved" "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz" + "version" "0.2.0" + +"ci-info@^2.0.0": + "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + "version" "2.0.0" + +"ci-info@^3.2.0": + "integrity" "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz" + "version" "3.7.0" + +"cli-boxes@^2.2.1": + "integrity" "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + "resolved" "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz" + "version" "2.2.1" + +"cli-cursor@^2.1.0": + "integrity" "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=" + "resolved" "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "restore-cursor" "^2.0.0" + +"cli-spinners@^2.0.0": + "integrity" "sha512-tgU3fKwzYjiLEQgPMD9Jt+JjHVL9kW93FiIMX/l7rivvOD4/LL0Mf7gda3+4U2KJBloybwgj5KEoQgGRioMiKQ==" + "resolved" "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.2.0.tgz" + "version" "2.2.0" + +"cliui@^5.0.0": + "integrity" "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "string-width" "^3.1.0" + "strip-ansi" "^5.2.0" + "wrap-ansi" "^5.1.0" + +"cliui@^8.0.1": + "integrity" "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" + "version" "8.0.1" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.1" + "wrap-ansi" "^7.0.0" + "clone-response@^1.0.2": "integrity" "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=" "resolved" "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz" @@ -631,6 +1042,11 @@ dependencies: "mimic-response" "^1.0.0" +"clone@^1.0.2": + "integrity" "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + "resolved" "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" + "version" "1.0.4" + "clone@^2.1.2": "integrity" "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" @@ -646,10 +1062,44 @@ "resolved" "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" "version" "1.1.0" -"combined-stream@^1.0.5", "combined-stream@^1.0.6", "combined-stream@~1.0.5", "combined-stream@~1.0.6": - "integrity" "sha1-cj599ugBrFYTETp+RFqbactjKBg=" - "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz" - "version" "1.0.6" +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"colors@^1.3.3": + "integrity" "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg==" + "resolved" "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz" + "version" "1.3.3" + +"colors@1.0.3": + "integrity" "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==" + "resolved" "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" + "version" "1.0.3" + +"combined-stream@^1.0.5", "combined-stream@^1.0.6", "combined-stream@^1.0.8", "combined-stream@~1.0.5", "combined-stream@~1.0.6": + "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" dependencies: "delayed-stream" "~1.0.0" @@ -660,6 +1110,23 @@ dependencies: "graceful-readlink" ">= 1.0.0" +"commander@^5.0.0": + "integrity" "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + "resolved" "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz" + "version" "5.1.0" + +"commander@2.9.0": + "integrity" "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==" + "resolved" "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz" + "version" "2.9.0" + dependencies: + "graceful-readlink" ">= 1.0.0" + +"compare-version@^0.1.2": + "integrity" "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==" + "resolved" "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz" + "version" "0.1.2" + "compress-commons@^2.1.1": "integrity" "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==" "resolved" "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz" @@ -693,6 +1160,23 @@ "ini" "^1.3.4" "proto-list" "~1.2.1" +"configstore@^5.0.1": + "integrity" "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==" + "resolved" "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "dot-prop" "^5.2.0" + "graceful-fs" "^4.1.2" + "make-dir" "^3.0.0" + "unique-string" "^2.0.0" + "write-file-atomic" "^3.0.0" + "xdg-basedir" "^4.0.0" + +"console-control-strings@^1.0.0", "console-control-strings@~1.1.0": + "integrity" "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + "version" "1.1.0" + "core-js@^2.5.7", "core-js@^2.6.5": "integrity" "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" "resolved" "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz" @@ -718,6 +1202,15 @@ "crc" "^3.4.4" "readable-stream" "^3.4.0" +"cross-spawn@^7.0.1", "cross-spawn@^7.0.3": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + "crypt@~0.0.1": "integrity" "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" "resolved" "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" @@ -730,6 +1223,11 @@ dependencies: "boom" "2.x.x" +"crypto-random-string@^2.0.0": + "integrity" "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + "resolved" "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz" + "version" "2.0.0" + "currently-unhandled@^0.4.1": "integrity" "sha1-mI3zP+qxke95mmE2nddsF635V+o=" "resolved" "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz" @@ -744,7 +1242,7 @@ dependencies: "assert-plus" "^1.0.0" -"debug@^2.1.3", "debug@^2.6.9": +"debug@^2.1.3", "debug@^2.5.1", "debug@^2.6.8", "debug@^2.6.9": "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" "version" "2.6.9" @@ -752,11 +1250,11 @@ "ms" "2.0.0" "debug@^4.1.0": - "integrity" "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==" - "resolved" "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz" - "version" "4.1.1" + "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz" + "version" "4.3.2" dependencies: - "ms" "^2.1.1" + "ms" "2.1.2" "debug@^4.1.1": "integrity" "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==" @@ -765,7 +1263,28 @@ dependencies: "ms" "2.1.2" -"decamelize@^1.1.2": +"debug@^4.3.1": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@^4.3.4": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@4": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"decamelize@^1.1.2", "decamelize@^1.2.0": "integrity" "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" "resolved" "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" "version" "1.2.0" @@ -830,6 +1349,18 @@ "pify" "^2.3.0" "strip-dirs" "^2.0.0" +"deep-extend@^0.6.0": + "integrity" "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + "resolved" "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" + "version" "0.6.0" + +"defaults@^1.0.3": + "integrity" "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=" + "resolved" "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "clone" "^1.0.2" + "defer-to-connect@^1.0.1": "integrity" "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" "resolved" "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz" @@ -847,16 +1378,67 @@ "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" "version" "1.0.0" +"delegates@^1.0.0": + "integrity" "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + "version" "1.0.0" + +"detect-libc@^1.0.3": + "integrity" "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz" + "version" "1.0.3" + "detect-node@^2.0.4": "integrity" "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" "resolved" "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz" "version" "2.1.0" +"dir-compare@^2.4.0": + "integrity" "sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==" + "resolved" "https://registry.npmjs.org/dir-compare/-/dir-compare-2.4.0.tgz" + "version" "2.4.0" + dependencies: + "buffer-equal" "1.0.0" + "colors" "1.0.3" + "commander" "2.9.0" + "minimatch" "3.0.4" + +"dmg-builder@23.3.3": + "integrity" "sha512-ECwAjt+ZWyOvddrkDx1xRD6IVUCZb5SV6vSMHZd+Va3G2sUXHrnglR1cGDKRF4oYRQm8SYVrpLZKbi8npyDcAQ==" + "resolved" "https://registry.npmjs.org/dmg-builder/-/dmg-builder-23.3.3.tgz" + "version" "23.3.3" + dependencies: + "app-builder-lib" "23.3.3" + "builder-util" "23.3.3" + "builder-util-runtime" "9.0.3" + "fs-extra" "^10.0.0" + "iconv-lite" "^0.6.2" + "js-yaml" "^4.1.0" + optionalDependencies: + "dmg-license" "^1.0.11" + "dom-walk@^0.1.0": "integrity" "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" "resolved" "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz" "version" "0.1.1" +"dot-prop@^5.2.0": + "integrity" "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==" + "resolved" "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "is-obj" "^2.0.0" + +"dotenv-expand@^5.1.0": + "integrity" "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + "resolved" "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" + "version" "5.1.0" + +"dotenv@^9.0.2": + "integrity" "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" + "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz" + "version" "9.0.2" + "duplexer3@^0.1.4": "integrity" "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" "resolved" "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz" @@ -878,41 +1460,110 @@ dependencies: "jsbn" "~0.1.0" -"electron-is-dev@^0.3.0": - "integrity" "sha1-FOb9pcaOnk7L7/nM8DfL18BcWv4=" - "resolved" "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-0.3.0.tgz" - "version" "0.3.0" +"ejs@^3.1.7": + "integrity" "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==" + "resolved" "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz" + "version" "3.1.8" + dependencies: + "jake" "^10.8.5" + +"electron-builder@23.3.3": + "integrity" "sha512-mFYYdhoFPKevP6y5uaaF3dusmB2OtQ/HnwwpyOePeU7QDS0SEIAUokQsHUanAiJAZcBqtY7iyLBgX18QybdFFw==" + "resolved" "https://registry.npmjs.org/electron-builder/-/electron-builder-23.3.3.tgz" + "version" "23.3.3" + dependencies: + "@types/yargs" "^17.0.1" + "app-builder-lib" "23.3.3" + "builder-util" "23.3.3" + "builder-util-runtime" "9.0.3" + "chalk" "^4.1.1" + "dmg-builder" "23.3.3" + "fs-extra" "^10.0.0" + "is-ci" "^3.0.0" + "lazy-val" "^1.0.5" + "read-config-file" "6.2.0" + "update-notifier" "^5.1.0" + "yargs" "^17.0.1" "electron-log@^2.2.17": "integrity" "sha1-5x4uu5SfyW3tfNuZ7u5yAuSJgdI=" "resolved" "https://registry.npmjs.org/electron-log/-/electron-log-2.2.17.tgz" "version" "2.2.17" -"electron-updater@^3.1.2": - "integrity" "sha512-QkLS+hYyTTHzZ2gGtTyQQ3kY5zQaEf/VwJW+UP37CPi58/VNUOx0xNA9iChwwYa6mzeEyo1xhrS1XjePwkeTbA==" - "resolved" "https://registry.npmjs.org/electron-updater/-/electron-updater-3.2.3.tgz" - "version" "3.2.3" - dependencies: - "bluebird-lst" "^1.0.6" - "builder-util-runtime" "~7.1.0" - "electron-is-dev" "^0.3.0" - "fs-extra-p" "^7.0.0" - "js-yaml" "^3.12.0" - "lazy-val" "^1.0.3" +"electron-osx-sign@^0.6.0": + "integrity" "sha512-+hiIEb2Xxk6eDKJ2FFlpofCnemCbjbT5jz+BKGpVBrRNT3kWTGs4DfNX6IzGwgi33hUcXF+kFs9JW+r6Wc1LRg==" + "resolved" "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.6.0.tgz" + "version" "0.6.0" + dependencies: + "bluebird" "^3.5.0" + "compare-version" "^0.1.2" + "debug" "^2.6.8" + "isbinaryfile" "^3.0.2" + "minimist" "^1.2.0" + "plist" "^3.0.1" + +"electron-publish@23.3.3": + "integrity" "sha512-1dX17eE5xVXedTxjC+gjsP74oC0+sIHgqysp0ryTlF9+yfQUyXjBk6kcK+zhtBA2SsHMSglDtM+JPxDD/WpPTQ==" + "resolved" "https://registry.npmjs.org/electron-publish/-/electron-publish-23.3.3.tgz" + "version" "23.3.3" + dependencies: + "@types/fs-extra" "^9.0.11" + "builder-util" "23.3.3" + "builder-util-runtime" "9.0.3" + "chalk" "^4.1.1" + "fs-extra" "^10.0.0" + "lazy-val" "^1.0.5" + "mime" "^2.5.2" + +"electron-rebuild@^1.8.5": + "integrity" "sha512-gDwRA3utfiPnFwBZ1z8M4SEMwsdsy6Bg4VGO2ohelMOIO0vxiCrDQ/FVdLk3h2g7fLb06QFUsQU+86jiTSmZxw==" + "resolved" "https://registry.npmjs.org/electron-rebuild/-/electron-rebuild-1.8.5.tgz" + "version" "1.8.5" + dependencies: + "colors" "^1.3.3" + "debug" "^4.1.1" + "detect-libc" "^1.0.3" + "fs-extra" "^7.0.1" + "node-abi" "^2.8.0" + "node-gyp" "^4.0.0" + "ora" "^3.4.0" + "spawn-rx" "^3.0.0" + "yargs" "^13.2.2" + +"electron-updater@^5.3.0": + "integrity" "sha512-iKEr7yQBcvnQUPnSDYGSWC9t0eF2YbZWeYYYZzYxdl+HiRejXFENjYMnYjoOm2zxyD6Cr2JTHZhp9pqxiXuCOw==" + "resolved" "https://registry.npmjs.org/electron-updater/-/electron-updater-5.3.0.tgz" + "version" "5.3.0" + dependencies: + "@types/semver" "^7.3.6" + "builder-util-runtime" "9.1.1" + "fs-extra" "^10.0.0" + "js-yaml" "^4.1.0" + "lazy-val" "^1.0.5" + "lodash.escaperegexp" "^4.1.2" "lodash.isequal" "^4.5.0" - "pako" "^1.0.6" - "semver" "^5.6.0" - "source-map-support" "^0.5.9" + "semver" "^7.3.5" + "typed-emitter" "^2.1.0" -"electron@>= 10.0.0-beta.1": - "integrity" "sha512-YLzaKCFmSniNlz9+NUTNs7ssPyDc+bYOCYZ0b/D6DjVkOeIFz4SR8EYKqlOc8TcqlDNu18BbWqz6zbJPyAAURg==" - "resolved" "https://registry.npmjs.org/electron/-/electron-15.3.0.tgz" - "version" "15.3.0" +"electron@>= 10.0.0-beta.1", "electron@16.0.0": + "integrity" "sha512-B+K/UnEV8NsP7IUOd4VAIYLT0uShLQ/V0p1QQLX0McF8d185AV522faklgMGMtPVWNVL2qifx9rZAsKtHPzmEg==" + "resolved" "https://registry.npmjs.org/electron/-/electron-16.0.0.tgz" + "version" "16.0.0" dependencies: "@electron/get" "^1.13.0" "@types/node" "^14.6.2" "extract-zip" "^1.0.3" +"emoji-regex@^7.0.1": + "integrity" "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz" + "version" "7.0.3" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + "encodeurl@^1.0.2": "integrity" "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" @@ -977,16 +1628,26 @@ "resolved" "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz" "version" "4.1.1" +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-goat@^2.0.0": + "integrity" "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + "resolved" "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz" + "version" "2.1.1" + +"escape-string-regexp@^1.0.5": + "integrity" "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + "escape-string-regexp@^4.0.0": "integrity" "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" "version" "4.0.0" -"esprima@^4.0.0": - "integrity" "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=" - "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - "version" "4.0.1" - "exif-parser@^0.1.12": "integrity" "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" "resolved" "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz" @@ -1022,6 +1683,11 @@ "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz" "version" "2.0.1" +"fast-deep-equal@^3.1.1": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + "fast-json-stable-stringify@^2.0.0": "integrity" "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz" @@ -1059,6 +1725,13 @@ "resolved" "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz" "version" "9.0.0" +"filelist@^1.0.1": + "integrity" "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==" + "resolved" "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "minimatch" "^5.0.1" + "find-up@^1.0.0": "integrity" "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" "resolved" "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" @@ -1067,6 +1740,13 @@ "path-exists" "^2.0.0" "pinkie-promise" "^2.0.0" +"find-up@^3.0.0": + "integrity" "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "locate-path" "^3.0.0" + "for-each@^0.3.3": "integrity" "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==" "resolved" "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" @@ -1079,6 +1759,15 @@ "resolved" "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" "version" "0.6.1" +"form-data@^4.0.0": + "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.8" + "mime-types" "^2.1.12" + "form-data@~2.1.1": "integrity" "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" "resolved" "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz" @@ -1102,13 +1791,23 @@ "resolved" "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" "version" "1.0.0" -"fs-extra-p@^7.0.0": - "integrity" "sha512-yhd2OV0HnHt2oitlp+X9hl2ReX4X/7kQeL7/72qzPHTZj5eUPGzAKOvEglU02Fa1OeG2rSy/aKB4WGVaLiF8tw==" - "resolved" "https://registry.npmjs.org/fs-extra-p/-/fs-extra-p-7.0.1.tgz" - "version" "7.0.1" +"fs-extra@^10.0.0": + "integrity" "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + "version" "10.1.0" dependencies: - "bluebird-lst" "^1.0.7" - "fs-extra" "^7.0.1" + "graceful-fs" "^4.2.0" + "jsonfile" "^6.0.1" + "universalify" "^2.0.0" + +"fs-extra@^10.1.0": + "integrity" "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" + "version" "10.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^6.0.1" + "universalify" "^2.0.0" "fs-extra@^7.0.1": "integrity" "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==" @@ -1128,6 +1827,40 @@ "jsonfile" "^4.0.0" "universalify" "^0.1.0" +"fs-extra@^9.0.0": + "integrity" "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + "version" "9.1.0" + dependencies: + "at-least-node" "^1.0.0" + "graceful-fs" "^4.2.0" + "jsonfile" "^6.0.1" + "universalify" "^2.0.0" + +"fs-extra@^9.0.1": + "integrity" "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" + "version" "9.1.0" + dependencies: + "at-least-node" "^1.0.0" + "graceful-fs" "^4.2.0" + "jsonfile" "^6.0.1" + "universalify" "^2.0.0" + +"fs-minipass@^1.2.5": + "integrity" "sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==" + "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.6.tgz" + "version" "1.2.6" + dependencies: + "minipass" "^2.2.1" + +"fs-minipass@^2.0.0": + "integrity" "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==" + "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "minipass" "^3.0.0" + "fs.realpath@^1.0.0": "integrity" "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -1158,6 +1891,25 @@ "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" "version" "1.1.1" +"gauge@~2.7.3": + "integrity" "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" + "resolved" "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz" + "version" "2.7.4" + dependencies: + "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" + +"get-caller-file@^2.0.1", "get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + "get-stdin@^4.0.1": "integrity" "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" "resolved" "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz" @@ -1192,27 +1944,15 @@ dependencies: "assert-plus" "^1.0.0" -"glob@^7.0.5": - "integrity" "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz" - "version" "7.1.2" - dependencies: - "fs.realpath" "^1.0.0" - "inflight" "^1.0.4" - "inherits" "2" - "minimatch" "^3.0.4" - "once" "^1.3.0" - "path-is-absolute" "^1.0.0" - -"glob@^7.1.4": - "integrity" "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==" - "resolved" "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz" - "version" "7.1.4" +"glob@^7.0.3", "glob@^7.0.5", "glob@^7.1.3", "glob@^7.1.4", "glob@^7.1.6": + "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + "version" "7.2.3" dependencies: "fs.realpath" "^1.0.0" "inflight" "^1.0.4" "inherits" "2" - "minimatch" "^3.0.4" + "minimatch" "^3.1.1" "once" "^1.3.0" "path-is-absolute" "^1.0.0" @@ -1228,6 +1968,13 @@ "semver" "^7.3.2" "serialize-error" "^7.0.1" +"global-dirs@^3.0.0": + "integrity" "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==" + "resolved" "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "ini" "2.0.0" + "global-tunnel-ng@^2.7.1": "integrity" "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==" "resolved" "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz" @@ -1306,11 +2053,31 @@ "ajv" "^6.5.5" "har-schema" "^2.0.0" +"has-flag@^3.0.0": + "integrity" "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + "has-symbols@^1.0.0": "integrity" "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz" "version" "1.0.0" +"has-unicode@^2.0.0": + "integrity" "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + "version" "2.0.1" + +"has-yarn@^2.1.0": + "integrity" "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + "resolved" "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz" + "version" "2.1.0" + "has@^1.0.1", "has@^1.0.3": "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" @@ -1338,10 +2105,26 @@ "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz" "version" "2.5.0" -"http-cache-semantics@^4.0.0": - "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" +"hosted-git-info@^4.1.0": + "integrity" "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==" + "resolved" "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" "version" "4.1.0" + dependencies: + "lru-cache" "^6.0.0" + +"http-cache-semantics@^4.0.0": + "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + "version" "4.1.0" + +"http-proxy-agent@^5.0.0": + "integrity" "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==" + "resolved" "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "@tootallnate/once" "2" + "agent-base" "6" + "debug" "4" "http-signature@~1.1.0": "integrity" "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" @@ -1361,6 +2144,21 @@ "jsprim" "^1.2.2" "sshpk" "^1.7.0" +"https-proxy-agent@^5.0.0": + "integrity" "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==" + "resolved" "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "agent-base" "6" + "debug" "4" + +"iconv-lite@^0.6.2": + "integrity" "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + "version" "0.6.3" + dependencies: + "safer-buffer" ">= 2.1.2 < 3.0.0" + "ieee754@^1.1.4": "integrity" "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz" @@ -1376,6 +2174,16 @@ "resolved" "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz" "version" "3.0.6" +"import-lazy@^2.1.0": + "integrity" "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" + "resolved" "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz" + "version" "2.1.0" + +"imurmurhash@^0.1.4": + "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + "indent-string@^2.1.0": "integrity" "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=" "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz" @@ -1396,11 +2204,16 @@ "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "version" "2.0.3" -"ini@^1.3.4": +"ini@^1.3.4", "ini@~1.3.0": "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" "version" "1.3.8" +"ini@2.0.0": + "integrity" "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + "resolved" "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + "version" "2.0.0" + "is-arrayish@^0.2.1": "integrity" "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" @@ -1423,6 +2236,20 @@ "resolved" "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz" "version" "1.1.4" +"is-ci@^2.0.0": + "integrity" "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==" + "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "ci-info" "^2.0.0" + +"is-ci@^3.0.0": + "integrity" "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==" + "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "ci-info" "^3.2.0" + "is-date-object@^1.0.1": "integrity" "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" "resolved" "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz" @@ -1442,16 +2269,49 @@ dependencies: "number-is-nan" "^1.0.0" +"is-fullwidth-code-point@^2.0.0": + "integrity" "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz" + "version" "2.0.0" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + "is-function@^1.0.1": "integrity" "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" "resolved" "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz" "version" "1.0.1" +"is-installed-globally@^0.4.0": + "integrity" "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==" + "resolved" "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" + "version" "0.4.0" + dependencies: + "global-dirs" "^3.0.0" + "is-path-inside" "^3.0.2" + "is-natural-number@^4.0.1": "integrity" "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" "resolved" "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz" "version" "4.0.1" +"is-npm@^5.0.0": + "integrity" "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" + "resolved" "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz" + "version" "5.0.0" + +"is-obj@^2.0.0": + "integrity" "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + "resolved" "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" + "version" "2.0.0" + +"is-path-inside@^3.0.2": + "integrity" "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + "resolved" "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + "version" "3.0.3" + "is-regex@^1.0.4": "integrity" "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" "resolved" "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz" @@ -1471,7 +2331,7 @@ dependencies: "has-symbols" "^1.0.0" -"is-typedarray@~1.0.0": +"is-typedarray@^1.0.0", "is-typedarray@~1.0.0": "integrity" "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" "resolved" "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" "version" "1.0.0" @@ -1481,6 +2341,11 @@ "resolved" "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" "version" "0.2.1" +"is-yarn-global@^0.3.0": + "integrity" "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + "resolved" "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" + "version" "0.3.0" + "isarray@^1.0.0", "isarray@~1.0.0": "integrity" "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" @@ -1491,11 +2356,38 @@ "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" "version" "0.0.1" +"isbinaryfile@^3.0.2": + "integrity" "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==" + "resolved" "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "buffer-alloc" "^1.2.0" + +"isbinaryfile@^4.0.10": + "integrity" "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==" + "resolved" "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz" + "version" "4.0.10" + +"isexe@^2.0.0": + "integrity" "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + "isstream@~0.1.2": "integrity" "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" "resolved" "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" "version" "0.1.2" +"jake@^10.8.5": + "integrity" "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==" + "resolved" "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz" + "version" "10.8.5" + dependencies: + "async" "^3.2.3" + "chalk" "^4.0.2" + "filelist" "^1.0.1" + "minimatch" "^3.0.4" + "jimp@^0.6.4": "integrity" "sha512-WQVMoNhkcq/fgthZOWeMdIguCVPg+t4PDFfSxvbNcrECwl8eq3/Ou2whcFWWjyW45m43yAJEY2UT7acDKl6uSQ==" "resolved" "https://registry.npmjs.org/jimp/-/jimp-0.6.4.tgz" @@ -1512,13 +2404,12 @@ "resolved" "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.6.tgz" "version" "0.3.6" -"js-yaml@^3.12.0": - "integrity" "sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc=" - "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" - "version" "3.13.1" +"js-yaml@^4.1.0": + "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + "version" "4.1.0" dependencies: - "argparse" "^1.0.7" - "esprima" "^4.0.0" + "argparse" "^2.0.1" "jsbn@~0.1.0": "integrity" "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" @@ -1552,6 +2443,11 @@ "resolved" "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" "version" "5.0.1" +"json5@^2.2.0": + "integrity" "sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.2.tgz" + "version" "2.2.2" + "jsonfile@^4.0.0": "integrity" "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=" "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" @@ -1559,6 +2455,15 @@ optionalDependencies: "graceful-fs" "^4.1.6" +"jsonfile@^6.0.1": + "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" + "version" "6.1.0" + dependencies: + "universalify" "^2.0.0" + optionalDependencies: + "graceful-fs" "^4.1.6" + "jsonify@~0.0.0": "integrity" "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" "resolved" "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" @@ -1591,10 +2496,17 @@ dependencies: "json-buffer" "3.0.0" -"lazy-val@^1.0.3": - "integrity" "sha1-iCY2pyRcLP5uCk47psXWihN+XGU=" - "resolved" "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz" - "version" "1.0.4" +"latest-version@^5.1.0": + "integrity" "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==" + "resolved" "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "package-json" "^6.3.0" + +"lazy-val@^1.0.4", "lazy-val@^1.0.5": + "integrity" "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" + "resolved" "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz" + "version" "1.0.5" "lazystream@^1.0.0": "integrity" "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=" @@ -1651,6 +2563,19 @@ "pinkie-promise" "^2.0.0" "strip-bom" "^2.0.0" +"locate-path@^3.0.0": + "integrity" "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-locate" "^3.0.0" + "path-exists" "^3.0.0" + +"lodash.assign@^4.2.0": + "integrity" "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + "resolved" "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz" + "version" "4.2.0" + "lodash.defaults@^4.2.0": "integrity" "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" "resolved" "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" @@ -1661,6 +2586,11 @@ "resolved" "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz" "version" "4.5.0" +"lodash.escaperegexp@^4.1.2": + "integrity" "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + "resolved" "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz" + "version" "4.1.2" + "lodash.flatten@^4.4.0": "integrity" "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" "resolved" "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz" @@ -1681,11 +2611,18 @@ "resolved" "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz" "version" "4.6.0" -"lodash@^4.13.1", "lodash@^4.17.10", "lodash@^4.17.14": +"lodash@^4.13.1", "lodash@^4.17.10", "lodash@^4.17.14", "lodash@^4.17.15": "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" "version" "4.17.21" +"log-symbols@^2.2.0": + "integrity" "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==" + "resolved" "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "chalk" "^2.0.1" + "loud-rejection@^1.0.0": "integrity" "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=" "resolved" "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz" @@ -1718,6 +2655,13 @@ dependencies: "pify" "^3.0.0" +"make-dir@^3.0.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" + "map-obj@^1.0.0", "map-obj@^1.0.1": "integrity" "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" "resolved" "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" @@ -1784,6 +2728,16 @@ "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" "version" "1.6.0" +"mime@^2.5.2": + "integrity" "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + "version" "2.6.0" + +"mimic-fn@^1.0.0": + "integrity" "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz" + "version" "1.2.0" + "mimic-response@^1.0.0", "mimic-response@^1.0.1": "integrity" "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" @@ -1796,8 +2750,22 @@ dependencies: "dom-walk" "^0.1.0" -"minimatch@^3.0.4": - "integrity" "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=" +"minimatch@^3.0.4", "minimatch@^3.1.1", "minimatch@^3.1.2": + "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "brace-expansion" "^1.1.7" + +"minimatch@^5.0.1": + "integrity" "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "brace-expansion" "^2.0.1" + +"minimatch@3.0.4": + "integrity" "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz" "version" "3.0.4" dependencies: @@ -1813,6 +2781,11 @@ "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" "version" "1.2.0" +"minimist@^1.2.0": + "integrity" "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" + "version" "1.2.7" + "minimist@^1.2.5": "integrity" "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz" @@ -1823,6 +2796,43 @@ "resolved" "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" "version" "0.0.8" +"minipass@^2.2.1", "minipass@^2.3.5": + "integrity" "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz" + "version" "2.3.5" + dependencies: + "safe-buffer" "^5.1.2" + "yallist" "^3.0.0" + +"minipass@^3.0.0": + "integrity" "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" + "version" "3.3.6" + dependencies: + "yallist" "^4.0.0" + +"minipass@^4.0.0": + "integrity" "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "yallist" "^4.0.0" + +"minizlib@^1.2.1": + "integrity" "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==" + "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz" + "version" "1.2.1" + dependencies: + "minipass" "^2.2.1" + +"minizlib@^2.1.1": + "integrity" "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==" + "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "minipass" "^3.0.0" + "yallist" "^4.0.0" + "mkdirp@^0.5.0", "mkdirp@^0.5.1", "mkdirp@>=0.5 0", "mkdirp@0.5.1": "integrity" "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=" "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" @@ -1837,6 +2847,11 @@ dependencies: "minimist" "^1.2.5" +"mkdirp@^1.0.3": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" + "moment@^2.13.0": "integrity" "sha512-Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==" "resolved" "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz" @@ -1862,6 +2877,37 @@ "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" "version" "2.1.2" +"node-abi@^2.8.0": + "integrity" "sha512-OT0WepUvYHXdki6DU8LWhEkuo3M44i2paWBYtH9qXtPb9YiKlYEKa5WUII20XEcOv7UJPzfB0kZfPZdW46zdkw==" + "resolved" "https://registry.npmjs.org/node-abi/-/node-abi-2.10.0.tgz" + "version" "2.10.0" + dependencies: + "semver" "^5.4.1" + +"node-gyp@^4.0.0": + "integrity" "sha512-2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==" + "resolved" "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "glob" "^7.0.3" + "graceful-fs" "^4.1.2" + "mkdirp" "^0.5.0" + "nopt" "2 || 3" + "npmlog" "0 || 1 || 2 || 3 || 4" + "osenv" "0" + "request" "^2.87.0" + "rimraf" "2" + "semver" "~5.3.0" + "tar" "^4.4.8" + "which" "1" + +"nopt@2 || 3": + "integrity" "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + "version" "3.0.6" + dependencies: + "abbrev" "1" + "normalize-package-data@^2.3.2", "normalize-package-data@^2.3.4": "integrity" "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" "resolved" "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz" @@ -1890,6 +2936,16 @@ "config-chain" "^1.1.11" "pify" "^3.0.0" +"npmlog@0 || 1 || 2 || 3 || 4": + "integrity" "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" + "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "are-we-there-yet" "~1.1.2" + "console-control-strings" "~1.1.0" + "gauge" "~2.7.3" + "set-blocking" "~2.0.0" + "nugget@^2.0.0": "integrity" "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=" "resolved" "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz" @@ -1918,7 +2974,7 @@ "resolved" "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" "version" "0.9.0" -"object-assign@^4.0.1": +"object-assign@^4.0.1", "object-assign@^4.1.0": "integrity" "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" "version" "4.1.1" @@ -1945,17 +3001,78 @@ dependencies: "wrappy" "1" -"os-tmpdir@~1.0.2": +"onetime@^2.0.0": + "integrity" "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "mimic-fn" "^1.0.0" + +"ora@^3.4.0": + "integrity" "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==" + "resolved" "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "chalk" "^2.4.2" + "cli-cursor" "^2.1.0" + "cli-spinners" "^2.0.0" + "log-symbols" "^2.2.0" + "strip-ansi" "^5.2.0" + "wcwidth" "^1.0.1" + +"os-homedir@^1.0.0": + "integrity" "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "resolved" "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" + "version" "1.0.2" + +"os-tmpdir@^1.0.0", "os-tmpdir@~1.0.2": "integrity" "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" "version" "1.0.2" +"osenv@0": + "integrity" "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==" + "resolved" "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz" + "version" "0.1.5" + dependencies: + "os-homedir" "^1.0.0" + "os-tmpdir" "^1.0.0" + "p-cancelable@^1.0.0": "integrity" "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" "resolved" "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz" "version" "1.1.0" -"pako@^1.0.5", "pako@^1.0.6", "pako@~1.0.2": +"p-limit@^2.0.0": + "integrity" "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "p-try" "^2.0.0" + +"p-locate@^3.0.0": + "integrity" "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "p-limit" "^2.0.0" + +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" + +"package-json@^6.3.0": + "integrity" "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==" + "resolved" "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz" + "version" "6.5.0" + dependencies: + "got" "^9.6.0" + "registry-auth-token" "^4.0.0" + "registry-url" "^5.0.0" + "semver" "^6.2.0" + +"pako@^1.0.5", "pako@~1.0.2": "integrity" "sha1-Qyi621CGpCaqkPVBl31JVdpclzI=" "resolved" "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz" "version" "1.0.10" @@ -2000,11 +3117,21 @@ dependencies: "pinkie-promise" "^2.0.0" +"path-exists@^3.0.0": + "integrity" "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz" + "version" "3.0.0" + "path-is-absolute@^1.0.0": "integrity" "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" "version" "1.0.1" +"path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + "path-type@^1.0.0": "integrity" "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=" "resolved" "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" @@ -2068,6 +3195,14 @@ dependencies: "pngjs" "^3.0.0" +"plist@^3.0.1", "plist@^3.0.4": + "integrity" "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==" + "resolved" "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz" + "version" "3.0.6" + dependencies: + "base64-js" "^1.5.1" + "xmlbuilder" "^15.1.1" + "pngjs@^3.0.0", "pngjs@^3.3.3": "integrity" "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" "resolved" "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz" @@ -2157,6 +3292,13 @@ "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" "version" "2.1.1" +"pupa@^2.1.1": + "integrity" "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==" + "resolved" "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "escape-goat" "^2.0.0" + "q@^1.4.1": "integrity" "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" "resolved" "https://registry.npmjs.org/q/-/q-1.5.1.tgz" @@ -2172,6 +3314,27 @@ "resolved" "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz" "version" "6.5.2" +"rc@^1.2.8", "rc@1.2.8": + "integrity" "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==" + "resolved" "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" + "version" "1.2.8" + dependencies: + "deep-extend" "^0.6.0" + "ini" "~1.3.0" + "minimist" "^1.2.0" + "strip-json-comments" "~2.0.1" + +"read-config-file@6.2.0": + "integrity" "sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==" + "resolved" "https://registry.npmjs.org/read-config-file/-/read-config-file-6.2.0.tgz" + "version" "6.2.0" + dependencies: + "dotenv" "^9.0.2" + "dotenv-expand" "^5.1.0" + "js-yaml" "^4.1.0" + "json5" "^2.2.0" + "lazy-val" "^1.0.4" + "read-pkg-up@^1.0.1": "integrity" "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=" "resolved" "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" @@ -2189,7 +3352,7 @@ "normalize-package-data" "^2.3.2" "path-type" "^1.0.0" -"readable-stream@^2.0.0", "readable-stream@^2.0.5", "readable-stream@^2.2.2": +"readable-stream@^2.0.0", "readable-stream@^2.0.5", "readable-stream@^2.0.6", "readable-stream@^2.2.2": "integrity" "sha512-vuYxeWYM+fde14+rajzqgeohAI7YoJcHE7kXDAc4Nk0EbuKnJfqtY9YtRkLo/tqkuF7MsBQRhPnPeyjYITp3ZQ==" "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.4.tgz" "version" "2.3.4" @@ -2260,6 +3423,20 @@ "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz" "version" "0.13.3" +"registry-auth-token@^4.0.0": + "integrity" "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==" + "resolved" "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz" + "version" "4.2.2" + dependencies: + "rc" "1.2.8" + +"registry-url@^5.0.0": + "integrity" "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==" + "resolved" "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "rc" "^1.2.8" + "repeating@^2.0.0": "integrity" "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" "resolved" "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz" @@ -2321,6 +3498,42 @@ "tunnel-agent" "^0.6.0" "uuid" "^3.3.2" +"request@^2.87.0": + "integrity" "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==" + "resolved" "https://registry.npmjs.org/request/-/request-2.88.0.tgz" + "version" "2.88.0" + dependencies: + "aws-sign2" "~0.7.0" + "aws4" "^1.8.0" + "caseless" "~0.12.0" + "combined-stream" "~1.0.6" + "extend" "~3.0.2" + "forever-agent" "~0.6.1" + "form-data" "~2.3.2" + "har-validator" "~5.1.0" + "http-signature" "~1.2.0" + "is-typedarray" "~1.0.0" + "isstream" "~0.1.2" + "json-stringify-safe" "~5.0.1" + "mime-types" "~2.1.19" + "oauth-sign" "~0.9.0" + "performance-now" "^2.1.0" + "qs" "~6.5.2" + "safe-buffer" "^5.1.2" + "tough-cookie" "~2.4.3" + "tunnel-agent" "^0.6.0" + "uuid" "^3.3.2" + +"require-directory@^2.1.1": + "integrity" "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-main-filename@^2.0.0": + "integrity" "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "resolved" "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz" + "version" "2.0.0" + "responselike@^1.0.2": "integrity" "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=" "resolved" "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz" @@ -2328,6 +3541,14 @@ dependencies: "lowercase-keys" "^1.0.0" +"restore-cursor@^2.0.0": + "integrity" "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=" + "resolved" "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "onetime" "^2.0.0" + "signal-exit" "^3.0.2" + "rimraf@^2.5.4", "rimraf@2": "integrity" "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==" "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz" @@ -2335,6 +3556,13 @@ dependencies: "glob" "^7.0.5" +"rimraf@^3.0.0": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" + "roarr@^2.15.3": "integrity" "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==" "resolved" "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz" @@ -2347,6 +3575,13 @@ "semver-compare" "^1.0.0" "sprintf-js" "^1.1.2" +"rxjs@*", "rxjs@^6.3.1": + "integrity" "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==" + "resolved" "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz" + "version" "6.5.2" + dependencies: + "tslib" "^1.9.0" + "safe-buffer@^5.0.1", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1": "integrity" "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz" @@ -2362,6 +3597,18 @@ "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz" "version" "5.2.0" +"safer-buffer@>= 2.1.2 < 3.0.0": + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"sanitize-filename@^1.6.3": + "integrity" "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==" + "resolved" "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz" + "version" "1.6.3" + dependencies: + "truncate-utf8-bytes" "^1.0.0" + "sax@^1.2.4", "sax@>=0.6.0": "integrity" "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=" "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" @@ -2379,16 +3626,33 @@ "resolved" "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" "version" "1.0.0" -"semver@^5.6.0": - "integrity" "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz" - "version" "5.7.0" +"semver-diff@^3.1.1": + "integrity" "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==" + "resolved" "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "semver" "^6.3.0" + +"semver@^5.4.1", "semver@2 || 3 || 4 || 5": + "integrity" "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" + "version" "5.5.0" + +"semver@^6.0.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" "semver@^6.2.0": "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" "version" "6.3.0" +"semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + "semver@^7.3.2": "integrity" "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==" "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz" @@ -2396,10 +3660,31 @@ dependencies: "lru-cache" "^6.0.0" -"semver@2 || 3 || 4 || 5": - "integrity" "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==" - "resolved" "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz" - "version" "5.5.0" +"semver@^7.3.4": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.5": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.7": + "integrity" "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz" + "version" "7.3.8" + dependencies: + "lru-cache" "^6.0.0" + +"semver@~5.3.0": + "integrity" "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "version" "5.3.0" "serialize-error@^7.0.1": "integrity" "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==" @@ -2408,12 +3693,29 @@ dependencies: "type-fest" "^0.13.1" +"set-blocking@^2.0.0", "set-blocking@~2.0.0": + "integrity" "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + "set-immediate-shim@~1.0.1": "integrity" "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" "resolved" "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" "version" "1.0.1" -"signal-exit@^3.0.0": +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.2": "integrity" "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz" "version" "3.0.2" @@ -2432,10 +3734,10 @@ dependencies: "hoek" "2.x.x" -"source-map-support@^0.5.9": - "integrity" "sha1-MbJKnC5zwt6FBmwP631Edn7VKTI=" - "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" - "version" "0.5.13" +"source-map-support@^0.5.19": + "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + "version" "0.5.21" dependencies: "buffer-from" "^1.0.0" "source-map" "^0.6.0" @@ -2445,6 +3747,15 @@ "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" "version" "0.6.1" +"spawn-rx@^3.0.0": + "integrity" "sha512-dw4Ryg/KMNfkKa5ezAR5aZe9wNwPdKlnHEXtHOjVnyEDSPQyOpIPPRtcIiu7127SmtHhaCjw21yC43HliW0iIg==" + "resolved" "https://registry.npmjs.org/spawn-rx/-/spawn-rx-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "debug" "^2.5.1" + "lodash.assign" "^4.2.0" + "rxjs" "^6.3.1" + "spdx-correct@~1.0.0": "integrity" "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" "resolved" "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" @@ -2472,11 +3783,6 @@ "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" "version" "1.1.2" -"sprintf-js@~1.0.2": - "integrity" "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - "version" "1.0.3" - "sshpk@^1.7.0": "integrity" "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=" "resolved" "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz" @@ -2492,6 +3798,11 @@ "jsbn" "~0.1.0" "tweetnacl" "~0.14.0" +"stat-mode@^1.0.0": + "integrity" "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==" + "resolved" "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" + "version" "1.0.0" + "string_decoder@^1.1.1": "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" @@ -2518,7 +3829,7 @@ dependencies: "safe-buffer" "~5.1.0" -"string-width@^1.0.1": +"string-width@^1.0.1", "string-width@^1.0.2 || 2": "integrity" "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" "resolved" "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" "version" "1.0.2" @@ -2527,6 +3838,42 @@ "is-fullwidth-code-point" "^1.0.0" "strip-ansi" "^3.0.0" +"string-width@^3.0.0": + "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"string-width@^3.1.0": + "integrity" "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "emoji-regex" "^7.0.1" + "is-fullwidth-code-point" "^2.0.0" + "strip-ansi" "^5.1.0" + +"string-width@^4.0.0": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.2", "string-width@^4.2.3": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + "string.prototype.trim@^1.1.2": "integrity" "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==" "resolved" "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz" @@ -2541,13 +3888,27 @@ "resolved" "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" "version" "0.0.5" -"strip-ansi@^3.0.0": +"strip-ansi@^3.0.0", "strip-ansi@^3.0.1": "integrity" "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" "version" "3.0.1" dependencies: "ansi-regex" "^2.0.0" +"strip-ansi@^5.0.0", "strip-ansi@^5.1.0", "strip-ansi@^5.2.0": + "integrity" "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz" + "version" "5.2.0" + dependencies: + "ansi-regex" "^4.1.0" + +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "ansi-regex" "^5.0.1" + "strip-bom@^2.0.0": "integrity" "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" @@ -2569,6 +3930,11 @@ dependencies: "get-stdin" "^4.0.1" +"strip-json-comments@~2.0.1": + "integrity" "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "version" "2.0.1" + "sumchecker@^3.0.1": "integrity" "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==" "resolved" "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz" @@ -2576,6 +3942,20 @@ dependencies: "debug" "^4.1.0" +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + "tar-fs@^1.15.2": "integrity" "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==" "resolved" "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz" @@ -2627,6 +4007,31 @@ "fstream" "^1.0.12" "inherits" "2" +"tar@^4.4.8": + "integrity" "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==" + "resolved" "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz" + "version" "4.4.10" + dependencies: + "chownr" "^1.1.1" + "fs-minipass" "^1.2.5" + "minipass" "^2.3.5" + "minizlib" "^1.2.1" + "mkdirp" "^0.5.0" + "safe-buffer" "^5.1.2" + "yallist" "^3.0.3" + +"tar@^6.1.11": + "integrity" "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==" + "resolved" "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz" + "version" "6.1.13" + dependencies: + "chownr" "^2.0.0" + "fs-minipass" "^2.0.0" + "minipass" "^4.0.0" + "minizlib" "^2.1.1" + "mkdirp" "^1.0.3" + "yallist" "^4.0.0" + "tar@https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz": "integrity" "sha1-IO+OBChbRx10V28tpdj9xTokIwE=" "resolved" "https://github.com/dgthanhan/node-tar/archive/6086b1ea82137c61eea4efe882dd514590e5b7a8.tar.gz" @@ -2636,6 +4041,14 @@ "fstream" "^1.0.2" "inherits" "2" +"temp-file@^3.4.0": + "integrity" "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==" + "resolved" "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz" + "version" "3.4.0" + dependencies: + "async-exit-hook" "^2.0.1" + "fs-extra" "^10.0.0" + "throttleit@0.0.2": "integrity" "sha1-z+34jmDADdlpe2H90qg0OptoDq8=" "resolved" "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz" @@ -2664,6 +4077,20 @@ "resolved" "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz" "version" "1.4.1" +"tmp-promise@^3.0.2": + "integrity" "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==" + "resolved" "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "tmp" "^0.2.0" + +"tmp@^0.2.0": + "integrity" "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==" + "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz" + "version" "0.2.1" + dependencies: + "rimraf" "^3.0.0" + "tmp@0.0.33": "integrity" "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=" "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" @@ -2696,6 +4123,18 @@ "resolved" "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz" "version" "1.0.0" +"truncate-utf8-bytes@^1.0.0": + "integrity" "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==" + "resolved" "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "utf8-byte-length" "^1.0.1" + +"tslib@^1.9.0": + "integrity" "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz" + "version" "1.10.0" + "tunnel-agent@^0.6.0": "integrity" "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" @@ -2718,6 +4157,25 @@ "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz" "version" "0.13.1" +"type-fest@^0.20.2": + "integrity" "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + "version" "0.20.2" + +"typed-emitter@^2.1.0": + "integrity" "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==" + "resolved" "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz" + "version" "2.1.0" + optionalDependencies: + "rxjs" "*" + +"typedarray-to-buffer@^3.1.5": + "integrity" "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==" + "resolved" "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" + "version" "3.1.5" + dependencies: + "is-typedarray" "^1.0.0" + "typedarray@^0.0.6": "integrity" "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" @@ -2731,11 +4189,43 @@ "buffer" "^3.0.1" "through" "^2.3.6" +"unique-string@^2.0.0": + "integrity" "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==" + "resolved" "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "crypto-random-string" "^2.0.0" + "universalify@^0.1.0": "integrity" "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=" "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" "version" "0.1.2" +"universalify@^2.0.0": + "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" + "version" "2.0.0" + +"update-notifier@^5.1.0": + "integrity" "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==" + "resolved" "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "boxen" "^5.0.0" + "chalk" "^4.1.0" + "configstore" "^5.0.1" + "has-yarn" "^2.1.0" + "import-lazy" "^2.1.0" + "is-ci" "^2.0.0" + "is-installed-globally" "^0.4.0" + "is-npm" "^5.0.0" + "is-yarn-global" "^0.3.0" + "latest-version" "^5.1.0" + "pupa" "^2.1.1" + "semver" "^7.3.4" + "semver-diff" "^3.1.1" + "xdg-basedir" "^4.0.0" + "uri-js@^4.2.2": "integrity" "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=" "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz" @@ -2750,6 +4240,11 @@ dependencies: "prepend-http" "^2.0.0" +"utf8-byte-length@^1.0.1": + "integrity" "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + "resolved" "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz" + "version" "1.0.4" + "utif@^2.0.1": "integrity" "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==" "resolved" "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz" @@ -2789,11 +4284,84 @@ "core-util-is" "1.0.2" "extsprintf" "^1.2.0" +"wcwidth@^1.0.1": + "integrity" "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=" + "resolved" "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" + "version" "1.0.1" + dependencies: + "defaults" "^1.0.3" + +"which-module@^2.0.0": + "integrity" "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + "resolved" "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz" + "version" "2.0.0" + +"which@^2.0.1": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"which@1": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"wide-align@^1.1.0": + "integrity" "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==" + "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz" + "version" "1.1.3" + dependencies: + "string-width" "^1.0.2 || 2" + +"widest-line@^3.1.0": + "integrity" "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==" + "resolved" "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "string-width" "^4.0.0" + +"wrap-ansi@^5.1.0": + "integrity" "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "ansi-styles" "^3.2.0" + "string-width" "^3.0.0" + "strip-ansi" "^5.0.0" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + "wrappy@1": "integrity" "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" "version" "1.0.2" +"write-file-atomic@^3.0.0": + "integrity" "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "imurmurhash" "^0.1.4" + "is-typedarray" "^1.0.0" + "signal-exit" "^3.0.2" + "typedarray-to-buffer" "^3.1.5" + +"xdg-basedir@^4.0.0": + "integrity" "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + "resolved" "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz" + "version" "4.0.0" + "xhr@^2.0.1": "integrity" "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==" "resolved" "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz" @@ -2817,6 +4385,11 @@ "sax" ">=0.6.0" "xmlbuilder" "~9.0.1" +"xmlbuilder@^15.1.1": + "integrity" "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz" + "version" "15.1.1" + "xmlbuilder@~9.0.1": "integrity" "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz" @@ -2834,11 +4407,68 @@ dependencies: "object-keys" "~0.4.0" +"y18n@^4.0.0": + "integrity" "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz" + "version" "4.0.0" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yallist@^3.0.0", "yallist@^3.0.3": + "integrity" "sha1-tLBJ4xS+VF486AIjbWzSLNkcPek=" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz" + "version" "3.0.3" + "yallist@^4.0.0": "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" "version" "4.0.0" +"yargs-parser@^13.1.1": + "integrity" "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz" + "version" "13.1.1" + dependencies: + "camelcase" "^5.0.0" + "decamelize" "^1.2.0" + +"yargs-parser@^21.1.1": + "integrity" "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" + "version" "21.1.1" + +"yargs@^13.2.2": + "integrity" "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz" + "version" "13.3.0" + dependencies: + "cliui" "^5.0.0" + "find-up" "^3.0.0" + "get-caller-file" "^2.0.1" + "require-directory" "^2.1.1" + "require-main-filename" "^2.0.0" + "set-blocking" "^2.0.0" + "string-width" "^3.0.0" + "which-module" "^2.0.0" + "y18n" "^4.0.0" + "yargs-parser" "^13.1.1" + +"yargs@^17.0.1": + "integrity" "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz" + "version" "17.6.2" + dependencies: + "cliui" "^8.0.1" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.3" + "y18n" "^5.0.5" + "yargs-parser" "^21.1.1" + "yauzl@^2.10.0", "yauzl@^2.4.2": "integrity" "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=" "resolved" "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" From a5c79cada41d251c686b970aa8d295e6fec11079 Mon Sep 17 00:00:00 2001 From: Phuong Nguyen Date: Thu, 29 Dec 2022 15:13:17 +0700 Subject: [PATCH 50/69] Add icon.icns support to OS X --- app/icon.icns | Bin 0 -> 61493 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 app/icon.icns diff --git a/app/icon.icns b/app/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..44f8ae5a932668b961f991061ba68bd803d14673 GIT binary patch literal 61493 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 X3slf~#>C9HW0O9Mv1NmjZXf^IKkebP literal 0 HcmV?d00001 From 052ead3efd05990845a1a7bba6eafa515592c335 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Thu, 29 Dec 2022 16:09:09 +0700 Subject: [PATCH 51/69] Add button global style for buttons --- app/css/theme.css | 6 +++++- app/css/theme.less | 2 ++ app/css/variables.less | 3 ++- app/views/common/CollapseablePanel.xhtml | 3 --- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/css/theme.css b/app/css/theme.css index 81580144..165161e4 100644 --- a/app/css/theme.css +++ b/app/css/theme.css @@ -40,6 +40,10 @@ button:focus { outline: dotted 1px rgba(0, 0, 0, 0.3); outline-offset: -0.3em; } +button:hover { + background: #dbeeff; +} + button[disabled] { background: rgba(255, 255, 255, 0.2); cursor: default; @@ -134,7 +138,7 @@ hbox.ButtonGroup { button[selected='true'], button[checked='true'] { - background: #C8C8C8; + background: #c6e4ff; } button[active='true'], button:active:not([disabled]) { diff --git a/app/css/theme.less b/app/css/theme.less index 4c53d63c..7fcfaabf 100644 --- a/app/css/theme.less +++ b/app/css/theme.less @@ -1,3 +1,5 @@ +@import url('variables.less'); + html { user-select: none; -o-user-select:none; diff --git a/app/css/variables.less b/app/css/variables.less index 21e8ff82..8b189723 100644 --- a/app/css/variables.less +++ b/app/css/variables.less @@ -7,7 +7,7 @@ @popup_bg: lighten(@app_bg, 3%); @popup_border: darken(@app_bg, 5%); @toolbar_spacing: 0.4em; -@selected_button_bg: #C8C8C8; +@selected_button_bg: #c6e4ff; @toolbar_gap: 0.4em; @iconify: { display: inline-block; @@ -25,3 +25,4 @@ -webkit-font-smoothing: antialiased; opacity: 0.54; }; +@button_hover_bg: lighten(@selected_bg, 50%); diff --git a/app/views/common/CollapseablePanel.xhtml b/app/views/common/CollapseablePanel.xhtml index 35aa6c01..e44be6cc 100644 --- a/app/views/common/CollapseablePanel.xhtml +++ b/app/views/common/CollapseablePanel.xhtml @@ -82,9 +82,6 @@ @titleContainer .TitleElement button > * + * { margin-left: 0.5em; } - @titleContainer .TitleElement:hover button { - background: lighten(@selected_button_bg, 18%); - } @titleContainer .TitleElement[active='true'] button { background: @selected_button_bg; } From 71875fa299aa22ba124f5aa51a871db7fd092fb7 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Thu, 29 Dec 2022 17:54:46 +0700 Subject: [PATCH 52/69] Fix editor styling --- app/css/theme.css | 13 ++++++- app/css/variables.less | 10 ++++++ app/index.js | 2 +- app/views/editors/AlignEditor.xhtml | 22 +++++++----- app/views/editors/ColorPropertyEditor.xhtml | 1 + app/views/editors/FontEditor.xhtml | 6 ++-- app/views/editors/ShadowStyleEditor.xhtml | 36 ++++++++++++------- app/views/editors/SharedFontEditor.xhtml | 1 + app/views/editors/SharedGeomtryEditor.xhtml | 1 + app/views/editors/SharedPropertyEditor.js | 8 ++--- app/views/editors/SharedPropertyEditor.xhtml | 37 +++++++++----------- app/views/editors/StrokeEditor.xhtml | 1 + app/views/editors/StrokeStyleEditor.xhtml | 1 + 13 files changed, 88 insertions(+), 51 deletions(-) diff --git a/app/css/theme.css b/app/css/theme.css index 165161e4..0978dd8d 100644 --- a/app/css/theme.css +++ b/app/css/theme.css @@ -169,6 +169,17 @@ input[type="number"] { input[type=number]::-webkit-inner-spin-button { height: 2.4em; } +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button { + opacity: 0.2; +} + +input[type=number]:focus::-webkit-inner-spin-button, +input[type=number]:focus::-webkit-outer-spin-button, +input[type=number]:hover::-webkit-inner-spin-button, +input[type=number]:hover::-webkit-outer-spin-button { + opacity: 1; +} textarea { font: inherit; font-size: 1em; @@ -194,7 +205,7 @@ input[type="text"]:focus, textarea:focus, input[type="number"]:focus { border-color: #336699; - box-shadow: 0px 0px 0.3ex #336699; + background-color: #e5f3ff; } .UIWidget:not(.widget_ApplicationPane) input[type='checkbox'], diff --git a/app/css/variables.less b/app/css/variables.less index 8b189723..6da5197f 100644 --- a/app/css/variables.less +++ b/app/css/variables.less @@ -26,3 +26,13 @@ opacity: 0.54; }; @button_hover_bg: lighten(@selected_bg, 50%); + +@number_input: { + border: none !important; + background: #F4F4F4; + padding-right: 0em !important; +} +@property_input: { + border-radius: 2px; + border: none !important; +} diff --git a/app/index.js b/app/index.js index e5be0b1b..34162bf1 100644 --- a/app/index.js +++ b/app/index.js @@ -78,7 +78,7 @@ function createWindow() { app.devEnable = devEnable; - mainWindow.hide(); + //mainWindow.hide(); mainWindow.maximize(); if (devEnable) { diff --git a/app/views/editors/AlignEditor.xhtml b/app/views/editors/AlignEditor.xhtml index 5e518520..0f8f808a 100644 --- a/app/views/editors/AlignEditor.xhtml +++ b/app/views/editors/AlignEditor.xhtml @@ -6,6 +6,12 @@ margin-left: 1ex; } + & > button { + padding: 0.4em !important; + height: auto !important; + justify-content: center; + } + & > button + button { border-left: none; border-top-left-radius: 0px; @@ -22,14 +28,14 @@ } } - - - - + + + + - - - - + + + + diff --git a/app/views/editors/ColorPropertyEditor.xhtml b/app/views/editors/ColorPropertyEditor.xhtml index 01d90153..f9c54ea2 100644 --- a/app/views/editors/ColorPropertyEditor.xhtml +++ b/app/views/editors/ColorPropertyEditor.xhtml @@ -5,6 +5,7 @@ text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.5); width: 4ex; text-overflow: ellipsis; + @property_input(); border-top-right-radius: 0px; border-bottom-right-radius: 0px; } diff --git a/app/views/editors/FontEditor.xhtml b/app/views/editors/FontEditor.xhtml index e32883f6..0467c206 100644 --- a/app/views/editors/FontEditor.xhtml +++ b/app/views/editors/FontEditor.xhtml @@ -9,15 +9,13 @@ border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; } - @fontCombo { - border-top-right-radius: 0px; - border-bottom-right-radius: 0px; - } @pixelFontSize { width: 3.2em; + @number_input(); } @lineHeight { width: 3.2em; + @number_input(); } @fontCombo { flex-basis: 2em; diff --git a/app/views/editors/ShadowStyleEditor.xhtml b/app/views/editors/ShadowStyleEditor.xhtml index d25a5177..2e905ebc 100644 --- a/app/views/editors/ShadowStyleEditor.xhtml +++ b/app/views/editors/ShadowStyleEditor.xhtml @@ -1,36 +1,48 @@ - - + + - - + + - - + + - - + + - + diff --git a/app/views/editors/SharedFontEditor.xhtml b/app/views/editors/SharedFontEditor.xhtml index ca286504..41bd441b 100644 --- a/app/views/editors/SharedFontEditor.xhtml +++ b/app/views/editors/SharedFontEditor.xhtml @@ -11,6 +11,7 @@ } @pixelFontSize { width: 4em; + @number_input(); } .widget_ComboManager @buttonDisplay { diff --git a/app/views/editors/SharedGeomtryEditor.xhtml b/app/views/editors/SharedGeomtryEditor.xhtml index ac3023ff..96791a9d 100644 --- a/app/views/editors/SharedGeomtryEditor.xhtml +++ b/app/views/editors/SharedGeomtryEditor.xhtml @@ -2,6 +2,7 @@ - + - - - - - - - - + + + + + + diff --git a/app/views/editors/SharedPropertyEditor.xhtml b/app/views/editors/SharedPropertyEditor.xhtml index 6a7ac734..b77fd3f3 100644 --- a/app/views/editors/SharedPropertyEditor.xhtml +++ b/app/views/editors/SharedPropertyEditor.xhtml @@ -143,6 +143,9 @@ @propertyContainer .SymbolNameContainer label { margin-bottom: 0.3ex; } + input[type="number"]::-webkit-textfield-decoration-container { + font-size: 0.8em; + } Select objects in the canvas to edit properties. From 62aabfff8e35e8ac767eaa54194e204d6a7a48a4 Mon Sep 17 00:00:00 2001 From: Pham Ngoc Van Anh Date: Fri, 30 Dec 2022 11:16:20 +0700 Subject: [PATCH 55/69] Refactor page list navigation --- app/views/common/PageListView.js | 91 +++++++++++++++-------------- app/views/common/PageListView.xhtml | 13 ++++- 2 files changed, 60 insertions(+), 44 deletions(-) diff --git a/app/views/common/PageListView.js b/app/views/common/PageListView.js index 180c94d7..3ab2c278 100644 --- a/app/views/common/PageListView.js +++ b/app/views/common/PageListView.js @@ -62,26 +62,13 @@ function PageListView() { }); if (!node) return; var page = node._page; - if ((page == null && this.currentParentPage == null) || (page && this.currentParentPage && page.id == this.currentParentPage.id)) return; - - var newActivePage = null; - if (this.currentParentPage - && (!page && !this.currentParentPage.parentPage - || (page && this.currentParentPage.parentPage && page.id == this.currentParentPage.parentPage.id))) { - newActivePage = this.currentParentPage; - } else { - if (page) { - newActivePage = page.children[0]; - } else { - for (var i in this.controller.doc.pages) { - if (!this.controller.doc.pages[i].parentPage) { - newActivePage = this.controller.doc.pages[i]; - break; - } - } - } + if (node._isDocumentNode && this.controller.doc.pages && this.controller.doc.pages.length) { + this.activatePage(this.currentPage && !this.currentPage.parentPage ? this.currentPage : this.controller.doc.pages[0]); + return; } - this.activatePage(newActivePage); + if (page == null || (page && this.currentPage && page.id == this.currentPage.id)) return; + this.activatePage(page, true); + }, this.pageBreadcrumb); var thiz = this; @@ -317,11 +304,14 @@ PageListView.prototype.setController = function (controller) { this.controller = controller; this.currentParentPage = null; this.currentPage = null; + this._isParentPageActivated = false; this.renderPages(); }; -PageListView.prototype.activatePage = function (page) { +PageListView.prototype.activatePage = function (page, isParentPageActivated) { this.controller.activatePage(page); + this._isParentPageActivated = isParentPageActivated; this.renderPages(); + this.invalidateSelectedPageView(page); }; PageListView.prototype.renderPages = function() { this.pageBreadcrumb.innerHTML = ""; @@ -332,32 +322,40 @@ PageListView.prototype.renderPages = function() { this.currentParentPage = null; this.views = []; - if (!this.controller || !this.controller.doc) return; + if (!this.controller || !this.controller.doc || !this.controller.doc.pages.length) return; - this.currentPage = this.controller.activePage; + this.currentPage = this.controller.activePage || this.controller.doc.pages[0]; this.currentParentPage = this.currentPage && this.currentPage.parentPage || null; - + var pages = []; var parentPages = []; - if (!this.currentParentPage) { - for (var i in this.controller.doc.pages) { - var page = this.controller.doc.pages[i]; - if (!page.parentPage) pages.push(page); - } - - } else { - pages = this.currentParentPage.children; - - parentPages.push(this.currentParentPage); - var p = this.currentParentPage; + + if (this._isParentPageActivated && this.currentPage.children && this.currentPage.children.length) { + // select as parent page in breadcrumb + var p = this.currentPage; + parentPages.push(p); while (p.parentPage) { parentPages.unshift(p.parentPage); p = p.parentPage; } + pages = this.currentPage.children; + } else { + // select as child page + if (this.currentPage.parentPage) { + var p = this.currentPage; + while (p.parentPage) { + parentPages.unshift(p.parentPage); + p = p.parentPage; + } + pages = this.currentPage.parentPage && this.currentPage.parentPage.children || [this.currentPage]; + } else { + for (var i in this.controller.doc.pages) { + var page = this.controller.doc.pages[i]; + if (!page.parentPage) pages.push(page); + } + } } - if (!this.currentPage) this.currentPage = pages[0]; - var node = Dom.newDOMElement({ _name: "hbox", _children: [ @@ -378,6 +376,7 @@ PageListView.prototype.renderPages = function() { ] }); node._page = null; + node._isDocumentNode = true; this.pageBreadcrumb.appendChild(node); if (parentPages.length > 0) { @@ -427,7 +426,6 @@ PageListView.prototype.renderPages = function() { var thiz = this; for (var i in pages) { var page = pages[i]; - var selected = this.currentPage && this.currentPage.id == page.id; var pageThumbnailView = new PageThumbnailView(); pageThumbnailView.node()._index = i; @@ -435,13 +433,11 @@ PageListView.prototype.renderPages = function() { this.pageListContainer.appendChild(pageThumbnailView.node()); pageThumbnailView.setAttribute("draggable", "true"); - pageThumbnailView.selectPage(selected); this.views.push(pageThumbnailView); var childNode; if( page.children.length == 0 ) { childNode = Dom.newDOMElement({ _name: "hbox", - "selected": selected, draggable: "true", "tabindex": "0", _children: [ @@ -454,7 +450,6 @@ PageListView.prototype.renderPages = function() { } else { childNode = Dom.newDOMElement({ _name: "hbox", - "selected": selected, draggable: "true", class: "nodeHasChild", "tabindex": "0", @@ -483,6 +478,7 @@ PageListView.prototype.renderPages = function() { this.childPageContainer.appendChild(childNode); } this.invalidateExpandedState(); + this.invalidateSelectedPageView(this.currentPage); this.childPageSrollView.invalidate(); this.pageListSrollView.invalidate(); @@ -535,6 +531,17 @@ PageListView.prototype.handlePageInfoChangedEvent = function (event) { PageListView.prototype.handleSelectPage = function (page) { if (!page) return; + this._isParentPageActived = false; + this.invalidateSelectedPageView(page); + this.controller.activatePage(page); + this.currentPage = page; +}; +PageListView.prototype.invalidateSelectedPageView = function (page) { + if (!page) return; + Dom.doOnAllChildren(this.pageBreadcrumb, function (n) { + if (!n._page) return; + n.setAttribute("selected", n._page.id == page.id); + }); Dom.doOnAllChildren(this.pageListContainer, function (n) { var view = n.__widget; if (!view) return; @@ -546,8 +553,6 @@ PageListView.prototype.handleSelectPage = function (page) { var p = n._page; n.setAttribute("selected", p.id == page.id); }); - - this.controller.activatePage(page); }; PageListView.prototype.handleDoubleClick = function (page) { @@ -555,6 +560,6 @@ PageListView.prototype.handleDoubleClick = function (page) { this.handleSelectPage(page); } else { if (this.filterCache[page.name]) delete this.filterCache[page.name]; - this.activatePage(page.children[0]); + this.activatePage(page, true); } }; diff --git a/app/views/common/PageListView.xhtml b/app/views/common/PageListView.xhtml index e3424879..d86ca41d 100644 --- a/app/views/common/PageListView.xhtml +++ b/app/views/common/PageListView.xhtml @@ -143,7 +143,17 @@ @childPageContainer > hbox:hover { color: @selected_bg; } - + + @pageBreadcrumb > hbox[selected="true"] > button { + background: @selected_bg; + color: @selected_fg; + border-color: @selected_fg; + text-shadow: none; + } + + @pageBreadcrumb > hbox[selected="true"] > button > span:hover { + color: @selected_fg; + } @pageBreadcrumb > hbox > span{ padding: 0em 0.5em; @@ -177,6 +187,7 @@ @childPageContainer > hbox { border: 1px solid #CCC; + border-radius: 0.3ex; padding: 0px 0.5em; cursor: pointer; align-items: center; From 1710fba7c29833e43cda5454d5499463d8e96234 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 30 Dec 2022 11:51:06 +0700 Subject: [PATCH 56/69] Fix package.json for electron-builder --- app/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/package.json b/app/package.json index 14cd7700..31ac6464 100644 --- a/app/package.json +++ b/app/package.json @@ -65,7 +65,7 @@ "private": true, "devDependencies": { "electron": "16.0.0", - "electron-builder": "23.3.3", + "electron-builder": "23.6.0", "electron-rebuild": "^1.8.5", "electron-updater": "^5.3.0" }, @@ -77,7 +77,7 @@ "category": "public.app-category.graphics-design", "target": [{ "target": "dmg", - "arch": ["arm64"] + "arch": ["universal"] }] }, "dmg": { @@ -103,7 +103,8 @@ "target": [ "deb", "rpm", - "tar.gz" + "tar.gz", + "freebsd" ], "category": "Graphics", "packageCategory": "graphics" @@ -117,7 +118,6 @@ "allowToChangeInstallationDirectory": true }, "electronDownload": { - "cache": ".electron-cache" }, "fileAssociations": { "ext": [ From df4a41960461f2e7ffe4f89f1451458b31a60d60 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 30 Dec 2022 12:35:30 +0700 Subject: [PATCH 57/69] Move build into app --- {build => app/build}/background.png | Bin {build => app/build}/ep.icns | Bin {build => app/build}/ep.ico | Bin {build => app/build}/icon.icns | Bin {build => app/build}/icon.ico | Bin {build => app/build}/icon.png | Bin {build => app/build}/icons/128x128.png | Bin {build => app/build}/icons/16x16.png | Bin {build => app/build}/icons/24x24.png | Bin {build => app/build}/icons/256x256.png | Bin {build => app/build}/icons/32x32.png | Bin {build => app/build}/icons/48x48.png | Bin {build => app/build}/icons/64x64.png | Bin {build => app/build}/icons/96x96.png | Bin {build => app/build}/installerHeader.bmp | Bin {build => app/build}/installerIcon.ico | Bin 16 files changed, 0 insertions(+), 0 deletions(-) rename {build => app/build}/background.png (100%) rename {build => app/build}/ep.icns (100%) rename {build => app/build}/ep.ico (100%) rename {build => app/build}/icon.icns (100%) rename {build => app/build}/icon.ico (100%) rename {build => app/build}/icon.png (100%) rename {build => app/build}/icons/128x128.png (100%) rename {build => app/build}/icons/16x16.png (100%) rename {build => app/build}/icons/24x24.png (100%) rename {build => app/build}/icons/256x256.png (100%) rename {build => app/build}/icons/32x32.png (100%) rename {build => app/build}/icons/48x48.png (100%) rename {build => app/build}/icons/64x64.png (100%) rename {build => app/build}/icons/96x96.png (100%) rename {build => app/build}/installerHeader.bmp (100%) rename {build => app/build}/installerIcon.ico (100%) diff --git a/build/background.png b/app/build/background.png similarity index 100% rename from build/background.png rename to app/build/background.png diff --git a/build/ep.icns b/app/build/ep.icns similarity index 100% rename from build/ep.icns rename to app/build/ep.icns diff --git a/build/ep.ico b/app/build/ep.ico similarity index 100% rename from build/ep.ico rename to app/build/ep.ico diff --git a/build/icon.icns b/app/build/icon.icns similarity index 100% rename from build/icon.icns rename to app/build/icon.icns diff --git a/build/icon.ico b/app/build/icon.ico similarity index 100% rename from build/icon.ico rename to app/build/icon.ico diff --git a/build/icon.png b/app/build/icon.png similarity index 100% rename from build/icon.png rename to app/build/icon.png diff --git a/build/icons/128x128.png b/app/build/icons/128x128.png similarity index 100% rename from build/icons/128x128.png rename to app/build/icons/128x128.png diff --git a/build/icons/16x16.png b/app/build/icons/16x16.png similarity index 100% rename from build/icons/16x16.png rename to app/build/icons/16x16.png diff --git a/build/icons/24x24.png b/app/build/icons/24x24.png similarity index 100% rename from build/icons/24x24.png rename to app/build/icons/24x24.png diff --git a/build/icons/256x256.png b/app/build/icons/256x256.png similarity index 100% rename from build/icons/256x256.png rename to app/build/icons/256x256.png diff --git a/build/icons/32x32.png b/app/build/icons/32x32.png similarity index 100% rename from build/icons/32x32.png rename to app/build/icons/32x32.png diff --git a/build/icons/48x48.png b/app/build/icons/48x48.png similarity index 100% rename from build/icons/48x48.png rename to app/build/icons/48x48.png diff --git a/build/icons/64x64.png b/app/build/icons/64x64.png similarity index 100% rename from build/icons/64x64.png rename to app/build/icons/64x64.png diff --git a/build/icons/96x96.png b/app/build/icons/96x96.png similarity index 100% rename from build/icons/96x96.png rename to app/build/icons/96x96.png diff --git a/build/installerHeader.bmp b/app/build/installerHeader.bmp similarity index 100% rename from build/installerHeader.bmp rename to app/build/installerHeader.bmp diff --git a/build/installerIcon.ico b/app/build/installerIcon.ico similarity index 100% rename from build/installerIcon.ico rename to app/build/installerIcon.ico From a547398fd7f9057d4b50722623078a80af4b49c3 Mon Sep 17 00:00:00 2001 From: Phuong Nguyen Date: Fri, 30 Dec 2022 12:43:31 +0700 Subject: [PATCH 58/69] Move OSX icon into build --- app/icon.icns | Bin 61493 -> 0 bytes app/package.json | 1 + 2 files changed, 1 insertion(+) delete mode 100644 app/icon.icns diff --git a/app/icon.icns b/app/icon.icns deleted file mode 100644 index 44f8ae5a932668b961f991061ba68bd803d14673..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61493 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 X3slf~#>C9HW0O9Mv1NmjZXf^IKkebP diff --git a/app/package.json b/app/package.json index 31ac6464..d3e309e0 100644 --- a/app/package.json +++ b/app/package.json @@ -75,6 +75,7 @@ "copyright": "Copyright © 2008-2016 Evolus. All rights reserved.", "mac": { "category": "public.app-category.graphics-design", + "icon": "build/icon.icns", "target": [{ "target": "dmg", "arch": ["universal"] From 3624dc7a1daf61be6524d969c06b7150bbf0d210 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=AA=20Quang=20Thanh?= Date: Fri, 30 Dec 2022 12:57:53 +0700 Subject: [PATCH 59/69] Fixed freehand reference --- app/app.js | 3 +-- app/index.js | 4 ---- app/pencil-core/canvasHelper/GestureHelper.js | 3 --- 3 files changed, 1 insertion(+), 9 deletions(-) diff --git a/app/app.js b/app/app.js index e2edeca6..868867ac 100644 --- a/app/app.js +++ b/app/app.js @@ -13,9 +13,8 @@ const jimp = require("jimp"); const pkgInfo = require("./package.json"); const QueueHandler = require("./pencil-core/common/QueueHandler"); const sharedUtil = require("./pencil-core/common/shared-util"); - const dialog = remote.dialog; - +const freehand = require("perfect-freehand"); tmp.setGracefulCleanup(); // webFrame.registerURLSchemeAsPrivileged("file"); diff --git a/app/index.js b/app/index.js index 34162bf1..80518497 100644 --- a/app/index.js +++ b/app/index.js @@ -134,10 +134,6 @@ app.on('ready', function() { } }); - }, function (error, scheme) { - if (error) { - console.log("ERROR REGISTERING", error); - } }); diff --git a/app/pencil-core/canvasHelper/GestureHelper.js b/app/pencil-core/canvasHelper/GestureHelper.js index 083cf66d..8768593f 100644 --- a/app/pencil-core/canvasHelper/GestureHelper.js +++ b/app/pencil-core/canvasHelper/GestureHelper.js @@ -110,9 +110,6 @@ GestureHelper.prototype.getPropertyProvider = function () { var mode = this.getActiveMode(); return mode && mode.getPropertyProvider && mode.getPropertyProvider(); }; - -const freehand = require("perfect-freehand"); - GestureHelper.BASE_MODE = { }; From 666d9d4ca5cc09c7e3792d4a38a360ceeb35db0d Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 30 Dec 2022 14:18:42 +0700 Subject: [PATCH 60/69] Use smaller collection selector in smaller screens --- app/lib/widget/Common.js | 6 +-- app/views/collections/BaseCollectionPane.js | 16 +++++++- .../collections/BaseCollectionPane.xhtml | 39 +++++++++++++++---- 3 files changed, 49 insertions(+), 12 deletions(-) diff --git a/app/lib/widget/Common.js b/app/lib/widget/Common.js index 88d64a3e..4b322f08 100644 --- a/app/lib/widget/Common.js +++ b/app/lib/widget/Common.js @@ -597,13 +597,13 @@ widget.reloadDesktopFont = function() { } document.body.style.fontSize = size; } - + var family = Config.get(Config.UI_CUSTOM_FONT_FAMILY); if (family) document.body.style.fontFamily = family; - + var size = Config.get(Config.UI_CUSTOM_FONT_SIZE); if (size) document.body.style.fontSize = size; - + resolve(config); }); }); diff --git a/app/views/collections/BaseCollectionPane.js b/app/views/collections/BaseCollectionPane.js index 635f5f97..beb0b6a0 100644 --- a/app/views/collections/BaseCollectionPane.js +++ b/app/views/collections/BaseCollectionPane.js @@ -245,7 +245,7 @@ BaseCollectionPane.prototype.filterCollections = function () { collection._filteredShapes.push(def); } } - + if (collection._shapeCount <= 0) { collectionNode.setAttribute("_hidden", true); collectionNode.style.display = "none"; @@ -258,7 +258,7 @@ BaseCollectionPane.prototype.filterCollections = function () { collectionNode.style.visibility = "visible"; } } - + if (hasLast) { this.openCollection(this.last); } else if (firstNode != null){ @@ -292,6 +292,18 @@ BaseCollectionPane.prototype.ensureVisibleShapeIcons = function () { } }; BaseCollectionPane.prototype.updateLayoutSize = function () { + var size = "large"; + if (this.node().offsetWidth / Util.em() <= 20) { + size = "small"; + } + + var currentLevel = this.node().getAttribute("size-level"); + if (currentLevel != size) { + this.node().setAttribute("size-level", size); + this.collectionScrollView.invalidate(); + } + + if (!this.last || !this.last.customLayout) return; this.layoutOriginalSize = { diff --git a/app/views/collections/BaseCollectionPane.xhtml b/app/views/collections/BaseCollectionPane.xhtml index b05711b3..673e6577 100644 --- a/app/views/collections/BaseCollectionPane.xhtml +++ b/app/views/collections/BaseCollectionPane.xhtml @@ -1,6 +1,6 @@ - + - + From 46ca15b389a78f8192246b8bf8f1343b04fe1826 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Fri, 30 Dec 2022 15:13:29 +0700 Subject: [PATCH 63/69] Strong hover effect for collection pane --- .../collections/BaseCollectionPane.xhtml | 56 +++++++------------ 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/app/views/collections/BaseCollectionPane.xhtml b/app/views/collections/BaseCollectionPane.xhtml index 673e6577..2c42bc5b 100644 --- a/app/views/collections/BaseCollectionPane.xhtml +++ b/app/views/collections/BaseCollectionPane.xhtml @@ -1,14 +1,15 @@ Select objects in the canvas to edit properties. From 43091dcf05faf7a2b4b2b98687d4a19d46262ce2 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Sat, 31 Dec 2022 11:33:58 +0700 Subject: [PATCH 67/69] Fix side pane status and style --- app/css/variables.less | 2 +- app/views/ApplicationPane.js | 4 +++ app/views/ApplicationPane.xhtml | 2 +- app/views/PageDetailDialog.xhtml | 3 -- app/views/common/CollapseablePanel.js | 35 ++++++++++++++++-------- app/views/common/CollapseablePanel.xhtml | 6 ---- 6 files changed, 30 insertions(+), 22 deletions(-) diff --git a/app/css/variables.less b/app/css/variables.less index df81170d..8cb777bd 100644 --- a/app/css/variables.less +++ b/app/css/variables.less @@ -8,7 +8,7 @@ @popup_border: darken(@app_bg, 5%); @toolbar_spacing: 0.4em; @selected_button_bg: #c6e4ff; -@pane_bg: #ccdceb; +@pane_bg: #dae9f7; @toolbar_gap: 0.4em; @iconify: { display: inline-block; diff --git a/app/views/ApplicationPane.js b/app/views/ApplicationPane.js index 0f43a9e4..6e7f5388 100644 --- a/app/views/ApplicationPane.js +++ b/app/views/ApplicationPane.js @@ -111,6 +111,10 @@ ApplicationPane.prototype.onAttached = function () { var thiz = this; this.invalidateUIForConfig(); this.showStartupPane(); + window.setTimeout(function () { + this.leftSidePane.invalidateUI(); + this.rightSidePane.invalidateUI(); + }.bind(this), 200); // window.setTimeout(function () { // Pencil.documentHandler.newDocument(); // console.log("starting image editor..."); diff --git a/app/views/ApplicationPane.xhtml b/app/views/ApplicationPane.xhtml index f946e8ec..93e8997c 100644 --- a/app/views/ApplicationPane.xhtml +++ b/app/views/ApplicationPane.xhtml @@ -316,7 +316,7 @@ - + diff --git a/app/views/PageDetailDialog.xhtml b/app/views/PageDetailDialog.xhtml index a3e6395d..36b5ab9a 100644 --- a/app/views/PageDetailDialog.xhtml +++ b/app/views/PageDetailDialog.xhtml @@ -60,9 +60,6 @@ margin-left: 0.5em; } -

- Please enter the page properties: -
diff --git a/app/views/common/CollapseablePanel.js b/app/views/common/CollapseablePanel.js index 9e90eb4c..eb09ce26 100644 --- a/app/views/common/CollapseablePanel.js +++ b/app/views/common/CollapseablePanel.js @@ -17,12 +17,13 @@ function CollapseablePanel() { var active = closing ? "false" : (thiz.children[i] == title._child ? "true" : "false"); thiz.children[i].setAttribute("active", active); thiz.children[i]["p:title"].setAttribute("active", active); - if (thiz.children[i].onSizeChanged) thiz.children[i].onSizeChanged(); + thiz.invalidateChildSize(thiz.children[i], active); if (active == "true") thiz.lastActiveId = thiz.children[i]._anonId; } thiz.setAttribute("closed", closing); + if (closing) thiz.invalidateUI(); var activeId = closing ? "" : title._child._anonId; Config.set(thiz.activeIdConfigName, activeId); @@ -50,6 +51,16 @@ function CollapseablePanel() { } __extend(BaseTemplatedWidget, CollapseablePanel); +CollapseablePanel.prototype.invalidateChildSize = function (widget, active) { + if (widget.onSizeChanged) { + widget.onSizeChanged(); + if (active) { + setTimeout(function () { + widget.onSizeChanged(); + }, 10); + } + } +}; CollapseablePanel.globalSplitterMoveListener = function (event) { if (!CollapseablePanel.heldInstance) return; @@ -105,7 +116,7 @@ CollapseablePanel.prototype.onAttached = function () { var active = this.children[i]._anonId == activeId ? "true" : "false"; this.children[i].setAttribute("active", active); this.children[i]["p:title"].setAttribute("active", active); - if (this.children[i].onSizeChanged) this.children[i].onSizeChanged(); + this.invalidateChildSize(this.children[i], active); if (active == "true") { found = true; @@ -128,10 +139,14 @@ CollapseablePanel.prototype.onAttached = function () { if (inside) return; this.collapseAll(); }.bind(this), false); - + if (float) this.collapseAll(); }; - +CollapseablePanel.prototype.invalidateUI = function (event) { + if (this.getAttribute("controls-location") == "top") { + this.recalculateButtonSizes(); + } +}; CollapseablePanel.prototype.handleSplitterMouseDown = function (event) { Dom.cancelEvent(event); CollapseablePanel.heldInstance = this; @@ -182,18 +197,16 @@ CollapseablePanel.prototype.updateTitle = function (titleElement) { titleElement._icon.innerHTML = titleElement._child.getIconName(); } Dom.setInnerText(titleElement._textSpan, title); - window.setTimeout(function () { - var w = Math.round(titleElement._button.offsetWidth); - titleElement.style.height = w + "px"; - titleElement._button.style.transform = "rotate(-90deg) translate(-" + w + "px, 0px)"; - }, 500); + var w = Math.round(titleElement._button.offsetWidth); + titleElement.style.height = w + "px"; + titleElement._button.style.transform = "rotate(-90deg) translate(-" + w + "px, 0px)"; }; CollapseablePanel.prototype.collapseAll = function() { for (var i = 0; i < this.children.length; i ++) { this.children[i].setAttribute("active", "false"); this.children[i]["p:title"].setAttribute("active", "false"); - if (this.children[i].onSizeChanged) this.children[i].onSizeChanged(); + this.invalidateChildSize(this.children[i], false); } this.setAttribute("closed", "true"); if (this.getAttribute("controls-location") == "top") { @@ -206,7 +219,7 @@ CollapseablePanel.prototype.open = function(activeId) { var active = this.children[i]._anonId == activeId ? "true" : "false"; this.children[i].setAttribute("active", active); this.children[i]["p:title"].setAttribute("active", active); - if (this.children[i].onSizeChanged) this.children[i].onSizeChanged(); + this.invalidateChildSize(this.children[i], active); if (active == "true") { found = true; diff --git a/app/views/common/CollapseablePanel.xhtml b/app/views/common/CollapseablePanel.xhtml index e44be6cc..944c74f4 100644 --- a/app/views/common/CollapseablePanel.xhtml +++ b/app/views/common/CollapseablePanel.xhtml @@ -25,12 +25,6 @@ @contentContainer > hbox[active='true'] { display: flex; } - body * > * + .widget_CollapseablePanel @controlContainer { - order: 1; - } - body * > * + .widget_CollapseablePanel @contentContainer { - order: 0; - } body .widget_CollapseablePanel[orient='horizontal'] { border-right: solid 1px darken(@app_bg, 10%); From e6e534d4a530407d39af572b579ec43b592aa64e Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Sat, 31 Dec 2022 11:53:59 +0700 Subject: [PATCH 68/69] Add object name in property page --- app/views/editors/SharedPropertyEditor.js | 28 ++++++++++++++------ app/views/editors/SharedPropertyEditor.xhtml | 11 +++++--- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/app/views/editors/SharedPropertyEditor.js b/app/views/editors/SharedPropertyEditor.js index cb72d6d9..e2071ca1 100644 --- a/app/views/editors/SharedPropertyEditor.js +++ b/app/views/editors/SharedPropertyEditor.js @@ -9,7 +9,7 @@ __extend(BaseTemplatedWidget, SharedPropertyEditor); SharedPropertyEditor.prototype.setup = function () { this.propertyContainer.innerHTML = ""; var thiz = this; - + var handleUpdatePageProperties = function () { if (thiz.updatePagePropertiesTimer) window.clearTimeout(thiz.updatePagePropertiesTimer); thiz.updatePagePropertiesTimer = window.setTimeout(function () { @@ -75,7 +75,6 @@ SharedPropertyEditor.prototype.validationEditorUI = function() { }; SharedPropertyEditor.prototype.attach = function (target) { - if (!target) return; if (target && target.getAttributeNS && target.getAttributeNS(PencilNamespaces.p, "locked") == "true") { return; } @@ -126,6 +125,8 @@ SharedPropertyEditor.prototype.attach = function (target) { var definedGroups = this.target.getPropertyGroups(); this.propertyEditor = {}; this.propertyContainer.innerHTML = ""; + this.addPropertyTitle(this.target.def ? this.target.def.displayName : ""); + var definedGroups = this.target.getPropertyGroups(); var groupNodes = []; @@ -209,12 +210,14 @@ SharedPropertyEditor.prototype.attach = function (target) { }); currentGroupNode._group = property._group; - var titleNode = Dom.newDOMElement({ - _name: "div", - _text: property._group.name, - "class": "Label Group" - }); - currentGroupNode.appendChild(titleNode); + if (definedGroups.length > 1) { + var titleNode = Dom.newDOMElement({ + _name: "div", + _text: property._group.name, + "class": "Label Group" + }); + currentGroupNode.appendChild(titleNode); + } thiz.propertyContainer.appendChild(currentGroupNode); groupNodes.push(currentGroupNode); } @@ -297,11 +300,20 @@ SharedPropertyEditor.prototype.setDefaultProperties = function() { } } +SharedPropertyEditor.prototype.addPropertyTitle = function (title) { + var title = Dom.newDOMElement({ + _name: "strong", + _text: title, + "class": "ObjectTitle" + }); + this.propertyContainer.appendChild(title); +}; SharedPropertyEditor.prototype.detach = function () { this.propertyContainer.innerHTML = ""; this.target = null; if (Pencil.controller.activePage) { this.node().setAttribute("mode", "Page"); + this.addPropertyTitle(Pencil.controller.activePage.name); this.pagePropertyWidget = new PageDetailDialog(); this.pagePropertyWidget.setup({ defaultPage : Pencil.controller.activePage, diff --git a/app/views/editors/SharedPropertyEditor.xhtml b/app/views/editors/SharedPropertyEditor.xhtml index 914bff06..216588af 100644 --- a/app/views/editors/SharedPropertyEditor.xhtml +++ b/app/views/editors/SharedPropertyEditor.xhtml @@ -5,7 +5,7 @@ body .widget_SharedPropertyEditor[mode="Page"] @noTargetMessagePane { display: none; } - + button { box-shadow: none; } @@ -17,6 +17,10 @@ font-size: 0.9em; padding: 0.5em; } + @propertyContainer .ObjectTitle { + font-size: 1.2em; + margin-bottom: 0.5em; + } @propertyContainer > .Group + .Group { margin-top: 2em; } @@ -74,7 +78,6 @@ @propertyContainer > .Group > div.Label.Group { font-weight: bold; margin-left: -1em; - text-shadow: 1px 1px 0px lighten(@app_bg, 20%); } @propertyContainer > .Group > .Wrapper > div.Label { white-space: nowrap; @@ -156,7 +159,7 @@ flex-direction: column; -webkit-flex-direction: column; display: flex; - + align-items: start; & > * { margin-left: 0px; @@ -179,7 +182,7 @@ body .widget_SharedPropertyEditor[mode="Page"] @propertyContainer .Form .Description { margin-bottom: 0px; } - + Select objects in the canvas to edit properties. From 19e9e9880253cc6d3d36ace9bb4a3d12036ad9a6 Mon Sep 17 00:00:00 2001 From: Duong Thanh An Date: Sat, 31 Dec 2022 12:26:57 +0700 Subject: [PATCH 69/69] Fix shared property page wrong content when switching document --- app/pencil-core/common/DocumentHandler.js | 8 +++++--- app/pencil-core/common/pencil.js | 1 - app/views/PageDetailDialog.xhtml | 3 +++ app/views/editors/SharedPropertyEditor.js | 8 ++------ 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/pencil-core/common/DocumentHandler.js b/app/pencil-core/common/DocumentHandler.js index 50828928..5de2138c 100644 --- a/app/pencil-core/common/DocumentHandler.js +++ b/app/pencil-core/common/DocumentHandler.js @@ -114,7 +114,7 @@ DocumentHandler.prototype.loadDocumentFromArguments = function (filePath) { FontLoader.instance.loadFonts(); this.controller.handleNewDocumentFromImage(filePath); } - + } DocumentHandler.prototype.pickupTargetFileToSave = function (callback) { @@ -269,7 +269,7 @@ DocumentHandler.prototype.newDocument = function () { parentPageId: null, activateAfterCreate: "activatePage" }; - + var page = thiz.controller.newPage(options); thiz.controller.modified = false; }, 50); @@ -296,9 +296,11 @@ DocumentHandler.prototype.resetDocument = function () { this.controller.applicationPane.pageListView.currentParentPage = null; FontLoader.instance.setDocumentRepoDir(path.join(this.tempDir.name, "fonts")); - + if (StencilCollectionBuilder.activeCollectionInfo) { StencilCollectionBuilder.cleanup(); CollectionManager.reloadActiveBuilderCollection(); } + + Pencil.invalidateSharedEditor(); }; diff --git a/app/pencil-core/common/pencil.js b/app/pencil-core/common/pencil.js index 07699695..c20032da 100644 --- a/app/pencil-core/common/pencil.js +++ b/app/pencil-core/common/pencil.js @@ -179,7 +179,6 @@ Pencil.boot = function (event) { }; Pencil.handleArguments = function() { var appArguments = remote.getGlobal('sharedObject').appArguments; - console.log("appArguments", appArguments); if (appArguments && appArguments.length > 1) { var filePath = null; for (var i = 1; i < appArguments.length; i ++) { diff --git a/app/views/PageDetailDialog.xhtml b/app/views/PageDetailDialog.xhtml index 36b5ab9a..bb60d1e6 100644 --- a/app/views/PageDetailDialog.xhtml +++ b/app/views/PageDetailDialog.xhtml @@ -56,6 +56,9 @@ align-items: center; margin-top: 0.5em; } + @copyLinksBox > * + * { + margin-left: 0.5em; + } @colorButton { margin-left: 0.5em; } diff --git a/app/views/editors/SharedPropertyEditor.js b/app/views/editors/SharedPropertyEditor.js index e2071ca1..41157968 100644 --- a/app/views/editors/SharedPropertyEditor.js +++ b/app/views/editors/SharedPropertyEditor.js @@ -29,7 +29,7 @@ SharedPropertyEditor.prototype.setup = function () { thiz.validationEditorUI(); }, false); - this.propertyContainer.style.display = "none"; + this.node().setAttribute("mode", "None"); this.propertyContainer.addEventListener("click", function(event) { if (event.target.getAttribute("command") && event.target.getAttribute("command") == "setDefault") { @@ -149,9 +149,7 @@ SharedPropertyEditor.prototype.attach = function (target) { var thiz = this; var currentGroupNode = null; - this.propertyContainer.style.display = "none"; this.propertyContainer.style.opacity = "0"; - this.noTargetMessagePane.style.display = "none"; var uuid = Util.newUUID(); this.currentExecutorUUID = uuid; @@ -195,7 +193,6 @@ SharedPropertyEditor.prototype.attach = function (target) { }, document, thiz)); } - thiz.propertyContainer.style.display = "flex"; thiz.propertyContainer.style.opacity = "1"; thiz.validationEditorUI(); return; @@ -311,7 +308,7 @@ SharedPropertyEditor.prototype.addPropertyTitle = function (title) { SharedPropertyEditor.prototype.detach = function () { this.propertyContainer.innerHTML = ""; this.target = null; - if (Pencil.controller.activePage) { + if (Pencil.controller.doc && Pencil.controller.activePage) { this.node().setAttribute("mode", "Page"); this.addPropertyTitle(Pencil.controller.activePage.name); this.pagePropertyWidget = new PageDetailDialog(); @@ -328,7 +325,6 @@ SharedPropertyEditor.prototype.detach = function () { Dom.emitEvent("p:TitleChanged", this.node(), {}); }; SharedPropertyEditor.prototype.savePageProperties = function (shouldReloadOnSaved) { - console.log("savePageProperties"); if (!this.isPagePropertyMode()) return; if (!this.pagePropertyWidget.isPageInfoValid()) { this.pagePropertyWidget.setup({