diff --git a/index.html b/index.html index cb72016..d99a638 100644 --- a/index.html +++ b/index.html @@ -102,35 +102,26 @@ WHILE - - + - - - 番号 - - - + + 番号 + 1 - + 10 - + 1 - - - - 項目 - - + + 項目 BREAK @@ -352,7 +343,7 @@ 1 - _pi.PULL_DOWN + PULL_DOWN 6 diff --git a/index.js b/index.js index 2f3b73d..68c9352 100644 --- a/index.js +++ b/index.js @@ -76,6 +76,10 @@ var theme = Blockly.Theme.defineTheme('ocoge', { // Customize messages Blockly.Msg["CONTROLS_IF_MSG_THEN"] = "ならば"; Blockly.Msg["CONTROLS_REPEAT_INPUT_DO"] = ""; +Blockly.Msg["CONTROLS_FOR_TITLE"] = "%1 を %2 から %3 まで %4 ずつ増やし(減らし)て"; +Blockly.Msg["CONTROLS_FOR_TOOLTIP"] = "インデックス番号を決められた数ずつ増やし(減らし)ながら、ステートメントを実行します。"; +Blockly.Msg["CONTROLS_FOREACH_TITLE"] = "リスト%2の各%1について"; +Blockly.Msg["CONTROLS_FOREACH_TOOLTIP"] = "リストの各項目について、その項目を変数「項目」としてステートメントを実行します。"; Blockly.Msg["MATH_CHANGE_TITLE"] = "変数 %1 を %2 増やす"; Blockly.Msg["VARIABLES_SET"] = "変数 %1 を %2 にする"; // Blockly.Msg["TEXT_PRINT_TITLE"] = "ダイアログに %1 を表示"; @@ -313,22 +317,9 @@ const ugj_loadWorkspace = () => { } } -// // Python コードフォーマッタ YAPF をコール -// const ugj_pyBeautify = (code) => { -// let formatted; -// formatted = window.ocogeapi.child_process.spawnSync('python3', ['-m', 'yapf'], { input: code }).stdout.toString(); -// return formatted; -// } // Python コードフォーマッタ Black をコール const ugj_pyBeautify = (code) => { let formatted = ''; - // // formatted = window.ocogeapi.child_process.spawnSync('python3', ['-m', 'black', '-'], { input: code }).stdout.toString(); - // try { - // formatted = require('child_process').spawnSync('python3', ['-m', 'black', '-'], { input: code }).stdout.toString(); - // } catch (e) { - // formatted = code; - // console.log('Python formatter "Black" is not found.'); - // } formatted = require('child_process').spawnSync('python3', ['-m', 'black', '-'], { input: code }).stdout.toString(); if (!formatted) formatted = code; return formatted; @@ -349,7 +340,6 @@ const ugj_createCode = (args) => { window.alert('Python 非対応のブロックが使用されています。\n' + e.message); code = ''; } - // code = Blockly.Python.workspaceToCode(workspace); } else { // Javascript コード出力 code = Blockly.JavaScript.workspaceToCode(workspace); @@ -380,44 +370,6 @@ const ugj_createCode = (args) => { } // ブロックスクリプト実行 -// var is_running = false; -// var worker; -// const ugj_runCode = async () => { -// const { -// Worker, -// isMainThread, -// setEnvironmentData, -// getEnvironmentData, -// } = require('worker_threads'); -// const stop_icon = ` 停止`; -// const run_icon = ` 実行`; -// document.activeElement.blur(); //実行ボタンからフォーカスを外す:エンターキー押下が悪さをするため - -// let btnel = document.getElementById('runbtn'); -// if (is_running) { -// worker.terminate(); -// } else { -// if (isMainThread) { -// btnel.innerHTML = stop_icon; -// let code = ugj_createCode({}); -// setEnvironmentData('code', code); -// worker = new Worker(__filename); -// // worker.on('exit', (excode) => { -// // btnel.innerHTML = run_icon; -// // }); -// // } else { -// // let AsyncFunction = Object.getPrototypeOf(async function () { }).constructor; -// // let ocogeFunc = new AsyncFunction(getEnvironmentData('code')); -// // await ocogeFunc().catch(e => { console.error(e); }); -// } -// } - -// is_running = !is_running; -// if (is_running) btnel.innerHTML = stop_icon; -// else btnel.innerHTML = run_icon; - - -// } const ugj_runCode = async () => { if (elutil.lang == 'js') { document.activeElement.blur(); //実行ボタンからフォーカスを外す:エンターキー押下が悪さをするため @@ -445,8 +397,8 @@ const ugj_spawnPyboard = (code, mode) => { p.stderr.on('data', d => { console.error(d.toString()) }); p.stdout.on('data', d => { console.log(d.toString()) }); p.on('close', c => { - if (c == 0) console.log(`正常終了`); - else window.alert(`エラーが発生しました。詳しくはコンソールを参照してください。`); + if (c == 0) console.log(`コード実行 OK`); + else _fukidashi(`実行時エラーが発生しました。詳しくはコンソールを参照してください。`, 5); }); } @@ -454,13 +406,11 @@ const ugj_spawnPyboard = (code, mode) => { // エレメントのオブジェクトとかコールバックとか Python対応とか // 色々この中で完結させてみる const ugj_showCode = () => { - // var ext = 'js'; var ext = elutil.lang; const dialog = document.getElementById('codeDlg'); const content = document.getElementById('dlgContent'); const btn_close = document.getElementById('dlgClose'); const btn_export = document.getElementById('dlgExport'); - // const chkbox_cli = document.getElementById('dlgCli'); const dialog_title = document.getElementById('dlgTitle'); @@ -484,7 +434,6 @@ const ugj_showCode = () => { const export_cb = () => { if (ext == 'js') { let code = ugj_createCode({ 'ext': ext, 'async': true, 'beautify': true }); - // if (elutil.saveFile(code, ext) === false) window.alert('保存できませんでした。'); save_to_file(code); } else { let code = ugj_createCode({ 'ext': 'py', 'beautify': true }); @@ -493,23 +442,18 @@ const ugj_showCode = () => { close_cb(); } const keyev_cb = ev => { - if (ev.key == 'c' && ext == 'js') { - // CLI モード - // blackboardWrite()とwindow.alert()、fukidashi()をconsole.log()に書き換え、 - // document... と ugj_... と elutil... をコメントアウト(ブラウザ関連部分の追放という意味では不完全なので注意) - // あと正規表現もいい加減 + if (ev.key == 's' && ev.ctrlKey) { let code = ugj_createCode({ 'ext': ext, 'async': true, 'beautify': true }); - code = code.replace(/const appendDiv[^#]*\/\/#/gm, 'const blackboardWrite = text => console.log(text);').replace('window.alert', 'console.log').replace(/_fukidashi(.*), \d+(\);)/gm, 'console.log$1$2').replace(/(^(?=.*document.)[^;]*;)/gm, '/* $1 */').replace(/(^(?=.*ugj_)[^;]*;)/gm, '/* $1 */').replace(/(^(?=.*elutil.)[^;]*;)/gm, '/* $1 */'); - // if (elutil.saveFile(code, ext) === false) window.alert('保存できませんでした。'); - save_to_file(code); - close_cb(); - } else if (ev.key == 'f' && ext == 'py') { - let code = ugj_createCode({ 'ext': ext, 'beautify': true }); - // if (elutil.saveFile(code, ext) === false) window.alert('保存できませんでした。'); + if (ext == 'js') { + // JS-CLI モード + // blackboardWrite()とwindow.alert()、fukidashi()をconsole.log()に書き換え、 + // document... と ugj_... と elutil... をコメントアウト(ブラウザ関連部分の追放という意味では不完全なので注意) + // あと正規表現もいい加減 + code = code.replace(/const appendDiv[^#]*\/\/#/gm, 'const blackboardWrite = text => console.log(text);').replace('window.alert', 'console.log').replace(/_fukidashi(.*), \d+(\);)/gm, 'console.log$1$2').replace(/(^(?=.*document.)[^;]*;)/gm, '/* $1 */').replace(/(^(?=.*ugj_)[^;]*;)/gm, '/* $1 */').replace(/(^(?=.*elutil.)[^;]*;)/gm, '/* $1 */'); + } save_to_file(code); close_cb(); } - } btn_close.addEventListener('click', close_cb); btn_export.addEventListener('click', export_cb); diff --git a/index_elutil.js b/index_elutil.js index 63a63a3..8669092 100644 --- a/index_elutil.js +++ b/index_elutil.js @@ -229,7 +229,7 @@ class elUtil { filter = { name: 'text file', extensions: ['txt'] }; } let filename = await this.ipcRenderer.invoke('save_dialog', title, defName, filter); - this.doc_current = this.path.dirname(filename); + if (filename) this.doc_current = this.path.dirname(filename); return filename; } // ファイル書き込み diff --git a/lib/pybfm.py b/lib/pybfm.py index f1c329f..1719a17 100644 --- a/lib/pybfm.py +++ b/lib/pybfm.py @@ -7,7 +7,16 @@ import os import sys import pyboard import serial.tools.list_ports -from tkinter import messagebox +from tkinter import filedialog + +##### 引数 ##### +args = sys.argv +try: + dev = args[1] +except IndexError as err: + dev = False +else: + dev = (dev=='-f') ##### グローバル変数 ##### gport = None @@ -16,118 +25,168 @@ gport = None # リストボックスにドロップ def listbox_drop(event): files = listbox.tk.splitlist(event.data) - for f in files: - if os.path.exists(f): - print('Dropped file: "%s"' % f) - if os.path.isfile(f): - putfile(f) - filelist() - else: - messagebox.showwarning('Warning', 'フォルダは転送できません') - else: - print('Not dropping file "%s": file does not exist.' % f) - + putfiles(files) +# キーボード def input_key(ev): - # print(ev) if ev.keysym == 'F5': - filelist() + reload() elif ev.keysym == 'Delete': - selected = listbox.curselection() - for i in selected: - src = listbox.get(i) - call_pybfunc('fs_rm', src) - print('Deleted %s' % src) - if len(selected): - filelist() - -def on_closing(errmsg=''): - if errmsg: - messagebox.showerror('Error', errmsg) - root.destroy() - sys.exit(0) + rmfiles() +# ダブルクリック +def dbl_click(ev): + run() +# 右クリックメニュー +def pop_menu(ev): + listbox.select_clear(0, END) + listbox.select_set(listbox.nearest(ev.y)) + pmenu.post(ev.x_root, ev.y_root) ##### pyboard関数 ##### - +# 接続・repl開始 def connect(): global gport try: pyb = pyboard.Pyboard(gport) - pyb.enter_raw_repl() - return pyb - except: - on_closing('デバイスに接続できません') - + except pyboard.PyboardError as err: + gport = None + listbox.delete(0, END) + set_title('Lost device : Please reload') + raise pyboard.PyboardError('Lost device') + pyb.enter_raw_repl(False) + return pyb +# repl終了・切断 def disconnect(pyb): try: pyb.exit_raw_repl() - pyb.close() - except: - on_closing('切断に失敗しました') - - -# コマンド実行 -def exec_command(cmd): - pyb = connect() + except Exception as err: + pass try: - retval = pyb.exec_(cmd) - except: - on_closing('コマンド実行時にエラーが発生しました') - disconnect(pyb) - return retval.decode('utf-8') - -# pyboard.py の関数をコール -def call_pybfunc(funcname, *args): + pyb.close() + except Exception as err: + pass +# ファイル送信 (複数可)(files: list of local filepath) +def putfiles(files): pyb = connect() - if funcname=='fs_put': - pyb.fs_put(args[0], args[1]) - elif funcname=='fs_rm': - pyb.fs_rm(args[0]) - + for src in files: + if os.path.exists(src): + if os.path.isfile(src): + dest = os.path.basename(src) + print('ファイル "%s" を転送' % src) + pyb.fs_put(src, dest) + else: + print('フォルダは転送できません : %s' % src) + else: + print('ファイル "%s" は見つかりません。' % f) + ls(pyb) disconnect(pyb) - -def initialize(): +# ポートスキャン:アルファベット順で一番若いポートを返す +def find_device(): global gport for p in sorted(serial.tools.list_ports.comports()): if p.hwid.startswith('USB'): gport = p.device set_title(gport) - filelist() break else: - on_closing('デバイスがみつかりません') - -def list_clear(): - listbox.delete(0, END) - -def filelist(): - list_clear() - files = ls() - for f in files: - listbox.insert(END, f) - -def ls(src='/'): + gport = None + set_title('No device') + raise OSError('Device not found') +# 再読込:ここのみデバイスの再スキャンが入る +def reload(): + if not gport: + find_device() + if gport: + listfiles() +# ファイルリスト取得だけを行う +def listfiles(): + pyb = connect() + ls(pyb) + disconnect(pyb) +# ファイルリストを取得し、リストボックスに表示 (pyb: pyboard handle, src: target directory on device) +def ls(pyb, src='/'): cmd = ( "import uos\nfor f in uos.listdir(%s):\n" " print(f)" % (("'%s'" % src) if src else "") ) - retval = exec_command(cmd) - return retval.splitlines() - -def putfile(src): - dest = os.path.basename(src) - call_pybfunc('fs_put', src, dest) - + retval = pyb.exec(cmd) + files = retval.decode('utf-8').splitlines() + listbox.delete(0, END) + for f in files: + listbox.insert(END, f) +# ウィンドウタイトル (title: string) def set_title(title): root.title('PyBfm - ' + title) +# デバイス上のファイルを実行 +def run(follow=False): + selected = listbox.curselection() + if len(selected): + src = listbox.get(selected[0]) + ext = os.path.splitext(src)[1] + if ext == '.py': + cmd = 'exec(open("%s").read())' % src + pyb = connect() + try: + if follow: + print (pyb.exec(cmd).decode('utf-8')) + else: + pyb.exec_raw_no_follow(cmd) + except Exception as err: + print("Runtime error.") + print('Done.') + disconnect(pyb) + else: + print('このファイルは実行できません') +# ファイル選択ダイアログからファイル送信 +def putdlg(): + fpath = filedialog.askopenfilename() + if fpath: + putfiles([fpath]) +# ファイル受信 +def getfile(): + selected = listbox.curselection() + if len(selected): + src = listbox.get(selected[0]) + ext = os.path.splitext(src)[1] + dest = filedialog.asksaveasfilename( + initialfile=src, + defaultextension=ext, + filetypes=[('変更なし', ext), ('全てのファイル', '.*')] + ) + if dest: + pyb = connect() + pyb.fs_get(src, dest) + disconnect(pyb) +# デバイス上のファイル削除(複数可) +def rmfiles(): + selected = listbox.curselection() + if len(selected): + pyb = connect() + for i in selected: + src = listbox.get(i) + pyb.fs_rm(src) + print('Deleted %s' % src) + ls(pyb) + disconnect(pyb) +# 何もしない関数 +def do_nothing(): + pass ##### メイン ##### # メインウィンドウの生成 root = TkinterDnD.Tk() -root.protocol("WM_DELETE_WINDOW", on_closing) root.title('PyBfm') root.geometry('400x300') +pmenu = Menu(root, tearoff=0) +pmenu.add_command(label="実行", command=run) +if dev: + pmenu.add_command(label="実行 (追跡)", command=lambda:run(True)) +pmenu.add_command(label="送る", command=putdlg) +pmenu.add_command(label="取得", command=getfile) +pmenu.add_command(label="削除", command=rmfiles) +pmenu.add_command(label="再読込", command=reload) +pmenu.add_command(label="閉じる", command=do_nothing) # root.config(bg='#cccccc') # Frameウィジェットの生成 frame = Frame(root) @@ -136,6 +195,8 @@ listbox = Listbox(frame, selectmode=EXTENDED) listbox.drop_target_register(DND_FILES) listbox.dnd_bind('<>', listbox_drop) listbox.bind("", input_key) +listbox.bind("", dbl_click) +listbox.bind("", pop_menu) # スクロールバーの生成 scroll = Scrollbar(frame, orient=VERTICAL) listbox.configure(yscrollcommand=scroll.set) @@ -145,6 +206,11 @@ frame.pack(expand=True,fill=BOTH) listbox.pack(expand=True,fill=BOTH, side=LEFT) scroll.pack(side=RIGHT, fill=Y) -initialize() +try: + find_device() +except Exception as err: + pass +else: + listfiles() root.mainloop() \ No newline at end of file diff --git a/lib/pybtool.py b/lib/pybtool.py index ab62826..0498a5d 100644 --- a/lib/pybtool.py +++ b/lib/pybtool.py @@ -26,7 +26,7 @@ pyb.enter_raw_repl() if mode == 'r': print('Run code', flush=True) - pyb.exec(src) + pyb.exec_raw_no_follow(src) elif mode == 'd': print('Deploy code', flush=True) pyb.exec("f=open('%s','wb')\nw=f.write" % dest) @@ -43,3 +43,4 @@ elif mode == 'd': pyb.exec("f.close()") pyb.exit_raw_repl() +pyb.close() diff --git a/package-lock.json b/package-lock.json index 5905668..a359909 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,17 +13,17 @@ "@tensorflow-models/blazeface": "^0.0.7", "@tensorflow-models/knn-classifier": "^1.2.4", "@tensorflow-models/mobilenet": "^2.1.0", - "@tensorflow/tfjs": "^3.18.0", - "@tensorflow/tfjs-backend-wasm": "^3.18.0", + "@tensorflow/tfjs": "^3.19.0", + "@tensorflow/tfjs-backend-wasm": "^3.19.0", "axios": "^0.27.2", "node-abi": "^3.22.0", "nodemailer": "^6.7.7", "tensorset": "^1.2.9" }, "devDependencies": { - "@electron-forge/cli": "^6.0.0-beta.64", - "@electron-forge/maker-deb": "^6.0.0-beta.64", - "electron": "^19.0.8", + "@electron-forge/cli": "^6.0.0-beta.65", + "@electron-forge/maker-deb": "^6.0.0-beta.65", + "electron": "^19.0.9", "electron-rebuild": "^3.2.8" } }, @@ -74,9 +74,9 @@ } }, "node_modules/@electron-forge/async-ora": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.64.tgz", - "integrity": "sha512-27ACgh9VhM+ahqTNIFeCfKuSoZxM/8dQp99ZMAgMFzcniKkNCXLxsbGF/7esu++zarDqhSUOhf70Z2bffgjX2w==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.65.tgz", + "integrity": "sha512-CREk/7XQsg26q2l5s/oFG6GcomzKzWnpaeCKgRCWfdMleKvOubeDd/OA68LkzhLixMWYGbXCWLbHUhGTdGzcWA==", "dev": true, "dependencies": { "chalk": "^4.0.0", @@ -86,13 +86,13 @@ "pretty-ms": "^7.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/cli": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.64.tgz", - "integrity": "sha512-EvI2Ie2ywj5lKZC3CttwRbraLBq84Gh2iwkrge5Q/T4wqvundTT1CyxNLUuSx+lsw3kE8Atmwefl5G6rf+E7Mg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.65.tgz", + "integrity": "sha512-PQ6axjSVl5AIYf1g1+Qn1QHbVyjp+fpTRzwMJ9bMM91cA7of2d92c4IF96Q6T9Zvn4aeAsxx/fvDLikobptucQ==", "dev": true, "funding": [ { @@ -105,9 +105,9 @@ } ], "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/core": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/core": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", "@electron/get": "^1.9.0", "chalk": "^4.0.0", "commander": "^4.1.1", @@ -122,13 +122,13 @@ "electron-forge-vscode-win": "script/vscode.cmd" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/core": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.64.tgz", - "integrity": "sha512-FKms2M5+qMh7sfS9MTNUY9dHj7XRE8WJgKqwOQMYP7H4KPGlL2cRYkItmq5bNCu7sYbZOqgHruuDmAnap0B5Pw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.65.tgz", + "integrity": "sha512-3gkoHYzOsEGOEakIkldpCSKExUYhXnUwqPlyg+Na3WvI40NWqh8wjfb92t5FsOb3Wrf9SkV5/DrF51S9E+108w==", "dev": true, "funding": [ { @@ -141,21 +141,21 @@ } ], "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/installer-base": "6.0.0-beta.64", - "@electron-forge/installer-deb": "6.0.0-beta.64", - "@electron-forge/installer-dmg": "6.0.0-beta.64", - "@electron-forge/installer-exe": "6.0.0-beta.64", - "@electron-forge/installer-rpm": "6.0.0-beta.64", - "@electron-forge/installer-zip": "6.0.0-beta.64", - "@electron-forge/maker-base": "6.0.0-beta.64", - "@electron-forge/plugin-base": "6.0.0-beta.64", - "@electron-forge/publisher-base": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", - "@electron-forge/template-typescript": "6.0.0-beta.64", - "@electron-forge/template-typescript-webpack": "6.0.0-beta.64", - "@electron-forge/template-webpack": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/installer-base": "6.0.0-beta.65", + "@electron-forge/installer-deb": "6.0.0-beta.65", + "@electron-forge/installer-dmg": "6.0.0-beta.65", + "@electron-forge/installer-exe": "6.0.0-beta.65", + "@electron-forge/installer-rpm": "6.0.0-beta.65", + "@electron-forge/installer-zip": "6.0.0-beta.65", + "@electron-forge/maker-base": "6.0.0-beta.65", + "@electron-forge/plugin-base": "6.0.0-beta.65", + "@electron-forge/publisher-base": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", + "@electron-forge/template-typescript": "6.0.0-beta.65", + "@electron-forge/template-typescript-webpack": "6.0.0-beta.65", + "@electron-forge/template-webpack": "6.0.0-beta.65", "@electron/get": "^1.9.0", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", @@ -166,10 +166,11 @@ "filenamify": "^4.1.0", "find-up": "^5.0.0", "fs-extra": "^10.0.0", + "got": "^11.8.5", "lodash": "^4.17.20", "log-symbols": "^4.0.0", "node-fetch": "^2.6.7", - "nugget": "^2.0.1", + "progress": "^2.0.3", "resolve-package": "^1.0.1", "semver": "^7.2.1", "source-map-support": "^0.5.13", @@ -178,244 +179,420 @@ "yarn-or-npm": "^3.0.1" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" + } + }, + "node_modules/@electron-forge/core/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@electron-forge/core/node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron-forge/core/node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core/node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron-forge/core/node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron-forge/core/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron-forge/core/node_modules/got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/@electron-forge/core/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/@electron-forge/core/node_modules/keyv": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz", + "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==", + "dev": true, + "dependencies": { + "compress-brotli": "^1.3.8", + "json-buffer": "3.0.1" + } + }, + "node_modules/@electron-forge/core/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron-forge/core/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron-forge/core/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron-forge/core/node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@electron-forge/installer-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.64.tgz", - "integrity": "sha512-SDyVrVmXOD8iHv57gf5SmJQNmBKg1AdoZh4tQm3lSl39XcYwSScm8O54WDi8mV1Q+K8bk/Zsi7bX34XFeQFr6g==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.65.tgz", + "integrity": "sha512-4rhLKsaLP/w29iTEp/MI7lA/V/dh43BuJ/55N1KTRBONiOalUCu5So/rJBkpBxKOOCtwEZeXJy+rP35MuXekZQ==", "dev": true, "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64" + "@electron-forge/async-ora": "6.0.0-beta.65" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/installer-darwin": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.64.tgz", - "integrity": "sha512-dKHifmeQ++y/ZzxwT+QXWkFiP53j+ZCxel6VA6aj9PMhL2tE7jSeyqwqav+vU6RiFztlfMYBAUoXwBQlYMhnCg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.65.tgz", + "integrity": "sha512-K1d6ReXF4BXTzH3+tVhyb6Mu9uVn2vn3YbtE0KJ8ppXAwbWLRM2Z0njO0LxjVv2NLfmBtPm9msP2NDozIHDJVg==", "dev": true, "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/installer-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/installer-base": "6.0.0-beta.65", "fs-extra": "^10.0.0", "sudo-prompt": "^9.1.1" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/installer-deb": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.64.tgz", - "integrity": "sha512-WB0rIF7GjPf7b1py9GFQGVpWQVTjWS3gffLeQ6TlazHZhufJu68nCe+hiHYVmknQDGrpe6zgT/jedTckXOUqjw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.65.tgz", + "integrity": "sha512-3nxAQF36E0Af65pdXm95NL7tR1ZOJAHUAIIvDKAFbGSNSDVHuDLC6jGnEYJoSIpI7Acyd2+8IB7Cjy+TK75POg==", "dev": true, "dependencies": { - "@electron-forge/installer-linux": "6.0.0-beta.64" + "@electron-forge/installer-linux": "6.0.0-beta.65" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/installer-dmg": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.64.tgz", - "integrity": "sha512-HccPl7jkFR0I5xFMYZFuxOPmptF+j38WAV+Uev3K2iAgZD8bwdVojecswM2V85lvxkAKdAVVpU+317KWxGEoWQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.65.tgz", + "integrity": "sha512-bZT01W8kEcdSZ4V+z8/vJ7s71sOO5SsDwD/zTXBxTBFJKS436R3VWR0gBYkAOpm3spQrTE0o0ESEeRQzqmDisA==", "dev": true, "dependencies": { - "@electron-forge/installer-darwin": "6.0.0-beta.64", + "@electron-forge/installer-darwin": "6.0.0-beta.65", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/installer-exe": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.64.tgz", - "integrity": "sha512-6EWXEmodkYuz2Nc9VouhRI4tqqwMaLz/Z86OM8f6fJHPE7iFDR7EvQE0lHfan8D/zoBRRIxOLofu+u6AT+wlPg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.65.tgz", + "integrity": "sha512-8+9F6KP6MTr/s1Vsn7GhAqtzLsDZgL1MXmn30rVbHXyQLtN8QNDzUa0j35EQ3xq9tG2H4kNdpTw6TS4dZs088Q==", "dev": true, "dependencies": { - "@electron-forge/installer-base": "6.0.0-beta.64", + "@electron-forge/installer-base": "6.0.0-beta.65", "open": "^8.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/installer-linux": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.64.tgz", - "integrity": "sha512-CKToVN9TuYF/nhfXyTn3hYYD6BrG3T0e+lcxqwHOm7OJ98b08f5ZzvdktHv4brIaD9mUgSHnQ5z4YdguFRvo/Q==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.65.tgz", + "integrity": "sha512-+IASLZEoxUxFgb9MKLOhzgw8Z+pXvON1hwDaIUll/ekDxzrafCgJHGabEPqFX3qVZX+UmYEtYBUtQ9cs0XqBPQ==", "dev": true, "dependencies": { - "@electron-forge/installer-base": "6.0.0-beta.64", + "@electron-forge/installer-base": "6.0.0-beta.65", "sudo-prompt": "^9.1.1" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/installer-rpm": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.64.tgz", - "integrity": "sha512-0w0Q8MbNefjDGVaGMlk1OPMWYe+Ct/XiOXaWX3jF+fgkaKUzXbkN91gBhIKXBkLlxWqQI+5BlLTh+CjRyBZV5g==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.65.tgz", + "integrity": "sha512-t+X+HTwncRPE3CEpXIzITQjCB1atlxZmHMpaFG81dsIJG2KyL66qXP4b97W9/pATQ1qvYmp3uCg9dHMn/D2eug==", "dev": true, "dependencies": { - "@electron-forge/installer-linux": "6.0.0-beta.64" + "@electron-forge/installer-linux": "6.0.0-beta.65" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/installer-zip": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.64.tgz", - "integrity": "sha512-qA5+pe1c2znrKyTjcYZ+6yL56a31sQexH19ik+wigIor2d0nevGo6hZgNl0YOyOfrt/M8lyGTDksWFAGuNyxNQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.65.tgz", + "integrity": "sha512-NYO5hkODEOxePH/26/lpJzYW+KYyY10HlN8a9BEbVRkyweKlp8KxFMZ3M5TL8f+7EFUtV/pOWCL8hOM8WLK6Sw==", "dev": true, "dependencies": { - "@electron-forge/installer-darwin": "6.0.0-beta.64", + "@electron-forge/installer-darwin": "6.0.0-beta.65", "@malept/cross-spawn-promise": "^2.0.0", "fs-extra": "^10.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/maker-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.64.tgz", - "integrity": "sha512-jQbZgnsTpDK60KXhJWiDhmo7aHsBMnfZIpbr4w9QhjPPbQKUqcUo6Geg2OFbX+9HTGOz1jUC4jDbVPvR+zmzuQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.65.tgz", + "integrity": "sha512-EhDjppd/qdsIDAr6stjAi+OOmhxPidCswPb02Jte6+yh0Wjk5q5vaYS4B6tzlBkZKYvEAiGLYh4tQ/31dxpTHA==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "6.0.0-beta.64", + "@electron-forge/shared-types": "6.0.0-beta.65", "fs-extra": "^10.0.0", "which": "^2.0.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/maker-deb": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.64.tgz", - "integrity": "sha512-6dDcJ5xoiDMPPVnNzIl3M7St31hZtIvplVtJ8P9A01DDEPrA8gsQbWMgQDHg8EgbbvMlErqbGqiWSybzoqlBrw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.65.tgz", + "integrity": "sha512-hnFPb5QAN1TATzp8AIXmJneHGnYwcFUWT4nNOhsjEwj9klWLETk6BL2Yi3FWqv8hgSDnN8TqQYLsuK6pEX+8bw==", "dev": true, "dependencies": { - "@electron-forge/maker-base": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64" + "@electron-forge/maker-base": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" }, "optionalDependencies": { "electron-installer-debian": "^3.0.0" } }, "node_modules/@electron-forge/plugin-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.64.tgz", - "integrity": "sha512-398mJ50B61BwiwehKrRQfRoB/A2+Nd/SzHYzuQxio4gIWOg5aJXCi6kZGGpRNpQ+UYx+v7rP/WxWQedA7U/Urw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.65.tgz", + "integrity": "sha512-R46e1LiJVUKR3rXZxghBrOI6vVzoF1NNNr0hexroBCqE8fsP3WdbAvIR3TCpBDbLlknzvlEiNcHNDUgyMfce4A==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "6.0.0-beta.64" + "@electron-forge/shared-types": "6.0.0-beta.65" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/publisher-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.64.tgz", - "integrity": "sha512-OIEThucgKKUmXIF8Gb7xAPl0Hlpsnf37e1DsvpRC3gP3kClPFwitx2u5PNCIg1HwQ75UoViGeFcwjjs9VZPkIg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.65.tgz", + "integrity": "sha512-tXIKS8/kK+Bh18BVdVeT6QaR/EJrlWQnOPVZrT0/CjfqEBMfuf5zYiwcqgakbV2WOFvH2oljprmduyqFvnrwow==", "dev": true, "dependencies": { - "@electron-forge/shared-types": "6.0.0-beta.64" + "@electron-forge/shared-types": "6.0.0-beta.65" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/shared-types": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.64.tgz", - "integrity": "sha512-E+uIpZsKPku4QHWzBGNm5RkcOyLXn98qHvJevziKnUOfRSe2y66XFpHyu9FmBnEYYoyGDvBktV70yK6gsjdigQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.65.tgz", + "integrity": "sha512-ApxdJgz84l122rmjr8hxDSXIt6gePT54fMXUzxWPIJgPlMR2/dzvmVEWq13UmVD1q0jduQ2lXLNB37EuqsATOQ==", "dev": true, "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", "electron-packager": "^15.4.0", "electron-rebuild": "^3.2.6", "ora": "^5.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/template-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.64.tgz", - "integrity": "sha512-mdYHCk6H7L+hdSPnh6kdg6nBC7QnQZuySwi7z/Hv3APCfPZMLVLcVkWQNCYyl+5ysyhzjPGtdm7MSV8kJ5ZMtA==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.65.tgz", + "integrity": "sha512-7opxEC2C4WCv2/AtY1JwgdG4LWZTyIUtG+U/aEm2aspSobPTPVjqJX873sqNuC4Fa99d7qsW7YfjlXQaqwTOEA==", "dev": true, "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0", "username": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/template-typescript": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.64.tgz", - "integrity": "sha512-gu63ehKG4q92UQhDMAMt/e73moav1fLyKVNwQakcxrD/D2klprKXf2qa6lMBsxaZFnAZ5b249R6WZWmXnk6r6A==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.65.tgz", + "integrity": "sha512-P+LvcYu9zwT9cFm7uopZCrMKQDRyblDPkLg9y9jRCXbmjP1qybfpB5TsAdK2i0jF1b9iJI+lqdXSoZYDeBIlnA==", "dev": true, "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", "fs-extra": "^10.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/template-typescript-webpack": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.64.tgz", - "integrity": "sha512-oFLC88qXhFXvD1H9CthtMIPE2CKoXPNiR0LRDieL/vNvnRb0UKaqay/o3df2rJp31h5CEY63BrHC9nnQ8i+ZCw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.65.tgz", + "integrity": "sha512-3yx5ESBvRtd8QI2DopgSvz7pIiLzsrpsbzyuZP8dDUHI8uJxReS0WgjfBJ59wbzUfAcU8zho2216i06jtp4DoQ==", "dev": true, "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", "fs-extra": "^10.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron-forge/template-webpack": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.64.tgz", - "integrity": "sha512-hExHBXIoH7cRSW0f2jUjlKtEdkUqZEutr12GphB3MoMWWlef8SOZ9eDfpvJkEHbPJQmKNdkJjtboakK6DAucFg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.65.tgz", + "integrity": "sha512-yvDcs2JRc1218oi8mfhS0mNCbeUYuHkA8YD6Bh85syq3iGi6NDAg7+c/oCY9JOXDaiwoCu5ZiL0gd8QEhVoTSw==", "dev": true, "dependencies": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", "fs-extra": "^10.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.17.5" } }, "node_modules/@electron/get": { @@ -690,16 +867,16 @@ } }, "node_modules/@tensorflow/tfjs": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.18.0.tgz", - "integrity": "sha512-mOzz4jJdgIpqFS7EHndVuxrQnLUDVIKGyTqOPTYps89fZwcOFfTVxi4BHemDNQpqlVE8IaGh9UUxVXpjgPY5+Q==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.19.0.tgz", + "integrity": "sha512-fZF3HOON8jgKhFk06WIScIXf7j/gkl6cLbU1brFWutBhHlPSzxSWvdJR/TivCK7p+yMBunoyK50TjiwOrcoclA==", "dependencies": { - "@tensorflow/tfjs-backend-cpu": "3.18.0", - "@tensorflow/tfjs-backend-webgl": "3.18.0", - "@tensorflow/tfjs-converter": "3.18.0", - "@tensorflow/tfjs-core": "3.18.0", - "@tensorflow/tfjs-data": "3.18.0", - "@tensorflow/tfjs-layers": "3.18.0", + "@tensorflow/tfjs-backend-cpu": "3.19.0", + "@tensorflow/tfjs-backend-webgl": "3.19.0", + "@tensorflow/tfjs-converter": "3.19.0", + "@tensorflow/tfjs-core": "3.19.0", + "@tensorflow/tfjs-data": "3.19.0", + "@tensorflow/tfjs-layers": "3.19.0", "argparse": "^1.0.10", "chalk": "^4.1.0", "core-js": "3", @@ -711,96 +888,154 @@ } }, "node_modules/@tensorflow/tfjs-backend-cpu": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.18.0.tgz", - "integrity": "sha512-LcSqlylzGtpgngcMFIL3q9Q3eVaPRJ7ITZt7ivhzkCj4R5ZsnPa9qM3DCVihkQ77heAwSw4hPTo2jp5C4mJ4Cg==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.19.0.tgz", + "integrity": "sha512-02f+WkiL9gc9G7P8PwfsvuXREcAUdM/3uAL6fTle3xKEj7KOxX+E/mc3jxPY5UzjAsgHVBZrPJ2xi6AG16WPkQ==", "dependencies": { - "@types/seedrandom": "2.4.27", - "seedrandom": "2.4.3" + "@types/seedrandom": "^2.4.28", + "seedrandom": "^3.0.5" }, "engines": { "yarn": ">= 1.3.2" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.18.0" + "@tensorflow/tfjs-core": "3.19.0" } }, + "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/@types/seedrandom": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.30.tgz", + "integrity": "sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ==" + }, + "node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, "node_modules/@tensorflow/tfjs-backend-wasm": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.18.0.tgz", - "integrity": "sha512-LbMCSXYv4CUKiplNiqGvW9XKLCXfYribpQwuV2QMmfrNaDSa7pR19Y29ajoDCN7Tij9FmqWh4suajAVK6rE+7w==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.19.0.tgz", + "integrity": "sha512-qNvFi77BSvQiFxHFgWl6B3GJ8IbGVUn6jLfiHibqKI9dEmbVIN1dBiOJdbJT+lJZPlJv+vKyW9jgpVUM7QtfnQ==", "dependencies": { - "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@tensorflow/tfjs-backend-cpu": "3.19.0", "@types/emscripten": "~0.0.34" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.18.0" + "@tensorflow/tfjs-core": "3.19.0" } }, "node_modules/@tensorflow/tfjs-backend-webgl": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.18.0.tgz", - "integrity": "sha512-3NknSzS1oX2BEBOrpjPMZl823S12RgshQthmIbG6QADHb4bCJA8aM4UjWpw+3bNQnRKbRDQdFbuvj10Un79s2A==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.19.0.tgz", + "integrity": "sha512-2HTkAE21t3WQTt8P6iK80ni03AzC8UNZmbIB7/pBDYBbhDwZwe/C5fXrJWnP9m6u4hvCdMAJ3o+OP3NeaEL1pw==", "dependencies": { - "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@tensorflow/tfjs-backend-cpu": "3.19.0", "@types/offscreencanvas": "~2019.3.0", - "@types/seedrandom": "2.4.27", + "@types/seedrandom": "^2.4.28", "@types/webgl-ext": "0.0.30", "@types/webgl2": "0.0.6", - "seedrandom": "2.4.3" + "seedrandom": "^3.0.5" }, "engines": { "yarn": ">= 1.3.2" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.18.0" + "@tensorflow/tfjs-core": "3.19.0" } }, + "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/@types/seedrandom": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.30.tgz", + "integrity": "sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ==" + }, + "node_modules/@tensorflow/tfjs-backend-webgl/node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, "node_modules/@tensorflow/tfjs-converter": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.18.0.tgz", - "integrity": "sha512-hpChA+zVNQOVwRnCfqDb1WI9jbEAKA6DuEm4m75Zb3dIlE6VVooDmAaHBhlc++z2q2G1sBzF9A4Bv48SUpN6vA==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.19.0.tgz", + "integrity": "sha512-B69HQq9/orsM8pGJPjNp1cV+hIcc90mxcRIsQSYGovTUNEcftmz2Sh+mqXDWysKUk0gRfx5CX6eJk6NaE55Xow==", "peerDependencies": { - "@tensorflow/tfjs-core": "3.18.0" + "@tensorflow/tfjs-core": "3.19.0" } }, "node_modules/@tensorflow/tfjs-core": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.18.0.tgz", - "integrity": "sha512-gMxisZozqsr5sCKlphF/eVBLg91MjlBiN60tjX8hJAu0WlSn6Gi5k65GNIL+Pq6hrxpvImcfdCmTH/2XJVZ0Mg==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.19.0.tgz", + "integrity": "sha512-znJ+TOJ3NdNL5yjw8M7dn2jO96sokiH1wfFuD7gglCkbZ4SXlFpFj2xelNdRHHmeYanMhJzqeyOW9whUnNcBqw==", "dependencies": { "@types/long": "^4.0.1", "@types/offscreencanvas": "~2019.3.0", - "@types/seedrandom": "2.4.27", + "@types/seedrandom": "^2.4.28", "@types/webgl-ext": "0.0.30", - "@webgpu/types": "^0.1.16", + "@webgpu/types": "0.1.16", "long": "4.0.0", "node-fetch": "~2.6.1", - "seedrandom": "2.4.3" + "seedrandom": "^3.0.5" }, "engines": { "yarn": ">= 1.3.2" } }, + "node_modules/@tensorflow/tfjs-core/node_modules/@types/seedrandom": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.30.tgz", + "integrity": "sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ==" + }, + "node_modules/@tensorflow/tfjs-core/node_modules/seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + }, "node_modules/@tensorflow/tfjs-data": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.18.0.tgz", - "integrity": "sha512-s43vISJh8K/UN2E2zGRhtj/Kyn8dr4ll8EQkapwzm7fGO9afXCnMsTp6rkZq3fFXouCYA2k1B/j7JssIDr50+w==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.19.0.tgz", + "integrity": "sha512-rkZv+YZowZwnm4RaedkV44WDrjokRHld9Py/0Fb7IvMyUh37lY0WsAsV94kJ+QuLc6iVNcDLaV29K+dUz57bRA==", "dependencies": { "@types/node-fetch": "^2.1.2", - "node-fetch": "~2.6.1" + "node-fetch": "~2.6.1", + "string_decoder": "^1.3.0" }, "peerDependencies": { - "@tensorflow/tfjs-core": "3.18.0", - "seedrandom": "~2.4.3" + "@tensorflow/tfjs-core": "3.19.0", + "seedrandom": "^3.0.5" + } + }, + "node_modules/@tensorflow/tfjs-data/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/@tensorflow/tfjs-data/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" } }, "node_modules/@tensorflow/tfjs-layers": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.18.0.tgz", - "integrity": "sha512-AV7yDnPlH+RCcq8VPqkX1iyEchObE+e66m0XmJvLj+ncfKHYLa+39ZNroUA+OgB2/cMG6jgq77R4EhZbT6hwJA==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.19.0.tgz", + "integrity": "sha512-+sVWjWWyTuT3sImrtNLtMv8/4FS30GAYpTgyJKhCQ3+GSvHUXulxJfncD0QqOg9fTbhtuF1TRAkzDU8v64791g==", "peerDependencies": { - "@tensorflow/tfjs-core": "3.18.0" + "@tensorflow/tfjs-core": "3.19.0" } }, "node_modules/@tootallnate/once": { @@ -856,6 +1091,12 @@ "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", "dev": true }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", + "dev": true + }, "node_modules/@types/keyv": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", @@ -931,9 +1172,9 @@ } }, "node_modules/@webgpu/types": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.17.tgz", - "integrity": "sha512-M8INbXsMdkWtVsSHRPEiTXHe0S4gxMhYA/Kz4pNoUF9IXd3PHMi6/2n8EAsqkAEdna+aeCm2RmscWV0hsmIf0Q==" + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.16.tgz", + "integrity": "sha512-9E61voMP4+Rze02jlTXud++Htpjyyk8vw5Hyw9FGRrmhHQg2GqbuOfwf5Klrb8vTxc2XWI3EfO7RUHMpxTj26A==" }, "node_modules/abbrev": { "version": "1.1.1", @@ -980,22 +1221,6 @@ "node": ">=8" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -1104,24 +1329,6 @@ "node": ">= 6" } }, - "node_modules/asn1": { - "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, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -1145,21 +1352,6 @@ "node": ">=0.8" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, "node_modules/axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", @@ -1208,15 +1400,6 @@ } ] }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -1496,12 +1679,6 @@ "node": ">=8" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1608,15 +1785,6 @@ "mimic-response": "^1.0.0" } }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1680,6 +1848,25 @@ "node": ">=0.10.0" } }, + "node_modules/compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "dev": true, + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/compress-brotli/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1794,18 +1981,6 @@ "node": ">= 10" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -1966,20 +2141,10 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/electron": { - "version": "19.0.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.8.tgz", - "integrity": "sha512-OWK3P/NbDFfBUv+wbYv1/OV4jehY5DQPT7n1maQJfN9hsnrWTMktXS/bmS05eSUAjNAzHmKPKfiKH2c1Yr7nGw==", + "version": "19.0.9", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.9.tgz", + "integrity": "sha512-ooEwrv8Y7NSzdhKcl6kPCYecnzcg5nFWuS5ryG+VFH3MMBR8zXh9nW2wLsZrBz6OGUxXrcc5BKBC7dA8C6RhGQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2838,12 +3003,6 @@ "node": ">=0.10.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -2888,21 +3047,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -2919,12 +3063,6 @@ "node": ">=8.6.0" } }, - "node_modules/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 - }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -3081,15 +3219,6 @@ } } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -3289,15 +3418,6 @@ "node": ">=6" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -3456,29 +3576,6 @@ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -3543,21 +3640,6 @@ "node": ">= 6" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -3797,12 +3879,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -3860,41 +3936,18 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "dev": true, + "optional": true }, "node_modules/jsonfile": { "version": "6.1.0", @@ -3908,21 +3961,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/junk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", @@ -4542,57 +4580,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/nugget": { - "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, - "dependencies": { - "debug": "^2.1.3", - "minimist": "^1.1.0", - "pretty-bytes": "^4.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "bin": { - "nugget": "bin.js" - } - }, - "node_modules/nugget/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/nugget/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -4868,12 +4855,6 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -4961,13 +4942,13 @@ } }, "node_modules/plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", + "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", "dev": true, "dependencies": { "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7" + "xmlbuilder": "^15.1.1" }, "engines": { "node": ">=6" @@ -4982,15 +4963,6 @@ "node": ">=4" } }, - "node_modules/pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha512-yJAF+AjbHKlxQ8eezMd/34Mnj/YTQ3i6kLzvVsH4l/BfIFtp444n0wVbnsn66JimZ9uBofv815aRp1zCppxlWw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", @@ -5021,16 +4993,6 @@ "node": ">=0.4.0" } }, - "node_modules/progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha512-MIBPjZz6oGNSw5rn2mSp+nP9FGoaVo6QsPyPVEaD4puilz5hZNa3kfnrlqRNYFsugslbU3An4mnkLLtZOaWvrA==", - "dev": true, - "dependencies": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } - }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -5057,12 +5019,6 @@ "dev": true, "optional": true }, - "node_modules/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 - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -5073,24 +5029,6 @@ "once": "^1.3.1" } }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -5249,52 +5187,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -5581,62 +5473,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha512-awzaaIPtYFdexLr6TBpcZSGPB6D1RInNO/qNetgaJloPDF/D0GkVtLvGEp8InfmLV7CyLyQ5fIRP+tVN/JmWQA==", - "dev": true, - "dependencies": { - "string-width": "^1.0.1" - } - }, - "node_modules/single-line-log/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/single-line-log/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -5726,42 +5562,11 @@ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, - "node_modules/speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha512-phdEoDlA6EUIVtzwq1UiNMXDUogczp204aYF/yfOhjNePWFfIpBJ1k5wLMuXQhEOOMjuTJEcc4vdZa+vuP+n/Q==", - "dev": true - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", @@ -6019,52 +5824,12 @@ "resolved": "https://registry.npmjs.org/@types/webgl2/-/webgl2-0.0.5.tgz", "integrity": "sha512-oGaKsBbxQOY5+aJFV3KECDhGaXt+yZJt2y/OZsnQGLRkH6Fvr7rv4pCt3SRH1somIHfej/c4u7NSpCyd9x+1Ow==" }, - "node_modules/throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha512-HtlTFeyYs1elDM2txiIGsdXHaq8kffVaZH/QEBRbo95zQqzlsBx5ELKhkPOZVad9OK9oxzwx6UrQN8Vfh/+yag==", - "dev": true - }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "node_modules/through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha512-mLa8Bn2mZurjyomGKWRu3Bo2mvoQojFks9NvOK8H+k4kDJNkdEqG522KFZsEFBEl6rKkxTgFbE5+OPcgfvPEHA==", - "dev": true, - "dependencies": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, "node_modules/tiny-each-async": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", @@ -6128,19 +5893,6 @@ "node": ">=8.0" } }, - "node_modules/tough-cookie": { - "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, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -6174,24 +5926,6 @@ "node": ">=0.6.11 <=0.7.0 || >=0.7.3" } }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -6237,15 +5971,6 @@ "node": ">= 10.0.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -6277,16 +6002,6 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -6297,26 +6012,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -6404,32 +6099,14 @@ "dev": true }, "node_modules/xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=8.0" } }, - "node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xtend/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -6577,9 +6254,9 @@ }, "dependencies": { "@electron-forge/async-ora": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.64.tgz", - "integrity": "sha512-27ACgh9VhM+ahqTNIFeCfKuSoZxM/8dQp99ZMAgMFzcniKkNCXLxsbGF/7esu++zarDqhSUOhf70Z2bffgjX2w==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.65.tgz", + "integrity": "sha512-CREk/7XQsg26q2l5s/oFG6GcomzKzWnpaeCKgRCWfdMleKvOubeDd/OA68LkzhLixMWYGbXCWLbHUhGTdGzcWA==", "dev": true, "requires": { "chalk": "^4.0.0", @@ -6590,14 +6267,14 @@ } }, "@electron-forge/cli": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.64.tgz", - "integrity": "sha512-EvI2Ie2ywj5lKZC3CttwRbraLBq84Gh2iwkrge5Q/T4wqvundTT1CyxNLUuSx+lsw3kE8Atmwefl5G6rf+E7Mg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.65.tgz", + "integrity": "sha512-PQ6axjSVl5AIYf1g1+Qn1QHbVyjp+fpTRzwMJ9bMM91cA7of2d92c4IF96Q6T9Zvn4aeAsxx/fvDLikobptucQ==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/core": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/core": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", "@electron/get": "^1.9.0", "chalk": "^4.0.0", "commander": "^4.1.1", @@ -6608,26 +6285,26 @@ } }, "@electron-forge/core": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.64.tgz", - "integrity": "sha512-FKms2M5+qMh7sfS9MTNUY9dHj7XRE8WJgKqwOQMYP7H4KPGlL2cRYkItmq5bNCu7sYbZOqgHruuDmAnap0B5Pw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.65.tgz", + "integrity": "sha512-3gkoHYzOsEGOEakIkldpCSKExUYhXnUwqPlyg+Na3WvI40NWqh8wjfb92t5FsOb3Wrf9SkV5/DrF51S9E+108w==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/installer-base": "6.0.0-beta.64", - "@electron-forge/installer-deb": "6.0.0-beta.64", - "@electron-forge/installer-dmg": "6.0.0-beta.64", - "@electron-forge/installer-exe": "6.0.0-beta.64", - "@electron-forge/installer-rpm": "6.0.0-beta.64", - "@electron-forge/installer-zip": "6.0.0-beta.64", - "@electron-forge/maker-base": "6.0.0-beta.64", - "@electron-forge/plugin-base": "6.0.0-beta.64", - "@electron-forge/publisher-base": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", - "@electron-forge/template-typescript": "6.0.0-beta.64", - "@electron-forge/template-typescript-webpack": "6.0.0-beta.64", - "@electron-forge/template-webpack": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/installer-base": "6.0.0-beta.65", + "@electron-forge/installer-deb": "6.0.0-beta.65", + "@electron-forge/installer-dmg": "6.0.0-beta.65", + "@electron-forge/installer-exe": "6.0.0-beta.65", + "@electron-forge/installer-rpm": "6.0.0-beta.65", + "@electron-forge/installer-zip": "6.0.0-beta.65", + "@electron-forge/maker-base": "6.0.0-beta.65", + "@electron-forge/plugin-base": "6.0.0-beta.65", + "@electron-forge/publisher-base": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", + "@electron-forge/template-typescript": "6.0.0-beta.65", + "@electron-forge/template-typescript-webpack": "6.0.0-beta.65", + "@electron-forge/template-webpack": "6.0.0-beta.65", "@electron/get": "^1.9.0", "@malept/cross-spawn-promise": "^2.0.0", "chalk": "^4.0.0", @@ -6638,160 +6315,285 @@ "filenamify": "^4.1.0", "find-up": "^5.0.0", "fs-extra": "^10.0.0", + "got": "^11.8.5", "lodash": "^4.17.20", "log-symbols": "^4.0.0", "node-fetch": "^2.6.7", - "nugget": "^2.0.1", + "progress": "^2.0.3", "resolve-package": "^1.0.1", "semver": "^7.2.1", "source-map-support": "^0.5.13", "sudo-prompt": "^9.1.1", "username": "^5.1.0", "yarn-or-npm": "^3.0.1" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "requires": { + "mimic-response": "^3.1.0" + } + }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "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==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "keyv": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz", + "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==", + "dev": true, + "requires": { + "compress-brotli": "^1.3.8", + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } + } } }, "@electron-forge/installer-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.64.tgz", - "integrity": "sha512-SDyVrVmXOD8iHv57gf5SmJQNmBKg1AdoZh4tQm3lSl39XcYwSScm8O54WDi8mV1Q+K8bk/Zsi7bX34XFeQFr6g==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.65.tgz", + "integrity": "sha512-4rhLKsaLP/w29iTEp/MI7lA/V/dh43BuJ/55N1KTRBONiOalUCu5So/rJBkpBxKOOCtwEZeXJy+rP35MuXekZQ==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64" + "@electron-forge/async-ora": "6.0.0-beta.65" } }, "@electron-forge/installer-darwin": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.64.tgz", - "integrity": "sha512-dKHifmeQ++y/ZzxwT+QXWkFiP53j+ZCxel6VA6aj9PMhL2tE7jSeyqwqav+vU6RiFztlfMYBAUoXwBQlYMhnCg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.65.tgz", + "integrity": "sha512-K1d6ReXF4BXTzH3+tVhyb6Mu9uVn2vn3YbtE0KJ8ppXAwbWLRM2Z0njO0LxjVv2NLfmBtPm9msP2NDozIHDJVg==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/installer-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/installer-base": "6.0.0-beta.65", "fs-extra": "^10.0.0", "sudo-prompt": "^9.1.1" } }, "@electron-forge/installer-deb": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.64.tgz", - "integrity": "sha512-WB0rIF7GjPf7b1py9GFQGVpWQVTjWS3gffLeQ6TlazHZhufJu68nCe+hiHYVmknQDGrpe6zgT/jedTckXOUqjw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.65.tgz", + "integrity": "sha512-3nxAQF36E0Af65pdXm95NL7tR1ZOJAHUAIIvDKAFbGSNSDVHuDLC6jGnEYJoSIpI7Acyd2+8IB7Cjy+TK75POg==", "dev": true, "requires": { - "@electron-forge/installer-linux": "6.0.0-beta.64" + "@electron-forge/installer-linux": "6.0.0-beta.65" } }, "@electron-forge/installer-dmg": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.64.tgz", - "integrity": "sha512-HccPl7jkFR0I5xFMYZFuxOPmptF+j38WAV+Uev3K2iAgZD8bwdVojecswM2V85lvxkAKdAVVpU+317KWxGEoWQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.65.tgz", + "integrity": "sha512-bZT01W8kEcdSZ4V+z8/vJ7s71sOO5SsDwD/zTXBxTBFJKS436R3VWR0gBYkAOpm3spQrTE0o0ESEeRQzqmDisA==", "dev": true, "requires": { - "@electron-forge/installer-darwin": "6.0.0-beta.64", + "@electron-forge/installer-darwin": "6.0.0-beta.65", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0" } }, "@electron-forge/installer-exe": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.64.tgz", - "integrity": "sha512-6EWXEmodkYuz2Nc9VouhRI4tqqwMaLz/Z86OM8f6fJHPE7iFDR7EvQE0lHfan8D/zoBRRIxOLofu+u6AT+wlPg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.65.tgz", + "integrity": "sha512-8+9F6KP6MTr/s1Vsn7GhAqtzLsDZgL1MXmn30rVbHXyQLtN8QNDzUa0j35EQ3xq9tG2H4kNdpTw6TS4dZs088Q==", "dev": true, "requires": { - "@electron-forge/installer-base": "6.0.0-beta.64", + "@electron-forge/installer-base": "6.0.0-beta.65", "open": "^8.1.0" } }, "@electron-forge/installer-linux": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.64.tgz", - "integrity": "sha512-CKToVN9TuYF/nhfXyTn3hYYD6BrG3T0e+lcxqwHOm7OJ98b08f5ZzvdktHv4brIaD9mUgSHnQ5z4YdguFRvo/Q==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.65.tgz", + "integrity": "sha512-+IASLZEoxUxFgb9MKLOhzgw8Z+pXvON1hwDaIUll/ekDxzrafCgJHGabEPqFX3qVZX+UmYEtYBUtQ9cs0XqBPQ==", "dev": true, "requires": { - "@electron-forge/installer-base": "6.0.0-beta.64", + "@electron-forge/installer-base": "6.0.0-beta.65", "sudo-prompt": "^9.1.1" } }, "@electron-forge/installer-rpm": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.64.tgz", - "integrity": "sha512-0w0Q8MbNefjDGVaGMlk1OPMWYe+Ct/XiOXaWX3jF+fgkaKUzXbkN91gBhIKXBkLlxWqQI+5BlLTh+CjRyBZV5g==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.65.tgz", + "integrity": "sha512-t+X+HTwncRPE3CEpXIzITQjCB1atlxZmHMpaFG81dsIJG2KyL66qXP4b97W9/pATQ1qvYmp3uCg9dHMn/D2eug==", "dev": true, "requires": { - "@electron-forge/installer-linux": "6.0.0-beta.64" + "@electron-forge/installer-linux": "6.0.0-beta.65" } }, "@electron-forge/installer-zip": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.64.tgz", - "integrity": "sha512-qA5+pe1c2znrKyTjcYZ+6yL56a31sQexH19ik+wigIor2d0nevGo6hZgNl0YOyOfrt/M8lyGTDksWFAGuNyxNQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.65.tgz", + "integrity": "sha512-NYO5hkODEOxePH/26/lpJzYW+KYyY10HlN8a9BEbVRkyweKlp8KxFMZ3M5TL8f+7EFUtV/pOWCL8hOM8WLK6Sw==", "dev": true, "requires": { - "@electron-forge/installer-darwin": "6.0.0-beta.64", + "@electron-forge/installer-darwin": "6.0.0-beta.65", "@malept/cross-spawn-promise": "^2.0.0", "fs-extra": "^10.0.0" } }, "@electron-forge/maker-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.64.tgz", - "integrity": "sha512-jQbZgnsTpDK60KXhJWiDhmo7aHsBMnfZIpbr4w9QhjPPbQKUqcUo6Geg2OFbX+9HTGOz1jUC4jDbVPvR+zmzuQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.65.tgz", + "integrity": "sha512-EhDjppd/qdsIDAr6stjAi+OOmhxPidCswPb02Jte6+yh0Wjk5q5vaYS4B6tzlBkZKYvEAiGLYh4tQ/31dxpTHA==", "dev": true, "requires": { - "@electron-forge/shared-types": "6.0.0-beta.64", + "@electron-forge/shared-types": "6.0.0-beta.65", "fs-extra": "^10.0.0", "which": "^2.0.2" } }, "@electron-forge/maker-deb": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.64.tgz", - "integrity": "sha512-6dDcJ5xoiDMPPVnNzIl3M7St31hZtIvplVtJ8P9A01DDEPrA8gsQbWMgQDHg8EgbbvMlErqbGqiWSybzoqlBrw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-6.0.0-beta.65.tgz", + "integrity": "sha512-hnFPb5QAN1TATzp8AIXmJneHGnYwcFUWT4nNOhsjEwj9klWLETk6BL2Yi3FWqv8hgSDnN8TqQYLsuK6pEX+8bw==", "dev": true, "requires": { - "@electron-forge/maker-base": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", + "@electron-forge/maker-base": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", "electron-installer-debian": "^3.0.0" } }, "@electron-forge/plugin-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.64.tgz", - "integrity": "sha512-398mJ50B61BwiwehKrRQfRoB/A2+Nd/SzHYzuQxio4gIWOg5aJXCi6kZGGpRNpQ+UYx+v7rP/WxWQedA7U/Urw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.65.tgz", + "integrity": "sha512-R46e1LiJVUKR3rXZxghBrOI6vVzoF1NNNr0hexroBCqE8fsP3WdbAvIR3TCpBDbLlknzvlEiNcHNDUgyMfce4A==", "dev": true, "requires": { - "@electron-forge/shared-types": "6.0.0-beta.64" + "@electron-forge/shared-types": "6.0.0-beta.65" } }, "@electron-forge/publisher-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.64.tgz", - "integrity": "sha512-OIEThucgKKUmXIF8Gb7xAPl0Hlpsnf37e1DsvpRC3gP3kClPFwitx2u5PNCIg1HwQ75UoViGeFcwjjs9VZPkIg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.65.tgz", + "integrity": "sha512-tXIKS8/kK+Bh18BVdVeT6QaR/EJrlWQnOPVZrT0/CjfqEBMfuf5zYiwcqgakbV2WOFvH2oljprmduyqFvnrwow==", "dev": true, "requires": { - "@electron-forge/shared-types": "6.0.0-beta.64" + "@electron-forge/shared-types": "6.0.0-beta.65" } }, "@electron-forge/shared-types": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.64.tgz", - "integrity": "sha512-E+uIpZsKPku4QHWzBGNm5RkcOyLXn98qHvJevziKnUOfRSe2y66XFpHyu9FmBnEYYoyGDvBktV70yK6gsjdigQ==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.65.tgz", + "integrity": "sha512-ApxdJgz84l122rmjr8hxDSXIt6gePT54fMXUzxWPIJgPlMR2/dzvmVEWq13UmVD1q0jduQ2lXLNB37EuqsATOQ==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", "electron-packager": "^15.4.0", "electron-rebuild": "^3.2.6", "ora": "^5.0.0" } }, "@electron-forge/template-base": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.64.tgz", - "integrity": "sha512-mdYHCk6H7L+hdSPnh6kdg6nBC7QnQZuySwi7z/Hv3APCfPZMLVLcVkWQNCYyl+5ysyhzjPGtdm7MSV8kJ5ZMtA==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.65.tgz", + "integrity": "sha512-7opxEC2C4WCv2/AtY1JwgdG4LWZTyIUtG+U/aEm2aspSobPTPVjqJX873sqNuC4Fa99d7qsW7YfjlXQaqwTOEA==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", "@malept/cross-spawn-promise": "^2.0.0", "debug": "^4.3.1", "fs-extra": "^10.0.0", @@ -6799,38 +6601,38 @@ } }, "@electron-forge/template-typescript": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.64.tgz", - "integrity": "sha512-gu63ehKG4q92UQhDMAMt/e73moav1fLyKVNwQakcxrD/D2klprKXf2qa6lMBsxaZFnAZ5b249R6WZWmXnk6r6A==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.65.tgz", + "integrity": "sha512-P+LvcYu9zwT9cFm7uopZCrMKQDRyblDPkLg9y9jRCXbmjP1qybfpB5TsAdK2i0jF1b9iJI+lqdXSoZYDeBIlnA==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", "fs-extra": "^10.0.0" } }, "@electron-forge/template-typescript-webpack": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.64.tgz", - "integrity": "sha512-oFLC88qXhFXvD1H9CthtMIPE2CKoXPNiR0LRDieL/vNvnRb0UKaqay/o3df2rJp31h5CEY63BrHC9nnQ8i+ZCw==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.65.tgz", + "integrity": "sha512-3yx5ESBvRtd8QI2DopgSvz7pIiLzsrpsbzyuZP8dDUHI8uJxReS0WgjfBJ59wbzUfAcU8zho2216i06jtp4DoQ==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", "fs-extra": "^10.0.0" } }, "@electron-forge/template-webpack": { - "version": "6.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.64.tgz", - "integrity": "sha512-hExHBXIoH7cRSW0f2jUjlKtEdkUqZEutr12GphB3MoMWWlef8SOZ9eDfpvJkEHbPJQmKNdkJjtboakK6DAucFg==", + "version": "6.0.0-beta.65", + "resolved": "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.65.tgz", + "integrity": "sha512-yvDcs2JRc1218oi8mfhS0mNCbeUYuHkA8YD6Bh85syq3iGi6NDAg7+c/oCY9JOXDaiwoCu5ZiL0gd8QEhVoTSw==", "dev": true, "requires": { - "@electron-forge/async-ora": "6.0.0-beta.64", - "@electron-forge/shared-types": "6.0.0-beta.64", - "@electron-forge/template-base": "6.0.0-beta.64", + "@electron-forge/async-ora": "6.0.0-beta.65", + "@electron-forge/shared-types": "6.0.0-beta.65", + "@electron-forge/template-base": "6.0.0-beta.65", "fs-extra": "^10.0.0" } }, @@ -7037,16 +6839,16 @@ "integrity": "sha512-JjqT9ijHDFA2FEpUGWg7H2lQ0GrMuE2VmiCRBYmUew6b4JKht8LXDjG5HxZh95YH6c/25sZWTpGeHbquloH+hw==" }, "@tensorflow/tfjs": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.18.0.tgz", - "integrity": "sha512-mOzz4jJdgIpqFS7EHndVuxrQnLUDVIKGyTqOPTYps89fZwcOFfTVxi4BHemDNQpqlVE8IaGh9UUxVXpjgPY5+Q==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs/-/tfjs-3.19.0.tgz", + "integrity": "sha512-fZF3HOON8jgKhFk06WIScIXf7j/gkl6cLbU1brFWutBhHlPSzxSWvdJR/TivCK7p+yMBunoyK50TjiwOrcoclA==", "requires": { - "@tensorflow/tfjs-backend-cpu": "3.18.0", - "@tensorflow/tfjs-backend-webgl": "3.18.0", - "@tensorflow/tfjs-converter": "3.18.0", - "@tensorflow/tfjs-core": "3.18.0", - "@tensorflow/tfjs-data": "3.18.0", - "@tensorflow/tfjs-layers": "3.18.0", + "@tensorflow/tfjs-backend-cpu": "3.19.0", + "@tensorflow/tfjs-backend-webgl": "3.19.0", + "@tensorflow/tfjs-converter": "3.19.0", + "@tensorflow/tfjs-core": "3.19.0", + "@tensorflow/tfjs-data": "3.19.0", + "@tensorflow/tfjs-layers": "3.19.0", "argparse": "^1.0.10", "chalk": "^4.1.0", "core-js": "3", @@ -7055,69 +6857,121 @@ } }, "@tensorflow/tfjs-backend-cpu": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.18.0.tgz", - "integrity": "sha512-LcSqlylzGtpgngcMFIL3q9Q3eVaPRJ7ITZt7ivhzkCj4R5ZsnPa9qM3DCVihkQ77heAwSw4hPTo2jp5C4mJ4Cg==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.19.0.tgz", + "integrity": "sha512-02f+WkiL9gc9G7P8PwfsvuXREcAUdM/3uAL6fTle3xKEj7KOxX+E/mc3jxPY5UzjAsgHVBZrPJ2xi6AG16WPkQ==", "requires": { - "@types/seedrandom": "2.4.27", - "seedrandom": "2.4.3" + "@types/seedrandom": "^2.4.28", + "seedrandom": "^3.0.5" + }, + "dependencies": { + "@types/seedrandom": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.30.tgz", + "integrity": "sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ==" + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + } } }, "@tensorflow/tfjs-backend-wasm": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.18.0.tgz", - "integrity": "sha512-LbMCSXYv4CUKiplNiqGvW9XKLCXfYribpQwuV2QMmfrNaDSa7pR19Y29ajoDCN7Tij9FmqWh4suajAVK6rE+7w==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.19.0.tgz", + "integrity": "sha512-qNvFi77BSvQiFxHFgWl6B3GJ8IbGVUn6jLfiHibqKI9dEmbVIN1dBiOJdbJT+lJZPlJv+vKyW9jgpVUM7QtfnQ==", "requires": { - "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@tensorflow/tfjs-backend-cpu": "3.19.0", "@types/emscripten": "~0.0.34" } }, "@tensorflow/tfjs-backend-webgl": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.18.0.tgz", - "integrity": "sha512-3NknSzS1oX2BEBOrpjPMZl823S12RgshQthmIbG6QADHb4bCJA8aM4UjWpw+3bNQnRKbRDQdFbuvj10Un79s2A==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.19.0.tgz", + "integrity": "sha512-2HTkAE21t3WQTt8P6iK80ni03AzC8UNZmbIB7/pBDYBbhDwZwe/C5fXrJWnP9m6u4hvCdMAJ3o+OP3NeaEL1pw==", "requires": { - "@tensorflow/tfjs-backend-cpu": "3.18.0", + "@tensorflow/tfjs-backend-cpu": "3.19.0", "@types/offscreencanvas": "~2019.3.0", - "@types/seedrandom": "2.4.27", + "@types/seedrandom": "^2.4.28", "@types/webgl-ext": "0.0.30", "@types/webgl2": "0.0.6", - "seedrandom": "2.4.3" + "seedrandom": "^3.0.5" + }, + "dependencies": { + "@types/seedrandom": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.30.tgz", + "integrity": "sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ==" + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + } } }, "@tensorflow/tfjs-converter": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.18.0.tgz", - "integrity": "sha512-hpChA+zVNQOVwRnCfqDb1WI9jbEAKA6DuEm4m75Zb3dIlE6VVooDmAaHBhlc++z2q2G1sBzF9A4Bv48SUpN6vA==" + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-converter/-/tfjs-converter-3.19.0.tgz", + "integrity": "sha512-B69HQq9/orsM8pGJPjNp1cV+hIcc90mxcRIsQSYGovTUNEcftmz2Sh+mqXDWysKUk0gRfx5CX6eJk6NaE55Xow==" }, "@tensorflow/tfjs-core": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.18.0.tgz", - "integrity": "sha512-gMxisZozqsr5sCKlphF/eVBLg91MjlBiN60tjX8hJAu0WlSn6Gi5k65GNIL+Pq6hrxpvImcfdCmTH/2XJVZ0Mg==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-core/-/tfjs-core-3.19.0.tgz", + "integrity": "sha512-znJ+TOJ3NdNL5yjw8M7dn2jO96sokiH1wfFuD7gglCkbZ4SXlFpFj2xelNdRHHmeYanMhJzqeyOW9whUnNcBqw==", "requires": { "@types/long": "^4.0.1", "@types/offscreencanvas": "~2019.3.0", - "@types/seedrandom": "2.4.27", + "@types/seedrandom": "^2.4.28", "@types/webgl-ext": "0.0.30", - "@webgpu/types": "^0.1.16", + "@webgpu/types": "0.1.16", "long": "4.0.0", "node-fetch": "~2.6.1", - "seedrandom": "2.4.3" + "seedrandom": "^3.0.5" + }, + "dependencies": { + "@types/seedrandom": { + "version": "2.4.30", + "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-2.4.30.tgz", + "integrity": "sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ==" + }, + "seedrandom": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz", + "integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==" + } } }, "@tensorflow/tfjs-data": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.18.0.tgz", - "integrity": "sha512-s43vISJh8K/UN2E2zGRhtj/Kyn8dr4ll8EQkapwzm7fGO9afXCnMsTp6rkZq3fFXouCYA2k1B/j7JssIDr50+w==", + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-data/-/tfjs-data-3.19.0.tgz", + "integrity": "sha512-rkZv+YZowZwnm4RaedkV44WDrjokRHld9Py/0Fb7IvMyUh37lY0WsAsV94kJ+QuLc6iVNcDLaV29K+dUz57bRA==", "requires": { "@types/node-fetch": "^2.1.2", - "node-fetch": "~2.6.1" + "node-fetch": "~2.6.1", + "string_decoder": "^1.3.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + } } }, "@tensorflow/tfjs-layers": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.18.0.tgz", - "integrity": "sha512-AV7yDnPlH+RCcq8VPqkX1iyEchObE+e66m0XmJvLj+ncfKHYLa+39ZNroUA+OgB2/cMG6jgq77R4EhZbT6hwJA==" + "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@tensorflow/tfjs-layers/-/tfjs-layers-3.19.0.tgz", + "integrity": "sha512-+sVWjWWyTuT3sImrtNLtMv8/4FS30GAYpTgyJKhCQ3+GSvHUXulxJfncD0QqOg9fTbhtuF1TRAkzDU8v64791g==" }, "@tootallnate/once": { "version": "2.0.0", @@ -7169,6 +7023,12 @@ "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", "dev": true }, + "@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", + "dev": true + }, "@types/keyv": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.3.tgz", @@ -7244,9 +7104,9 @@ } }, "@webgpu/types": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.17.tgz", - "integrity": "sha512-M8INbXsMdkWtVsSHRPEiTXHe0S4gxMhYA/Kz4pNoUF9IXd3PHMi6/2n8EAsqkAEdna+aeCm2RmscWV0hsmIf0Q==" + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.16.tgz", + "integrity": "sha512-9E61voMP4+Rze02jlTXud++Htpjyyk8vw5Hyw9FGRrmhHQg2GqbuOfwf5Klrb8vTxc2XWI3EfO7RUHMpxTj26A==" }, "abbrev": { "version": "1.1.1", @@ -7284,18 +7144,6 @@ "indent-string": "^4.0.0" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", @@ -7376,21 +7224,6 @@ } } }, - "asn1": { - "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" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -7408,18 +7241,6 @@ "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, "axios": { "version": "0.27.2", "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", @@ -7453,15 +7274,6 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -7685,12 +7497,6 @@ } } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -7770,12 +7576,6 @@ "mimic-response": "^1.0.0" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", - "dev": true - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -7821,6 +7621,24 @@ "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", "dev": true }, + "compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "dev": true, + "requires": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "dependencies": { + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + } + } + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7900,15 +7718,6 @@ } } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -8033,20 +7842,10 @@ "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "electron": { - "version": "19.0.8", - "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.8.tgz", - "integrity": "sha512-OWK3P/NbDFfBUv+wbYv1/OV4jehY5DQPT7n1maQJfN9hsnrWTMktXS/bmS05eSUAjNAzHmKPKfiKH2c1Yr7nGw==", + "version": "19.0.9", + "resolved": "https://registry.npmjs.org/electron/-/electron-19.0.9.tgz", + "integrity": "sha512-ooEwrv8Y7NSzdhKcl6kPCYecnzcg5nFWuS5ryG+VFH3MMBR8zXh9nW2wLsZrBz6OGUxXrcc5BKBC7dA8C6RhGQ==", "dev": true, "requires": { "@electron/get": "^1.14.1", @@ -8698,12 +8497,6 @@ "homedir-polyfill": "^1.0.1" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -8744,18 +8537,6 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true - }, - "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 - }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -8769,12 +8550,6 @@ "micromatch": "^4.0.4" } }, - "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 - }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -8886,12 +8661,6 @@ "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": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true - }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -9068,15 +8837,6 @@ "pump": "^3.0.0" } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -9204,22 +8964,6 @@ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true - }, - "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" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -9272,17 +9016,6 @@ "debug": "4" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -9460,12 +9193,6 @@ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -9508,41 +9235,18 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "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 - }, "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 + "dev": true, + "optional": true }, "jsonfile": { "version": "6.1.0", @@ -9554,18 +9258,6 @@ "universalify": "^2.0.0" } }, - "jsprim": { - "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", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, "junk": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/junk/-/junk-3.1.0.tgz", @@ -10037,50 +9729,6 @@ "set-blocking": "^2.0.0" } }, - "nugget": { - "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": "^4.0.2", - "progress-stream": "^1.1.0", - "request": "^2.45.0", - "single-line-log": "^1.1.2", - "throttleit": "0.0.2" - }, - "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" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", - "dev": true - }, - "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-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -10274,12 +9922,6 @@ "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -10342,13 +9984,13 @@ } }, "plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", + "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", "dev": true, "requires": { "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7" + "xmlbuilder": "^15.1.1" } }, "prepend-http": { @@ -10357,12 +9999,6 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, - "pretty-bytes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", - "integrity": "sha512-yJAF+AjbHKlxQ8eezMd/34Mnj/YTQ3i6kLzvVsH4l/BfIFtp444n0wVbnsn66JimZ9uBofv815aRp1zCppxlWw==", - "dev": true - }, "pretty-ms": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.1.tgz", @@ -10384,16 +10020,6 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, - "progress-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/progress-stream/-/progress-stream-1.2.0.tgz", - "integrity": "sha512-MIBPjZz6oGNSw5rn2mSp+nP9FGoaVo6QsPyPVEaD4puilz5hZNa3kfnrlqRNYFsugslbU3An4mnkLLtZOaWvrA==", - "dev": true, - "requires": { - "speedometer": "~0.1.2", - "through2": "~0.2.3" - } - }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", @@ -10417,12 +10043,6 @@ "dev": true, "optional": true }, - "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 - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -10433,18 +10053,6 @@ "once": "^1.3.1" } }, - "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 - }, - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -10558,47 +10166,6 @@ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, - "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", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "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" - } - } - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10813,52 +10380,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "single-line-log": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz", - "integrity": "sha512-awzaaIPtYFdexLr6TBpcZSGPB6D1RInNO/qNetgaJloPDF/D0GkVtLvGEp8InfmLV7CyLyQ5fIRP+tVN/JmWQA==", - "dev": true, - "requires": { - "string-width": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, "smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -10934,34 +10455,11 @@ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, - "speedometer": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", - "integrity": "sha512-phdEoDlA6EUIVtzwq1UiNMXDUogczp204aYF/yfOhjNePWFfIpBJ1k5wLMuXQhEOOMjuTJEcc4vdZa+vuP+n/Q==", - "dev": true - }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, - "sshpk": { - "version": "1.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", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", @@ -11156,54 +10654,12 @@ } } }, - "throttleit": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", - "integrity": "sha512-HtlTFeyYs1elDM2txiIGsdXHaq8kffVaZH/QEBRbo95zQqzlsBx5ELKhkPOZVad9OK9oxzwx6UrQN8Vfh/+yag==", - "dev": true - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "through2": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz", - "integrity": "sha512-mLa8Bn2mZurjyomGKWRu3Bo2mvoQojFks9NvOK8H+k4kDJNkdEqG522KFZsEFBEl6rKkxTgFbE5+OPcgfvPEHA==", - "dev": true, - "requires": { - "readable-stream": "~1.1.9", - "xtend": "~2.1.1" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, "tiny-each-async": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz", @@ -11257,16 +10713,6 @@ "is-number": "^7.0.0" } }, - "tough-cookie": { - "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" - } - }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -11294,21 +10740,6 @@ "dev": true, "optional": true }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -11345,15 +10776,6 @@ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, - "uri-js": { - "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" - } - }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -11379,12 +10801,6 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -11395,25 +10811,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - } - } - }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -11486,28 +10883,11 @@ "dev": true }, "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", "dev": true }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - }, - "dependencies": { - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true - } - } - }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 323d284..13f3d12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ocoge", - "version": "0.1.7", + "version": "0.1.8", "description": "ブロックベースビジュアルプログラム開発・実行環境", "main": "main.js", "scripts": { @@ -22,9 +22,9 @@ }, "homepage": "https://git.ocoge.club/ocoge.club/ocoge#readme", "devDependencies": { - "@electron-forge/cli": "^6.0.0-beta.64", - "@electron-forge/maker-deb": "^6.0.0-beta.64", - "electron": "^19.0.8", + "@electron-forge/cli": "^6.0.0-beta.65", + "@electron-forge/maker-deb": "^6.0.0-beta.65", + "electron": "^19.0.9", "electron-rebuild": "^3.2.8" }, "dependencies": { @@ -32,8 +32,8 @@ "@tensorflow-models/blazeface": "^0.0.7", "@tensorflow-models/knn-classifier": "^1.2.4", "@tensorflow-models/mobilenet": "^2.1.0", - "@tensorflow/tfjs": "^3.18.0", - "@tensorflow/tfjs-backend-wasm": "^3.18.0", + "@tensorflow/tfjs": "^3.19.0", + "@tensorflow/tfjs-backend-wasm": "^3.19.0", "axios": "^0.27.2", "node-abi": "^3.22.0", "nodemailer": "^6.7.7", @@ -58,4 +58,4 @@ ] } } -} +} \ No newline at end of file diff --git a/ugj_blocks.js b/ugj_blocks.js index d98fdf4..a71f208 100644 --- a/ugj_blocks.js +++ b/ugj_blocks.js @@ -1,101 +1,3 @@ -/** Fix Basic Blocks ****************************************************************************************/ -Blockly.Blocks['ugj_control_for'] = { - init: function () { - this.appendValueInput("index") - .setCheck("Variable"); - this.appendValueInput("from") - .setCheck("Number") - .appendField("を"); - this.appendValueInput("to") - .setCheck("Number") - .appendField("から"); - this.appendValueInput("by") - .setCheck("Number") - .appendField("まで"); - this.appendDummyInput() - .appendField("ずつ") - .appendField(new Blockly.FieldDropdown([["増やして", "+"], ["減らして", "-"]]), "crease"); - this.appendStatementInput("do") - .setCheck(null); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip("インデックス番号を決められた数ずつ増やし(減らし)ながら、ステートメントを実行します。"); - this.setHelpUrl(""); - this.setStyle('loop_blocks'); - } -}; -Blockly.JavaScript['ugj_control_for'] = function (block) { - var value_index = Blockly.JavaScript.valueToCode(block, 'index', Blockly.JavaScript.ORDER_ATOMIC); - // var variable_index = Blockly.JavaScript.nameDB_.getName(block.getFieldValue('index'), Blockly.Variables.NAME_TYPE); - var value_from = Blockly.JavaScript.valueToCode(block, 'from', Blockly.JavaScript.ORDER_ATOMIC); - var value_to = Blockly.JavaScript.valueToCode(block, 'to', Blockly.JavaScript.ORDER_ATOMIC); - var value_by = Blockly.JavaScript.valueToCode(block, 'by', Blockly.JavaScript.ORDER_ATOMIC); - var dropdown_crease = block.getFieldValue('crease'); - var statements_do = Blockly.JavaScript.statementToCode(block, 'do'); - let daishou; - if (dropdown_crease == '+') { daishou = '<'; } - else { daishou = '>'; } - var code = [ - `for (${value_index} = ${value_from}; ${value_index} ${daishou}= ${value_to}; ${value_index} ${dropdown_crease}= ${Math.abs(value_by)}) {`, - statements_do, - `}`, - '' - ].join('\n'); - return code; -}; -Blockly.Python['ugj_control_for'] = function (block) { - var variable_index = Blockly.Python.nameDB_.getName(block.getFieldValue('index'), Blockly.Variables.NAME_TYPE); - var value_from = Blockly.Python.valueToCode(block, 'from', Blockly.Python.ORDER_ATOMIC); - var value_to = Blockly.Python.valueToCode(block, 'to', Blockly.Python.ORDER_ATOMIC); - var value_by = Blockly.Python.valueToCode(block, 'by', Blockly.Python.ORDER_ATOMIC); - var dropdown_crease = block.getFieldValue('crease'); - var statements_do = Blockly.Python.statementToCode(block, 'do'); - if (statements_do === '') statements_do = ' pass'; - if (dropdown_crease == '+') { value_by = Math.abs(value_by); value_to++; } - else { value_by = Math.abs(value_by) * (-1); value_to--; } - var code = [ - `for ${variable_index} in range(${value_from}, ${value_to}, ${value_by}) :`, - statements_do, - '' - ].join('\n'); - return code; -}; - -Blockly.Blocks['ugj_controls_foreach'] = { - init: function () { - this.appendValueInput("list") - .setCheck("Array") - .appendField("リスト"); - this.appendValueInput("item") - .setCheck("Variable") - .appendField("の各"); - this.appendDummyInput() - .appendField("について"); - this.appendStatementInput("do") - .setCheck(null); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip("リストの各項目について、その項目の内容を変数「項目」に代入してステートメントを実行します。"); - this.setHelpUrl(""); - this.setStyle('loop_blocks'); - } -}; -Blockly.JavaScript['ugj_controls_foreach'] = function (block) { - var value_list = Blockly.JavaScript.valueToCode(block, 'list', Blockly.JavaScript.ORDER_ATOMIC); - var value_item = Blockly.JavaScript.valueToCode(block, 'item', Blockly.JavaScript.ORDER_ATOMIC); - var statements_do = Blockly.JavaScript.statementToCode(block, 'do'); - var code = [ - `for (let _index in ${value_list}) {`, - `${value_item} = ${value_list}[_index];`, - statements_do, - `}`, - '' - ].join('\n'); - return code; -}; - // Custom Color Picker Blockly.FieldColour.COLOURS = [ '#ffffff', '#808000', '#ffff00', '#ff00ff', '#ff4500', @@ -193,6 +95,11 @@ Blockly.JavaScript['ugj_bintodec'] = function (block) { var code = `parseInt (${value_bin}, 2)`; return [code, Blockly.JavaScript.ORDER_NONE]; }; +Blockly.Python['ugj_bintodec'] = function (block) { + var value_bin = Blockly.Python.valueToCode(block, 'bin', Blockly.Python.ORDER_ATOMIC); + var code = `int(${value_bin}, 2)`; + return [code, Blockly.Python.ORDER_NONE]; +}; var ugjHextodecDefinition = { "type": "ugj_hextodec", @@ -254,7 +161,7 @@ Blockly.JavaScript['ugj_dectohex'] = function (block) { }; Blockly.Python['ugj_dectohex'] = function (block) { var value_dec = Blockly.Python.valueToCode(block, 'dec', Blockly.Python.ORDER_ATOMIC); - var code = `'0x' + format(${value_dec}, 'X')`; + var code = `f'{${value_dec}:#04x}'`; return [code, Blockly.Python.ORDER_NONE]; }; /** GPIO *****************************************************************************************************/ @@ -371,15 +278,15 @@ var ugjGpioSetInputDefinition = { "options": [ [ "%{BKY_GPIO_SET_INPUT_PULLUP}", - "_pi.PULL_UP" + "PULL_UP" ], [ "%{BKY_GPIO_SET_INPUT_PULLDOWN}", - "_pi.PULL_DOWN" + "PULL_DOWN" ], [ "%{BKY_GPIO_SET_INPUT_PULLNONE}", - "_pi.PULL_NONE" + "PULL_NONE" ] ] } @@ -399,15 +306,18 @@ Blockly.Blocks['ugj_gpio_set_input'] = { Blockly.JavaScript['ugj_gpio_set_input'] = function (block) { var value_gpio = Blockly.JavaScript.valueToCode(block, 'gpio', Blockly.JavaScript.ORDER_ATOMIC); var dropdown_lflag = block.getFieldValue('lflag'); - var code = `await _pi.gpio_set_input(${value_gpio}, ${dropdown_lflag});\n`; + var code = `await _pi.gpio_set_input(${value_gpio}, _pi.${dropdown_lflag});\n`; + return code; +}; +Blockly.Python['ugj_gpio_set_input'] = function (block) { + var value_gpio = Blockly.Python.valueToCode(block, 'gpio', Blockly.Python.ORDER_ATOMIC); + var dropdown_lflag = block.getFieldValue('lflag'); + let lflag; + if (dropdown_lflag == 'PULL_NONE') { lflag = 'None'; } + else { lflag = `Pin.${dropdown_lflag}`; } + var code = `_pin[${value_gpio}] = Pin(${value_gpio}, Pin.IN, ${lflag})\n`; return code; }; -// Blockly.Python['ugj_gpio_set_input'] = function (block) { -// var value_gpio = Blockly.Python.valueToCode(block, 'gpio', Blockly.Python.ORDER_ATOMIC); -// var dropdown_lflag = block.getFieldValue('lflag'); -// var code = `\n`; -// return code; -// }; /********************* */ /** Read GPIO Value ** */ @@ -438,11 +348,11 @@ Blockly.JavaScript['ugj_gpio_read'] = function (block) { var code = `await _pi.gpio_read(${value_gpio})`; return [code, Blockly.JavaScript.ORDER_NONE]; }; -// Blockly.Python['ugj_gpio_read'] = function (block) { -// var value_gpio = Blockly.Python.valueToCode(block, 'gpio', Blockly.Python.ORDER_ATOMIC); -// var code = ``; -// return [code, Blockly.Python.ORDER_NONE]; -// }; +Blockly.Python['ugj_gpio_read'] = function (block) { + var value_gpio = Blockly.Python.valueToCode(block, 'gpio', Blockly.Python.ORDER_ATOMIC); + var code = `_pin[${value_gpio}].value()`; + return [code, Blockly.Python.ORDER_NONE]; +}; /*******************************************/ /** GPIO Write Value - Common GPIO on/off **/ @@ -775,14 +685,15 @@ Blockly.JavaScript['ugj_i2c_open'] = function (block) { var code = `await _pi.i2c_open(${elutil.i2c_bus}, ${value_i2c_address});\n`; return code; }; -// Blockly.Python['ugj_i2c_open'] = function (block) { -// var value_i2c_address = Blockly.Python.valueToCode(block, 'i2c_address', Blockly.Python.ORDER_ATOMIC); -// Blockly.Python.provideFunction_( -// 'import_lgpio', ['import lgpio as pi'] -// ); -// var code = `i2c_hand = pi.i2c_open(1, ${value_i2c_address})\n`; -// return code; -// }; +Blockly.Python['ugj_i2c_open'] = function (block) { + var value_i2c_address = Blockly.Python.valueToCode(block, 'i2c_address', Blockly.Python.ORDER_ATOMIC); + Blockly.Python.provideFunction_( + 'import_i2c', ['from machine import I2C'] + ); + var code = `_addr = ${value_i2c_address} +_i2c_hand = I2C(0,sda=Pin(0),scl=Pin(1))\n`; + return code; +}; /********************** */ /** Close I2C Device ** */ /********************** */ @@ -805,10 +716,10 @@ Blockly.JavaScript['ugj_i2c_close'] = function (block) { var code = `await _pi.i2c_close();\n`; return code; }; -// Blockly.Python['ugj_i2c_close'] = function (block) { -// var code = `await pi.i2c_close(i2c_hand)\n`; -// return code; -// }; +Blockly.Python['ugj_i2c_close'] = function (block) { + var code = ``; + return code; +}; /****************************************************************** */ /** Writes a single byte to the specified register of the device ** */ @@ -846,12 +757,12 @@ Blockly.JavaScript['ugj_i2c_write_byte_data'] = function (block) { var code = `await _pi.i2c_write_byte_data(${value_reg}, ${value_byte_val});\n`; return code; }; -// Blockly.Python['ugj_i2c_write_byte_data'] = function (block) { -// var value_reg = Blockly.Python.valueToCode(block, 'reg', Blockly.Python.ORDER_ATOMIC); -// var value_byte_val = Blockly.Python.valueToCode(block, 'byte_val', Blockly.Python.ORDER_ATOMIC); -// var code = `await pi.i2c_write_byte_data(i2c_hand, ${value_reg}, ${value_byte_val})\n`; -// return code; -// }; +Blockly.Python['ugj_i2c_write_byte_data'] = function (block) { + var value_reg = Blockly.Python.valueToCode(block, 'reg', Blockly.Python.ORDER_ATOMIC); + var value_byte_val = Blockly.Python.valueToCode(block, 'byte_val', Blockly.Python.ORDER_ATOMIC); + var code = `_i2c_hand.writeto_mem(_addr, ${value_reg}, (${value_byte_val}).to_bytes(1,'big'))\n`; + return code; +}; /****************************************************************** */ /** Read a single byte from the specified resister of the device ** */ @@ -882,11 +793,11 @@ Blockly.JavaScript['ugj_i2c_read_byte_data'] = function (block) { var code = `await _pi.i2c_read_byte_data(${value_reg})`; return [code, Blockly.JavaScript.ORDER_ATOMIC]; }; -// Blockly.Python['ugj_i2c_read_byte_data'] = function (block) { -// var value_reg = Blockly.Python.valueToCode(block, 'reg', Blockly.Python.ORDER_ATOMIC); -// var code = `await pi.i2c_read_byte_data(i2c_hand, ${value_reg})\n`; -// return [code, Blockly.Python.ORDER_ATOMIC]; -// }; +Blockly.Python['ugj_i2c_read_byte_data'] = function (block) { + var value_reg = Blockly.Python.valueToCode(block, 'reg', Blockly.Python.ORDER_ATOMIC); + var code = `int.from_bytes(_i2c_hand.readfrom_mem(_addr, ${value_reg}, 1), 'big')\n`; + return [code, Blockly.Python.ORDER_ATOMIC]; +}; Blockly.Blocks['ugj_i2c_read_word_data'] = { init: function () { @@ -941,13 +852,12 @@ Blockly.JavaScript['ugj_i2c_write_i2c_block_data'] = function (block) { var code = `await _pi.i2c_write_i2c_block_data (${value_reg}, ${value_data});`; return code; }; -// Blockly.Python['ugj_i2c_write_i2c_block_data'] = function (block) { -// var value_reg = Blockly.Python.valueToCode(block, 'reg', Blockly.Python.ORDER_ATOMIC); -// var value_name = Blockly.Python.valueToCode(block, 'NAME', Blockly.Python.ORDER_ATOMIC); -// // TODO: Assemble Python into code variable. -// var code = '...\n'; -// return code; -// }; +Blockly.Python['ugj_i2c_write_i2c_block_data'] = function (block) { + var value_reg = Blockly.Python.valueToCode(block, 'reg', Blockly.Python.ORDER_ATOMIC); + var value_data = Blockly.Python.valueToCode(block, 'data', Blockly.Python.ORDER_ATOMIC); + var code = `_i2c_hand.writeto_mem(_addr, ${value_reg}, bytearray(${value_data}))\n`; + return code; +}; /************************************************************************** */ /** Returns count bytes read from the raw device associated with handle. ** */ @@ -2833,6 +2743,118 @@ Blockly.JavaScript['testblock'] = function (block) { /** 互換性 */ +/** Fix Basic Blocks ****************************************************************************************/ +Blockly.Blocks['ugj_control_for'] = { + init: function () { + this.appendValueInput("index") + .setCheck("Variable"); + this.appendValueInput("from") + .setCheck("Number") + .appendField("を"); + this.appendValueInput("to") + .setCheck("Number") + .appendField("から"); + this.appendValueInput("by") + .setCheck("Number") + .appendField("まで"); + this.appendDummyInput() + .appendField("ずつ") + .appendField(new Blockly.FieldDropdown([["増やして", "+"], ["減らして", "-"]]), "crease"); + this.appendStatementInput("do") + .setCheck(null); + this.setInputsInline(true); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setTooltip("インデックス番号を決められた数ずつ増やし(減らし)ながら、ステートメントを実行します。"); + this.setHelpUrl(""); + this.setStyle('loop_blocks'); + } +}; +Blockly.JavaScript['ugj_control_for'] = function (block) { + var value_index = Blockly.JavaScript.valueToCode(block, 'index', Blockly.JavaScript.ORDER_ATOMIC); + // var variable_index = Blockly.JavaScript.nameDB_.getName(block.getFieldValue('index'), Blockly.Variables.NAME_TYPE); + var value_from = Blockly.JavaScript.valueToCode(block, 'from', Blockly.JavaScript.ORDER_ATOMIC); + var value_to = Blockly.JavaScript.valueToCode(block, 'to', Blockly.JavaScript.ORDER_ATOMIC); + var value_by = Blockly.JavaScript.valueToCode(block, 'by', Blockly.JavaScript.ORDER_ATOMIC); + var dropdown_crease = block.getFieldValue('crease'); + var statements_do = Blockly.JavaScript.statementToCode(block, 'do'); + let daishou; + if (dropdown_crease == '+') { daishou = '<'; } + else { daishou = '>'; } + var code = [ + `for (${value_index} = ${value_from}; ${value_index} ${daishou}= ${value_to}; ${value_index} ${dropdown_crease}= ${Math.abs(value_by)}) {`, + statements_do, + `}`, + '' + ].join('\n'); + return code; +}; +Blockly.Python['ugj_control_for'] = function (block) { + var value_index = Blockly.Python.valueToCode(block, 'index', Blockly.Python.ORDER_ATOMIC); + // var variable_index = Blockly.Python.nameDB_.getName(block.getFieldValue('index'), Blockly.Variables.NAME_TYPE); + var value_from = Blockly.Python.valueToCode(block, 'from', Blockly.Python.ORDER_ATOMIC); + var value_to = Blockly.Python.valueToCode(block, 'to', Blockly.Python.ORDER_ATOMIC); + var value_by = Blockly.Python.valueToCode(block, 'by', Blockly.Python.ORDER_ATOMIC); + var dropdown_crease = block.getFieldValue('crease'); + var statements_do = Blockly.Python.statementToCode(block, 'do'); + if (statements_do === '') statements_do = ' pass'; + if (dropdown_crease == '+') { value_by = Math.abs(value_by); value_to++; } + else { value_by = Math.abs(value_by) * (-1); value_to--; } + var code = [ + `for ${value_index} in range(${value_from}, ${value_to}, ${value_by}) :`, + statements_do, + '' + ].join('\n'); + return code; +}; + +Blockly.Blocks['ugj_controls_foreach'] = { + init: function () { + this.appendValueInput("list") + .setCheck("Array") + .appendField("リスト"); + this.appendValueInput("item") + .setCheck("Variable") + .appendField("の各"); + this.appendDummyInput() + .appendField("について"); + this.appendStatementInput("do") + .setCheck(null); + this.setInputsInline(true); + this.setPreviousStatement(true, null); + this.setNextStatement(true, null); + this.setTooltip("リストの各項目について、その項目の内容を変数「項目」に代入してステートメントを実行します。"); + this.setHelpUrl(""); + this.setStyle('loop_blocks'); + } +}; +Blockly.JavaScript['ugj_controls_foreach'] = function (block) { + var value_list = Blockly.JavaScript.valueToCode(block, 'list', Blockly.JavaScript.ORDER_ATOMIC); + var value_item = Blockly.JavaScript.valueToCode(block, 'item', Blockly.JavaScript.ORDER_ATOMIC); + var statements_do = Blockly.JavaScript.statementToCode(block, 'do'); + var code = [ + `for (let _index in ${value_list}) {`, + `${value_item} = ${value_list}[_index];`, + statements_do, + `}`, + '' + ].join('\n'); + return code; +}; +Blockly.Python['ugj_controls_foreach'] = function (block) { + var value_list = Blockly.Python.valueToCode(block, 'list', Blockly.Python.ORDER_ATOMIC); + var value_item = Blockly.Python.valueToCode(block, 'item', Blockly.Python.ORDER_ATOMIC); + var statements_do = Blockly.Python.statementToCode(block, 'do'); + if (statements_do === '') statements_do = ' pass'; + var code = [ + `for ${value_item} in ${value_list}:`, + statements_do, + '' + ].join('\n'); + return code; +}; + + // /******************/ // /** Set Interval **/ // /******************/