- upcoming update -
+ +
+
-
-
-
-
-
+
+
+
+ MINING
-
-
-
-
+
+
- POWERFUL
EASY STEP
WITH POOL
+
-
+
+
+
+ 00:00:00
+
+
+
-
+ 0 W
With Just One click
+
+
+
+
+ 0.00 MH/s
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
Click to start mining
+
+
+
+
+
-
+
+
+
-
-
-
+
+
- No Gpu's Detected !
-
-
-
-
-
Total hashrate
-865 MHz
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+ Total watts
-851W
+ + +
+
+
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ POOL DASHBOARD
+
+
+
+
+ Access your pool dashboard here. Click on the relavent pool after starting to mine.
+
+
- Guide To mine Crypto
+
+
- Step 1 >
+Go to setting Tab and Fill all details requested by app
-
Est.reward
-18$
+
+
+ Step 2 >
+Come back to the Home tab & press button to start mining + Make sure you entered correct data to run miner program.
+
+
Step 3 >
+In additional, you can check pool data through the Dashborad tabThats all.
-
-
+
+
+
+
upcoming update
upcoming update
-
-
-
-
- HTML
-
-
-
-
-
-
-
- CSS
-
-
-
-
-
-
- jQuery
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
Configuration
+ + +
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
-
-
\ No newline at end of file
diff --git a/loading.js b/loading.js
index 7668a07..ae0b773 100644
--- a/loading.js
+++ b/loading.js
@@ -1,12 +1,6 @@
-console.log("asm")
-// remote = require("electron").remote
+const { ipcRenderer } = require('electron')
-// console.log(remote.getVersion())
-
-
-
-
window.addEventListener("load", (event) => {
let statusDisplay = document.getElementById("loading_msg");
@@ -19,6 +13,26 @@ window.addEventListener("load", (event) => {
statusDisplay.textContent = "You are offline."
}
+ ipcRenderer.on('checking-for-app-updates', ()=>{
+ statusDisplay.textContent = 'Checking for updates...'
+ })
- window.setTimeout(()=> {window.close()}, 3000)
+ ipcRenderer.on('updates-available', ()=>{
+ statusDisplay.textContent = 'Updates available for application.'
+ })
+
+ ipcRenderer.on('checking-for-plugin-updates', ()=>{
+ statusDisplay.textContent = 'Checking for plugin updates...'
+ })
+
+ ipcRenderer.on('checking-gpu-data', ()=>{
+ statusDisplay.textContent = 'Gathering gpu details...'
+ })
+
+
+ ipcRenderer.on('close-loading', ()=>{
+ window.close()
+ })
+
+ window.setTimeout(()=> {window.close()}, 360000)
});
\ No newline at end of file
diff --git a/logo-template-all.psd b/logo-template-all.psd
new file mode 100644
index 0000000..ea616a0
Binary files /dev/null and b/logo-template-all.psd differ
diff --git a/logo-template-mini.psd b/logo-template-mini.psd
new file mode 100644
index 0000000..7dcad6b
Binary files /dev/null and b/logo-template-mini.psd differ
diff --git a/logo-template.psd b/logo-template.psd
new file mode 100644
index 0000000..a6c0603
Binary files /dev/null and b/logo-template.psd differ
diff --git a/main-preload.js b/main-preload.js
index 37680a7..a27f5ce 100644
--- a/main-preload.js
+++ b/main-preload.js
@@ -1,40 +1,542 @@
-const { ipcRenderer, BrowserWindow } = require('electron')
+const { isEmptyOrSpaces } = require('builder-util');
+const { ipcRenderer} = require('electron');
+const request = require('request');
const path = require('path')
-function setupAutoStart(){
- ipcRenderer.on('autoStartReply', (event, arg) => {
- console.log("auto start" + arg)
- })
- ipcRenderer.send('setAutoStart', 'ping')
+var current_mining_settings = {}
+var income = false;
+var ready_to_mine = false;
+var mining_status = false;
+var just_started = true;
+var downloading = false;
+var gpu_details = {};
+var selected_gpu_index = -1;
+
+// ------------------------- Engine --------------------------
+function setGUIState(mining) {
+ let imageMiner = document.getElementById('img-mining');
+ let imageMiner2 = document.getElementById('img-mining2');
+ let status_mini = document.getElementById('status-mini');
+ let status_mini_not = document.getElementById('stutus-mini-not-running');
+
+ if (mining) {
+ mining_status = true;
+ imageMiner.style.opacity = '100%';
+ imageMiner2.style.opacity = '0%';
+
+ status_mini.style.opacity = '100%';
+ status_mini_not.style.opacity = '0%';
+ }else{
+ mining_status = false;
+ imageMiner.style.opacity = '0%';
+ imageMiner2.style.opacity = '100%';
+
+ status_mini.style.opacity = '0%';
+ status_mini_not.style.opacity = '100%';
+
+ }
}
-function downloadEngine(){
- ipcRenderer.send('downloadEngine', {payload : {url, properties: {}}})
+function runMiner(){
+ let checkbox = document.getElementById('check-run-engine');
+ // let txt_status_pool_address = document.getElementById('status-pool-address');
+ let coin = document.getElementById('run-coin').value;
+ // console.log(coin + ' coin ');
+ let plugin = document.getElementById('run-plugin').value;
+
+
+ if (checkbox.checked) {
+ console.log("Starting miner program");
+ ipcRenderer.send("run-mining-engine", {plugin, coin});
+ setGUIState(true);
+ }else{
+ console.log("Terminaing miner program");
+ ipcRenderer.send("kill-mining-engine");
+ setGUIState(false);
+ }
}
+function change_home_status(pool_address, algorithm, plugin_used){
+ let coin = document.getElementById('run-coin');
+ let plugin = document.getElementById('run-plugin');
+
+ let txt_status_algoritm = document.getElementById('status-algorithm');
+ let txt_status_server = document.getElementById('status-server');
+ let txt_status_pool_address = document.getElementById('status-pool-address');
+ if ((!mining_status || just_started) && !isEmptyOrSpaces(pool_address)) {
+ // console.log("setting home screen statuses.")
+ just_started = false;
+ let server = pool_address.split('.');
+ server = server[1] + '.' + server[2].split(':')[0];
+ coin.value = algorithm;
+ plugin.value = plugin_used;
+ txt_status_algoritm.textContent = plugin_used.toUpperCase() + ' - ' + algorithm.toUpperCase();
+ txt_status_pool_address.textContent = pool_address;
+ txt_status_server.textContent = server;
+ }
+}
+
+ipcRenderer.on('ready-to-mine', ()=>{
+ ready_to_mine = true;
+})
+
+ipcRenderer.on('engine-download-started', () => {
+ downloading = true;
+
+ let down_bar = document.getElementById('down-bar');
+ down_bar.style.opacity = '100%';
+
+ let status_mini = document.getElementById('status-mini');
+ let status_bar = document.getElementById('stutus-mini-not-running');
+ if (mining_status) {
+ status_mini.style.opacity = '0%';
+ }else{
+ status_bar.style.opacity = '0%';
+ }
+})
+
+ipcRenderer.on('run-miner', ()=>{
+ document.getElementById('check-run-engine').checked = true;
+ setGUIState(true)
+})
+
+ipcRenderer.on('miner-stopped', ()=>{
+ document.getElementById('check-run-engine').checked = false;
+ setGUIState(false);
+
+ let txt_mini_hashrate = document.getElementById('status-mini-hashrate');
+ let txt_mini_power = document.getElementById('status-mini-power');
+ let txt_status_hashrate = document.getElementById('status-hashrate');
+ let txt_mini_uptime = document.getElementById('status-mini-uptime');
+
+ txt_status_hashrate.textContent = '- MH/s';
+ txt_mini_hashrate.textContent = '- MH/s';
+ txt_mini_power.textContent = '- W';
+ txt_mini_uptime.textContent = '00:00:00';
+
+ // stats page
+ gpu_details['coin'] = 'no-coin';
+ gpu_details['hashrate'] = '- MH/s';
+
+ let gpu_detail_container = document.getElementById('gpu-details-container');
+ gpu_detail_container.innerHTML = '';
+
+ for([gpu_id, gpu] of Object.entries(gpu_details)){
+ if (gpu_id == 'coin' || gpu_id == 'hashrate') {
+ continue
+ }
+ gpu_details[gpu_id]['fan'] = '-';
+ gpu_details[gpu_id]['power'] = '-';
+ gpu_details[gpu_id]['temperature'] = '-';
+
+ let card = '';
+
+ gpu_detail_container.innerHTML += card;
+ }
+})
ipcRenderer.on("engine-download-progress", (event, args) => {
- const progress = args[0];
- // set progress in progress bar
+ let down_progress = document.getElementById('download-progress');
+ down_progress.style.width = args + '%';
+
+ let down_bar_text = document.getElementById('down-bar-txt');
+ down_bar_text.textContent = 'Download ' + args + '% completed.';
})
-ipcRenderer.on("engine-download-complete", (event, args) => {
- const progress = args[0];
- // set progress in progress bar
+ipcRenderer.on("engine-download-complete", (event) => {
+ downloading = false;
+
+ let status_mini = document.getElementById('status-mini');
+ let status_bar = document.getElementById('stutus-mini-not-running');
+ if (mining_status) {
+ status_mini.style.opacity = '100%';
+ }else{
+ status_bar.style.opacity = '100%';
+ }
+
+ let down_bar = document.getElementById('down-bar');
+ down_bar.style.opacity = '0%';
+
+ console.log('done donwloading');
})
-window.addEventListener("load", (event) => {
- // ------------------ AUTO START -------------------
- let btn_auto_start = document.getElementById('click')
+ipcRenderer.on("update-download-complete", (event, path) => {
+ let btn_info_update = document.getElementById('updater');
+ btn_info_update.textContent = 'Download';
+
+ let status_mini = document.getElementById('status-mini');
+ let status_bar = document.getElementById('stutus-mini-not-running');
+ if (mining_status) {
+ status_mini.style.opacity = '100%';
+ }else{
+ status_bar.style.opacity = '100%';
+ }
+
+ let down_bar = document.getElementById('down-bar');
+ down_bar.style.opacity = '0%';
+ console.log('done donwloading update');
+})
+
+ipcRenderer.on('updates-available', ()=>{
+ console.log("Updates available")
+ let btn_update_available = document.getElementById('show-update');
+ let info_no_update = document.getElementById('info-update-no');
+ let info_update = document.getElementById('info-update');
+ btn_update_available.style.opacity = '100%';
+ info_update.style.opacity = '100%';
+ info_no_update.style.opacity = '0%';
+
+ let btn_info_update = document.getElementById('updater');
+ btn_info_update.addEventListener('click', ()=>{
+ ipcRenderer.send('download-updates');
+ btn_info_update.textContent = 'Downloading';
+ })
+
+ let btn_main_update = document.getElementById("show-update");
+ btn_main_update.addEventListener('click', ()=>{
+ let tab_info = document.getElementById('tab-info');
+ tab_info.click();
+ })
- btn_auto_start.addEventListener("click", ()=>{
- setupAutoStart()
+})
+
+ipcRenderer.on('plugin-status', (event, args)=>{
+ let txt_mini_hashrate = document.getElementById('status-mini-hashrate');
+ let txt_mini_power = document.getElementById('status-mini-power');
+ let txt_status_hashrate = document.getElementById('status-hashrate');
+ let txt_mini_uptime = document.getElementById('status-mini-uptime');
+
+ txt_status_hashrate.textContent = args['hashrate'];
+ txt_mini_hashrate.textContent = args['hashrate'];
+ txt_mini_power.textContent = args['power'] + ' W';
+ txt_mini_uptime.textContent = args['uptime'];
+
+ // status page
+ gpu_details = {};
+
+ let gpu_detail_container = document.getElementById('gpu-details-container');
+
+ gpu_detail_container.innerHTML = '';
+ let coin = args['coin'];
+ if (!coin) {
+ coin = 'no-coin'
+ }
+
+ args['devices'].forEach(gpu => {
+ let active = ''
+ if (gpu['id'] == selected_gpu_index) {
+ active = 'actives'
+ }
+
+ let card = '';
+
+ gpu_detail_container.innerHTML += card;
+
+ console.log('gpu - ' + gpu['id'])
+ gpu_details['gpu' + gpu['id']] = gpu;
});
+ // console.log(gpu_details)
+})
- // ------------------ CONFIGURATION WINDOW ------------------
- let btn_configuration = document.getElementById('btn-configuration')
+ipcRenderer.on('gpu-count', (event, args)=>{
+ // console.log('gpu -' + args)
+ let txt_status_gpu_count = document.getElementById('status-gpu-count');
+ txt_status_gpu_count.textContent = args + ' GPUs';
+})
- btn_configuration.addEventListener("click", ()=>{
- ipcRenderer.send("showConfigurationWindow")
+ipcRenderer.on('current-mining-settings', (event, args)=>{
+ current_mining_settings = args
+})
+
+window.addEventListener("load", (event) => {
+ let info_update = document.getElementById('info-update');
+ info_update.style.opacity = '0%';
+ let info_no_update = document.getElementById('info-update-no');
+ info_no_update.style.opacity = '100%';
+
+ // ------------------ RUN MINER -----------------
+ let checbox_mine = document.getElementById('check-run-engine');
+ checbox_mine.addEventListener('click', (event)=>{
+ if (!downloading || !ready_to_mine) {
+ runMiner()
+ }else{
+ event.preventDefault()
+ }
});
- });
\ No newline at end of file
+
+ // ------------------ SETTINGS AND MINER STATUS ------------------
+ let select_engine = document.getElementById('engine-select');
+ let txt_pool_address = document.getElementById('pool-address');
+ let txt_wallet_address = document.getElementById('wallet-address');
+ let select_coins = document.getElementById('select-coins');
+ let txt_extra_param = document.getElementById('extra-param');
+
+ let btn_save = document.getElementById('btn-settings-save');
+ let btn_reset = document.getElementById('reset-icon');
+
+ let check_auto_run_ = document.getElementById('checkbox-auto-run');
+ let check_auto_mine_ = document.getElementById('checkbox-auto-mine');
+
+ check_auto_mine_.addEventListener('change', ()=>{
+ if (check_auto_mine_.checked) {
+ check_auto_run_.checked = true;
+ }
+ })
+
+ check_auto_run_.addEventListener('change', ()=>{
+ if (check_auto_mine_.checked) {
+ alert('You can\'t uncheck "Run on statup" when set to "Auto run mining program with configured settings at computer power up" option checked')
+ check_auto_run_.checked = true;
+ }
+ })
+
+ btn_reset.addEventListener('click', ()=>{
+ let engine = select_engine.value;
+ txt_pool_address.value = '';
+ txt_wallet_address.value = '';
+ txt_extra_param.value = '';
+ select_coins.value = 'no_coin_selected';
+ ipcRenderer.send("reset-engine-config", {engine});
+ })
+
+ btn_save.addEventListener('click', ()=> {
+ let check_auto_update = document.getElementById('checkbox-auto-update').checked;
+ let check_auto_run = document.getElementById('checkbox-auto-run').checked;
+ let check_gpu_check = document.getElementById('checkbox-gpu-fail-check').checked;
+ let check_auto_mine = document.getElementById('checkbox-auto-mine').checked;
+ let check_resolve_internet = document.getElementById('checkbox-resolve-internet').checked;
+ let check_fix_common_err = document.getElementById('checkbox-fix-common-errors').checked;
+
+ ipcRenderer.send("save-app-config", {check_auto_update, check_auto_run, check_gpu_check, check_auto_mine, check_resolve_internet, check_fix_common_err});
+
+ if (isEmptyOrSpaces(select_coins.value) || isEmptyOrSpaces(txt_pool_address.value) || isEmptyOrSpaces(txt_wallet_address.value) || select_coins.value == 'no_coin_selected') {
+ console.log("Fill all fields");
+ ipcRenderer.send('show-notification', {'type': 'error', 'title': 'Input Error', 'message': 'Fill all required fields.'})
+ }else{
+ let engine = select_engine.value;
+ let pool_address = txt_pool_address.value;
+ let wallet_address = txt_wallet_address.value;
+ let coin = select_coins.value;
+ let extra_param = txt_extra_param.value;
+
+ if (pool_address.split('.').length > 2) {
+ ipcRenderer.send("save-engine-config", {engine, pool_address, wallet_address, coin, extra_param});
+ }else{
+ ipcRenderer.send('show-notification', {'type': 'error', 'title': 'Input Error', 'message': 'Pool address is invalid.'})
+
+ }
+ }
+
+ setTimeout(() => {btn_save.classList.toggle('button--loading')}, 1000);
+ })
+
+ ipcRenderer.on('engine-config', (event, data) => {
+ console.log('plugin configuration received.');
+
+ select_engine.value = data['selected'];
+
+ let coins = data[select_engine.value]['supported_coins'];
+ select_coins.innerHTML = '';
+ coins.forEach(coin => {
+ let sel_option = ''
+ select_coins.innerHTML = select_coins.innerHTML + sel_option;
+ });
+
+ txt_pool_address.value = data[select_engine.value]['pool_address'];
+ txt_wallet_address.value = data[select_engine.value]['wallet_address'];
+ select_coins.value = data[select_engine.value]['selected_coin'];
+ txt_extra_param.value = data[select_engine.value]['extra_param'];
+ change_home_status(data[select_engine.value]['pool_address'], data[select_engine.value]['selected_coin'], data['selected']);
+
+ select_engine.addEventListener('change',(event) => {
+ let coins = data[select_engine.value]['supported_coins'];
+ select_coins.innerHTML = '';
+ coins.forEach(coin => {
+ let sel_option = ''
+ select_coins.innerHTML = select_coins.innerHTML + sel_option;
+ });
+ change_home_status(data[select_engine.value]['pool_address'], data[select_engine.value]['selected_coin'], select_engine.value);
+ txt_pool_address.value = data[select_engine.value]['pool_address'];
+ txt_wallet_address.value = data[select_engine.value]['wallet_address'];
+ select_coins.value = data[select_engine.value]['selected_coin'];
+ txt_extra_param.value = data[select_engine.value]['extra_param'];
+ })
+ })
+
+ ipcRenderer.on('app-config', (event, args)=>{
+ document.getElementById('checkbox-auto-update').checked = args['auto_update'];
+ document.getElementById('checkbox-auto-run').checked = args['auto_run'];
+ document.getElementById('checkbox-gpu-fail-check').checked = args['gpu_check'];
+ document.getElementById('checkbox-auto-mine').checked = args['auto_mine'];
+ document.getElementById('checkbox-resolve-internet').checked = args['resolve_internet'];
+ document.getElementById('checkbox-fix-common-errors').checked = args['resolve_common_err'];
+ })
+
+
+ ipcRenderer.send('get-engine-config');
+ ipcRenderer.send('get-app-config');
+
+ // ------------------------------------------------------------------
+ let mail = document.getElementById('btn-copy-mail');
+ let btc_addr = document.getElementById('btn-copy-btc-address');
+
+ mail.addEventListener('click', ()=>{
+ navigator.clipboard.writeText('wenujasl@gmail.com');
+ ipcRenderer.send('send-notification', {"title": "Email copied", "message": "Email copied to clipboard."})
+ })
+
+ btc_addr.addEventListener('click', ()=>{
+ navigator.clipboard.writeText('1Dv39qrJu6wtvEzAZkNLoeFdzLkfVJZtPp');
+ ipcRenderer.send('send-notification', {"title": "BTC wallet address copied", "message": "BTC wallet address copied to clipboard."})
+ })
+
+ // --------------------- DASHBOARD TAB WIDGET --------------------------------
+ let widget_area = document.getElementById('widget-coin-area')
+ let pool_select_area = document.getElementById('pool-select-area')
+ let select_widget_coin = document.getElementById('widget-coin')
+ let select_widget_coin_metric = document.getElementById('widget-hash-metric')
+
+ let widget_coins = {'ETH': 'Ethash', 'FIRO': 'FiroPoW', 'BTC': 'SHA-256', 'AE': 'CuckooCycle',
+ 'BEAM': 'BeamHashIII', 'LTZ': 'Zhash', 'ETC': 'Etchash', 'FLUX': 'Equihash(125,4)',
+ 'RVN': 'KAWPOW', 'LTC': 'Scrypt','BELL': 'YesPoWer','KDA': 'Blake (2s-Kadena)',
+ 'SERO': 'ProgPowSERO', 'VEIL': 'SHA-256', 'DOGE': 'Scrypt'}
+ let metric = select_widget_coin_metric.value;
+
+ for (const [coin_name, algorithm] of Object.entries(widget_coins)) {
+ let option = ''
+ select_widget_coin.innerHTML += option;
+ }
+
+ function changeWidgetCoin() {
+ let coin = select_widget_coin.value
+ console.log(coin)
+ let d = ''+ coin +' mining calculator'
+ document.getElementById('widget-coins').src = "data:text/html;charset=utf-8," + escape(d);
+
+ }
+
+ changeWidgetCoin()
+
+ select_widget_coin.addEventListener('change', changeWidgetCoin)
+
+ select_widget_coin_metric.addEventListener('change', ()=>{
+ metric = select_widget_coin_metric.value
+ changeWidgetCoin()
+ })
+
+ // ------------------ DASHBOARD POOL STATUS ----------------------------------
+ let webview_dashboard = document.getElementById('pool-dashboard')
+
+ let btn_minerpool = document.getElementById('pool-minerpool')
+ let btn_2miner = document.getElementById('pool-2miners')
+ let btn_switch = document.getElementById('btn-switch')
+
+ function showWebviewDashboard(show=true) {
+ if (show) {
+ widget_area.style.opacity = '0%'
+ pool_select_area.style.opacity = '0%'
+ webview_dashboard.parentElement.style.zIndex = '5'
+ webview_dashboard.parentElement.style.opacity = '100%'
+ }else{
+ widget_area.style.opacity = '100%'
+ pool_select_area.style.opacity = '100%'
+ webview_dashboard.parentElement.style.zIndex = '-1'
+ webview_dashboard.parentElement.style.opacity = '0%'
+ }
+ }
+
+ function loadPoolDashboard(poolname) {
+ let webviews = document.getElementById('pool-dashboard')
+
+ if (!mining_status) {
+ ipcRenderer.send('show-notification', {'type': 'error', 'title': 'Not In Mining', 'message': 'Click on the relavent miner pool after starting to mine for first time.'})
+ return
+ }
+
+ let url = ''
+ let coin = ''
+
+ if (poolname == 'minerpool') {
+ if (current_mining_settings['coin'].toLowerCase() == 'flux') {
+ coin = 'flux'
+ }else if (current_mining_settings['coin'].toLowerCase() == 'rvn') {
+ coin = 'rvn'
+ }else if (current_mining_settings['coin'].toLowerCase() == 'zero') {
+ coin = 'zer'
+ }else{
+ ipcRenderer.send('show-notification', {'type': 'error', 'title': 'Not Supported Coin', 'message': 'Coin is not supported by pool.'})
+ return
+ }
+ url = 'https://'+ coin +'.minerpool.org/workers/' + current_mining_settings['wallet_address']
+
+ webviews.setAttribute('src', url)
+ showWebviewDashboard()
+ }else if (poolname == '2miner') {
+ console.log('searching 2miners for wallet')
+ let addr = 'https://2miners.com/search'
+ // if (!current_mining_settings['wallet_address'].startsWith('0x')) {
+ // current_mining_settings['wallet_address'] = '0x' + current_mining_settings['wallet_address']
+ // }
+ let p = {'address': current_mining_settings['wallet_address']}
+
+ request.post(addr, {form: p}, (err, res, body)=>{
+ if (err) {
+ // ipcRenderer.send('show-notification', {'type': 'error', 'title': 'Error occured', 'message': 'Error getting data - '})
+ return
+ }
+
+ // console.log(res.statusCode)
+ // console.log(p)
+ // console.log(res.statusCode)
+ // console.log(body)
+
+ if (res.statusCode == 302) {
+ // console.log(res.headers['location'])
+ webviews.setAttribute('src', res.headers['location'])
+ showWebviewDashboard()
+ }else if (res.statusCode == 404) {
+ ipcRenderer.send('show-notification', {'type': 'error', 'title': 'Error Not Found', 'message': 'No data found.'})
+ }else{
+ ipcRenderer.send('show-notification', {'type': 'error', 'title': 'Error occured', 'message': 'Your wallet address seems not valid.'})
+ }
+ })
+ }
+
+ }
+
+ btn_switch.addEventListener('click', ()=>{showWebviewDashboard(false)})
+ btn_2miner.addEventListener('click', ()=>{loadPoolDashboard('2miner')})
+ btn_minerpool.addEventListener('click', ()=>{loadPoolDashboard('minerpool')})
+
+ // ------------------INTERNET CONNECTIVITY -------------------------------------
+ setInterval(()=>{
+ let internet = document.getElementById('wifi_badge');
+ if (navigator.onLine) {
+ internet.style.color = '#333333';
+ }else{
+ internet.style.color = 'red';
+ }
+ }, 2000)
+});
\ No newline at end of file
diff --git a/main.js b/main.js
new file mode 100644
index 0000000..edd1d96
--- /dev/null
+++ b/main.js
@@ -0,0 +1,1023 @@
+// main.js
+
+// Modules to control application life and create native browser window
+const { app, BrowserWindow, Notification, dialog } = require('electron')
+const path = require('path')
+const {download} = require('electron-dl')
+const ipc = require('electron').ipcMain;
+const extract = require('extract-zip')
+const AutoLaunch = require('auto-launch');
+const child = require('child_process');
+const fs = require('fs');
+const { isEmptyOrSpaces, retry } = require('builder-util');
+const request = require('request');
+const { setTimeout } = require('timers');
+const { cwd, pid } = require('process');
+const {machineId, machineIdSync} = require('node-machine-id');
+const axios = require('axios');
+const { url } = require('inspector');
+const { method } = require('requests');
+
+var mainWindowId, loadingWindowId = null;
+var engine_pid = 0;
+let config_file = '';
+var first_run = false;
+var mining_coin = '';
+var mining = false, plugin_updating = false, downloading = false;
+var active_engine_name, start_time = '';
+var downloading_plugins = [];
+var downloading_versions = [];
+var run_lock = true;
+var mainWindow_tasks = [];
+var gpu_details = ['0'];
+var profits = [];
+var gpu_count = 0;
+var deviceId = '';
+
+let config_file_path = path.join(app.getPath('userData'), 'config.json');
+try{
+ config_file = JSON.parse(fs.readFileSync(config_file_path));
+ console.log('Runnig version - ' + config_file['version'])
+}catch(err){
+ first_run = true;
+ let content = {"version": "1.0.0", "app_path": __dirname}
+ fs.writeFileSync(config_file_path, JSON.stringify(content));
+ config_file = JSON.parse(fs.readFileSync(config_file_path));
+}
+
+setInterval(() => {
+ if (!mining && engine_pid != 0) {
+ engine_pid = 0;
+ BrowserWindow.fromId(mainWindowId).webContents.send('miner-stopped');
+ }
+}, 3000);
+
+setInterval(() => {
+ if (mining) {
+ sendMiningStatus()
+ }
+}, 1000);
+
+// setInterval(() => {
+// if (mining) {
+// calculateProfit()
+// }
+// }, 5000);
+
+function msToTime(duration) {
+ var milliseconds = parseInt((duration % 1000) / 100),
+ seconds = Math.floor((duration / 1000) % 60),
+ minutes = Math.floor((duration / (1000 * 60)) % 60),
+ hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
+
+ hours = (hours < 10) ? "0" + hours : hours;
+ minutes = (minutes < 10) ? "0" + minutes : minutes;
+ seconds = (seconds < 10) ? "0" + seconds : seconds;
+
+ return hours + ":" + minutes + ":" + seconds;
+}
+
+function autoStart(enable = true){
+ var AutoLauncher = new AutoLaunch({
+ name: 'minehash'
+ });
+
+ if (enable) {
+ AutoLauncher.enable()
+ console.log('Program set to run on start.')
+ }else{
+ AutoLauncher.disable()
+ console.log('Program removed from running at start.')
+ }
+}
+
+async function pluginFileMissing(engine_name) {
+ const notification = {
+ icon:'icon.png',
+ title: 'Plugin File Missing,',
+ body: 'A plugin file is missing. This can be because an anti-virus program deleting the file.Plugin will be downloaded again.Try disabling any anit-virus if unabled.',
+ }
+ new Notification(notification).show();
+
+ await downloadEngine(engine_name);
+}
+
+function checkFilePresence(file_path) {
+ if (fs.existsSync(file_path)) {
+ return true
+ }
+ return false;
+}
+// ------------------------- MINER PROGRAM ---------------------------
+async function AutoMine() {
+ if (!config_file['auto_mine']) {
+ return
+ }
+ if (plugin_updating || downloading_plugins.length > 0 || run_lock) {
+ setTimeout(AutoMine, 5000)
+ console.log('awaiting download finish to run miner')
+ return
+ }
+ // if (config_file['auto_mine']) {
+ let details = getMinerDetails()
+ await checkEnginePresence(details['selected']);
+ if (!isEmptyOrSpaces(details[details['selected']]['selected_coin']) && !isEmptyOrSpaces(details[details['selected']]['pool_address']) && !isEmptyOrSpaces(details[details['selected']]['wallet_address']) && !isEmptyOrSpaces(details[details['selected']]['path'])) {
+ console.log("Automatically running miner plugin at power on.")
+ runEngine(details['selected'], details[details['selected']]['selected_coin'])
+ BrowserWindow.fromId(mainWindowId).webContents.send('run-miner')
+ }
+
+}
+
+
+async function downloadEngine(engine_name, download_data=''){
+ let download_url, download_path = '';
+
+ if (engine_name == 'all') {
+ if (downloading) {
+ console.log('Download in progress. pending')
+ setTimeout(()=>{downloadEngine('all')}, 5000)
+ }else if (downloading_plugins.length > 0) {
+ console.log('started new download')
+ downloadEngine(downloading_plugins[0])
+ downloading = true;
+ setTimeout(()=>{downloadEngine('all')}, 5000)
+ }else{
+ plugin_updating = false;
+ return
+ }
+ }else if (download_data == '') {
+ if (!downloading_plugins.includes(engine_name)) {
+ downloading_plugins.push(engine_name)
+ }
+ downloading = true;
+ console.log('Plugin download started');
+
+ let check_update_link = 'https://minerhouse.lk/wp-content/uploads/updates.json';
+ let options = {json: true};
+ request(check_update_link, options, (error, res, body) => {
+ try{
+ if (!error && res.statusCode == 200) {
+ downloadEngine(engine_name, body)
+ }
+ }catch(err){
+ console.error('Download plugin failed.', err.message)
+ }
+ });
+ }else{
+ downloading_versions.push(download_data[engine_name]['version'])
+ download_url = download_data[engine_name]['download_link'];
+
+ if (engine_name == "nbminer") {
+ download_path = path.join(app.getPath('userData'), "minehash-downloads");
+ }else if (engine_name == 'trex') {
+ download_path = path.join(app.getPath('userData'), "minehash-downloads/trex");
+ }else if (engine_name == 'gminer') {
+ download_path = path.join(app.getPath('userData'), "minehash-downloads/gminer");
+ }
+
+ console.log('File downloading to ' + download_path)
+ let download_file = "";
+
+ BrowserWindow.fromId(mainWindowId).webContents.send('engine-download-started');
+
+ await download(BrowserWindow.fromId(mainWindowId), download_url,
+ {directory:download_path, overwrite: true, onProgress: (progress) => {
+ // console.log(progress.percent * 100);
+ BrowserWindow.fromId(mainWindowId).webContents.send('engine-download-progress', (progress.percent*100).toFixed(1).toString());
+ },
+ onCompleted: (item) => {
+ if (downloading_plugins.length > 0) {
+ downloading_plugins.splice(downloading_plugins.indexOf(engine_name), 1)
+ }
+ BrowserWindow.fromId(mainWindowId).webContents.send('engine-download-complete');
+ // console.log(item.path);
+ download_file = item.path;
+ }
+ });
+ console.log("Plugin finished dowloading");
+
+ try {
+ console.log('extract ' + download_file + ' to ' + download_path)
+ await extract(download_file, { dir: download_path });
+ downloading = false;
+
+ console.log('Extraction complete');
+ if (engine_name == 'nbminer') {
+ download_path = path.join(download_path, 'NBMiner_Win');
+ }
+
+ const notification = {
+ icon:'icon.png',
+ title: 'Plugin Downloaded,',
+ body: 'Plugin successfully downloaded and installed.',
+ }
+ new Notification(notification).show()
+
+ let miner_detail = getMinerDetails(engine_name);
+ saveMinerDetails(engine_name, miner_detail['pool_address'], miner_detail['wallet_address'], miner_detail['selected_coin'], miner_detail['extra_param'], download_path, downloading_versions[0]);
+ downloading_versions.splice(0, 1)
+ } catch (err) {
+ console.error("Download extract error - " + err);
+ // handle any errors
+ }
+ }
+}
+
+async function checkEnginePresence(engine_name) {
+ console.log("Looking for the mining program.")
+ let miner_detail = getMinerDetails(engine_name);
+ if (miner_detail['path'] == '') {
+ console.log("Need to download miner program.");
+ BrowserWindow.fromId(mainWindowId).webContents.send('engine-download-started');
+
+ let down_status = await downloadEngine(engine_name);
+ }
+
+}
+
+async function runEngine(engine_name, coin_name){
+ // engine_name = 'trex';
+ // coin_name = 'eth';
+ if (run_lock) {
+ setTimeout(()=>{runEngine(engine_name, coin_name)}, 5000)
+ return
+ }
+ let engine_details = getMinerDetails(engine_name);
+
+ await checkEnginePresence(engine_name);
+
+ engine_details = getMinerDetails(engine_name);
+
+ mining_coin = coin_name.toUpperCase();
+
+ console.log("Miner process called to run");
+ console.log('Plugin - ' + engine_name + ' & coin - ' + coin_name);
+
+ let save_bat = '';
+
+ if (engine_name == 'nbminer') {
+ executable_file = 'start_'+ coin_name +'.bat';
+ executable_path = path.join(engine_details['path'], executable_file);
+
+ let present = checkFilePresence(executable_path)
+ if (!present) {
+ await pluginFileMissing(engine_name);
+ }
+
+ console.log('Updating file - ' + executable_path)
+
+ try{
+ let bat_data = fs.readFileSync(executable_path, 'utf8');
+ tmp_bat = bat_data.split('-o ');
+ save_bat = tmp_bat[0] + '-o ' + engine_details['pool_address'] + ' -u ' + engine_details['wallet_address'] + '.rig_windows --api 127.0.0.1:20001 -log\r\npause';
+ }catch(err){
+ console.error('Error while editing coin bat file.'+ err.message)
+ }
+ }else if (engine_name == 'trex') {
+ let pool_name = engine_details['pool_address'].split('.')[1];
+ executable_file = coin_name + '-' + pool_name + '.bat';
+ executable_path = path.join(engine_details['path'], executable_file);
+
+ let present = checkFilePresence(executable_path)
+ if (!present) {
+ await pluginFileMissing(engine_name);
+ }
+ console.log('Updating file - ' + executable_path)
+
+ try{
+ let bat_data = fs.readFileSync(executable_path, 'utf8');
+ tmp_bat = bat_data.split('-o ');
+ save_bat = tmp_bat[0] + '-o ' + engine_details['pool_address'] + ' -u ' + engine_details['wallet_address'] + '.rig_windows --api-bind-http 127.0.0.1:20002 -p x\r\npause';
+ }catch(err){
+ console.error('Error while editing coin bat file.' + err.message)
+ }
+ }else if (engine_name == 'gminer') {
+ executable_file = 'mine_'+ coin_name +'.bat';
+ executable_path = path.join(engine_details['path'], executable_file);
+
+ let present = checkFilePresence(executable_path)
+ if (!present) {
+ await pluginFileMissing(engine_name);
+ }
+ console.log('Updating file - ' + executable_path)
+
+ try{
+ let bat_data = fs.readFileSync(executable_path, 'utf8');
+ tmp_bat = bat_data.split('--server ');
+ // tmp_bat2 = tmp_bat[1].split('.default');
+ save_bat = tmp_bat[0] + '--server ' + engine_details['pool_address'] + ' --user ' + engine_details['wallet_address'] + ' --api 20003\r\npause';
+ }catch(err){
+ console.error('Error while editing coin bat file. - '+ err.message)
+ }
+ }
+
+ // make changes in bat file
+ try{
+ // console.log(save_bat)
+ fs.writeFileSync(executable_path, save_bat, {flag: 'w+'});
+ }catch(err){
+ console.error(err.message);
+ }
+
+ console.log('Starting program - ' + executable_file);
+ // console.log('Starting program - ' + executable_path);
+
+ let engine = child.spawn(executable_path, {detached: true, stdio: 'ignore', cwd: engine_details['path']});
+ active_engine_name = engine_name;
+ engine_pid = engine.pid;
+ mining = true;
+ start_time = Date.now()
+
+ let settings = {coin: coin_name, wallet_address: engine_details['wallet_address']}
+ BrowserWindow.fromId(mainWindowId).webContents.send('current-mining-settings', settings);
+
+ engine.on('error', (err)=>{
+ console.error('Error running plugin - ' + err.message);
+ let present_ = checkFilePresence(executable_path);
+ if (!present_) {
+ pluginFileMissing(engine_name);
+ }
+ })
+
+ engine.on('exit', (code) => {
+ console.log(`Miner program exited with code ${code}`);
+ mining = false;
+ });
+}
+
+function killEngine() {
+ console.log("process termination called.");
+ child.exec(`taskkill /f /pid ${engine_pid} /t`);
+}
+
+function killEngine2(pid) {
+ console.log("Gpu data gather program termination called.");
+ child.exec('taskkill /f /pid '+ pid +' /t');
+}
+
+function calculateHashrate(hashrate) {
+ if (hashrate > 1000000000) {
+ hashrate = Math.round(hashrate / 1000000000) + ' TH/s'
+ }else if (hashrate > 1000000) {
+ hashrate = Math.round(hashrate / 1000000) + ' MH/s'
+ }else if (hashrate > 1000) {
+ hashrate = Math.round(hashrate / 1000) + 'KH/s'
+ }else{
+ hashrate = Math.round(hashrate) + ' H/s'
+ }
+ return hashrate
+}
+
+async function calculateProfit() {
+ gpu_details.forEach(gpu => {
+ if (gpu['hashrate-raw']==0) {
+ return
+ }
+ let url = 'https://www.coincalculators.io/api?hashrate='+gpu['hashrate-raw']
+ // console.log(url)
+ request(url, {json: true}, (error, res, body) => {
+ try{
+ if (error) {
+ return false;
+ }
+ if (!error && res.statusCode == 200) {
+ // console.log('calculating profit')
+
+ let profit = '';
+ let coin_name = mining_coin.toLowerCase();
+ // console.log('vvvvvv - '+ body)
+
+ body.forEach(coin_d => {
+ if (coin_name == coin_d['name'].toLowerCase() || coin_name == coin_d['symbol'].toLowerCase()) {
+ if (coin_d['revenueInHourUSD'] < 0.001) {
+ profit = coin_d['revenueInHourUSD'].toFixed(6) + ' $/hour';
+ }else{
+ profit = coin_d['revenueInHourUSD'].toFixed(3) + ' $/hour';
+ }
+ console.log('profit - '+ profit)
+
+ let x=0;
+ profits.forEach(item => {
+ if (item['id'] == gpu['id']) {
+ profits[x]['profit'] = profit;
+ }
+ x +=1;
+ });
+ // profits[gpu['id']] = profit
+ }
+ });
+ console.log('array = '+ profits)
+ }
+ }catch(err){
+ console.error('Coin data receival failed.', err.message)
+ }
+ });
+ });
+}
+
+async function sendMiningStatus(){
+ if (active_engine_name == 'nbminer') {
+ request('http://127.0.0.1:20001/api/v1/status', {json: true}, (error, res, body) => {
+ try{
+ if (error) {
+ return
+ }
+ let hashrate = calculateHashrate(body['miner']['total_hashrate_raw']);
+ let power = body['miner']['total_power_consume'];
+ let uptime = msToTime(Date.now() - start_time);
+
+ let devices = [];
+ body['miner']['devices'].forEach(gpu => {
+ let gpu_hashrate = calculateHashrate(gpu['hashrate_raw']);
+
+ devices.push({'id': gpu['id'], 'pcie': gpu['pci_bus_id'], 'name': gpu['info'], 'hashrate-raw': gpu['hashrate_raw'],'hashrate': gpu_hashrate, 'profit/h': '-', 'core-clock': gpu['core_clock'], 'fan': gpu['fan'], 'mem-clock': gpu['mem_clock'], 'power': gpu['power'], 'temperature': gpu['temperature']})
+ })
+
+ gpu_details = devices;
+ let payload = {'hashrate': hashrate, 'power': power, 'uptime': uptime, 'coin': mining_coin, 'devices': devices}
+
+ BrowserWindow.fromId(mainWindowId).webContents.send('plugin-status', payload)
+ }catch(err){
+ console.error('Error getting plugin status - ' + err.message)
+ }
+ })
+ }else if (active_engine_name == 'trex'){
+ request('http://127.0.0.1:20002/summary', {json: true}, (error, res, body) => {
+ try{
+ if (error) {
+ return
+ }
+ let hashrate = calculateHashrate(body['hashrate']);
+ let devices = [];
+ let power = 0;
+
+ body['gpus'].forEach(gpu=>{
+ power += gpu['power'];
+ let gpu_hashrate = calculateHashrate(gpu['hashrate']);
+
+ devices.push({'id': gpu['gpu_id'], 'pcie': gpu['pci_id'], 'name': gpu['name'],'hashrate-raw': gpu['hashrate'], 'hashrate': gpu_hashrate, 'profit/h': '-', 'core-clock': gpu['cclock'], 'fan': gpu['fan_speed'], 'mem-clock': gpu['mclock'], 'power': gpu['power'], 'temperature': gpu['temperature']})
+ })
+ gpu_details = devices;
+
+ let uptime = msToTime(body['uptime']*1000);
+
+ let payload = {'hashrate': hashrate, 'power': power, 'uptime': uptime, 'coin': mining_coin, 'devices': devices}
+
+ BrowserWindow.fromId(mainWindowId).webContents.send('plugin-status', payload)
+ }catch(err){
+ console.error('Error getting plugin status - ' + err.message)
+ }
+ })
+
+ }else if (active_engine_name == 'gminer') {
+ request('http://127.0.0.1:20003/api/v1/status', {json: true}, (error, res, body) => {
+ try{
+ if (error) {
+ return
+ }
+ // {"start_time":1646306289,"uptime":32,"extended_share_info":true,"miner":
+ // {"devices":
+ // [{"hashrate":16486272,"id":0,"info":"ASUS GeForce GTX 1650 SUPER 4GB","temperature":"51","power":77,"accepted_shares":0,"stale_shares":0,"invalid_shares":0,"rejected_shares":0}],
+ // "total_hashrate":16486272}
+ // ,"stratum":
+ // {"shares_per_minute":0.00,"server":"asia-eth.2miners.com:2020","user": "0xbe6a88119d93e9947159f81f242727d2e4cc098e","accepted_shares":0,"stale_shares":0,"invalid_shares":0,"rejected_shares":0}}
+
+ let hashrate = calculateHashrate(body['miner']['devices']['total_hashrate']);
+ let devices = [];
+ let power = 0;
+
+ body['miner']['devices'].forEach(gpu=>{
+ power += gpu['power'];
+ let gpu_hashrate = calculateHashrate(gpu['hashrate']);
+
+ devices.push({'id': gpu['id'], 'pcie': gpu['id'], 'name': gpu['info'], 'core-clock': 'NO DATA', 'hashrate-raw': gpu['hashrate'], 'hashrate': gpu_hashrate, 'profit/h': '-', 'fan': 'NO DATA', 'mem-clock': 'NO DATA', 'power': gpu['power'], 'temperature': gpu['temperature']})
+ })
+
+ let uptime = msToTime(body['uptime']*1000);
+
+ let payload = {'hashrate': hashrate, 'power': power, 'uptime': uptime, 'coin': mining_coin, 'devices': devices}
+
+ BrowserWindow.fromId(mainWindowId).webContents.send('plugin-status', payload)
+ }catch(err){
+ console.error('Error getting plugin status - ' + err.message)
+ }
+ })
+ }
+}
+
+// ----------------------------- SETTINGS ----------------------------
+function getMinerDetails(engine="") {
+ try{
+ let data = fs.readFileSync(path.join(app.getPath('userData'),'engines.json'), 'utf8');
+ data = JSON.parse(data);
+
+ if (!isEmptyOrSpaces(engine)) {
+ data = data[engine];
+ }
+ return data;
+ }catch(err){
+ data = {'nbminer': {'pool_address':'', 'wallet_address':'', 'extra_param':'', 'supported_coins': ['ae', 'beam', 'conflux', 'ergo', 'etc', 'eth_overclock', 'eth', 'rvn'], 'selected_coin': 'no_coin_selected', 'path':'', 'version': ''},
+ 'trex': {'pool_address':'', 'wallet_address':'', 'extra_param':'', 'supported_coins': ['ERGO', 'ETC', 'ETH', 'FIRO', 'RVN', 'SERO', 'VBK', 'VEIL', 'ZANO'], 'selected_coin': 'no_coin_selected', 'path':'', 'version': ''},
+ 'gminer': {'pool_address':'', 'wallet_address':'', 'extra_param':'', 'supported_coins': ['aeternity', 'aion', 'beam', 'btg', 'cortex', 'etc', 'eth', 'ravencoin', 'zelcash'], 'selected_coin': 'no_coin_selected', 'path':'', 'version': ''}, 'selected': 'nbminer'};
+
+ let wdata = JSON.stringify(data);
+ try{
+ fs.writeFileSync(path.join(app.getPath('userData'),'engines.json'), wdata, {flag: 'w+'});
+ }catch(err){
+ console.error(err);
+ }
+ // console.error(err)
+ return data;
+ }
+}
+
+function saveMinerDetails(engine, pool_address, wallet_address, coin, extra_param, engine_path='', engine_version='' ) {
+ // console.log(engine + ' ' + algorithm + ' ' + server + ' ' +pool_address+ ' ' +wallet_address )
+ let data = getMinerDetails()
+
+ data[engine]['pool_address'] = pool_address;
+ data[engine]['wallet_address'] = wallet_address;
+ data[engine]['selected_coin'] = coin;
+ data[engine]['extra_param'] = extra_param;
+ data['selected'] = engine;
+
+ if (!isEmptyOrSpaces(engine_path)) {
+ data[engine]['path'] = engine_path;
+ }
+ if (!isEmptyOrSpaces(engine_version)) {
+ data[engine]['version'] = engine_version;
+ }
+
+ let wdata = JSON.stringify(data);
+ try{
+ console.log('Plugin details save to '+path.join(app.getPath('userData'),'engines.json'))
+ fs.writeFileSync(path.join(app.getPath('userData'),'engines.json'), wdata, {flag: 'w+'});
+ }catch(err){
+ console.error(err);
+ }
+}
+
+function saveAppDetails(auto_update, auto_run, gpu_check, auto_mine, resolve_internet, resolve_common_err){
+ try{
+ if (auto_run) {
+ autoStart()
+ }else{
+ autoStart(false);
+ }
+
+ config_file['auto_update'] = auto_update;
+ config_file['auto_run'] = auto_run;
+ config_file['gpu_check'] = gpu_check;
+ config_file['auto_mine'] = auto_mine;
+ config_file['resolve_internet'] = resolve_internet;
+ config_file['resolve_common_err'] = resolve_common_err;
+
+ fs.writeFileSync(config_file_path, JSON.stringify(config_file));
+ }catch(err){
+ console.error('Error saving app config settings')
+ }
+
+}
+
+function getGpuDetails(){
+ BrowserWindow.fromId(loadingWindowId).webContents.send("checking-gpu-data")
+
+ console.log('Gathering gpu devices')
+
+ if (downloading_plugins.length > 0) {
+ mainWindow_tasks.push('reload-app-after-download')
+ BrowserWindow.fromId(loadingWindowId).webContents.send('close-loading')
+ return
+ }
+ if (plugin_updating) {
+ console.log('waiting to get gpu data')
+ setTimeout(getGpuDetails, 5000)
+ return
+ }
+ let nb_details = getMinerDetails('nbminer');
+
+ if (nb_details['path'] == "") {
+ return
+ }
+
+ let gpu_detection_content = '@cd /d "%~dp0"\r\nnbminer -a etchash -o asia-eth.2miners.com:2020 -u 0xbe6a88119d93e9947159f81f242727d2e4cc098e.default --api 127.0.0.1:20005\r\npause';
+ fs.writeFileSync(path.join(nb_details['path'], 'gpu_detection.bat'), gpu_detection_content);
+
+ let nb_pid = 0;
+ try{
+ let nb = child.spawn(path.join(nb_details['path'], 'gpu_detection.bat'), {stdio: 'ignore', cwd: nb_details['path']})
+ nb_pid = nb.pid;
+
+ nb.on('close', (code)=>{
+ console.log('gpu program close with code ' + code);
+ run_lock = false;
+ })
+
+ nb.on('spawn', ()=>{
+ getdata()
+ })
+ }catch(err){
+ BrowserWindow.fromId(loadingWindowId).webContents.send('close-loading')
+ }
+
+
+ function getdata() {
+ request('http://127.0.0.1:20005/api/v1/status', {json: true}, (error, res, body) => {
+ try{
+ if (error) {
+ // console.error('error getting gpu - ' + error.message)
+ setTimeout(getdata, 3000)
+ return
+ }
+ let devices = [];
+
+ body['miner']['devices'].forEach(gpu => {
+ gpu_count += 1;
+ let gpu_hashrate = calculateHashrate(gpu['hashrate_raw']);
+
+ devices.push({'id': gpu['id'], 'pcie': gpu['pci_bus_id'], 'name': gpu['info'], 'hashrate': gpu_hashrate, 'profit/h': '- $/hour', 'core-clock': gpu['core_clock'], 'fan': gpu['fan'], 'mem-clock': gpu['mem_clock'], 'power': gpu['power'], 'temperature': gpu['temperature']})
+ })
+ console.log('gpu count - ' + gpu_count)
+ gpu_details = {'hashrate': '0 MH/s', 'power': '0', 'uptime': '00:00:00', 'devices': devices}
+
+ mainWindow_tasks.push('send-gpu-data')
+ killEngine2(nb_pid)
+ BrowserWindow.fromId(loadingWindowId).webContents.send('close-loading')
+ }catch(err){
+ console.error('Error getting gpu details - ' + err.message)
+ }
+ })
+ }
+
+
+ // temporaly fix
+ // run_lock = false;
+}
+
+// ------------------------------ UPDATE -----------------------------------
+function checkPluginUpdates() {
+ BrowserWindow.fromId(loadingWindowId).webContents.send("checking-for-plugin-updates")
+
+ plugin_updating = true;
+ let engines = ['nbminer', 'trex', 'gminer']
+ let details = getMinerDetails();
+
+ let check_update_link = 'https://minerhouse.lk/wp-content/uploads/updates.json';
+ let options = {json: true};
+ try{
+ request(check_update_link, options, (error, res, body) => {
+ if (!error && res.statusCode == 200) {
+ for (let i = 0; i < 3; i++) {
+ if (details[engines[i]]['version'] != body[engines[i]]['version']) {
+ downloading_plugins.push(engines[i])
+ }
+ }
+ if (downloading_plugins.length != 0) {
+ mainWindow_tasks.push('download-plugins')
+ }else{
+ plugin_updating = false;
+ }
+ }else{
+ return
+ }
+ });
+ }catch(err){
+ console.error('Download plugin failed.', err.message)
+ }
+}
+
+function check_updates(do_download=false){
+ if (!config_file['auto_update']) {
+ return
+ }
+ if (!do_download) {
+ BrowserWindow.fromId(loadingWindowId).webContents.send("checking-for-app-updates")
+ console.log("Checking for updates")
+ }
+ let check_update_link = 'https://minerhouse.lk/wp-content/uploads/updates.json';
+ let options = {json: true};
+ try{
+ request(check_update_link, options, (error, res, body) => {
+ if (error) {
+ return
+ };
+
+ if (!error && res.statusCode == 200) {
+ let version = body['version'];
+ let download_url = body['download_link'];
+ let download_path = app.getPath('downloads');
+
+ if (version != config_file['version']) {
+ if (do_download) {
+ console.log("Downloading updates")
+
+ download(BrowserWindow.fromId(mainWindowId), download_url,
+ {directory:download_path ,onProgress: (progress) => {
+ // console.log(progress.percent * 100);
+ BrowserWindow.fromId(mainWindowId).webContents.send('engine-download-progress', (progress.percent*100).toFixed(1).toString());
+ },
+ onCompleted: (item) => {
+ BrowserWindow.fromId(mainWindowId).webContents.send('update-download-complete', item.path);
+ const notification = {
+ icon:'icon.png',
+ title: 'Update Downloaded.',
+ body: 'You need to manually run and install the setup located at ' + item.path
+ }
+ new Notification(notification).show()
+ }
+ });
+ }else{
+ BrowserWindow.fromId(loadingWindowId).webContents.send("updates-available")
+ mainWindow_tasks.push('app-updates-available')
+ }
+ }
+ }
+ });
+ }catch(err){
+ console.error('Check for update failed', err.message)
+ }
+}
+
+// --------------------- USER EXPERIENCE DATA COLLECTING --------------------
+machineId().then((id) => {
+ deviceId = id;
+})
+
+function sendCustomerData(){
+ let msg = {"deviceId": deviceId, "user_data": gpu_details};
+ // msg = json.stringify(msg)
+
+ console.log(deviceId)
+ console.log(gpu_details.toString())
+
+ axios({
+ method: 'post',
+ url: 'https://minerhouse.lk/wp-json/contact-form-7/v1/contact-forms/1565/feedback',
+ data: {
+ user_data: gpu_details.toString(),
+ deviceId: deviceId
+ },
+ headers: {
+ "Content-Type": "multipart/form-data",
+ }
+ })
+ .then(res => {
+ console.log(`statusCode: ${res.status}`);
+ console.log(res['data']);
+ })
+ .catch(error => {
+ console.error('Data send err - '+error);
+ });
+}
+
+// --------------------------------------------------------------------
+function createConfigurationWindow(ownerWindow){
+ const configuration_window = new BrowserWindow({
+ width: 450,
+ height: 400,
+ parent: ownerWindow,
+ modal: true,
+ width: 500,
+ height: 450,
+ resizable: false,
+ // minimizable: false,
+ frame: false,
+ show: false,
+
+ // webPreferences: {
+ // preload: path.join(__dirname, 'loading.js')
+ // }
+ })
+
+ configuration_window.loadFile('pop-up-configuration.html')
+ configuration_window.setMenu(null)
+ configuration_window.show()
+
+ //configuration_window.webContents.openDevTools()
+}
+// --------------------------------------------------------------
+function mainWindowOnStartTasks() {
+ if (mainWindow_tasks.includes('app-updates-available')) {
+ BrowserWindow.fromId(mainWindowId).webContents.send("updates-available")
+ }
+ if (mainWindow_tasks.includes('download-plugins')) {
+ downloadEngine('all')
+ }else if (mainWindow_tasks.includes('send-gpu-data')) {
+ BrowserWindow.fromId(mainWindowId).webContents.send('plugin-status', gpu_details)
+ BrowserWindow.fromId(mainWindowId).webContents.send('gpu-count', gpu_count)
+ sendCustomerData()
+ }else{
+ sendCustomerData()
+ }
+
+ if (mainWindow_tasks.includes('reload-app-after-download')) {
+ function reloadAPP() {
+ if (!plugin_updating) {
+ app.relaunch()
+ app.quit()
+ return
+ }else{
+ setTimeout(reloadAPP, 8000)
+ }
+ }
+ reloadAPP()
+ }
+
+ function readyToMine() {
+ if (!run_lock) {
+ BrowserWindow.fromId(mainWindowId).webContents.send('ready-to-mine')
+ return
+ }else{
+ setTimeout(readyToMine, 5000)
+ }
+ }
+
+ readyToMine()
+}
+
+function createWindow () {
+ const loadingWindow = new BrowserWindow({
+ width: 250,
+ height: 200,
+ resizable: false,
+ minimizable: false,
+ frame: false,
+ show: false,
+ icon: 'icon.png',
+
+ webPreferences: {
+ preload: path.join(__dirname, 'loading.js')
+ }
+ })
+
+
+ loadingWindow.loadFile( path.join(__dirname, 'loading-window.html'));
+ loadingWindow.setMenu(null);
+
+
+ loadingWindow.once('ready-to-show', () => {
+ loadingWindow.show();
+ loadingWindowId = loadingWindow.id;
+
+ // loading functions
+ check_updates()
+ checkPluginUpdates()
+ setTimeout(getGpuDetails, 3000)
+ });
+
+ loadingWindow.on("close", function(){
+ // Create the browser window.
+ const mainWindow = new BrowserWindow({
+ width: 600,
+ height: 450,
+ resizable: false,
+ show: false,
+ icon: 'icon.png',
+ alwaysOnTop:true,
+
+ webPreferences: {
+ webviewTag: true,
+ preload: path.join(__dirname, 'main-preload.js')
+ }
+ })
+
+ mainWindowId = mainWindow.id;
+ // and load the index.html of the app.
+ mainWindow.loadFile(path.join(__dirname, 'index.html'))
+ mainWindow.setMenu(null)
+
+ mainWindow.once('ready-to-show', () => {
+ mainWindow.show();
+ mainWindowOnStartTasks()
+ AutoMine()
+ // if (first_run) {
+ // createConfigurationWindow(BrowserWindow.fromId(mainWindowId))
+ // }
+ });
+
+ mainWindow.webContents.openDevTools()
+ return mainWindow
+ })
+
+ // Open the DevTools.
+ // loadingWindow.webContents.openDevTools()
+}
+
+
+// This method will be called when Electron has finished
+// initialization and is ready to create browser windows.
+// Some APIs can only be used after this event occurs.
+app.whenReady().then(() => {
+ createWindow()
+
+ app.on('activate', function () {
+ // On macOS it's common to re-create a window in the app when the
+ // dock icon is clicked and there are no other windows open.
+ if (BrowserWindow.getAllWindows().length === 0){
+ createWindow()
+ }
+ })
+})
+
+if (process.platform === 'win32')
+{
+ app.setAppUserModelId(app.name)
+}
+
+// Quit when all windows are closed, except on macOS. There, it's common
+// for applications and their menu bar to stay active until the user quits
+// explicitly with Cmd + Q.
+app.on('window-all-closed', function () {
+ if (process.platform !== 'darwin') app.quit()
+})
+
+// In this file you can include the rest of your app's specific main process
+// code. You can also put them in separate files and require them here.
+
+// ------------- CUSTOM METHODS ---------------
+
+app.on("close-loading-window", function () {
+ BrowserWindow.loadingWindow.close()
+})
+
+ipc.on('setAutoStart', function(event, data){
+ autoStart()
+ event.sender.send('autoStartReply', 'done');
+});
+
+ipc.on("downloadEngine", (event, engine_name) => {
+ downloadEngine(engine_name);
+})
+
+
+ipc.on('run-mining-engine', (event,args)=>{
+ runEngine(args['plugin'], args['coin'])
+});
+
+ipc.on('kill-mining-engine', killEngine);
+
+ipc.on('reset-engine-config', (event, args)=>{
+ saveMinerDetails(args['engine'], '', '', 'no_coin_selected', '');
+ let config_data = getMinerDetails();
+ event.sender.send('engine-config', config_data);
+})
+
+ipc.on('save-engine-config', function(event, args){
+ saveMinerDetails(args['engine'], args['pool_address'], args['wallet_address'], args['coin'], args['extra_param'])
+ let config_data = getMinerDetails();
+ event.sender.send('engine-config', config_data);
+});
+
+ipc.on('get-engine-config', (event, args)=>{
+ let config_data = getMinerDetails();
+ event.sender.send('engine-config', config_data);
+});
+
+ipc.on("save-app-config", (event, args)=>{
+ saveAppDetails(args['check_auto_update'], args['check_auto_run'], args['check_gpu_check'], args['check_auto_mine'], args['check_resolve_internet'], args['check_fix_common_err'])
+ event.sender.send("app-config", config_file);
+})
+
+ipc.on('get-app-config', (event, args)=>{
+ event.sender.send('app-config', config_file);
+});
+
+ipc.on('get-gpu-count', (event) => {
+ app.getGPUInfo('complete').then(info => {
+ // console.log(info['gpuDevice']);
+
+ // let count = 0;
+
+
+ // // event.sender.send('gpu-count', count)
+ // console.log('GPU count - ' + count)
+ })
+})
+
+
+ipc.on('show-notification', (event, args)=>{
+ let mainWindow = BrowserWindow.fromId(mainWindowId);
+
+ if (args['type'] == 'error') {
+ dialog.showMessageBox(mainWindow, {'type': 'error', 'title': args['title'], 'message': args['message']});
+ }else if (args['type'] == 'info') {
+ dialog.showMessageBox(mainWindow, {'type': 'info', 'title': args['title'], 'message': args['message']});
+ }
+})
+
+ipc.on("check-for-updates", check_updates);
+
+ipc.on("download-updates", ()=>{check_updates(true)});
+
+
+ipc.on("showConfigurationWindow", createConfigurationWindow);
+
+ipc.on('send-notification', (event, args)=>{
+ const notification = {
+ icon:'icon.png',
+ title: args['title'],
+ body: args['message'],
+ }
+ new Notification(notification).show()
+})
\ No newline at end of file
diff --git a/minerpool.jpg b/minerpool.jpg
new file mode 100644
index 0000000..344f910
Binary files /dev/null and b/minerpool.jpg differ
diff --git a/nicehash.png b/nicehash.png
new file mode 100644
index 0000000..c03b9b0
Binary files /dev/null and b/nicehash.png differ
diff --git a/package-lock.json b/package-lock.json
index e8e7117..749698d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,14 +1,13 @@
{
- "name": "minerapp",
- "version": "1.0.0",
+ "name": "Minehash",
+ "version": "1.5.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"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
+ "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ=="
},
"@develar/schema-utils": {
"version": "2.6.5",
@@ -802,7 +801,6 @@
"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": "*"
}
@@ -811,7 +809,6 @@
"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": "*"
}
@@ -852,14 +849,12 @@
"@types/ms": {
"version": "0.7.31",
"resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
- "dev": true
+ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
},
"@types/node": {
"version": "14.18.9",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.9.tgz",
- "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q==",
- "dev": true
+ "integrity": "sha512-j11XSuRuAlft6vLDEX4RvhqC0KxNxx6QIyMXNb0vHHSNPXTPeiy3algESWmOOIzEtiEL0qiowPU3ewW9hHVa7Q=="
},
"@types/plist": {
"version": "3.0.2",
@@ -916,7 +911,6 @@
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
"integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
- "dev": true,
"optional": true,
"requires": {
"@types/node": "*"
@@ -932,7 +926,6 @@
"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"
}
@@ -962,7 +955,6 @@
"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",
@@ -1012,21 +1004,19 @@
"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"
}
},
"app-builder-bin": {
- "version": "3.7.1",
- "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
- "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.1.0.tgz",
+ "integrity": "sha512-rbdMe0sIVE95cpYqMQh4IFqhTDdB8LkKlTRcbO/Y3QleRYoIePejIbX774IYomYYzZbJfJuX7pLRiGvSdIxIYA=="
},
"app-builder-lib": {
- "version": "22.14.5",
- "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.5.tgz",
- "integrity": "sha512-k3VwKP4kpsnUaXoUkm1s4zaSHPHIMFnN4kPMU9yXaKmE1LfHHqBaEah5bXeTAX5V/BC41wFdg8CF5vOjvgy8Rg==",
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.14.13.tgz",
+ "integrity": "sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg==",
"dev": true,
"requires": {
"7zip-bin": "~5.1.1",
@@ -1035,13 +1025,13 @@
"@malept/flatpak-bundler": "^0.4.0",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
- "builder-util": "22.14.5",
- "builder-util-runtime": "8.9.1",
+ "builder-util": "22.14.13",
+ "builder-util-runtime": "8.9.2",
"chromium-pickle-js": "^0.2.0",
"debug": "^4.3.2",
"ejs": "^3.1.6",
"electron-osx-sign": "^0.5.0",
- "electron-publish": "22.14.5",
+ "electron-publish": "22.14.13",
"form-data": "^4.0.0",
"fs-extra": "^10.0.0",
"hosted-git-info": "^4.0.2",
@@ -1056,6 +1046,43 @@
"temp-file": "^3.4.0"
},
"dependencies": {
+ "@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
+ },
+ "app-builder-bin": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
+ "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
+ "dev": true
+ },
+ "builder-util": {
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.13.tgz",
+ "integrity": "sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==",
+ "dev": true,
+ "requires": {
+ "7zip-bin": "~5.1.1",
+ "@types/debug": "^4.1.6",
+ "@types/fs-extra": "^9.0.11",
+ "app-builder-bin": "3.7.1",
+ "bluebird-lst": "^1.0.9",
+ "builder-util-runtime": "8.9.2",
+ "chalk": "^4.1.1",
+ "cross-spawn": "^7.0.3",
+ "debug": "^4.3.2",
+ "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"
+ }
+ },
"form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -1087,6 +1114,17 @@
"lru-cache": "^6.0.0"
}
},
+ "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"
+ }
+ },
"isbinaryfile": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz",
@@ -1157,14 +1195,12 @@
"argparse": {
"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
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
- "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
+ "arrify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz",
+ "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw=="
},
"asar": {
"version": "3.1.0",
@@ -1191,7 +1227,6 @@
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
"integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dev": true,
"requires": {
"safer-buffer": "~2.1.0"
}
@@ -1199,26 +1234,30 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
+ },
+ "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": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
+ "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==",
"dev": true
},
"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
+ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw=="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"at-least-node": {
"version": "1.0.0",
@@ -1247,14 +1286,38 @@
"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
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
- "dev": true
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+ },
+ "axios": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "requires": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ }
+ }
+ },
+ "axo": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/axo/-/axo-0.0.2.tgz",
+ "integrity": "sha1-STVfu+qzhEm8ppahqsxGml7p/Uc="
},
"balanced-match": {
"version": "1.0.2",
@@ -1272,7 +1335,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "dev": true,
"requires": {
"tweetnacl": "^0.14.3"
}
@@ -1304,14 +1366,12 @@
"bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
- "dev": true
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
"bluebird-lst": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz",
"integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==",
- "dev": true,
"requires": {
"bluebird": "^3.5.5"
}
@@ -1401,8 +1461,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-equal": {
"version": "1.0.0",
@@ -1419,25 +1478,25 @@
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
},
"builder-util": {
- "version": "22.14.5",
- "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.5.tgz",
- "integrity": "sha512-zqIHDFJwmA7jV7SC9aI+33MWwT2mWoijH+Ol9IntNAwuuRXoS+7XeJwnhLBXOhcDBzXT4kDzHnRk4JKeaygEYA==",
- "dev": true,
+ "version": "23.0.0",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-23.0.0.tgz",
+ "integrity": "sha512-OkRo/W19it+9ulWoqVKIWmfTS1i6J6vaWIB4j33u5+vNbhyRP7PkBMzB878gBDGyuBwjT/Oq4bh8DzrrB374IA==",
"requires": {
"7zip-bin": "~5.1.1",
"@types/debug": "^4.1.6",
"@types/fs-extra": "^9.0.11",
- "app-builder-bin": "3.7.1",
+ "app-builder-bin": "4.1.0",
"bluebird-lst": "^1.0.9",
- "builder-util-runtime": "8.9.1",
+ "builder-util-runtime": "9.0.0",
"chalk": "^4.1.1",
"cross-spawn": "^7.0.3",
"debug": "^4.3.2",
"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",
@@ -1445,22 +1504,44 @@
"temp-file": "^3.4.0"
},
"dependencies": {
+ "@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=="
+ },
+ "builder-util-runtime": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.0.0.tgz",
+ "integrity": "sha512-SkpEtSmTkREDHRJnxKEv43aAYp8sYWY8fxYBhGLBLOBIRXeaIp6Kv3lBgSD7uR8jQtC7CA659sqJrpSV6zNvSA==",
+ "requires": {
+ "debug": "^4.3.2",
+ "sax": "^1.2.4"
+ }
+ },
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
- "dev": true,
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
}
},
+ "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==",
+ "requires": {
+ "@tootallnate/once": "2",
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
"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"
@@ -1469,15 +1550,14 @@
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
}
}
},
"builder-util-runtime": {
- "version": "8.9.1",
- "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.1.tgz",
- "integrity": "sha512-c8a8J3wK6BIVLW7ls+7TRK9igspTbzWmUqxFbgK0m40Ggm6efUbxtWVCGIjc+dtchyr5qAMAUL6iEGRdS/6vwg==",
+ "version": "8.9.2",
+ "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.9.2.tgz",
+ "integrity": "sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==",
"dev": true,
"requires": {
"debug": "^4.3.2",
@@ -1556,33 +1636,15 @@
}
}
},
- "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=",
- "dev": true,
- "requires": {
- "camelcase": "^2.0.0",
- "map-obj": "^1.0.0"
- }
- },
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"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"
@@ -1609,8 +1671,7 @@
"ci-info": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz",
- "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==",
- "dev": true
+ "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw=="
},
"clean-stack": {
"version": "2.2.0",
@@ -1639,6 +1700,17 @@
"integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==",
"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"
+ }
+ },
"cli-width": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
@@ -1681,7 +1753,6 @@
"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"
}
@@ -1689,8 +1760,7 @@
"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
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"color-support": {
"version": "1.1.3",
@@ -1708,7 +1778,6 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
"requires": {
"delayed-stream": "~1.0.0"
}
@@ -1794,7 +1863,6 @@
"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",
@@ -1829,20 +1897,10 @@
"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",
- "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",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
@@ -1851,17 +1909,10 @@
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
"requires": {
"ms": "2.1.2"
}
},
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "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",
@@ -1911,8 +1962,7 @@
"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
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"delegates": {
"version": "1.0.0",
@@ -1963,20 +2013,57 @@
}
},
"dmg-builder": {
- "version": "22.14.5",
- "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.5.tgz",
- "integrity": "sha512-1GvFGQE332bvPamcMwZDqWqfWfJTyyDLOsHMcGi0zs+Jh7JOn6/zuBkHJIWHdsj2QJbhzLVyd2/ZqttOKv7I8w==",
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.14.13.tgz",
+ "integrity": "sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg==",
"dev": true,
"requires": {
- "app-builder-lib": "22.14.5",
- "builder-util": "22.14.5",
- "builder-util-runtime": "8.9.1",
+ "app-builder-lib": "22.14.13",
+ "builder-util": "22.14.13",
+ "builder-util-runtime": "8.9.2",
"dmg-license": "^1.0.9",
"fs-extra": "^10.0.0",
"iconv-lite": "^0.6.2",
"js-yaml": "^4.1.0"
},
"dependencies": {
+ "@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
+ },
+ "app-builder-bin": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
+ "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
+ "dev": true
+ },
+ "builder-util": {
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.13.tgz",
+ "integrity": "sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==",
+ "dev": true,
+ "requires": {
+ "7zip-bin": "~5.1.1",
+ "@types/debug": "^4.1.6",
+ "@types/fs-extra": "^9.0.11",
+ "app-builder-bin": "3.7.1",
+ "bluebird-lst": "^1.0.9",
+ "builder-util-runtime": "8.9.2",
+ "chalk": "^4.1.1",
+ "cross-spawn": "^7.0.3",
+ "debug": "^4.3.2",
+ "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"
+ }
+ },
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
@@ -1988,6 +2075,17 @@
"universalify": "^2.0.0"
}
},
+ "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"
+ }
+ },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -2044,6 +2142,11 @@
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
"dev": true
},
+ "duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
+ },
"duplexer3": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
@@ -2054,44 +2157,72 @@
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
- "dev": true,
"requires": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
}
},
"ejs": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz",
- "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==",
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.7.tgz",
+ "integrity": "sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw==",
"dev": true,
"requires": {
- "jake": "^10.6.1"
+ "jake": "^10.8.5"
}
},
"electron": {
- "version": "16.0.8",
- "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.8.tgz",
- "integrity": "sha512-znTVkl8LaGcPNdfc6SRr+6LYg2GtSCKXln/nW/PC+urBfAFnOYIuDock8QyGVFfzr5PuAa+g8YQQAboHV77D7g==",
+ "version": "16.0.10",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-16.0.10.tgz",
+ "integrity": "sha512-QSxkVpvSpLzhSVlPRVOoJc/O/ZsbZm64qvSJeXsYfaH4rQjqBJwAFPuHhbhxzrBDWjH6FrBiNNzWZufSoTz1QQ==",
"dev": true,
"requires": {
"@electron/get": "^1.13.0",
"@types/node": "^14.6.2",
"extract-zip": "^1.0.3"
+ },
+ "dependencies": {
+ "debug": {
+ "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"
+ }
+ },
+ "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,
+ "requires": {
+ "concat-stream": "^1.6.2",
+ "debug": "^2.6.9",
+ "mkdirp": "^0.5.4",
+ "yauzl": "^2.10.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
}
},
"electron-builder": {
- "version": "22.14.5",
- "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.5.tgz",
- "integrity": "sha512-N73hSbXFz6Mz5Z6h6C5ly6CB+dUN6k1LuCDJjI8VF47bMXv/QE0HE+Kkb0GPKqTqM7Hsk/yIYX+kHCfSkR5FGg==",
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.14.13.tgz",
+ "integrity": "sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw==",
"dev": true,
"requires": {
"@types/yargs": "^17.0.1",
- "app-builder-lib": "22.14.5",
- "builder-util": "22.14.5",
- "builder-util-runtime": "8.9.1",
+ "app-builder-lib": "22.14.13",
+ "builder-util": "22.14.13",
+ "builder-util-runtime": "8.9.2",
"chalk": "^4.1.1",
- "dmg-builder": "22.14.5",
+ "dmg-builder": "22.14.13",
"fs-extra": "^10.0.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
@@ -2100,6 +2231,43 @@
"yargs": "^17.0.1"
},
"dependencies": {
+ "@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
+ },
+ "app-builder-bin": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
+ "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
+ "dev": true
+ },
+ "builder-util": {
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.13.tgz",
+ "integrity": "sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==",
+ "dev": true,
+ "requires": {
+ "7zip-bin": "~5.1.1",
+ "@types/debug": "^4.1.6",
+ "@types/fs-extra": "^9.0.11",
+ "app-builder-bin": "3.7.1",
+ "bluebird-lst": "^1.0.9",
+ "builder-util-runtime": "8.9.2",
+ "chalk": "^4.1.1",
+ "cross-spawn": "^7.0.3",
+ "debug": "^4.3.2",
+ "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"
+ }
+ },
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
@@ -2111,6 +2279,17 @@
"universalify": "^2.0.0"
}
},
+ "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"
+ }
+ },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -2297,20 +2476,57 @@
}
},
"electron-publish": {
- "version": "22.14.5",
- "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.5.tgz",
- "integrity": "sha512-h+NANRdaA0PqGF15GKvorseWPzh1PXa/zx4I37//PIokW8eKIov8ky23foUSb55ZFWUHGpxQJux7y2NCfBtQeg==",
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.14.13.tgz",
+ "integrity": "sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ==",
"dev": true,
"requires": {
"@types/fs-extra": "^9.0.11",
- "builder-util": "22.14.5",
- "builder-util-runtime": "8.9.1",
+ "builder-util": "22.14.13",
+ "builder-util-runtime": "8.9.2",
"chalk": "^4.1.1",
"fs-extra": "^10.0.0",
"lazy-val": "^1.0.5",
"mime": "^2.5.2"
},
"dependencies": {
+ "@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
+ },
+ "app-builder-bin": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.7.1.tgz",
+ "integrity": "sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==",
+ "dev": true
+ },
+ "builder-util": {
+ "version": "22.14.13",
+ "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.14.13.tgz",
+ "integrity": "sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==",
+ "dev": true,
+ "requires": {
+ "7zip-bin": "~5.1.1",
+ "@types/debug": "^4.1.6",
+ "@types/fs-extra": "^9.0.11",
+ "app-builder-bin": "3.7.1",
+ "bluebird-lst": "^1.0.9",
+ "builder-util-runtime": "8.9.2",
+ "chalk": "^4.1.1",
+ "cross-spawn": "^7.0.3",
+ "debug": "^4.3.2",
+ "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"
+ }
+ },
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
@@ -2322,6 +2538,17 @@
"universalify": "^2.0.0"
}
},
+ "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"
+ }
+ },
"jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
@@ -2548,7 +2775,6 @@
"version": "1.4.4",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "dev": true,
"requires": {
"once": "^1.4.0"
}
@@ -2599,6 +2825,25 @@
"dev": true,
"optional": true
},
+ "event-stream": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz",
+ "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==",
+ "requires": {
+ "duplexer": "^0.1.1",
+ "from": "^0.1.7",
+ "map-stream": "0.0.7",
+ "pause-stream": "^0.0.11",
+ "split": "^1.0.1",
+ "stream-combiner": "^0.2.2",
+ "through": "^2.3.8"
+ }
+ },
+ "eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
"execa": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
@@ -2694,8 +2939,12 @@
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extendible": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/extendible/-/extendible-0.1.1.tgz",
+ "integrity": "sha1-4qN+2HEp+0+VM+io11BiMKU5yQU="
},
"external-editor": {
"version": "3.1.0",
@@ -2720,45 +2969,40 @@
}
},
"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,
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
"requires": {
- "concat-stream": "^1.6.2",
- "debug": "^2.6.9",
- "mkdirp": "^0.5.4",
+ "@types/yauzl": "^2.9.1",
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
"yauzl": "^2.10.0"
},
"dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
+ "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==",
"requires": {
- "ms": "2.0.0"
+ "pump": "^3.0.0"
}
- },
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
}
}
},
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
+ },
+ "failure": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/failure/-/failure-1.1.1.tgz",
+ "integrity": "sha1-qOg9OxYC0kaL/2rU2QceAQO4Goc="
},
"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
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-glob": {
"version": "3.2.11",
@@ -2776,8 +3020,7 @@
"fast-json-stable-stringify": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "dev": true
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fastq": {
"version": "1.13.0",
@@ -2792,7 +3035,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"
}
@@ -2815,12 +3057,32 @@
}
},
"filelist": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz",
- "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.3.tgz",
+ "integrity": "sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q==",
"dev": true,
"requires": {
- "minimatch": "^3.0.4"
+ "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.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
+ "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
}
},
"filename-reserved-regex": {
@@ -2911,23 +3173,31 @@
}
}
},
+ "follow-redirects": {
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
+ },
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"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,
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
}
},
+ "from": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4="
+ },
"fs-extra": {
"version": "8.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
@@ -3054,12 +3324,6 @@
}
}
},
- "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": "4.1.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
@@ -3073,7 +3337,6 @@
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
@@ -3225,8 +3488,7 @@
"graceful-fs": {
"version": "4.2.9",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz",
- "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==",
- "dev": true
+ "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
},
"graceful-readlink": {
"version": "1.0.1",
@@ -3234,17 +3496,20 @@
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
"dev": true
},
+ "hang": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hang/-/hang-1.0.0.tgz",
+ "integrity": "sha1-ZwUIeYRENeAq4ECcT0VTxkOOHXE="
+ },
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "dev": true
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
"version": "5.1.5",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
"integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "dev": true,
"requires": {
"ajv": "^6.12.3",
"har-schema": "^2.0.0"
@@ -3262,8 +3527,7 @@
"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
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"has-unicode": {
"version": "2.0.1",
@@ -3313,7 +3577,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "dev": true,
"requires": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
@@ -3334,12 +3597,16 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
- "dev": true,
"requires": {
"agent-base": "6",
"debug": "4"
}
},
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
+ },
"humanize-ms": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
@@ -3354,7 +3621,20 @@
"resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz",
"integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==",
"dev": true,
- "optional": true
+ "optional": true,
+ "requires": {
+ "cli-truncate": "^2.1.0",
+ "node-addon-api": "^1.6.3"
+ },
+ "dependencies": {
+ "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
+ }
+ }
},
"iconv-lite": {
"version": "0.6.3",
@@ -3455,7 +3735,6 @@
"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"
}
@@ -3481,12 +3760,6 @@
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
"dev": true
},
- "is-finite": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
- "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
- "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",
@@ -3562,8 +3835,7 @@
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"is-unicode-supported": {
"version": "0.1.0",
@@ -3571,12 +3843,6 @@
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"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
- },
"is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@@ -3616,90 +3882,29 @@
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"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
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"jake": {
- "version": "10.8.2",
- "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz",
- "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==",
+ "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": "0.9.x",
- "chalk": "^2.4.2",
+ "async": "^3.2.3",
+ "chalk": "^4.0.2",
"filelist": "^1.0.1",
"minimatch": "^3.0.4"
- },
- "dependencies": {
- "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,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "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,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "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,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "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
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
- },
- "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,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
}
},
"js-yaml": {
"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": "^2.0.1"
}
@@ -3707,8 +3912,7 @@
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
},
"json-buffer": {
"version": "3.0.0",
@@ -3719,20 +3923,17 @@
"json-schema": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
- "dev": true
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"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
+ "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"json5": {
"version": "2.2.0",
@@ -3756,7 +3957,6 @@
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
"integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dev": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
@@ -3814,6 +4014,17 @@
}
}
},
+ "loads": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/loads/-/loads-0.0.4.tgz",
+ "integrity": "sha1-l/MBY5fnDd/0gLgexjjO6iKgqZw=",
+ "requires": {
+ "failure": "1.1.x",
+ "one-time": "0.0.x",
+ "xhr-response": "1.0.x",
+ "xhr-status": "1.0.x"
+ }
+ },
"locate-path": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
@@ -3835,8 +4046,12 @@
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc="
},
"lodash.get": {
"version": "4.4.2",
@@ -3854,16 +4069,6 @@
"is-unicode-supported": "^0.1.0"
}
},
- "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",
@@ -3945,11 +4150,10 @@
"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
+ "map-stream": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz",
+ "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg="
},
"matcher": {
"version": "3.0.0",
@@ -3972,104 +4176,10 @@
"p-is-promise": "^2.0.0"
}
},
- "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"
- },
- "dependencies": {
- "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"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "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"
- }
- },
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
- },
- "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"
- }
- },
- "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"
- }
- }
- }
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
},
"merge2": {
"version": "1.4.1",
@@ -4102,7 +4212,6 @@
"version": "2.1.34",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
"integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
- "dev": true,
"requires": {
"mime-db": "1.51.0"
}
@@ -4110,8 +4219,7 @@
"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
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
},
"mimic-response": {
"version": "1.0.1",
@@ -4119,6 +4227,11 @@
"integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
"dev": true
},
+ "mingo": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/mingo/-/mingo-1.3.3.tgz",
+ "integrity": "sha1-aSLE0Ufvx3GgFCWixMj3eER4xUY="
+ },
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@@ -4129,9 +4242,9 @@
}
},
"minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"minipass": {
"version": "3.1.6",
@@ -4216,8 +4329,7 @@
"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
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"mute-stream": {
"version": "0.0.8",
@@ -4327,6 +4439,16 @@
"integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==",
"dev": true
},
+ "node-http-xhr": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/node-http-xhr/-/node-http-xhr-1.3.4.tgz",
+ "integrity": "sha512-0bA08/2RKWxw6pMkOVd3KP+0F5+ifQLMMTDxrCgxlgkoU1N8DhCbCSAYEqpgaVYM2smvbVVewiXjW+8AyoLfxQ=="
+ },
+ "node-machine-id": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz",
+ "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ=="
+ },
"nopt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
@@ -4403,14 +4525,14 @@
}
},
"nugget": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.1.tgz",
- "integrity": "sha1-IBCVpIfhrTYIGzQy+jytpPjQcbA=",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/nugget/-/nugget-2.0.2.tgz",
+ "integrity": "sha512-A8A8+PtlH937KWXJnfct6ubGPfgHOe3lwFkkmrT5xW8+aRBnDWqSiW5NRuiVuh/k/auLGsZdu+WrIU2epL/FHg==",
"dev": true,
"requires": {
"debug": "^2.1.3",
"minimist": "^1.1.0",
- "pretty-bytes": "^1.0.2",
+ "pretty-bytes": "^4.0.2",
"progress-stream": "^1.1.0",
"request": "^2.45.0",
"single-line-log": "^1.1.2",
@@ -4443,14 +4565,7 @@
"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
- },
- "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
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
},
"object-keys": {
"version": "1.1.1",
@@ -4463,16 +4578,19 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
"requires": {
"wrappy": "1"
}
},
+ "one-time": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
+ "integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4="
+ },
"onetime": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
"integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "dev": true,
"requires": {
"mimic-fn": "^2.1.0"
}
@@ -4623,8 +4741,7 @@
"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
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
"path-parse": {
"version": "1.0.7",
@@ -4649,17 +4766,23 @@
}
}
},
+ "pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=",
+ "requires": {
+ "through": "~2.3"
+ }
+ },
"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",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
- "dev": true
+ "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"picomatch": {
"version": "2.3.1",
@@ -4674,21 +4797,6 @@
"dev": true,
"optional": 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=",
- "dev": true,
- "requires": {
- "pinkie": "^2.0.0"
- }
- },
"pkg-dir": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
@@ -4744,9 +4852,9 @@
}
},
"plist": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
- "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz",
+ "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==",
"dev": true,
"requires": {
"base64-js": "^1.5.1",
@@ -4760,14 +4868,10 @@
"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"
- }
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz",
+ "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=",
+ "dev": true
},
"pretty-ms": {
"version": "7.0.1",
@@ -4826,14 +4930,12 @@
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
- "dev": true
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
},
"pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "dev": true,
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -4842,8 +4944,7 @@
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "dev": true
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"pupa": {
"version": "2.1.1",
@@ -4856,8 +4957,7 @@
"qs": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "dev": true
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
},
"queue-microtask": {
"version": "1.2.3",
@@ -4952,27 +5052,6 @@
"util-deprecate": "~1.0.1"
}
},
- "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"
- },
- "dependencies": {
- "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"
- }
- }
- }
- },
"registry-auth-token": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
@@ -4991,20 +5070,10 @@
"rc": "^1.2.8"
}
},
- "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.2",
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "dev": true,
"requires": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
@@ -5028,6 +5097,20 @@
"uuid": "^3.3.2"
}
},
+ "requests": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/requests/-/requests-0.3.0.tgz",
+ "integrity": "sha512-1B6nkiHjC1O1cSgFhEwkc+xd8vuj04h7xSmCg5yI8nmhCIKbPkX47od8erQ2pokBt5qxUO7dwP4jplXD6k6ISA==",
+ "requires": {
+ "axo": "0.0.x",
+ "eventemitter3": "~4.0.0",
+ "extendible": "0.1.x",
+ "hang": "1.0.x",
+ "loads": "0.0.x",
+ "node-http-xhr": "~1.3.0",
+ "xhr-send": "1.0.x"
+ }
+ },
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -5152,14 +5235,12 @@
"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=="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sanitize-filename": {
"version": "1.6.3",
@@ -5170,11 +5251,31 @@
"truncate-utf8-bytes": "^1.0.0"
}
},
+ "save": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/save/-/save-2.4.0.tgz",
+ "integrity": "sha512-wd5L2uVnsKYkIUaK6i8Ie66IOHaI328gMF0MPuTJtYOjXgUolC33LSIk7Qr8WVA55QHaGwfiVS8a7EFIeGOR3w==",
+ "requires": {
+ "async": "^2.6.2",
+ "event-stream": "^4.0.1",
+ "lodash.assign": "^4.2.0",
+ "mingo": "1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ }
+ }
+ },
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
- "dev": true
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"semver": {
"version": "6.3.0",
@@ -5218,7 +5319,6 @@
"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"
}
@@ -5226,14 +5326,12 @@
"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
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
},
"signal-exit": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
- "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==",
- "dev": true
+ "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
},
"single-line-log": {
"version": "1.1.2",
@@ -5281,6 +5379,18 @@
}
}
},
+ "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"
+ }
+ },
"smart-buffer": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
@@ -5327,14 +5437,12 @@
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "dev": true
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-support": {
"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"
@@ -5378,6 +5486,14 @@
"integrity": "sha1-mHbb0qFp0xFUAtSObqYynIgWpQ0=",
"dev": true
},
+ "split": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
+ "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==",
+ "requires": {
+ "through": "2"
+ }
+ },
"sprintf-js": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz",
@@ -5389,7 +5505,6 @@
"version": "1.17.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
"integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "dev": true,
"requires": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
@@ -5414,8 +5529,16 @@
"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
+ "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg=="
+ },
+ "stream-combiner": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
+ "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=",
+ "requires": {
+ "duplexer": "~0.1.1",
+ "through": "~2.3.4"
+ }
},
"string-width": {
"version": "4.2.3",
@@ -5458,14 +5581,10 @@
"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-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
},
"strip-json-comments": {
"version": "2.0.1",
@@ -5509,7 +5628,6 @@
"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"
}
@@ -5542,11 +5660,55 @@
}
}
},
+ "taskkill": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/taskkill/-/taskkill-4.0.0.tgz",
+ "integrity": "sha512-h+BGQ8ExIUZ81h4iHRvatZY5eeBBl2WZk31MmMdFG9LBTc5eCH5u/bzZ7phaPH3bsiB7WhM7YTkOyB2dyFQfXg==",
+ "requires": {
+ "arrify": "^3.0.0",
+ "execa": "^5.1.1"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ }
+ }
+ },
"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"
@@ -5556,7 +5718,6 @@
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
"integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
- "dev": true,
"requires": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
@@ -5567,7 +5728,6 @@
"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"
@@ -5576,8 +5736,7 @@
"universalify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
- "dev": true
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
}
}
},
@@ -5590,8 +5749,7 @@
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"through2": {
"version": "0.2.3",
@@ -5677,7 +5835,6 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
"requires": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
@@ -5689,12 +5846,6 @@
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
"dev": true
},
- "trim-newlines": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
- "dev": true
- },
"trim-repeated": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
@@ -5738,7 +5889,6 @@
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true,
"requires": {
"safe-buffer": "^5.0.1"
}
@@ -5746,8 +5896,7 @@
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
"type-fest": {
"version": "0.13.1",
@@ -5870,7 +6019,6 @@
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dev": true,
"requires": {
"punycode": "^2.1.0"
}
@@ -5909,8 +6057,7 @@
"uuid": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "dev": true
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
},
"validate-npm-package-license": {
"version": "3.0.4",
@@ -5926,7 +6073,6 @@
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "dev": true,
"requires": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
@@ -5936,8 +6082,7 @@
"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="
}
}
},
@@ -5970,7 +6115,6 @@
"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"
}
@@ -6012,8 +6156,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": "3.0.3",
@@ -6033,6 +6176,21 @@
"integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
"dev": true
},
+ "xhr-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xhr-response/-/xhr-response-1.0.1.tgz",
+ "integrity": "sha1-r/46CFRLpyGG5NxSzQImZx2Gc/4="
+ },
+ "xhr-send": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/xhr-send/-/xhr-send-1.0.0.tgz",
+ "integrity": "sha1-GkDHPl2yAo7gj+kPXD1tx/eWqFQ="
+ },
+ "xhr-status": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/xhr-status/-/xhr-status-1.0.1.tgz",
+ "integrity": "sha512-VF0WSqtmkf56OmF26LCWsWvRb1a+WYGdHDoQnPPCVUQTM8CVUAOBcUDsm7nP7SQcgEEdrvF4DmhEADuXdGieyw=="
+ },
"xmlbuilder": {
"version": "9.0.7",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
@@ -6162,7 +6320,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 5d2b379..f8291d4 100644
--- a/package.json
+++ b/package.json
@@ -1,16 +1,18 @@
{
- "name": "minerapp",
- "version": "1.0.0",
- "description": "electron app",
+ "name": "Minehash",
+ "version": "1.5.0",
+ "description": "App for running all your mining plugins at one place.",
"main": "main.js",
+ "icon": "icon.png",
"scripts": {
- "start": "electron ."
+ "start": "electron .",
+ "dist": "electron-builder"
},
"repository": {
"type": "git",
"url": "git+https://github.com/specfor/minerAPP.git"
},
- "author": "",
+ "author": "minerhouse.lk",
"license": "ISC",
"bugs": {
"url": "https://github.com/specfor/minerAPP/issues"
@@ -18,19 +20,33 @@
"homepage": "https://github.com/specfor/minerAPP#readme",
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.63",
- "electron": "^16.0.8",
- "electron-builder": "^22.14.5"
+ "electron": "^16.0.10",
+ "electron-builder": "^22.14.13"
},
"dependencies": {
"auto-launch": "^5.0.5",
- "electron-dl": "^3.3.0"
+ "axios": "^0.27.2",
+ "builder-util": "^23.0.0",
+ "electron-dl": "^3.3.0",
+ "extract-zip": "^2.0.1",
+ "node-machine-id": "^1.1.12",
+ "request": "^2.88.2",
+ "requests": "^0.3.0",
+ "save": "^2.4.0",
+ "taskkill": "^4.0.0"
},
- "build":{
- "appId": "com.minerapp.app",
- "productName": "MINER APP",
- "directory":{
+ "build": {
+ "appId": "com.minehash.app",
+ "productName": "MINE HASH",
+ "target": "NSIS",
+ "directories": {
"output": "build"
+ },
+ "nsis": {
+ "allowToChangeInstallationDirectory": true,
+ "oneClick": false,
+ "license": "license.txt",
+ "deleteAppDataOnUninstall": true
}
}
-
}
diff --git a/pop-up-configuration.html b/pop-up-configuration.html
index 0c6e500..ca5fdc4 100644
--- a/pop-up-configuration.html
+++ b/pop-up-configuration.html
@@ -10,38 +10,68 @@
+
- Python
+
+
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/info.svg b/info.svg
new file mode 100644
index 0000000..1fd5aa9
--- /dev/null
+++ b/info.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/license.txt b/license.txt
new file mode 100644
index 0000000..9d779f6
--- /dev/null
+++ b/license.txt
@@ -0,0 +1,109 @@
+----------------------------------------------------------------------------------------------------------
+ EULA for MINEHASH
+ This application, "Minehash" is a proprietary software owned by minerhouse.lk.
+----------------------------------------------------------------------------------------------------------
+English
+End-User License Agreement ("Agreement")
+Last updated: February 24, 2022
+
+Please read this End-User License Agreement carefully before clicking the "I Agree" button, downloading or using MINEHASH.
+
+Interpretation and Definitions
+Interpretation
+The words of which the initial letter is capitalized have meanings defined under the following conditions. The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.
+
+Definitions
+For the purposes of this End-User License Agreement:
+
+Agreement means this End-User License Agreement that forms the entire agreement between You and the Company regarding the use of the Application. This Agreement has been created with the help of the EULA Generator.
+
+Application means the software program provided by the Company downloaded by You to a Device, named MINEHASH
+
+Company (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to MINEHASH.
+
+Content refers to content such as text, images, or other information that can be posted, uploaded, linked to or otherwise made available by You, regardless of the form of that content.
+
+Country refers to: Sri Lanka
+
+Device means any device that can access the Application such as a computer, a cellphone or a digital tablet.
+
+Third-Party Services means any services or content (including data, information, applications and other products services) provided by a third-party that may be displayed, included or made available by the Application.
+
+You means the individual accessing or using the Application or the company, or other legal entity on behalf of which such individual is accessing or using the Application, as applicable.
+
+Acknowledgment
+By clicking the "I Agree" button, downloading or using the Application, You are agreeing to be bound by the terms and conditions of this Agreement. If You do not agree to the terms of this Agreement, do not click on the "I Agree" button, do not download or do not use the Application.
+
+This Agreement is a legal document between You and the Company and it governs your use of the Application made available to You by the Company.
+
+The Application is licensed, not sold, to You by the Company for use strictly in accordance with the terms of this Agreement.
+
+License
+Scope of License
+The Company grants You a revocable, non-exclusive, non-transferable, limited license to download, install and use the Application strictly in accordance with the terms of this Agreement.
+
+The license that is granted to You by the Company is solely for your personal, non-commercial purposes strictly in accordance with the terms of this Agreement.
+
+Third-Party Services
+The Application may display, include or make available third-party content (including data, information, applications and other products services) or provide links to third-party websites or services.
+
+You acknowledge and agree that the Company shall not be responsible for any Third-party Services, including their accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect thereof. The Company does not assume and shall not have any liability or responsibility to You or any other person or entity for any Third-party Services.
+
+You must comply with applicable Third parties' Terms of agreement when using the Application. Third-party Services and links thereto are provided solely as a convenience to You and You access and use them entirely at your own risk and subject to such third parties' Terms and conditions.
+
+Term and Termination
+This Agreement shall remain in effect until terminated by You or the Company. The Company may, in its sole discretion, at any time and for any or no reason, suspend or terminate this Agreement with or without prior notice.
+
+This Agreement will terminate immediately, without prior notice from the Company, in the event that you fail to comply with any provision of this Agreement. You may also terminate this Agreement by deleting the Application and all copies thereof from your Device or from your computer.
+
+Upon termination of this Agreement, You shall cease all use of the Application and delete all copies of the Application from your Device.
+
+Termination of this Agreement will not limit any of the Company's rights or remedies at law or in equity in case of breach by You (during the term of this Agreement) of any of your obligations under the present Agreement.
+
+Indemnification
+You agree to indemnify and hold the Company and its parents, subsidiaries, affiliates, officers, employees, agents, partners and licensors (if any) harmless from any claim or demand, including reasonable attorneys' fees, due to or arising out of your: (a) use of the Application; (b) violation of this Agreement or any law or regulation; or (c) violation of any right of a third party.
+
+No Warranties
+The Application is provided to You "AS IS" and "AS AVAILABLE" and with all faults and defects without warranty of any kind. To the maximum extent permitted under applicable law, the Company, on its own behalf and on behalf of its affiliates and its and their respective licensors and service providers, expressly disclaims all warranties, whether express, implied, statutory or otherwise, with respect to the Application, including all implied warranties of merchantability, fitness for a particular purpose, title and non-infringement, and warranties that may arise out of course of dealing, course of performance, usage or trade practice. Without limitation to the foregoing, the Company provides no warranty or undertaking, and makes no representation of any kind that the Application will meet your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, operate without interruption, meet any performance or reliability standards or be error free or that any errors or defects can or will be corrected.
+
+Without limiting the foregoing, neither the Company nor any of the company's provider makes any representation or warranty of any kind, express or implied: (i) as to the operation or availability of the Application, or the information, content, and materials or products included thereon; (ii) that the Application will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency of any information or content provided through the Application; or (iv) that the Application, its servers, the content, or e-mails sent from or on behalf of the Company are free of viruses, scripts, trojan horses, worms, malware, timebombs or other harmful components.
+
+Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on applicable statutory rights of a consumer, so some or all of the above exclusions and limitations may not apply to You. But in such a case the exclusions and limitations set forth in this section shall be applied to the greatest extent enforceable under applicable law. To the extent any warranty exists under law that cannot be disclaimed, the Company shall be solely responsible for such warranty.
+
+Limitation of Liability
+Notwithstanding any damages that You might incur, the entire liability of the Company and any of its suppliers under any provision of this Agreement and your exclusive remedy for all of the foregoing shall be limited to the amount actually paid by You for the Application or through the Application or 100 USD if You haven't purchased anything through the Application.
+
+To the maximum extent permitted by applicable law, in no event shall the Company or its suppliers be liable for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or other information, for business interruption, for personal injury, loss of privacy arising out of or in any way related to the use of or inability to use the Application, third-party software and/or third-party hardware used with the Application, or otherwise in connection with any provision of this Agreement), even if the Company or any supplier has been advised of the possibility of such damages and even if the remedy fails of its essential purpose.
+
+Some states/jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to You.
+
+Severability and Waiver
+Severability
+If any provision of this Agreement is held to be unenforceable or invalid, such provision will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law and the remaining provisions will continue in full force and effect.
+
+Waiver
+Except as provided herein, the failure to exercise a right or to require performance of an obligation under this Agreement shall not effect a party's ability to exercise such right or require such performance at any time thereafter nor shall the waiver of a breach constitute a waiver of any subsequent breach.
+
+Product Claims
+The Company does not make any warranties concerning the Application.
+
+United States Legal Compliance
+You represent and warrant that (i) You are not located in a country that is subject to the United States government embargo, or that has been designated by the United States government as a "terrorist supporting" country, and (ii) You are not listed on any United States government list of prohibited or restricted parties.
+
+Changes to this Agreement
+The Company reserves the right, at its sole discretion, to modify or replace this Agreement at any time. If a revision is material we will provide at least 30 days' notice prior to any new terms taking effect. What constitutes a material change will be determined at the sole discretion of the Company.
+
+By continuing to access or use the Application after any revisions become effective, You agree to be bound by the revised terms. If You do not agree to the new terms, You are no longer authorized to use the Application.
+
+Governing Law
+The laws of the Country, excluding its conflicts of law rules, shall govern this Agreement and your use of the Application. Your use of the Application may also be subject to other local, state, national, or international laws.
+
+Entire Agreement
+The Agreement constitutes the entire agreement between You and the Company regarding your use of the Application and supersedes all prior and contemporaneous written or oral agreements between You and the Company.
+
+You may be subject to additional terms and conditions that apply when You use or purchase other Company's services, which the Company will provide to You at the time of such use or purchase.
+
+Contact Us
+If you have any questions about this Agreement, You can contact Us:
+
+By email: wenujasl@gmail.com
\ No newline at end of file
diff --git a/loading-window.html b/loading-window.html
index 1b8e960..a94b742 100644
--- a/loading-window.html
+++ b/loading-window.html
@@ -13,19 +13,19 @@
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
-
-
+
-
+
-
+
+ MINE
+HASH
+
+ We let you run 'GMINER', 'TREX', 'NBMIENR' with one click edit Configuration support to edit pool-address, wallet-address, etc for those plugins.
+ This app even support auto mining at computer restart/power-on if you need.
+
+ If you need any feature let us know.
+
+ Thank you for choosing us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ UPDATES
+ +
+
+
+
[ No Updates Available ]
+When update available we will notify you
+
-
+
- MySQL
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ like
+
Some
+
Donates?
+ Help us by funding so you can have your crypto mining career made easy.
+
+
+
+
+
+ Mail address : w***@gmail.com
+ +
+
+ BTC address : 1Dv39Z********tPp
+ +
+
Developer Team
+minerhouse.lk
+
+
+ Wenuja Kodithuwakku
+wenujasl@gmail.com
+Vihanga Nimsara
+vihanga2003nimsara@gmail.com
+upcoming update
upcoming update
upcoming update
upcoming update
- MinerHouse.lk
+ POOL
+
- #
- this is specially design for management
- manage your all mining rig in on place
-
-
+
+
+
loading plugins
- ver .0145e
+
@@ -35,14 +35,4 @@
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ 1
+ 2
+ 3
+
+
+ Go to Setting Tab
+ +
+
- fill all feilds and save it
+
-
+
-
+
-
+
+
+
+
+
+
+
+