diff --git a/jenkins/create_build.sh b/jenkins/create_build.sh index 8fd81cd..a6695c4 100755 --- a/jenkins/create_build.sh +++ b/jenkins/create_build.sh @@ -122,6 +122,6 @@ function deploy_client() { #install_npm #compile_scripts -#compile_native +compile_native package_client deploy_client diff --git a/modules/core/app-updater/ui/index.css b/modules/core/app-updater/ui/index.css deleted file mode 100644 index 2124e03..0000000 --- a/modules/core/app-updater/ui/index.css +++ /dev/null @@ -1,9 +0,0 @@ -.page { - display: none; -} - -.info { - display: block; -} - -/*# sourceMappingURL=index.css.map */ diff --git a/modules/core/app-updater/ui/index.css.map b/modules/core/app-updater/ui/index.css.map deleted file mode 100644 index 3f2d110..0000000 --- a/modules/core/app-updater/ui/index.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AAAA;EACC;;;AAGD;EACC","file":"index.css"} \ No newline at end of file diff --git a/modules/core/app-updater/ui/index.html b/modules/core/app-updater/ui/index.html deleted file mode 100644 index b44ee63..0000000 --- a/modules/core/app-updater/ui/index.html +++ /dev/null @@ -1,36 +0,0 @@ - - - - - Updating app - - - - - - -
-
Downloading update. Please wait!
- -
-
-
-
-
- Download succeeded.
- Update installation requires client restart!
- Please ensure that all instances are closed!
- If not this app would kill them!
- -
-
- Update available.
- Current version:
- Target version:
- - -
- - \ No newline at end of file diff --git a/modules/core/app-updater/ui/index.scss b/modules/core/app-updater/ui/index.scss deleted file mode 100644 index 6229a24..0000000 --- a/modules/core/app-updater/ui/index.scss +++ /dev/null @@ -1,7 +0,0 @@ -.page { - display: none; -} - -.info { - display: block; -} \ No newline at end of file diff --git a/modules/core/app-updater/ui/index.ts b/modules/core/app-updater/ui/index.ts deleted file mode 100644 index b5ffe6e..0000000 --- a/modules/core/app-updater/ui/index.ts +++ /dev/null @@ -1,51 +0,0 @@ -import * as electron from "electron"; -import * as $ from "jquery"; -import {Version} from "../../../shared/version"; - -electron.ipcRenderer.on('status-update', (event, progress) => { - if(!$(".info").is(":visible")) { - $(".page").hide(); - $(".info").show() - } - $(".progress").attr("value", progress * 100); -}); - -electron.ipcRenderer.on('status-update-text', (event, text) => { - if(!$(".info").is(":visible")) { - $(".page").hide(); - $(".info").show() - } - $(".state").html(text); -}); - -electron.ipcRenderer.on('status-error', (event, text) => { - console.log("Got error %s", text); - $(".page").hide(); - $(".error").show().html(text); -}); -electron.ipcRenderer.on('status-confirm-execute', (event, callback_name) => { - $(".page").hide(); - $(".confirm-restart").show(); - $(".button-execute").on('click', event => electron.ipcRenderer.send(callback_name, true)) -}); -electron.ipcRenderer.on('status-confirm-update', (event, callback_name, current: Version, version: Version) => { - console.dir(callback_name); - console.dir(version); - - $(".page").hide(); - $(".config-update").show(); - - $(".target-version").text(version.major + "." + version.minor + "." + version.patch + (version.build > 0 ? " (" + version.build + ")" : "")); - $(".current-version").text(current.major + "." + current.minor + "." + current.patch + (current.build > 0 ? " (" + current.build + ")" : "")); - - $(".button-update").on('click', event => electron.ipcRenderer.send(callback_name, true)); - $(".button-cancel").on('click', event => electron.ipcRenderer.send(callback_name, false)); -}); - -/* - const set_text = text => window.webContents.send('status-update-text', text); - const set_error = text => window.webContents.send('status-error', text); - const set_confirm_restart = () => window.webContents.send('status-confirm-restart'); - const set_progress = progress => window.webContents.send('status-update', progress); - const await_exit = () => { return new Promise(resolve => window.on('closed', resolve))}; - */ \ No newline at end of file diff --git a/modules/core/ui-loader/Loader.ts b/modules/core/ui-loader/Loader.ts index 6d82c5f..4308fe1 100644 --- a/modules/core/ui-loader/Loader.ts +++ b/modules/core/ui-loader/Loader.ts @@ -11,12 +11,13 @@ import {parseVersion} from "../../shared/version"; import * as electron from "electron"; import MessageBoxOptions = Electron.MessageBoxOptions; -import {clientAppInfo, currentClientVersion, executeGraphicalClientUpdate} from "../app-updater"; +import {clientAppInfo, currentClientVersion} from "../app-updater"; import {CachedUIPack, UIPackInfo} from "./CacheFile"; import {localUiCache, saveLocalUiCache} from "./Cache"; import {shippedClientUi} from "./Shipped"; import {downloadUiPack, queryRemoteUiPacks} from "./Remote"; import * as url from "url"; +import {showUpdateWindow} from "../windows/client-updater/controller/ClientUpdate"; export const remoteUiUrl = () => { const default_path = is_debug ? "http://localhost/home/TeaSpeak/Web-Client/client-api/environment/" : "https://clientapi.teaspeak.de/"; @@ -191,26 +192,7 @@ async function loadCachedOrRemoteUiPack(channel: string, callbackStatus: (messag console.log("Remote version %d, Local version %d", remoteVersion.timestamp, newestLocalVersion); const requiredClientVersion = parseVersion(remoteVersion.requiredClientVersion); if(requiredClientVersion.newerThan(clientVersion) && !is_debug) { - const result = await electron.dialog.showMessageBox({ - type: "question", - message: - "Your client is outdated.\n" + - "Newer UI packs requires client " + remoteVersion.requiredClientVersion + "\n" + - "Do you want to update your client?", - title: "Client outdated!", - buttons: ["Update client", availableCachedVersions.length === 0 ? "Close client" : "Ignore and use last possible"] - } as MessageBoxOptions); - - if(result.response == 0) { - if(!(await executeGraphicalClientUpdate(channel, false))) { - throw "Client outdated an suitable UI pack version has not been found"; - } else { - return; - } - } else if(availableCachedVersions.length === 0) { - electron.app.exit(1); - return; - } + /* We can't use the newer version. Use the latest available. Update prompt should come when starting the client */ } else if(remoteVersion.timestamp <= newestLocalVersion && !ignoreNewVersionTimestamp) { /* We've already a equal or newer version. Don't use the remote version */ /* if remote is older than current bundled version its not a drop since it could be used as a fallback */ diff --git a/modules/renderer/index.ts b/modules/renderer/index.ts index ed444ea..900f942 100644 --- a/modules/renderer/index.ts +++ b/modules/renderer/index.ts @@ -119,7 +119,7 @@ loader.register_task(loader.Stage.INITIALIZING, { priority: 110 }); -loader.register_task(loader.Stage.INITIALIZING, { +loader.register_task(loader.Stage.JAVASCRIPT, { name: 'gdb-waiter', function: async () => { if(processArguments.has_flag(Arguments.DEV_TOOLS_GDB)) { @@ -134,9 +134,10 @@ loader.register_task(loader.Stage.INITIALIZING, { }; document.addEventListener('click', listener); }); + console.log("Awaited"); } }, - priority: 100 + priority: 10000 }); loader.register_task(loader.Stage.LOADED, { diff --git a/modules/shared/proxy/Client.ts b/modules/shared/proxy/Client.ts index 99f9e82..4f3325e 100644 --- a/modules/shared/proxy/Client.ts +++ b/modules/shared/proxy/Client.ts @@ -1,8 +1,12 @@ import {ipcRenderer, IpcRendererEvent, remote} from "electron"; -import {tr} from "tc-shared/i18n/localize"; -import {LogCategory, logError, logWarn} from "tc-shared/log"; import {ProxiedClass, ProxyInterface} from "./Definitions"; +//@ts-ignore +import {tr} from "tc-shared/i18n/localize"; + +//@ts-ignore +import {LogCategory, logError, logWarn} from "tc-shared/log"; + export class ObjectProxyClient> { private readonly ipcChannel: string; private readonly handleIPCMessageBinding; diff --git a/modules/shared/window.ts b/modules/shared/window.ts index bd0017a..b4a26f3 100644 --- a/modules/shared/window.ts +++ b/modules/shared/window.ts @@ -32,15 +32,18 @@ export async function save_changes() { let path_exists = undefined; export async function get_last_bounds(key: string) : Promise { try { - if(typeof(path_exists) === "undefined" ? !(path_exists = await fs.pathExists(data_file)) : !path_exists) + if(typeof(path_exists) === "undefined" ? !(path_exists = await fs.pathExists(data_file)) : !path_exists) { throw "skip!"; + } const data = await fs.readJson(data_file) || {}; - if(data[key]) + if(data[key]) { return data[key]; + } } catch(error) { - if(error !== "skip!") + if(error !== "skip!") { console.warn("Failed to load window bounds for %s: %o", key, error); + } } return { @@ -58,7 +61,7 @@ export function startTrackWindowBounds(windowId: string, window: BrowserWindow) changedData[windowId] = window.getBounds(); clearTimeout(changedDataSaveTimeout); - changedDataSaveTimeout = setTimeout(save_changes, 1000); + changedDataSaveTimeout = setTimeout(save_changes, 1000) as any; }; for(const event of events) diff --git a/modules/tsconfig_renderer.json b/modules/tsconfig_renderer.json index 682fadc..458acc2 100644 --- a/modules/tsconfig_renderer.json +++ b/modules/tsconfig_renderer.json @@ -8,7 +8,8 @@ "baseUrl": "..", "paths": { "tc-shared/*": ["imports/shared-app/*"], - "tc-loader": ["imports/loader"] + "tc-loader": ["imports/loader"], + "svg-sprites/*": ["imports/svg-sprites/*"] } }, "include": [ diff --git a/native/dns/CMakeLists.txt b/native/dns/CMakeLists.txt index 20b0324..5bcdd51 100644 --- a/native/dns/CMakeLists.txt +++ b/native/dns/CMakeLists.txt @@ -18,9 +18,9 @@ add_nodejs_module(${MODULE_NAME} binding.cc ${SOURCE_FILES}) add_executable(DNS-Test ${SOURCE_FILES} test/main.cpp) if (WIN32) - target_link_libraries(${MODULE_NAME} ${LIBEVENT_STATIC_LIBRARIES} Ws2_32.lib Ntdll.lib Dnsapi.lib) - target_link_libraries(DNS-Test ${LIBEVENT_STATIC_LIBRARIES} Ws2_32.lib Ntdll.lib Dnsapi.lib) + target_link_libraries(${MODULE_NAME} libevent::core Ws2_32.lib Ntdll.lib Dnsapi.lib) + target_link_libraries(DNS-Test libevent::core Ws2_32.lib Ntdll.lib Dnsapi.lib) else() - target_link_libraries(${MODULE_NAME} unbound::static ${LIBEVENT_STATIC_LIBRARIES} pthread) - target_link_libraries(DNS-Test unbound::static ssl crypto ${LIBEVENT_STATIC_LIBRARIES} pthread) + target_link_libraries(${MODULE_NAME} unbound::static libevent::core libevent::pthreads pthread) + target_link_libraries(DNS-Test unbound::static ssl crypto libevent::core libevent::pthreads pthread) endif() \ No newline at end of file diff --git a/native/serverconnection/src/connection/ProtocolHandler.cpp b/native/serverconnection/src/connection/ProtocolHandler.cpp index 0b97d98..f642870 100644 --- a/native/serverconnection/src/connection/ProtocolHandler.cpp +++ b/native/serverconnection/src/connection/ProtocolHandler.cpp @@ -17,7 +17,7 @@ using namespace tc::connection; using namespace ts::protocol; using namespace ts; -ProtocolHandler::ProtocolHandler(ServerConnection* handle) : handle{handle}, packet_decoder{&this->crypt_handler} { +ProtocolHandler::ProtocolHandler(ServerConnection* handle) : handle{handle}, packet_decoder{&this->crypt_handler, false} { this->packet_decoder.callback_argument = this; this->packet_decoder.callback_decoded_packet = ProtocolHandler::callback_packet_decoded; @@ -32,8 +32,7 @@ ProtocolHandler::ProtocolHandler(ServerConnection* handle) : handle{handle}, pac }; } -ProtocolHandler::~ProtocolHandler() { -} +ProtocolHandler::~ProtocolHandler() = default; void ProtocolHandler::reset() { @@ -116,8 +115,9 @@ void ProtocolHandler::execute_tick() { /* ping */ if(this->connection_state == connection_state::CONNECTED) { - if(this->ping.ping_send_timestamp + seconds(1) < now) + if(this->ping.ping_send_timestamp + seconds(1) < now) { this->ping_send_request(); + } if(this->ping.ping_received_timestamp.time_since_epoch().count() > 0) { if(now - this->ping.ping_received_timestamp > seconds(30)) { @@ -152,13 +152,16 @@ void ProtocolHandler::execute_resend() { this->acknowledge_handler.execute_resend(now, next, buffers); auto socket = this->handle->get_socket(); - if(socket) { - for(const auto& buffer : buffers) { - auto packet = (ts::protocol::OutgoingClientPacket*) buffer->packet_ptr; - socket->send_message(pipes::buffer_view{packet->packet_data(), packet->packet_length()}); + if(!buffers.empty()) { + log_trace(category::connection, tr("Resending {} packets"), buffers.size()); + if(socket) { + for(const auto& buffer : buffers) { + auto packet = (ts::protocol::OutgoingClientPacket*) buffer->packet_ptr; + socket->send_message(pipes::buffer_view{packet->packet_data(), packet->packet_length()}); - /* only control packets are getting resend */ - this->statistics_.control_bytes_send += packet->packet_length(); + /* only control packets are getting resend */ + this->statistics_.control_bytes_send += packet->packet_length(); + } } } @@ -208,10 +211,11 @@ void ProtocolHandler::progress_packet(const pipes::buffer_view &buffer) { switch (decode_result) { case PacketProcessResult::SUCCESS: case PacketProcessResult::FUZZ_DROPPED: /* maybe some kind of log? */ - case PacketProcessResult::DECRYPT_FAILED: /* Silently drop this packet */ case PacketProcessResult::DUPLICATED_PACKET: /* no action needed, acknowledge should be send already */ break; - + case PacketProcessResult::DECRYPT_FAILED: /* Silently drop this packet */ + log_error(category::connection, tr("Failed to decrypt inbound packet ({}). Dropping a packet."), error); + break; case PacketProcessResult::DECRYPT_KEY_GEN_FAILED: /* no action needed, acknowledge should be send */ log_error(category::connection, tr("Failed to generate decrypt key. Dropping a packet."), buffer.length()); @@ -305,6 +309,7 @@ void ProtocolHandler::callback_command_decoded(void *ptr_this, ts::command::Reas void ProtocolHandler::callback_send_acknowledge(void *ptr_this, uint16_t packet_id, bool low) { auto connection = reinterpret_cast(ptr_this); + log_warn(category::connection, tr("Sending ack for {}"), packet_id); connection->send_acknowledge(packet_id, low); } @@ -329,7 +334,7 @@ void ProtocolHandler::send_packet(ts::protocol::OutgoingClientPacket *packet, bo } /* Since we assume that the packets gets written instantly we're setting the next ptr to null */ - if(packet->type_and_flags_ & PacketFlag::Unencrypted || !this->crypt_setupped) { + if((packet->type_and_flags_ & PacketFlag::Unencrypted) || !this->crypt_setupped) { this->crypt_handler.write_default_mac(packet->mac); } else { ts::connection::CryptHandler::key_t crypt_key{}; @@ -492,7 +497,9 @@ void ProtocolHandler::send_command(const std::string_view &command, bool low, st auto head = packets_head; while(head) { - this->send_packet(head, true); + auto packet = head; + head = head->next; + this->send_packet(packet, true); } if(own_data_buffer) { diff --git a/native/serverconnection/src/connection/ProtocolHandler.h b/native/serverconnection/src/connection/ProtocolHandler.h index afadda8..e7ea34b 100644 --- a/native/serverconnection/src/connection/ProtocolHandler.h +++ b/native/serverconnection/src/connection/ProtocolHandler.h @@ -82,7 +82,7 @@ namespace tc::connection { ecc_key& get_identity_key() { return this->crypto.identity; } - inline std::chrono::microseconds current_ping() { return this->ping.value; } + inline std::chrono::microseconds current_ping() const { return this->ping.value; } connection_state::value connection_state = connection_state::INITIALIZING; server_type::value server_type = server_type::TEASPEAK; diff --git a/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp b/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp index dfd707e..bb2ed33 100644 --- a/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp +++ b/native/serverconnection/src/connection/ProtocolHandlerCrypto.cpp @@ -1,10 +1,7 @@ #include "ProtocolHandler.h" -#include "ServerConnection.h" #include "Socket.h" #include "../logger.h" -#include #include -#include #include #include #include @@ -19,8 +16,9 @@ using namespace ts::protocol; using namespace ts; inline void generate_random(uint8_t *destination, size_t length) { - while(length-- > 0) - *(destination++) = (uint8_t) rand(); + while(length-- > 0) { + *(destination++) = (uint8_t) rand(); + } } std::string ProtocolHandler::generate_client_initiv() { @@ -38,17 +36,19 @@ std::string ProtocolHandler::generate_client_initiv() { command["ot"] = 1; command["ip"] = "unknown"; - if(this->server_type != server_type::TEAMSPEAK) /* if TEAMSPEAK then TS3 has been enforced */ - command.enableParm("teaspeak"); /* using "old" encryption system, we expect a teaspeak=1 within the response */ + if(this->server_type != server_type::TEAMSPEAK) {/* if TEAMSPEAK then TS3 has been enforced */ + command.enableParm("teaspeak"); /* using "old" encryption system, we expect a teaspeak=1 within the response */ + } { size_t buffer_length = 265; char buffer[265]; auto result = ecc_export((unsigned char *) buffer, (unsigned long*) &buffer_length, PK_PUBLIC, &this->crypto.identity); - if(result == CRYPT_OK) - command["omega"] = base64::encode(buffer, (unsigned long) buffer_length); - else - log_error(category::connection, tr("Failed to export identiry ({})"), result); + if(result == CRYPT_OK) { + command["omega"] = base64::encode(buffer, (unsigned long) buffer_length); + } else { + log_error(category::connection, tr("Failed to export identiry ({})"), result); + } } this->crypto.initiv_command = command.build(true); @@ -63,7 +63,7 @@ void ProtocolHandler::handleCommandInitIVExpend(ts::Command &cmd) { auto omega = base64::decode(cmd["omega"].string()); if(alpha.length() != 10 || memcmp(alpha.data(), this->crypto.alpha, 10) != 0) { - this->handle->call_connect_result.call(this->handle->errors.register_error(tr("alpha key missmatch")), true); + this->handle->call_connect_result.call(this->handle->errors.register_error(tr("alpha key miss match")), true); this->handle->close_connection(); log_error(category::connection, tr("InitIVExpend contains invalid alpha")); @@ -87,6 +87,7 @@ void ProtocolHandler::handleCommandInitIVExpend(ts::Command &cmd) { log_error(category::connection, tr("Failed to setup crypto ({})"), error); return; } + this->crypt_setupped = true; if(this->server_type == server_type::UNKNOWN) { if(cmd[0].has("teaspeak") && cmd["teaspeak"].as()) { @@ -128,8 +129,9 @@ void ProtocolHandler::handleCommandInitIVExpend2(ts::Command &cmd) { this->pow.last_buffer = pipes::buffer{}; /* setup ed functions */ - if(&__ed_sha512_functions != &_ed_sha512_functions) - _ed_sha512_functions = __ed_sha512_functions; + if(&__ed_sha512_functions != &_ed_sha512_functions) { + _ed_sha512_functions = __ed_sha512_functions; + } auto beta = base64::decode(cmd["beta"].string()); auto omega = base64::decode(cmd["omega"].string()); @@ -139,12 +141,13 @@ void ProtocolHandler::handleCommandInitIVExpend2(ts::Command &cmd) { auto crypto_root = cmd[0].has("root") ? base64::decode(cmd["root"].string()) : string((char*) license::teamspeak::public_root, 32); auto crypto_hash = digest::sha256(crypto_chain_data); - /* suspecius, tries the server to hide himself? We dont know */ + /* suspicious, tries the server to hide himself? We dont know */ if(this->server_type == server_type::UNKNOWN) { - if(cmd[0].has("root")) - this->server_type = server_type::TEASPEAK; - else - this->server_type = server_type::TEAMSPEAK; + if(cmd[0].has("root")) { + this->server_type = server_type::TEASPEAK; + } else { + this->server_type = server_type::TEAMSPEAK; + } } ecc_key server_key{}; diff --git a/native/serverconnection/src/connection/ProtocolHandlerPackets.cpp b/native/serverconnection/src/connection/ProtocolHandlerPackets.cpp index 747278c..39dd471 100644 --- a/native/serverconnection/src/connection/ProtocolHandlerPackets.cpp +++ b/native/serverconnection/src/connection/ProtocolHandlerPackets.cpp @@ -2,10 +2,8 @@ #include "Socket.h" #include #include -#include #include #include -#include #include "audio/VoiceConnection.h" #include "../logger.h" @@ -66,7 +64,7 @@ void ProtocolHandler::handlePacketVoice(const ts::protocol::PacketParser &packet } void ProtocolHandler::handlePacketPing(const ts::protocol::PacketParser &packet) { - if(packet.type() == PacketType::VOICE) { + if(packet.type() == PacketType::PONG) { uint16_t id = be2le16((char*) packet.payload().data_ptr()); #ifdef LOG_PING cout << "Received pong (" << id << "|" << this->ping.ping_id << ")" << endl; diff --git a/package-lock.json b/package-lock.json index 31a1967..43b4354 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "TeaClient", - "version": "1.5.0-2", + "version": "1.5.0-8", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -169,9 +169,9 @@ } }, "@types/bluebird": { - "version": "3.5.30", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.30.tgz", - "integrity": "sha512-8LhzvcjIoqoi1TghEkRMkbbmM+jhHnBokPGkJWjclMK+Ks0MxEBow3/p2/iFTZ+OIbJHQDSfpgdZEb+af3gfVw==", + "version": "3.5.33", + "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.33.tgz", + "integrity": "sha512-ndEo1xvnYeHxm7I/5sF6tBvnsA4Tdi3zj1keRKRs12SP+2ye2A27NDJ1B6PqkfMbGAcT+mqQVqbZRIrhfOp5PQ==", "dev": true }, "@types/caseless": { @@ -180,11 +180,6 @@ "integrity": "sha512-6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==", "dev": true }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, "@types/cross-spawn": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.2.tgz", @@ -233,9 +228,9 @@ } }, "@types/jquery": { - "version": "3.3.38", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.38.tgz", - "integrity": "sha512-nkDvmx7x/6kDM5guu/YpXkGZ/Xj/IwGiLDdKM99YA5Vag7pjGyTJ8BNUh/6hxEn/sEu5DKtyRgnONJ7EmOoKrA==", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.5.tgz", + "integrity": "sha512-6RXU9Xzpc6vxNrS6FPPapN1SxSHgQ336WC6Jj/N8q30OiaBZ00l1GBgeP7usjVZPivSkGUfL1z/WW6TX989M+w==", "dev": true, "requires": { "@types/sizzle": "*" @@ -252,9 +247,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.1.tgz", + "integrity": "sha512-fZQQafSREFyuZcdWFAExYjBiCL7AUCdgsk80iO0q4yihYYdcIiH28CcuPTGFgLOCC8RlW49GSQxdHwZP+I7CNg==" }, "@types/node": { "version": "12.12.6", @@ -268,13 +263,13 @@ "dev": true }, "@types/react": { - "version": "16.9.36", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.36.tgz", - "integrity": "sha512-mGgUb/Rk/vGx4NCvquRuSH0GHBQKb1OqpGS9cT9lFxlTLHZgkksgI60TuIxubmn7JuCb+sENHhQciqa0npm0AQ==", + "version": "16.14.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.3.tgz", + "integrity": "sha512-zPrXn03hmPYqh9DznqSFQsoRtrQ4aHgnZDO+hMGvsE/PORvDTdJCHQ6XvJV31ic+0LzF73huPFXUb++W6Kri0Q==", "dev": true, "requires": { "@types/prop-types": "*", - "csstype": "^2.2.0" + "csstype": "^3.0.2" } }, "@types/request": { @@ -303,9 +298,9 @@ } }, "@types/request-promise": { - "version": "4.1.46", - "resolved": "https://registry.npmjs.org/@types/request-promise/-/request-promise-4.1.46.tgz", - "integrity": "sha512-3Thpj2Va5m0ji3spaCk8YKrjkZyZc6RqUVOphA0n/Xet66AW/AiOAs5vfXhQIL5NmkaO7Jnun7Nl9NEjJ2zBaw==", + "version": "4.1.47", + "resolved": "https://registry.npmjs.org/@types/request-promise/-/request-promise-4.1.47.tgz", + "integrity": "sha512-eRSZhAS8SMsrWOM8vbhxFGVZhTbWSJvaRKyufJTdIf4gscUouQvOBlfotPSPHbMR3S7kfkyKbhb1SWPmQdy3KQ==", "dev": true, "requires": { "@types/bluebird": "*", @@ -319,18 +314,18 @@ "dev": true }, "@types/ssh2": { - "version": "0.5.43", - "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.43.tgz", - "integrity": "sha512-rVEwm6fEmy9RJg1nTK3qhCKoviKtLg+axE1RXzAWuKz3QuZIZDxCKP38/tzhxkQ8I8FDVXgRoWtvltzQKtDaBg==", + "version": "0.5.46", + "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-0.5.46.tgz", + "integrity": "sha512-1pC8FHrMPYdkLoUOwTYYifnSEPzAFZRsp3JFC/vokQ+dRrVI+hDBwz0SNmQ3pL6h39OSZlPs0uCG7wKJkftnaA==", "requires": { "@types/node": "*", "@types/ssh2-streams": "*" } }, "@types/ssh2-streams": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.7.tgz", - "integrity": "sha512-cQNV72C+BOG7G8WNGarTQdB2Ii37cJlWatSpx5zTYxtI2ZvUt2lbq6Nc2XZ4kbge28V7Xe5KYYr82d96/rDMnQ==", + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/ssh2-streams/-/ssh2-streams-0.1.8.tgz", + "integrity": "sha512-I7gixRPUvVIyJuCEvnmhr3KvA2dC0639kKswqD4H5b4/FOcnPtNU+qWLiXdKIqqX9twUvi5j0U1mwKE5CUsrfA==", "requires": { "@types/node": "*" } @@ -579,7 +574,8 @@ "author-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=" + "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=", + "dev": true }, "aws-sign2": { "version": "0.7.0", @@ -587,9 +583,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz", - "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==" + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "balanced-match": { "version": "1.0.0", @@ -697,9 +693,9 @@ } }, "bl": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.4.tgz", + "integrity": "sha512-7tdr4EpSd7jJ6tuQ21vu2ke8w7pNEstzj1O8wwq6sNNzO3UDi5MA8Gny/gquCj7r2C6fHudg8tKRGyjRgmvNxQ==", "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", @@ -822,12 +818,12 @@ } }, "buffer": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz", - "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "buffer-alloc": { @@ -975,19 +971,19 @@ } }, "chokidar": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz", - "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", - "fsevents": "~2.1.2", + "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.4.0" + "readdirp": "~3.5.0" }, "dependencies": { "anymatch": { @@ -1001,9 +997,9 @@ } }, "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "braces": { @@ -1025,9 +1021,9 @@ } }, "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true }, @@ -1056,9 +1052,9 @@ "dev": true }, "readdirp": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", - "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -1083,7 +1079,8 @@ "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=" + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true }, "ci-info": { "version": "1.6.0", @@ -1181,6 +1178,7 @@ "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, "requires": { "string-width": "^2.1.1", "strip-ansi": "^4.0.0", @@ -1190,17 +1188,20 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, "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=" + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -1210,6 +1211,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -1398,7 +1400,8 @@ "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "compare-version": { "version": "0.1.2", @@ -1492,6 +1495,7 @@ "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, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", @@ -1502,6 +1506,7 @@ "version": "0.10.2", "resolved": "https://registry.npmjs.org/cross-spawn-promise/-/cross-spawn-promise-0.10.2.tgz", "integrity": "sha512-74PXJf6DYaab2klRS+D+9qxKJL1Weo3/ao9OPoH6NFzxtINSa/HE2mcyAPu1fpEmRTPD4Gdmpg3xEXQSgI8lpg==", + "dev": true, "requires": { "cross-spawn": "^5.1.0" } @@ -1513,15 +1518,16 @@ "dev": true }, "csstype": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", - "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.6.tgz", + "integrity": "sha512-+ZAmfyWMT7TiIlzdqJgjMb7S4f1beorDbWbsocyK4RaiqA5RTX3K14bnBWmmA9QEM0gRdsjyyrEmcyga8Zsxmw==", "dev": true }, "cuint": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cuint/-/cuint-0.2.2.tgz", - "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=" + "integrity": "sha1-QICG1AlVDCYxFVYZ6fp7ytw7mRs=", + "dev": true }, "currently-unhandled": { "version": "0.4.1", @@ -1760,9 +1766,9 @@ } }, "electron-context-menu": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-2.3.0.tgz", - "integrity": "sha512-XYsYkNY+jvX4C5o09qMuZoKL6e9frnQzBFehZSIiKp6zK0u3XYowJYDyK3vDKKZxYsOIGiE/Gbx40jERC03Ctw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/electron-context-menu/-/electron-context-menu-2.4.0.tgz", + "integrity": "sha512-6HRAEeFoMoBZyQ69FBGNQIVVDRBw8nYmvMPaV+CfRDa/spreHsjMD+XesJ/2/lMSAAMDTCgFCC24167Uer2cZw==", "requires": { "cli-truncate": "^2.0.0", "electron-dl": "^3.0.0", @@ -1791,6 +1797,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/electron-installer-common/-/electron-installer-common-0.6.3.tgz", "integrity": "sha512-ylecrLzz2Qmfv9QgFBoQAcB7i51ROUXguA0EExo70LVeJznDi94vCwVSoKotC7BslmUH6Iz1vYZOyqMon8PhcA==", + "dev": true, "requires": { "asar": "^1.0.0", "cross-spawn-promise": "^0.10.1", @@ -1808,6 +1815,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/asar/-/asar-1.0.0.tgz", "integrity": "sha512-MBiDU5cDr9UWuY2F0zq2fZlnyRq1aOPmJGMas22Qa14K1odpRXL3xkMHPN3uw2hAK5mD89Q+/KidOUtpi4V0Cg==", + "dev": true, "requires": { "chromium-pickle-js": "^0.2.0", "commander": "^2.19.0", @@ -1823,6 +1831,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, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -1832,12 +1841,14 @@ "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true } } }, @@ -1845,6 +1856,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/electron-installer-windows/-/electron-installer-windows-1.1.1.tgz", "integrity": "sha512-uhYxKabhNegRttGIJdXfwxji84lj4wTtj/Z38C4fi82fZRR51G+tn1RsruXbW63XtjtnM7Cyv2BP89t2uSnK2Q==", + "dev": true, "requires": { "debug": "^4.1.0", "electron-installer-common": "^0.6.1", @@ -1862,6 +1874,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, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -2320,6 +2333,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/electron-wix-msi/-/electron-wix-msi-2.2.0.tgz", "integrity": "sha512-gDozcNtyOz0VUDEPCrOXCSAAjObtdYvnDoBHnKMrxW0cWZiopQSUUYY3o6rspfHoglSd2MI52Z3wJnKlrZ1plg==", + "dev": true, "requires": { "debug": "^4.1.1", "fs-extra": "^8.1.0", @@ -2332,6 +2346,7 @@ "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", @@ -2342,6 +2357,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz", "integrity": "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==", + "dev": true, "requires": { "graceful-fs": "^4.1.9" } @@ -2740,29 +2756,29 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" }, "dependencies": { "jsonfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", - "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "requires": { "graceful-fs": "^4.1.6", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -3372,7 +3388,8 @@ "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==" + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true }, "get-package-info": { "version": "1.0.0", @@ -3572,6 +3589,7 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-3.4.0.tgz", "integrity": "sha512-q08RJ6O+eJn+dVanerAndJwIcumgbDdYiUT7zFQl3Wm1xD6fBKtah7H8ZJChj4wP+8C+QfeVy8xautR7rdmKEw==", + "dev": true, "requires": { "@types/glob": "*" } @@ -3731,9 +3749,9 @@ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" }, "http-signature": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.4.tgz", - "integrity": "sha512-CbG3io8gUSIxNNSgq+XMjgpTMzAeVRipxVXjuGrDhH5M1a2kZ03w20s8FCLR1NjnnJj10KbvabvckmtQcYNb9g==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.5.tgz", + "integrity": "sha512-NwoTQYSJoFt34jSBbwzDHDofoA61NGXzu6wXh95o1Ry62EnmKjXb/nR/RknLeZ3G/uGwrlKNY2z7uPt+Cdl7Tw==", "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -3776,9 +3794,9 @@ } }, "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore-by-default": { "version": "1.0.1", @@ -4045,7 +4063,8 @@ "is-promise": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", - "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=" + "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU=", + "dev": true }, "is-redirect": { "version": "1.0.0", @@ -4070,7 +4089,8 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, "is-symbol": { "version": "1.0.3", @@ -4212,18 +4232,19 @@ } }, "jsrender": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/jsrender/-/jsrender-1.0.6.tgz", - "integrity": "sha512-zjuv7qbn1PPSCDpb9axd6Uad9WOJOsCq7hlFgFt3VEyLv/yDL1oFjnSiHnliJHv1AZVZ5j8F37Diy3WN8eqtXw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/jsrender/-/jsrender-1.0.11.tgz", + "integrity": "sha512-1BFRSKCgO8T1o3QB16/CYqnxLVxgIdXnXBmZcyLQOlEwxVfktCHXcC7n2o9lziI//pKEc5QzI92vglvBnoddRw==", "requires": { "through2": "^3.0.1" }, "dependencies": { "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", "requires": { + "inherits": "^2.0.4", "readable-stream": "2 || 3" } } @@ -4399,6 +4420,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -4407,7 +4429,8 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true } } }, @@ -4429,6 +4452,7 @@ "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, "requires": { "p-defer": "^1.0.0" } @@ -4467,6 +4491,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dev": true, "requires": { "map-age-cleaner": "^0.1.1", "mimic-fn": "^2.0.0", @@ -4571,7 +4596,8 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true }, "mimic-response": { "version": "1.0.1", @@ -4684,9 +4710,9 @@ "integrity": "sha1-mi3sg4Bvuy2XXyK+7IWcoms5OqE=" }, "moment": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz", - "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==" + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" }, "ms": { "version": "2.1.2", @@ -4694,9 +4720,9 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nan": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" }, "nanomatch": { "version": "1.2.13", @@ -4778,6 +4804,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz", "integrity": "sha1-ZKtpp7268DzhB7TwM1yHwLnpGx0=", + "dev": true, "requires": { "is-promise": "~1.0.0", "promise": "~1.3.0" @@ -4910,6 +4937,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, "requires": { "path-key": "^2.0.0" } @@ -5149,17 +5177,20 @@ "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true }, "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==" + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "dev": true }, "p-limit": { "version": "2.2.2", @@ -5251,6 +5282,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", "integrity": "sha1-00YL8d3Q367tQtp1QkLmX7aEqB8=", + "dev": true, "requires": { "author-regex": "^1.0.0" } @@ -5437,6 +5469,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz", "integrity": "sha1-5cyaTIJ45GZP/twBx9qEhCsEAXU=", + "dev": true, "requires": { "is-promise": "~1" } @@ -5450,7 +5483,8 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true }, "psl": { "version": "1.8.0", @@ -5478,17 +5512,17 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "pupa": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", - "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "requires": { "escape-goat": "^2.0.0" } }, "pure-uuid": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pure-uuid/-/pure-uuid-1.6.0.tgz", - "integrity": "sha512-z+A7GMeyPu4X1NoGKraYiOOFzK0HZpnsHwbJZbt9NGGaqrfs3amyuWgRhHnfMJN4MM0IbAsLvHBqt0p1S84UQQ==" + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/pure-uuid/-/pure-uuid-1.6.2.tgz", + "integrity": "sha512-WQ4xz74ApW6s0BToRuuyuMo9g0VHx1HljY0H2gPng+mqqz/K1yLj7sHZonZZQ2++WfHl/ZzruilWvuz+WtmxjQ==" }, "q": { "version": "1.5.1", @@ -5726,12 +5760,12 @@ } }, "request-promise": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz", - "integrity": "sha512-ZgnepCykFdmpq86fKGwqntyTiUrHycALuGggpyCZwMvGaZWgxW6yagT0FHkgo5LzYvOaCNvxYwWYIjevSH1EDg==", + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", + "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", "requires": { "bluebird": "^3.5.0", - "request-promise-core": "1.1.3", + "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" }, @@ -5748,11 +5782,18 @@ } }, "request-promise-core": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", - "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", "requires": { - "lodash": "^4.17.15" + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + } } }, "require-directory": { @@ -5763,7 +5804,8 @@ "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=" + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true }, "resolve": { "version": "1.15.1", @@ -5880,9 +5922,9 @@ } }, "sass": { - "version": "1.26.8", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.26.8.tgz", - "integrity": "sha512-yvtzyrKLGiXQu7H12ekXqsfoGT/aTKeMDyVzCB675k1HYuaj0py63i8Uf4SI9CHXj6apDhpfwbUr3gGOjdpu2Q==", + "version": "1.32.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.6.tgz", + "integrity": "sha512-1bcDHDcSqeFtMr0JXI3xc/CXX6c4p0wHHivJdru8W7waM7a1WjKMm4m/Z5sY7CbVw4Whi2Chpcw6DFfSWwGLzQ==", "dev": true, "requires": { "chokidar": ">=2.0.0 <4.0.0" @@ -6024,11 +6066,10 @@ }, "dependencies": { "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, @@ -6444,7 +6485,8 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true }, "strip-indent": { "version": "1.0.1", @@ -6492,11 +6534,11 @@ } }, "tar-stream": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", - "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "requires": { - "bl": "^4.0.1", + "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", @@ -6601,6 +6643,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, "requires": { "rimraf": "^2.6.3" } @@ -6609,6 +6652,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-1.1.0.tgz", "integrity": "sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw==", + "dev": true, "requires": { "bluebird": "^3.5.0", "tmp": "0.1.0" @@ -6815,9 +6859,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "3.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz", - "integrity": "sha512-hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==" + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==" }, "typescript-json-schema": { "version": "0.38.3", @@ -7429,6 +7473,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -7499,6 +7544,7 @@ "version": "12.0.5", "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "dev": true, "requires": { "cliui": "^4.0.0", "decamelize": "^1.2.0", @@ -7517,12 +7563,14 @@ "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, "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, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -7535,6 +7583,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -7549,6 +7598,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, "requires": { "locate-path": "^3.0.0" } @@ -7556,17 +7606,20 @@ "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==" + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "dev": true }, "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=" + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true }, "lcid": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dev": true, "requires": { "invert-kv": "^2.0.0" } @@ -7575,6 +7628,7 @@ "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, "requires": { "execa": "^1.0.0", "lcid": "^2.0.0", @@ -7584,12 +7638,14 @@ "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" @@ -7599,6 +7655,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "requires": { "ansi-regex": "^3.0.0" } @@ -7609,6 +7666,7 @@ "version": "11.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -7617,7 +7675,8 @@ "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true } } }, diff --git a/package.json b/package.json index 5ec79d5..f629713 100644 --- a/package.json +++ b/package.json @@ -31,60 +31,60 @@ "@types/ejs": "^2.6.3", "@types/electron-packager": "8.7.2", "@types/fs-extra": "^8.1.1", - "@types/jquery": "^3.3.38", + "@types/jquery": "^3.5.5", "@types/node": "12.12.6", - "@types/react": "^16.9.36", + "@types/react": "^16.14.3", "@types/request": "^2.48.5", - "@types/request-promise": "^4.1.46", + "@types/request-promise": "^4.1.47", "@types/tar-stream": "^1.6.2", "asar": "^2.1.0", "cmake-js": "^4.0.1", "ejs": "^2.7.1", + "electron-installer-windows": "^1.1.1", "electron-packager": "8.7.2", "electron-winstaller": "^2.7.0", + "electron-wix-msi": "^2.2.0", "nodemon": "^1.19.4", "platform-dependent-modules": "0.0.14", "rc": "^1.2.8", - "rcedit": "^1.1.1", - "sass": "^1.26.8", - "typescript": "^3.9.5" + "rcedit": "^1.1.2", + "sass": "^1.32.6", + "typescript": "^3.9.7" }, "dependencies": { "@sentry/electron": "^1.5.2", - "@types/minimist": "^1.2.0", - "@types/ssh2": "^0.5.43", + "@types/minimist": "^1.2.1", + "@types/ssh2": "^0.5.46", "argparse": "^1.0.10", "asn1": "^0.2.4", "assert-plus": "^1.0.0", "aws-sign2": "^0.7.0", - "aws4": "^1.10.0", + "aws4": "^1.11.0", "color.js": "^0.1.3", "electron": "8.0.0", - "electron-context-menu": "^2.3.0", - "electron-installer-windows": "^1.1.0", + "electron-context-menu": "^2.4.0", "electron-rebuild": "^1.11.0", - "electron-wix-msi": "^2.1.1", "extend": "^3.0.2", "extsprintf": "^1.4.0", - "fs-extra": "^9.0.1", - "http-signature": "^1.3.4", + "fs-extra": "^9.1.0", + "http-signature": "^1.3.5", "jquery": "^3.5.1", "json-stringify-safe": "^5.0.1", "jsprim": "^2.0.0", - "jsrender": "^1.0.6", - "moment": "^2.26.0", - "nan": "^2.14.1", + "jsrender": "^1.0.11", + "moment": "^2.29.1", + "nan": "^2.14.2", "node-ssh": "^6.0.0", "only": "0.0.2", "psl": "^1.8.0", - "pure-uuid": "^1.5.7", + "pure-uuid": "^1.6.2", "request": "^2.88.2", "request-progress": "^3.0.0", - "request-promise": "^4.2.5", + "request-promise": "^4.2.6", "safe-buffer": "^5.2.1", "safer-buffer": "^2.1.2", "sshpk": "^1.16.1", - "tar-stream": "^2.1.2", + "tar-stream": "^2.2.0", "tough-cookie": "^3.0.1", "typescript-json-validator": "^2.4.2", "url-regex": "^5.0.0",